diff --git a/CHANGELOG.md b/CHANGELOG.md index 3fffa658..4d462cb1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,7 +1,11 @@ # CHANGE LOG -## main(v0.8.7) +## main(v0.9.0) + +- feat: | Worker | 支持多语言 + +## v0.8.7 - fix: |UI| 修复移动设备日期显示问题 - feat: |Worker| 支持通过 `SMTP` 发送邮件, 使用 [zou-yu/worker-mailer](https://github.com/zou-yu/worker-mailer/blob/main/README_zh-CN.md) diff --git a/frontend/package.json b/frontend/package.json index e7fa3e1f..bc0778d2 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -1,6 +1,6 @@ { "name": "cloudflare_temp_email", - "version": "0.8.7", + "version": "0.9.0", "private": true, "type": "module", "scripts": { @@ -40,13 +40,13 @@ "@vicons/material": "^0.13.0", "@vitejs/plugin-vue": "^5.2.1", "unplugin-auto-import": "^19.1.0", - "unplugin-vue-components": "^28.1.0", - "vite": "^6.1.0", + "unplugin-vue-components": "^28.4.0", + "vite": "^6.1.1", "vite-plugin-pwa": "^0.21.1", "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": "^3.109.1" + "wrangler": "^3.109.2" } } diff --git a/frontend/pnpm-lock.yaml b/frontend/pnpm-lock.yaml index ba9f0dac..549675d8 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.1 - version: 5.2.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5)) + version: 5.2.1(vite@6.1.1(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5)) unplugin-auto-import: specifier: ^19.1.0 version: 19.1.0(@vueuse/core@12.7.0(typescript@5.4.5)) unplugin-vue-components: - specifier: ^28.1.0 - version: 28.1.0(@babel/parser@7.26.9)(vue@3.5.13(typescript@5.4.5)) + specifier: ^28.4.0 + version: 28.4.0(@babel/parser@7.26.9)(vue@3.5.13(typescript@5.4.5)) vite: - specifier: ^6.1.0 - version: 6.1.0(@types/node@22.10.5)(terser@5.39.0) + specifier: ^6.1.1 + version: 6.1.1(@types/node@22.10.5)(terser@5.39.0) vite-plugin-pwa: specifier: ^0.21.1 - version: 0.21.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0) + version: 0.21.1(vite@6.1.1(@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.1.0(@types/node@22.10.5)(terser@5.39.0)) + version: 1.5.0(rollup@2.79.2)(vite@6.1.1(@types/node@22.10.5)(terser@5.39.0)) vite-plugin-wasm: specifier: ^3.4.1 - version: 3.4.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0)) + version: 3.4.1(vite@6.1.1(@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: ^3.109.1 - version: 3.109.1 + specifier: ^3.109.2 + version: 3.109.2 packages: @@ -592,32 +592,32 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20250204.0': - resolution: {integrity: sha512-HpsgbWEfvdcwuZ8WAZhi1TlSCyyHC3tbghpKsOqGDaQNltyAFAWqa278TPNfcitYf/FmV4961v3eqUE+RFdHNQ==} + '@cloudflare/workerd-darwin-64@1.20250214.0': + resolution: {integrity: sha512-cDvvedWDc5zrgDnuXe2qYcz/TwBvzmweO55C7XpPuAWJ9Oqxv81PkdekYxD8mH989aQ/GI5YD0Fe6fDYlM+T3Q==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250204.0': - resolution: {integrity: sha512-AJ8Tk7KMJqePlch3SH8oL41ROtsrb07hKRHD6M+FvGC3tLtf26rpteAAMNYKMDYKzFNFUIKZNijYDFZjBFndXQ==} + '@cloudflare/workerd-darwin-arm64@1.20250214.0': + resolution: {integrity: sha512-NytCvRveVzu0mRKo+tvZo3d/gCUway3B2ZVqSi/TS6NXDGBYIJo7g6s3BnTLS74kgyzeDOjhu9j/RBJBS809qw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250204.0': - resolution: {integrity: sha512-RIUfUSnDC8h73zAa+u1K2Frc7nc+eeQoBBP7SaqsRe6JdX8jfIv/GtWjQWCoj8xQFgLvhpJKZ4sTTTV+AilQbw==} + '@cloudflare/workerd-linux-64@1.20250214.0': + resolution: {integrity: sha512-pQ7+aHNHj8SiYEs4d/6cNoimE5xGeCMfgU1yfDFtA9YGN9Aj2BITZgOWPec+HW7ZkOy9oWlNrO6EvVjGgB4tbQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250204.0': - resolution: {integrity: sha512-8Ql8jDjoIgr2J7oBD01kd9kduUz60njofrBpAOkjCPed15He8e8XHkYaYow3g0xpae4S2ryrPOeoD3M64sRxeg==} + '@cloudflare/workerd-linux-arm64@1.20250214.0': + resolution: {integrity: sha512-Vhlfah6Yd9ny1npNQjNgElLIjR6OFdEbuR3LCfbLDCwzWEBFhIf7yC+Tpp/a0Hq7kLz3sLdktaP7xl3PJhyOjA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250204.0': - resolution: {integrity: sha512-RpDJO3+to+e17X3EWfRCagboZYwBz2fowc+jL53+fd7uD19v3F59H48lw2BDpHJMRyhg6ouWcpM94OhsHv8ecA==} + '@cloudflare/workerd-windows-64@1.20250214.0': + resolution: {integrity: sha512-GMwMyFbkjBKjYJoKDhGX8nuL4Gqe3IbVnVWf2Q6086CValyIknupk5J6uQWGw2EBU3RGO3x4trDXT5WphQJZDQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -1082,18 +1082,6 @@ packages: '@juggle/resize-observer@3.4.0': resolution: {integrity: sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==} - '@nodelib/fs.scandir@2.1.5': - resolution: {integrity: sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==} - engines: {node: '>= 8'} - - '@nodelib/fs.stat@2.0.5': - resolution: {integrity: sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==} - engines: {node: '>= 8'} - - '@nodelib/fs.walk@1.2.8': - resolution: {integrity: sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==} - engines: {node: '>= 8'} - '@rollup/plugin-babel@5.3.1': resolution: {integrity: sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==} engines: {node: '>= 10.0.0'} @@ -1152,98 +1140,98 @@ packages: rollup: optional: true - '@rollup/rollup-android-arm-eabi@4.34.7': - resolution: {integrity: sha512-l6CtzHYo8D2TQ3J7qJNpp3Q1Iye56ssIAtqbM2H8axxCEEwvN7o8Ze9PuIapbxFL3OHrJU2JBX6FIIVnP/rYyw==} + '@rollup/rollup-android-arm-eabi@4.34.8': + resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.7': - resolution: {integrity: sha512-KvyJpFUueUnSp53zhAa293QBYqwm94TgYTIfXyOTtidhm5V0LbLCJQRGkQClYiX3FXDQGSvPxOTD/6rPStMMDg==} + '@rollup/rollup-android-arm64@4.34.8': + resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.7': - resolution: {integrity: sha512-jq87CjmgL9YIKvs8ybtIC98s/M3HdbqXhllcy9EdLV0yMg1DpxES2gr65nNy7ObNo/vZ/MrOTxt0bE5LinL6mA==} + '@rollup/rollup-darwin-arm64@4.34.8': + resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.7': - resolution: {integrity: sha512-rSI/m8OxBjsdnMMg0WEetu/w+LhLAcCDEiL66lmMX4R3oaml3eXz3Dxfvrxs1FbzPbJMaItQiksyMfv1hoIxnA==} + '@rollup/rollup-darwin-x64@4.34.8': + resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.7': - resolution: {integrity: sha512-oIoJRy3ZrdsXpFuWDtzsOOa/E/RbRWXVokpVrNnkS7npz8GEG++E1gYbzhYxhxHbO2om1T26BZjVmdIoyN2WtA==} + '@rollup/rollup-freebsd-arm64@4.34.8': + resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.7': - resolution: {integrity: sha512-X++QSLm4NZfZ3VXGVwyHdRf58IBbCu9ammgJxuWZYLX0du6kZvdNqPwrjvDfwmi6wFdvfZ/s6K7ia0E5kI7m8Q==} + '@rollup/rollup-freebsd-x64@4.34.8': + resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.7': - resolution: {integrity: sha512-Z0TzhrsNqukTz3ISzrvyshQpFnFRfLunYiXxlCRvcrb3nvC5rVKI+ZXPFG/Aa4jhQa1gHgH3A0exHaRRN4VmdQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.34.8': + resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.7': - resolution: {integrity: sha512-nkznpyXekFAbvFBKBy4nNppSgneB1wwG1yx/hujN3wRnhnkrYVugMTCBXED4+Ni6thoWfQuHNYbFjgGH0MBXtw==} + '@rollup/rollup-linux-arm-musleabihf@4.34.8': + resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.7': - resolution: {integrity: sha512-KCjlUkcKs6PjOcxolqrXglBDcfCuUCTVlX5BgzgoJHw+1rWH1MCkETLkLe5iLLS9dP5gKC7mp3y6x8c1oGBUtA==} + '@rollup/rollup-linux-arm64-gnu@4.34.8': + resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.7': - resolution: {integrity: sha512-uFLJFz6+utmpbR313TTx+NpPuAXbPz4BhTQzgaP0tozlLnGnQ6rCo6tLwaSa6b7l6gRErjLicXQ1iPiXzYotjw==} + '@rollup/rollup-linux-arm64-musl@4.34.8': + resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.7': - resolution: {integrity: sha512-ws8pc68UcJJqCpneDFepnwlsMUFoWvPbWXT/XUrJ7rWUL9vLoIN3GAasgG+nCvq8xrE3pIrd+qLX/jotcLy0Qw==} + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': + resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': - resolution: {integrity: sha512-vrDk9JDa/BFkxcS2PbWpr0C/LiiSLxFbNOBgfbW6P8TBe9PPHx9Wqbvx2xgNi1TOAyQHQJ7RZFqBiEohm79r0w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': + resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.7': - resolution: {integrity: sha512-rB+ejFyjtmSo+g/a4eovDD1lHWHVqizN8P0Hm0RElkINpS0XOdpaXloqM4FBkF9ZWEzg6bezymbpLmeMldfLTw==} + '@rollup/rollup-linux-riscv64-gnu@4.34.8': + resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.7': - resolution: {integrity: sha512-nNXNjo4As6dNqRn7OrsnHzwTgtypfRA3u3AKr0B3sOOo+HkedIbn8ZtFnB+4XyKJojIfqDKmbIzO1QydQ8c+Pw==} + '@rollup/rollup-linux-s390x-gnu@4.34.8': + resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.7': - resolution: {integrity: sha512-9kPVf9ahnpOMSGlCxXGv980wXD0zRR3wyk8+33/MXQIpQEOpaNe7dEHm5LMfyRZRNt9lMEQuH0jUKj15MkM7QA==} + '@rollup/rollup-linux-x64-gnu@4.34.8': + resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.7': - resolution: {integrity: sha512-7wJPXRWTTPtTFDFezA8sle/1sdgxDjuMoRXEKtx97ViRxGGkVQYovem+Q8Pr/2HxiHp74SSRG+o6R0Yq0shPwQ==} + '@rollup/rollup-linux-x64-musl@4.34.8': + resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.7': - resolution: {integrity: sha512-MN7aaBC7mAjsiMEZcsJvwNsQVNZShgES/9SzWp1HC9Yjqb5OpexYnRjF7RmE4itbeesHMYYQiAtUAQaSKs2Rfw==} + '@rollup/rollup-win32-arm64-msvc@4.34.8': + resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.7': - resolution: {integrity: sha512-aeawEKYswsFu1LhDM9RIgToobquzdtSc4jSVqHV8uApz4FVvhFl/mKh92wc8WpFc6aYCothV/03UjY6y7yLgbg==} + '@rollup/rollup-win32-ia32-msvc@4.34.8': + resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.7': - resolution: {integrity: sha512-4ZedScpxxIrVO7otcZ8kCX1mZArtH2Wfj3uFCxRJ9NO80gg1XV0U/b2f/MKaGwj2X3QopHfoWiDQ917FRpwY3w==} + '@rollup/rollup-win32-x64-msvc@4.34.8': + resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} cpu: [x64] os: [win32] @@ -1256,68 +1244,68 @@ packages: '@surma/rollup-plugin-off-main-thread@2.2.3': resolution: {integrity: sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==} - '@swc/core-darwin-arm64@1.10.16': - resolution: {integrity: sha512-iikIxwqCQ4Bvz79vJ4ELh26efPf1u5D9TFdmXSJUBs7C3mmMHvk5zyWD9A9cTowXiW6WHs2gE58U1R9HOTTIcg==} + '@swc/core-darwin-arm64@1.10.18': + resolution: {integrity: sha512-FdGqzAIKVQJu8ROlnHElP59XAUsUzCFSNsou+tY/9ba+lhu8R9v0OI5wXiPErrKGZpQFMmx/BPqqhx3X4SuGNg==} engines: {node: '>=10'} cpu: [arm64] os: [darwin] - '@swc/core-darwin-x64@1.10.16': - resolution: {integrity: sha512-R2Eb9aktWd62vPfW9H/c/OaQ0e94iURibBo4uzUUcgxNNmB4+wb6piKbHxGdr/5bEsT+vJ1lwZFSRzfb45E7DA==} + '@swc/core-darwin-x64@1.10.18': + resolution: {integrity: sha512-RZ73gZRituL/ZVLgrW6BYnQ5g8tuStG4cLUiPGJsUZpUm0ullSH6lHFvZTCBNFTfpQChG6eEhi2IdG6DwFp1lw==} engines: {node: '>=10'} cpu: [x64] os: [darwin] - '@swc/core-linux-arm-gnueabihf@1.10.16': - resolution: {integrity: sha512-mkqN3HBAMnuiSGZ/k2utScuH8rAPshvNj0T1LjBWon+X9DkMNHSA+aMLdWsy0yZKF1zjOPc4L3Uq2l2wzhUlzA==} + '@swc/core-linux-arm-gnueabihf@1.10.18': + resolution: {integrity: sha512-8iJqI3EkxJuuq21UHoen1VS+QlS23RvynRuk95K+Q2HBjygetztCGGEc+Xelx9a0uPkDaaAtFvds4JMDqb9SAA==} engines: {node: '>=10'} cpu: [arm] os: [linux] - '@swc/core-linux-arm64-gnu@1.10.16': - resolution: {integrity: sha512-PH/+q/L5nVZJ91CU07CL6Q9Whs6iR6nneMZMAgtVF9Ix8ST0cWVItdUhs6D38kFklCFhaOrpHhS01HlMJ72vWw==} + '@swc/core-linux-arm64-gnu@1.10.18': + resolution: {integrity: sha512-8f1kSktWzMB6PG+r8lOlCfXz5E8Qhsmfwonn77T/OfjvGwQaWrcoASh2cdjpk3dydbf8jsKGPQE1lSc7GyjXRQ==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-arm64-musl@1.10.16': - resolution: {integrity: sha512-1169+C9XbydKKc6Ec1XZxTGKtHjZHDIFn0r+Nqp/QSVwkORrOY1Vz2Hdu7tn/lWMg36ZkGePS+LnnyV67s/7yg==} + '@swc/core-linux-arm64-musl@1.10.18': + resolution: {integrity: sha512-4rv+E4VLdgQw6zjbTAauCAEExxChvxMpBUMCiZweTNPKbJJ2dY6BX2WGJ1ea8+RcgqR/Xysj3AFbOz1LBz6dGA==} engines: {node: '>=10'} cpu: [arm64] os: [linux] - '@swc/core-linux-x64-gnu@1.10.16': - resolution: {integrity: sha512-n2rV0XwkjoHn4MDJmpYp5RBrnyi94/6GsJVpbn6f+/eqSrZn3mh3dT7pdZc9zCN1Qp9eDHo+uI6e/wgvbL22uA==} + '@swc/core-linux-x64-gnu@1.10.18': + resolution: {integrity: sha512-vTNmyRBVP+sZca+vtwygYPGTNudTU6Gl6XhaZZ7cEUTBr8xvSTgEmYXoK/2uzyXpaTUI4Bmtp1x81cGN0mMoLQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-linux-x64-musl@1.10.16': - resolution: {integrity: sha512-EevCpwreBrkPrJjQVIbiM81lK42ukNNSlBmrSRxxbx2V9VGmOd5qxX0cJBn0TRRSLIPi62BuMS76F9iYjqsjgg==} + '@swc/core-linux-x64-musl@1.10.18': + resolution: {integrity: sha512-1TZPReKhFCeX776XaT6wegknfg+g3zODve+r4oslFHI+g7cInfWlxoGNDS3niPKyuafgCdOjme2g3OF+zzxfsQ==} engines: {node: '>=10'} cpu: [x64] os: [linux] - '@swc/core-win32-arm64-msvc@1.10.16': - resolution: {integrity: sha512-BvE7RWAnKJeELVQWLok6env5I4GUVBTZSvaSN/VPgxnTjF+4PsTeQptYx0xCYhp5QCv68wWYsBnZKuPDS+SBsw==} + '@swc/core-win32-arm64-msvc@1.10.18': + resolution: {integrity: sha512-o/2CsaWSN3bkzVQ6DA+BiFKSVEYvhWGA1h+wnL2zWmIDs2Knag54sOEXZkCaf8YQyZesGeXJtPEy9hh/vjJgkA==} engines: {node: '>=10'} cpu: [arm64] os: [win32] - '@swc/core-win32-ia32-msvc@1.10.16': - resolution: {integrity: sha512-7Jf/7AeCgbLR/JsQgMJuacHIq4Jeie3knf6+mXxn8aCvRypsOTIEu0eh7j24SolOboxK1ijqJ86GyN1VA2Rebg==} + '@swc/core-win32-ia32-msvc@1.10.18': + resolution: {integrity: sha512-eTPASeJtk4mJDfWiYEiOC6OYUi/N7meHbNHcU8e+aKABonhXrIo/FmnTE8vsUtC6+jakT1TQBdiQ8fzJ1kJVwA==} engines: {node: '>=10'} cpu: [ia32] os: [win32] - '@swc/core-win32-x64-msvc@1.10.16': - resolution: {integrity: sha512-p0blVm0R8bjaTtmW+FoPmLxLSQdRNbqhuWcR/8g80OzMSkka9mk5/J3kn/5JRVWh+MaR9LHRHZc1Q1L8zan13g==} + '@swc/core-win32-x64-msvc@1.10.18': + resolution: {integrity: sha512-1Dud8CDBnc34wkBOboFBQud9YlV1bcIQtKSg7zC8LtwR3h+XAaCayZPkpGmmAlCv1DLQPvkF+s0JcaVC9mfffQ==} engines: {node: '>=10'} cpu: [x64] os: [win32] - '@swc/core@1.10.16': - resolution: {integrity: sha512-nOINg/OUcZazCW7B55QV2/UB8QAqz9FYe4+z229+4RYboBTZ102K7ebOEjY5sKn59JgAkhjZTz+5BKmXpDFopw==} + '@swc/core@1.10.18': + resolution: {integrity: sha512-IUWKD6uQYGRy8w2X9EZrtYg1O3SCijlHbCXzMaHQYc1X7yjijQh4H3IVL9ssZZyVp2ZDfQZu4bD5DWxxvpyjvg==} engines: {node: '>=10'} peerDependencies: '@swc/helpers': '*' @@ -1646,8 +1634,8 @@ packages: resolution: {integrity: sha512-YTd+6wGlNlPxSuri7Y6X8tY2dmm12UMH66RpKMhiX6rsk5wXXnYgbUcOt8kiS31/AjfoTOvCsE+w8nZQLQnzHA==} engines: {node: '>= 0.4'} - caniuse-lite@1.0.30001699: - resolution: {integrity: sha512-b+uH5BakXZ9Do9iK+CkDmctUSEqZl+SP056vc5usa0PL+ev5OHw003rZXcnjNDv3L8P5j6rwT6C0BPKSikW08w==} + caniuse-lite@1.0.30001700: + resolution: {integrity: sha512-2S6XIXwaE7K7erT8dY+kLQcpa5ms63XlRkMkReXjle+kf6c5g38vyMl+Z5y8dSxOFDhcFe+nxnn261PLxBSQsQ==} chalk@4.1.2: resolution: {integrity: sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==} @@ -1794,8 +1782,8 @@ packages: engines: {node: '>=0.10.0'} hasBin: true - electron-to-chromium@1.5.101: - resolution: {integrity: sha512-L0ISiQrP/56Acgu4/i/kfPwWSgrzYZUnQrC0+QPFuhqlLP1Ir7qzPPDVS9BcKIyWTRU8+o6CC8dKw38tSWhYIA==} + electron-to-chromium@1.5.102: + resolution: {integrity: sha512-eHhqaja8tE/FNpIiBrvBjFV/SSKpyWHLvxuR9dPTdo+3V9ppdLmFB7ZZQ98qNovcngPLYIz0oOBF9P0FfZef5Q==} entities@4.5.0: resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==} @@ -1894,19 +1882,12 @@ packages: fast-deep-equal@3.1.3: resolution: {integrity: sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==} - fast-glob@3.3.3: - resolution: {integrity: sha512-7MptL8U0cqcFdzIzwOTHoilX9x5BrNqye7Z/LuC7kCMRio1EMSyqRK3BEAUD7sXRq4iT4AzTVuZdhgQ2TCvYLg==} - engines: {node: '>=8.6.0'} - fast-json-stable-stringify@2.1.0: resolution: {integrity: sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==} fast-uri@3.0.6: resolution: {integrity: sha512-Atfo14OibSv5wAp4VWNsFYE1AchQRTv9cBGWET4pZWHzYshFSS9NQI6I57rdKn9croWVMbYFbLhJ+yJvmZIIHw==} - fastq@1.19.0: - resolution: {integrity: sha512-7SFSRCNjBQIZH/xZR3iy5iQYR8aGBE0h3VG6/cwlbrpdciNYBMotQav8c1XI3HjHH+NikUpP53nPdlZSdWmFzA==} - fdir@6.4.3: resolution: {integrity: sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw==} peerDependencies: @@ -2306,14 +2287,6 @@ packages: resolution: {integrity: sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==} engines: {node: '>= 0.4'} - merge2@1.4.1: - resolution: {integrity: sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==} - engines: {node: '>= 8'} - - micromatch@4.0.8: - resolution: {integrity: sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==} - engines: {node: '>=8.6'} - mime-db@1.52.0: resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==} engines: {node: '>= 0.6'} @@ -2330,8 +2303,8 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - miniflare@3.20250204.1: - resolution: {integrity: sha512-B4PQi/Ai4d0ZTWahQwsFe5WAfr1j8ISMYxJZTc56g2/btgbX+Go099LmojAZY/fMRLhIYsglcStW8SeW3f/afA==} + miniflare@3.20250214.0: + resolution: {integrity: sha512-XKwn+X/V2CEpbRhoeaIcJHpV/Duz5Md5rxVT8I6S1oqd3aLZkn8cUX1tuxHpUvfQSPuXwWH+2ESLNnTf9PKEWg==} engines: {node: '>=16.13'} hasBin: true @@ -2440,12 +2413,12 @@ packages: postal-mime@2.4.3: resolution: {integrity: sha512-KT8P+/We7LH48EhjmLRLEiQx+HI6zZ5TTeuzhuZkMbcJnp9mdmxm/FgiRIzmhZm8mxmk8mtisIAelq1wNwumxg==} - postcss@8.5.2: - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - preact@10.25.4: - resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} + preact@10.26.2: + resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==} pretty-bytes@5.6.0: resolution: {integrity: sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==} @@ -2472,9 +2445,6 @@ packages: resolution: {integrity: sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==} engines: {node: '>=6'} - queue-microtask@1.2.3: - resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} - randombytes@2.1.0: resolution: {integrity: sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==} @@ -2526,10 +2496,6 @@ packages: engines: {node: '>= 0.4'} hasBin: true - reusify@1.0.4: - resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==} - engines: {iojs: '>=1.0.0', node: '>=0.10.0'} - rollup-plugin-inject@3.0.2: resolution: {integrity: sha512-ptg9PQwzs3orn4jkgXJ74bfs5vYz1NCZlSQMBUA0wKcGp5i5pA1AO3fOUEte8enhGUC+iapTCzEWw2jEFFUO/w==} deprecated: This package has been deprecated and is no longer maintained. Please use @rollup/plugin-inject. @@ -2545,14 +2511,11 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - rollup@4.34.7: - resolution: {integrity: sha512-8qhyN0oZ4x0H6wmBgfKxJtxM7qS98YJ0k0kNh5ECVtuchIJ7z9IVVvzpmtQyT10PXKMtBxYr1wQ5Apg8RS8kXQ==} + rollup@4.34.8: + resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true - run-parallel@1.2.0: - resolution: {integrity: sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==} - safe-array-concat@1.1.3: resolution: {integrity: sha512-AURm5f0jYEOydBj7VQlVvDrjeFgthDdEF5H1dP+6mNpoXOMo1quQqJ4wvJDyRZ9+pO3kGWoOdmV08cSv2aJV6Q==} engines: {node: '>=0.4'} @@ -2734,8 +2697,8 @@ packages: tiny-warning@1.0.3: resolution: {integrity: sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==} - tinyglobby@0.2.10: - resolution: {integrity: sha512-Zc+8eJlFMvgatPZTl6A9L/yht8QqdmUNtURHaKZLmKBE12hNPSrqNkUp2cs3M/UKmNVVAMFQYSjYIVHDjW5zew==} + tinyglobby@0.2.11: + resolution: {integrity: sha512-32TmKeeKUahv0Go8WmQgiEp9Y21NuxjwjqiRC1nrUB51YacfSwuB44xgXD+HdIppmMRgjQNPdrHyA6vIybYZ+g==} engines: {node: '>=12.0.0'} to-regex-range@5.0.1: @@ -2815,8 +2778,8 @@ packages: resolution: {integrity: sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w==} engines: {node: '>=4'} - unimport@4.1.1: - resolution: {integrity: sha512-j9+fijH6aDd05yv1fXlyt7HSxtOWtGtrZeYTVBsSUg57Iuf+Ps2itIZjeyu7bEQ4k0WOgYhHrdW8m/pJgOpl5g==} + unimport@4.1.2: + resolution: {integrity: sha512-oVUL7PSlyVV3QRhsdcyYEMaDX8HJyS/CnUonEJTYA3//bWO+o/4gG8F7auGWWWkrrxBQBYOO8DKe+C53ktpRXw==} engines: {node: '>=18.12.0'} unique-string@2.0.0: @@ -2843,8 +2806,8 @@ packages: resolution: {integrity: sha512-8U/MtpkPkkk3Atewj1+RcKIjb5WBimZ/WSLhhR3w6SsIj8XJuKTacSP8g+2JhfSGw0Cb125Y+2zA/IzJZDVbhA==} engines: {node: '>=18.12.0'} - unplugin-vue-components@28.1.0: - resolution: {integrity: sha512-ScHoDBTf7NVxM+YzzV1b1YNHU1rRnLWIG5hhD8D3hKjgYLd6FNJife0zQhUafv3NKuGLdujRgoqy2vcdt7a55g==} + unplugin-vue-components@28.4.0: + resolution: {integrity: sha512-fnamX2RiKM30nPK4tihEas+bHnbLICo6MmOiP4jGg7fAlgNEuaLvN9yx96JwZDOYfLQcrNzikDdPhZ8k6pkhMg==} engines: {node: '>=14'} peerDependencies: '@babel/parser': ^7.15.8 @@ -2904,8 +2867,8 @@ packages: peerDependencies: vite: ^2 || ^3 || ^4 || ^5 || ^6 - vite@6.1.0: - resolution: {integrity: sha512-RjjMipCKVoR4hVfPY6GQTgveinjNuyLw+qruksLDvA5ktI1150VmcMBKmQaEWJhg/j6Uaf6dNCNA0AfdzUb/hQ==} + vite@6.1.1: + resolution: {integrity: sha512-4GgM54XrwRfrOp297aIYspIti66k56v16ZnqHvrIM7mG+HjDlAwS7p+Srr7J6fGvEdOJ5JcQ/D9T7HhtdXDTzA==} engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0} hasBin: true peerDependencies: @@ -3053,17 +3016,17 @@ packages: workbox-window@7.3.0: resolution: {integrity: sha512-qW8PDy16OV1UBaUNGlTVcepzrlzyzNW/ZJvFQQs2j2TzGsg6IKjcpZC1RSquqQnTOafl5pCj5bGfAHlCjOOjdA==} - workerd@1.20250204.0: - resolution: {integrity: sha512-zcKufjVFsQMiD3/acg1Ix00HIMCkXCrDxQXYRDn/1AIz3QQGkmbVDwcUk1Ki2jBUoXmBCMsJdycRucgMVEypWg==} + workerd@1.20250214.0: + resolution: {integrity: sha512-QWcqXZLiMpV12wiaVnb3nLmfs/g4ZsFQq2mX85z546r3AX4CTIkXl0VP50W3CwqLADej3PGYiRDOTelDOwVG1g==} engines: {node: '>=16'} hasBin: true - wrangler@3.109.1: - resolution: {integrity: sha512-1Jx+nZ6eCXPQ2rsGdrV6Qy/LGvhpqudeuTl4AYHl9P8Zugp44Uzxnj5w11qF4v/rv1dOZoA5TydSt9xMFfhpKg==} + wrangler@3.109.2: + resolution: {integrity: sha512-CT8izugPBth5o1o4gLNcQrDkHKSX2Jthy6gkyhaWiy2pFrx+536NMn/atWilLA1t1uhIgddEI5BXDNudIkPPHA==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250204.0 + '@cloudflare/workers-types': ^4.20250214.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -3752,19 +3715,19 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20250204.0': + '@cloudflare/workerd-darwin-64@1.20250214.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250204.0': + '@cloudflare/workerd-darwin-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-64@1.20250204.0': + '@cloudflare/workerd-linux-64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250204.0': + '@cloudflare/workerd-linux-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-windows-64@1.20250204.0': + '@cloudflare/workerd-windows-64@1.20250214.0': optional: true '@cspotcode/source-map-support@0.8.1': @@ -4055,18 +4018,6 @@ snapshots: '@juggle/resize-observer@3.4.0': {} - '@nodelib/fs.scandir@2.1.5': - dependencies: - '@nodelib/fs.stat': 2.0.5 - run-parallel: 1.2.0 - - '@nodelib/fs.stat@2.0.5': {} - - '@nodelib/fs.walk@1.2.8': - dependencies: - '@nodelib/fs.scandir': 2.1.5 - fastq: 1.19.0 - '@rollup/plugin-babel@5.3.1(@babel/core@7.26.9)(rollup@2.79.2)': dependencies: '@babel/core': 7.26.9 @@ -4119,61 +4070,61 @@ snapshots: optionalDependencies: rollup: 2.79.2 - '@rollup/rollup-android-arm-eabi@4.34.7': + '@rollup/rollup-android-arm-eabi@4.34.8': optional: true - '@rollup/rollup-android-arm64@4.34.7': + '@rollup/rollup-android-arm64@4.34.8': optional: true - '@rollup/rollup-darwin-arm64@4.34.7': + '@rollup/rollup-darwin-arm64@4.34.8': optional: true - '@rollup/rollup-darwin-x64@4.34.7': + '@rollup/rollup-darwin-x64@4.34.8': optional: true - '@rollup/rollup-freebsd-arm64@4.34.7': + '@rollup/rollup-freebsd-arm64@4.34.8': optional: true - '@rollup/rollup-freebsd-x64@4.34.7': + '@rollup/rollup-freebsd-x64@4.34.8': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.7': + '@rollup/rollup-linux-arm-gnueabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.7': + '@rollup/rollup-linux-arm-musleabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.7': + '@rollup/rollup-linux-arm64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.7': + '@rollup/rollup-linux-arm64-musl@4.34.8': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.7': + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.7': + '@rollup/rollup-linux-riscv64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.7': + '@rollup/rollup-linux-s390x-gnu@4.34.8': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.7': + '@rollup/rollup-linux-x64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-x64-musl@4.34.7': + '@rollup/rollup-linux-x64-musl@4.34.8': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.7': + '@rollup/rollup-win32-arm64-msvc@4.34.8': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.7': + '@rollup/rollup-win32-ia32-msvc@4.34.8': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.7': + '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true '@simplewebauthn/browser@10.0.0': @@ -4189,51 +4140,51 @@ snapshots: magic-string: 0.25.9 string.prototype.matchall: 4.0.12 - '@swc/core-darwin-arm64@1.10.16': + '@swc/core-darwin-arm64@1.10.18': optional: true - '@swc/core-darwin-x64@1.10.16': + '@swc/core-darwin-x64@1.10.18': optional: true - '@swc/core-linux-arm-gnueabihf@1.10.16': + '@swc/core-linux-arm-gnueabihf@1.10.18': optional: true - '@swc/core-linux-arm64-gnu@1.10.16': + '@swc/core-linux-arm64-gnu@1.10.18': optional: true - '@swc/core-linux-arm64-musl@1.10.16': + '@swc/core-linux-arm64-musl@1.10.18': optional: true - '@swc/core-linux-x64-gnu@1.10.16': + '@swc/core-linux-x64-gnu@1.10.18': optional: true - '@swc/core-linux-x64-musl@1.10.16': + '@swc/core-linux-x64-musl@1.10.18': optional: true - '@swc/core-win32-arm64-msvc@1.10.16': + '@swc/core-win32-arm64-msvc@1.10.18': optional: true - '@swc/core-win32-ia32-msvc@1.10.16': + '@swc/core-win32-ia32-msvc@1.10.18': optional: true - '@swc/core-win32-x64-msvc@1.10.16': + '@swc/core-win32-x64-msvc@1.10.18': optional: true - '@swc/core@1.10.16': + '@swc/core@1.10.18': dependencies: '@swc/counter': 0.1.3 '@swc/types': 0.1.17 optionalDependencies: - '@swc/core-darwin-arm64': 1.10.16 - '@swc/core-darwin-x64': 1.10.16 - '@swc/core-linux-arm-gnueabihf': 1.10.16 - '@swc/core-linux-arm64-gnu': 1.10.16 - '@swc/core-linux-arm64-musl': 1.10.16 - '@swc/core-linux-x64-gnu': 1.10.16 - '@swc/core-linux-x64-musl': 1.10.16 - '@swc/core-win32-arm64-msvc': 1.10.16 - '@swc/core-win32-ia32-msvc': 1.10.16 - '@swc/core-win32-x64-msvc': 1.10.16 + '@swc/core-darwin-arm64': 1.10.18 + '@swc/core-darwin-x64': 1.10.18 + '@swc/core-linux-arm-gnueabihf': 1.10.18 + '@swc/core-linux-arm64-gnu': 1.10.18 + '@swc/core-linux-arm64-musl': 1.10.18 + '@swc/core-linux-x64-gnu': 1.10.18 + '@swc/core-linux-x64-musl': 1.10.18 + '@swc/core-win32-arm64-msvc': 1.10.18 + '@swc/core-win32-ia32-msvc': 1.10.18 + '@swc/core-win32-x64-msvc': 1.10.18 '@swc/counter@0.1.3': {} @@ -4305,7 +4256,7 @@ snapshots: mime-match: 1.0.2 namespace-emitter: 2.0.1 nanoid: 3.3.8 - preact: 10.25.4 + preact: 10.26.2 '@uppy/store-default@2.1.1': {} @@ -4324,9 +4275,9 @@ snapshots: '@vicons/material@0.13.0': {} - '@vitejs/plugin-vue@5.2.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5))': + '@vitejs/plugin-vue@5.2.1(vite@6.1.1(@types/node@22.10.5)(terser@5.39.0))(vue@3.5.13(typescript@5.4.5))': dependencies: - vite: 6.1.0(@types/node@22.10.5)(terser@5.39.0) + vite: 6.1.1(@types/node@22.10.5)(terser@5.39.0) vue: 3.5.13(typescript@5.4.5) '@vue/compiler-core@3.5.13': @@ -4351,7 +4302,7 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.2 + postcss: 8.5.3 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': @@ -4616,8 +4567,8 @@ snapshots: browserslist@4.24.4: dependencies: - caniuse-lite: 1.0.30001699 - electron-to-chromium: 1.5.101 + caniuse-lite: 1.0.30001700 + electron-to-chromium: 1.5.102 node-releases: 2.0.19 update-browserslist-db: 1.1.2(browserslist@4.24.4) @@ -4640,7 +4591,7 @@ snapshots: call-bind-apply-helpers: 1.0.2 get-intrinsic: 1.2.7 - caniuse-lite@1.0.30001699: {} + caniuse-lite@1.0.30001700: {} chalk@4.1.2: dependencies: @@ -4790,7 +4741,7 @@ snapshots: dependencies: jake: 10.9.2 - electron-to-chromium@1.5.101: {} + electron-to-chromium@1.5.102: {} entities@4.5.0: {} @@ -4980,22 +4931,10 @@ snapshots: fast-deep-equal@3.1.3: {} - fast-glob@3.3.3: - dependencies: - '@nodelib/fs.stat': 2.0.5 - '@nodelib/fs.walk': 1.2.8 - glob-parent: 5.1.2 - merge2: 1.4.1 - micromatch: 4.0.8 - fast-json-stable-stringify@2.1.0: {} fast-uri@3.0.6: {} - fastq@1.19.0: - dependencies: - reusify: 1.0.4 - fdir@6.4.3(picomatch@4.0.2): optionalDependencies: picomatch: 4.0.2 @@ -5373,13 +5312,6 @@ snapshots: math-intrinsics@1.1.0: {} - merge2@1.4.1: {} - - micromatch@4.0.8: - dependencies: - braces: 3.0.3 - picomatch: 2.3.1 - mime-db@1.52.0: {} mime-match@1.0.2: @@ -5392,7 +5324,7 @@ snapshots: mime@3.0.0: {} - miniflare@3.20250204.1: + miniflare@3.20250214.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -5401,7 +5333,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.5 - workerd: 1.20250204.0 + workerd: 1.20250214.0 ws: 8.18.0 youch: 3.2.3 zod: 3.22.3 @@ -5516,13 +5448,13 @@ snapshots: postal-mime@2.4.3: {} - postcss@8.5.2: + postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.25.4: {} + preact@10.26.2: {} pretty-bytes@5.6.0: {} @@ -5538,8 +5470,6 @@ snapshots: punycode@2.3.1: {} - queue-microtask@1.2.3: {} - randombytes@2.1.0: dependencies: safe-buffer: 5.2.1 @@ -5613,8 +5543,6 @@ snapshots: path-parse: 1.0.7 supports-preserve-symlinks-flag: 1.0.0 - reusify@1.0.4: {} - rollup-plugin-inject@3.0.2: dependencies: estree-walker: 0.6.1 @@ -5633,35 +5561,31 @@ snapshots: optionalDependencies: fsevents: 2.3.3 - rollup@4.34.7: + rollup@4.34.8: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.7 - '@rollup/rollup-android-arm64': 4.34.7 - '@rollup/rollup-darwin-arm64': 4.34.7 - '@rollup/rollup-darwin-x64': 4.34.7 - '@rollup/rollup-freebsd-arm64': 4.34.7 - '@rollup/rollup-freebsd-x64': 4.34.7 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.7 - '@rollup/rollup-linux-arm-musleabihf': 4.34.7 - '@rollup/rollup-linux-arm64-gnu': 4.34.7 - '@rollup/rollup-linux-arm64-musl': 4.34.7 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.7 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.7 - '@rollup/rollup-linux-riscv64-gnu': 4.34.7 - '@rollup/rollup-linux-s390x-gnu': 4.34.7 - '@rollup/rollup-linux-x64-gnu': 4.34.7 - '@rollup/rollup-linux-x64-musl': 4.34.7 - '@rollup/rollup-win32-arm64-msvc': 4.34.7 - '@rollup/rollup-win32-ia32-msvc': 4.34.7 - '@rollup/rollup-win32-x64-msvc': 4.34.7 + '@rollup/rollup-android-arm-eabi': 4.34.8 + '@rollup/rollup-android-arm64': 4.34.8 + '@rollup/rollup-darwin-arm64': 4.34.8 + '@rollup/rollup-darwin-x64': 4.34.8 + '@rollup/rollup-freebsd-arm64': 4.34.8 + '@rollup/rollup-freebsd-x64': 4.34.8 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 + '@rollup/rollup-linux-arm-musleabihf': 4.34.8 + '@rollup/rollup-linux-arm64-gnu': 4.34.8 + '@rollup/rollup-linux-arm64-musl': 4.34.8 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 + '@rollup/rollup-linux-riscv64-gnu': 4.34.8 + '@rollup/rollup-linux-s390x-gnu': 4.34.8 + '@rollup/rollup-linux-x64-gnu': 4.34.8 + '@rollup/rollup-linux-x64-musl': 4.34.8 + '@rollup/rollup-win32-arm64-msvc': 4.34.8 + '@rollup/rollup-win32-ia32-msvc': 4.34.8 + '@rollup/rollup-win32-x64-msvc': 4.34.8 fsevents: 2.3.3 - run-parallel@1.2.0: - dependencies: - queue-microtask: 1.2.3 - safe-array-concat@1.1.3: dependencies: call-bind: 1.0.8 @@ -5908,7 +5832,7 @@ snapshots: tiny-warning@1.0.3: {} - tinyglobby@0.2.10: + tinyglobby@0.2.11: dependencies: fdir: 6.4.3(picomatch@4.0.2) picomatch: 4.0.2 @@ -6008,12 +5932,11 @@ snapshots: unicode-property-aliases-ecmascript@2.1.0: {} - unimport@4.1.1: + unimport@4.1.2: dependencies: acorn: 8.14.0 escape-string-regexp: 5.0.0 estree-walker: 3.0.3 - fast-glob: 3.3.3 local-pkg: 1.0.0 magic-string: 0.30.17 mlly: 1.7.4 @@ -6022,6 +5945,7 @@ snapshots: pkg-types: 1.3.1 scule: 1.3.0 strip-literal: 3.0.0 + tinyglobby: 0.2.11 unplugin: 2.2.0 unplugin-utils: 0.2.4 @@ -6036,7 +5960,7 @@ snapshots: local-pkg: 1.0.0 magic-string: 0.30.17 picomatch: 4.0.2 - unimport: 4.1.1 + unimport: 4.1.2 unplugin: 2.2.0 unplugin-utils: 0.2.4 optionalDependencies: @@ -6047,14 +5971,14 @@ snapshots: pathe: 2.0.3 picomatch: 4.0.2 - unplugin-vue-components@28.1.0(@babel/parser@7.26.9)(vue@3.5.13(typescript@5.4.5)): + unplugin-vue-components@28.4.0(@babel/parser@7.26.9)(vue@3.5.13(typescript@5.4.5)): dependencies: chokidar: 3.6.0 debug: 4.4.0 local-pkg: 1.0.0 magic-string: 0.30.17 mlly: 1.7.4 - tinyglobby: 0.2.10 + tinyglobby: 0.2.11 unplugin: 2.2.0 unplugin-utils: 0.2.4 vue: 3.5.13(typescript@5.4.5) @@ -6085,36 +6009,36 @@ snapshots: evtd: 0.2.4 vue: 3.5.13(typescript@5.4.5) - vite-plugin-pwa@0.21.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0))(workbox-build@7.3.0)(workbox-window@7.3.0): + vite-plugin-pwa@0.21.1(vite@6.1.1(@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.10 - vite: 6.1.0(@types/node@22.10.5)(terser@5.39.0) + tinyglobby: 0.2.11 + vite: 6.1.1(@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.1.0(@types/node@22.10.5)(terser@5.39.0)): + vite-plugin-top-level-await@1.5.0(rollup@2.79.2)(vite@6.1.1(@types/node@22.10.5)(terser@5.39.0)): dependencies: '@rollup/plugin-virtual': 3.0.2(rollup@2.79.2) - '@swc/core': 1.10.16 + '@swc/core': 1.10.18 uuid: 10.0.0 - vite: 6.1.0(@types/node@22.10.5)(terser@5.39.0) + vite: 6.1.1(@types/node@22.10.5)(terser@5.39.0) transitivePeerDependencies: - '@swc/helpers' - rollup - vite-plugin-wasm@3.4.1(vite@6.1.0(@types/node@22.10.5)(terser@5.39.0)): + vite-plugin-wasm@3.4.1(vite@6.1.1(@types/node@22.10.5)(terser@5.39.0)): dependencies: - vite: 6.1.0(@types/node@22.10.5)(terser@5.39.0) + vite: 6.1.1(@types/node@22.10.5)(terser@5.39.0) - vite@6.1.0(@types/node@22.10.5)(terser@5.39.0): + vite@6.1.1(@types/node@22.10.5)(terser@5.39.0): dependencies: esbuild: 0.24.2 - postcss: 8.5.2 - rollup: 4.34.7 + postcss: 8.5.3 + rollup: 4.34.8 optionalDependencies: '@types/node': 22.10.5 fsevents: 2.3.3 @@ -6327,25 +6251,25 @@ snapshots: '@types/trusted-types': 2.0.7 workbox-core: 7.3.0 - workerd@1.20250204.0: + workerd@1.20250214.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250204.0 - '@cloudflare/workerd-darwin-arm64': 1.20250204.0 - '@cloudflare/workerd-linux-64': 1.20250204.0 - '@cloudflare/workerd-linux-arm64': 1.20250204.0 - '@cloudflare/workerd-windows-64': 1.20250204.0 + '@cloudflare/workerd-darwin-64': 1.20250214.0 + '@cloudflare/workerd-darwin-arm64': 1.20250214.0 + '@cloudflare/workerd-linux-64': 1.20250214.0 + '@cloudflare/workerd-linux-arm64': 1.20250214.0 + '@cloudflare/workerd-windows-64': 1.20250214.0 - wrangler@3.109.1: + wrangler@3.109.2: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 esbuild: 0.17.19 - miniflare: 3.20250204.1 + miniflare: 3.20250214.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.1 - workerd: 1.20250204.0 + workerd: 1.20250214.0 optionalDependencies: fsevents: 2.3.3 sharp: 0.33.5 diff --git a/frontend/src/api/index.js b/frontend/src/api/index.js index 7b85a677..382b1222 100644 --- a/frontend/src/api/index.js +++ b/frontend/src/api/index.js @@ -2,6 +2,8 @@ import { useGlobalState } from '../store' import { h } from 'vue' import axios from 'axios' +import i18n from '../i18n' + const API_BASE = import.meta.env.VITE_API_BASE || ""; const { loading, auth, jwt, settings, openSettings, @@ -22,6 +24,7 @@ const apiFetch = async (path, options = {}) => { method: options.method || 'GET', data: options.body || null, headers: { + 'x-lang': i18n.global.locale.value, 'x-user-token': userJwt.value, 'x-user-access-token': userSettings.value.access_token, 'x-custom-auth': auth.value, @@ -32,14 +35,12 @@ const apiFetch = async (path, options = {}) => { }); if (response.status === 401 && path.startsWith("/admin")) { showAdminAuth.value = true; - throw new Error("Unauthorized, your admin password is wrong") } if (response.status === 401 && openSettings.value.auth) { showAuth.value = true; - throw new Error("Unauthorized, you access password is wrong") } if (response.status >= 300) { - throw new Error(`${response.status} ${response.data}` || "error"); + throw new Error(`[${response.status}]: ${response.data}` || "error"); } const data = response.data; return data; diff --git a/frontend/src/i18n.ts b/frontend/src/i18n.ts new file mode 100644 index 00000000..c11520ab --- /dev/null +++ b/frontend/src/i18n.ts @@ -0,0 +1,15 @@ +import { createI18n } from 'vue-i18n' + +const i18n = createI18n({ + legacy: false, // you must set `false`, to use Composition API + locale: 'zh', // set locale + fallbackLocale: 'en', // set fallback locale + 'en': { + messages: {} + }, + 'zh': { + messages: {} + } +}) + +export default i18n; diff --git a/frontend/src/main.js b/frontend/src/main.js index d6f7d272..57097781 100644 --- a/frontend/src/main.js +++ b/frontend/src/main.js @@ -1,20 +1,9 @@ import { createApp } from 'vue' import App from './App.vue' -import { createI18n } from 'vue-i18n' import router from './router' import { createHead } from '@unhead/vue' -const i18n = createI18n({ - legacy: false, // you must set `false`, to use Composition API - locale: 'zh', // set locale - fallbackLocale: 'en', // set fallback locale - 'en': { - messages: {} - }, - 'zh': { - messages: {} - } -}) +import i18n from './i18n' router.beforeEach((to, from) => { if (to.params.lang && ['en', 'zh'].includes(to.params.lang)) { diff --git a/pages/package.json b/pages/package.json index 2643725b..b8ac06b7 100644 --- a/pages/package.json +++ b/pages/package.json @@ -1,6 +1,6 @@ { "name": "temp-email-pages", - "version": "0.8.7", + "version": "0.9.0", "description": "", "main": "index.js", "scripts": { @@ -11,6 +11,6 @@ "author": "", "license": "ISC", "devDependencies": { - "wrangler": "^3.109.1" + "wrangler": "^3.109.2" } } diff --git a/vitepress-docs/package.json b/vitepress-docs/package.json index c313a407..d332abf9 100644 --- a/vitepress-docs/package.json +++ b/vitepress-docs/package.json @@ -1,12 +1,12 @@ { "name": "temp-mail-docs", "private": true, - "version": "0.8.7", + "version": "0.9.0", "type": "module", "devDependencies": { "@types/node": "^22.13.4", "vitepress": "^1.6.3", - "wrangler": "^3.109.1" + "wrangler": "^3.109.2" }, "scripts": { "dev": "vitepress dev docs", diff --git a/vitepress-docs/pnpm-lock.yaml b/vitepress-docs/pnpm-lock.yaml index 82765955..eaa7c4ce 100644 --- a/vitepress-docs/pnpm-lock.yaml +++ b/vitepress-docs/pnpm-lock.yaml @@ -17,10 +17,10 @@ importers: version: 22.13.4 vitepress: specifier: ^1.6.3 - version: 1.6.3(@algolia/client-search@5.20.2)(@types/node@22.13.4)(postcss@8.5.2)(search-insights@2.13.0)(typescript@5.4.5) + version: 1.6.3(@algolia/client-search@5.20.3)(@types/node@22.13.4)(postcss@8.5.3)(search-insights@2.13.0)(typescript@5.4.5) wrangler: - specifier: ^3.109.1 - version: 3.109.1 + specifier: ^3.109.2 + version: 3.109.2 packages: @@ -44,56 +44,56 @@ packages: '@algolia/client-search': '>= 4.9.1 < 6' algoliasearch: '>= 4.9.1 < 6' - '@algolia/client-abtesting@5.20.2': - resolution: {integrity: sha512-IS8JSFsDD33haaKIIFaL7qj3bEIG9GldZfb3ILW0QF3at7TcrIJYy58hrDvFee5T3p3E2aH/+wqIr0eha8jB/w==} + '@algolia/client-abtesting@5.20.3': + resolution: {integrity: sha512-wPOzHYSsW+H97JkBLmnlOdJSpbb9mIiuNPycUCV5DgzSkJFaI/OFxXfZXAh1gqxK+hf0miKue1C9bltjWljrNA==} engines: {node: '>= 14.0.0'} - '@algolia/client-analytics@5.20.2': - resolution: {integrity: sha512-k0KxCfcX/HZySqPasKy6GkiiDuebaMh2v/nE0HHg1PbsyeyagLapDi6Ktjkxhz8NlUq6eTJR+ddGJegippKQtQ==} + '@algolia/client-analytics@5.20.3': + resolution: {integrity: sha512-XE3iduH9lA7iTQacDGofBQyIyIgaX8qbTRRdj1bOCmfzc9b98CoiMwhNwdTifmmMewmN0EhVF3hP8KjKWwX7Yw==} engines: {node: '>= 14.0.0'} - '@algolia/client-common@5.20.2': - resolution: {integrity: sha512-xoZcL/Uu49KYDb3feu2n06gALD17p5CslO8Zk3mZ7+uTurK3lgjLws7LNetZ172Ap/GpzPCRXI83d2iDoYQD6Q==} + '@algolia/client-common@5.20.3': + resolution: {integrity: sha512-IYRd/A/R3BXeaQVT2805lZEdWo54v39Lqa7ABOxIYnUvX2vvOMW1AyzCuT0U7Q+uPdD4UW48zksUKRixShcWxA==} engines: {node: '>= 14.0.0'} - '@algolia/client-insights@5.20.2': - resolution: {integrity: sha512-fy7aCbo9y7WHt/9G03EYc471Dd5kIaM8PNP4z6AEQYr9a9X8c4inwNs6tePxAEfRHwVQi0CZ7kuVdn6/MjWx1A==} + '@algolia/client-insights@5.20.3': + resolution: {integrity: sha512-QGc/bmDUBgzB71rDL6kihI2e1Mx6G6PxYO5Ks84iL3tDcIel1aFuxtRF14P8saGgdIe1B6I6QkpkeIddZ6vWQw==} engines: {node: '>= 14.0.0'} - '@algolia/client-personalization@5.20.2': - resolution: {integrity: sha512-ocL1ZXulfuXzJAwsKw2kMscKMD0rs/f4CFYu6Gjh4mK4um6rGfa1a6u1MSc4swFqRQer0wNP9Pi+kVfKhuKt5A==} + '@algolia/client-personalization@5.20.3': + resolution: {integrity: sha512-zuM31VNPDJ1LBIwKbYGz/7+CSm+M8EhlljDamTg8AnDilnCpKjBebWZR5Tftv/FdWSro4tnYGOIz1AURQgZ+tQ==} engines: {node: '>= 14.0.0'} - '@algolia/client-query-suggestions@5.20.2': - resolution: {integrity: sha512-Xjs4Tj1zkLCnmq1ys8RRhLQPy002I6GuT/nbHVdSQmQu4yKCI0gOFbwxHdM6yYPEuE3cJx7A4wSQjCH21mUKsg==} + '@algolia/client-query-suggestions@5.20.3': + resolution: {integrity: sha512-Nn872PuOI8qzi1bxMMhJ0t2AzVBqN01jbymBQOkypvZHrrjZPso3iTpuuLLo9gi3yc/08vaaWTAwJfPhxPwJUw==} engines: {node: '>= 14.0.0'} - '@algolia/client-search@5.20.2': - resolution: {integrity: sha512-2cD3RGB5byusLS0DAX1Nvl5MLiv7OoGgQrRs+94dTalqjvK8lGKzxxJhXoVojgx2qcROyIUAIDXFdTqv6NIHaA==} + '@algolia/client-search@5.20.3': + resolution: {integrity: sha512-9+Fm1ahV8/2goSIPIqZnVitV5yHW5E5xTdKy33xnqGd45A9yVv5tTkudWzEXsbfBB47j9Xb3uYPZjAvV5RHbKA==} engines: {node: '>= 14.0.0'} - '@algolia/ingestion@1.20.2': - resolution: {integrity: sha512-S593Kmhc98+5zdzGet4GrZEBEBGl4vVtqg/MPfW8dCRf9qDRNYSkhBsIzlhQe9JWiohe9oB9LW5meibwOgRmww==} + '@algolia/ingestion@1.20.3': + resolution: {integrity: sha512-5GHNTiZ3saLjTNyr6WkP5hzDg2eFFAYWomvPcm9eHWskjzXt8R0IOiW9kkTS6I6hXBwN5H9Zna5mZDSqqJdg+g==} engines: {node: '>= 14.0.0'} - '@algolia/monitoring@1.20.2': - resolution: {integrity: sha512-bW41aWLYgBv/coJUIT85mkN3kk1VBKsM8tlwB5S/s446Mgc7r8t5TX7kA8kCR2UbwDedOK51i/85/x/rM0ZXbg==} + '@algolia/monitoring@1.20.3': + resolution: {integrity: sha512-KUWQbTPoRjP37ivXSQ1+lWMfaifCCMzTnEcEnXwAmherS5Tp7us6BAqQDMGOD4E7xyaS2I8pto6WlOzxH+CxmA==} engines: {node: '>= 14.0.0'} - '@algolia/recommend@5.20.2': - resolution: {integrity: sha512-wBMf3J1L5ogvU8p8ifHkknDXWn1zdZ2epkqpt2MkUaZynE3G77rrFU9frcO+Pu1FQJQ5xCDTKcYUUcJCDD00rg==} + '@algolia/recommend@5.20.3': + resolution: {integrity: sha512-oo/gG77xTTTclkrdFem0Kmx5+iSRFiwuRRdxZETDjwzCI7svutdbwBgV/Vy4D4QpYaX4nhY/P43k84uEowCE4Q==} engines: {node: '>= 14.0.0'} - '@algolia/requester-browser-xhr@5.20.2': - resolution: {integrity: sha512-w+VMzOkIq2XDGg6Ybzr74RlBZvJQnuIdKpVusQSXCXknvxwAwbO457LmoavhZWl06Lcsk9YDx1X2k0zb+iJQmw==} + '@algolia/requester-browser-xhr@5.20.3': + resolution: {integrity: sha512-BkkW7otbiI/Er1AiEPZs1h7lxbtSO9p09jFhv3/iT8/0Yz0CY79VJ9iq+Wv1+dq/l0OxnMpBy8mozrieGA3mXQ==} engines: {node: '>= 14.0.0'} - '@algolia/requester-fetch@5.20.2': - resolution: {integrity: sha512-wpjnbvbi3A13b0DvijE45DRYDvwcP5Ttz7RTMkPWTkF1s6AHuo6O2UcwGyaogMAGa1QOOzFYfp5u4YQwMOQx5g==} + '@algolia/requester-fetch@5.20.3': + resolution: {integrity: sha512-eAVlXz7UNzTsA1EDr+p0nlIH7WFxo7k3NMxYe8p38DH8YVWLgm2MgOVFUMNg9HCi6ZNOi/A2w/id2ZZ4sKgUOw==} engines: {node: '>= 14.0.0'} - '@algolia/requester-node-http@5.20.2': - resolution: {integrity: sha512-YuSSdtgUt1dFBTNYUb+2TA5j0Hd0eDXE0bVISjUvTCqmoaGsGLwW+rKI7p1eLQ1r7RESwBAvUwcY1qP2Wl3Lyw==} + '@algolia/requester-node-http@5.20.3': + resolution: {integrity: sha512-FqR3pQPfHfQyX1wgcdK6iyqu86yP76MZd4Pzj1y/YLMj9rRmRCY0E0AffKr//nrOFEwv6uY8BQY4fd9/6b0ZCg==} engines: {node: '>= 14.0.0'} '@babel/helper-string-parser@7.25.9': @@ -117,32 +117,32 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20250204.0': - resolution: {integrity: sha512-HpsgbWEfvdcwuZ8WAZhi1TlSCyyHC3tbghpKsOqGDaQNltyAFAWqa278TPNfcitYf/FmV4961v3eqUE+RFdHNQ==} + '@cloudflare/workerd-darwin-64@1.20250214.0': + resolution: {integrity: sha512-cDvvedWDc5zrgDnuXe2qYcz/TwBvzmweO55C7XpPuAWJ9Oqxv81PkdekYxD8mH989aQ/GI5YD0Fe6fDYlM+T3Q==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250204.0': - resolution: {integrity: sha512-AJ8Tk7KMJqePlch3SH8oL41ROtsrb07hKRHD6M+FvGC3tLtf26rpteAAMNYKMDYKzFNFUIKZNijYDFZjBFndXQ==} + '@cloudflare/workerd-darwin-arm64@1.20250214.0': + resolution: {integrity: sha512-NytCvRveVzu0mRKo+tvZo3d/gCUway3B2ZVqSi/TS6NXDGBYIJo7g6s3BnTLS74kgyzeDOjhu9j/RBJBS809qw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250204.0': - resolution: {integrity: sha512-RIUfUSnDC8h73zAa+u1K2Frc7nc+eeQoBBP7SaqsRe6JdX8jfIv/GtWjQWCoj8xQFgLvhpJKZ4sTTTV+AilQbw==} + '@cloudflare/workerd-linux-64@1.20250214.0': + resolution: {integrity: sha512-pQ7+aHNHj8SiYEs4d/6cNoimE5xGeCMfgU1yfDFtA9YGN9Aj2BITZgOWPec+HW7ZkOy9oWlNrO6EvVjGgB4tbQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250204.0': - resolution: {integrity: sha512-8Ql8jDjoIgr2J7oBD01kd9kduUz60njofrBpAOkjCPed15He8e8XHkYaYow3g0xpae4S2ryrPOeoD3M64sRxeg==} + '@cloudflare/workerd-linux-arm64@1.20250214.0': + resolution: {integrity: sha512-Vhlfah6Yd9ny1npNQjNgElLIjR6OFdEbuR3LCfbLDCwzWEBFhIf7yC+Tpp/a0Hq7kLz3sLdktaP7xl3PJhyOjA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250204.0': - resolution: {integrity: sha512-RpDJO3+to+e17X3EWfRCagboZYwBz2fowc+jL53+fd7uD19v3F59H48lw2BDpHJMRyhg6ouWcpM94OhsHv8ecA==} + '@cloudflare/workerd-windows-64@1.20250214.0': + resolution: {integrity: sha512-GMwMyFbkjBKjYJoKDhGX8nuL4Gqe3IbVnVWf2Q6086CValyIknupk5J6uQWGw2EBU3RGO3x4trDXT5WphQJZDQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -461,8 +461,8 @@ packages: resolution: {integrity: sha512-vBZP4NlzfOlerQTnba4aqZoMhE/a9HY7HRqoOPaETQcSQuWEIyZMHGfVu6w9wGtGK5fED5qRs2DteVCjOH60sA==} engines: {node: '>=14'} - '@iconify-json/simple-icons@1.2.24': - resolution: {integrity: sha512-06ZWXZx3PHCE+02zn+iIGOKKNgE3kyPd0Yh7IUEIa0bCYI6UmGlsYYghRx8As9TnTNYMCEiy5V0zI4Jb6EY6XA==} + '@iconify-json/simple-icons@1.2.25': + resolution: {integrity: sha512-2E1/gOCO97rF6usfhhiXxwzCb+UhdEsxW3lW1Sew+xZY0COY6dp82Z/r1rUt2fWKneWjuoGcNeJHHXQyG8mIuw==} '@iconify/types@2.0.0': resolution: {integrity: sha512-+wluvCrRhXrhyOmRDJ3q8mux9JkKy5SJ/v8ol2tu4FVjyYvtEzkc/3pK15ET6RKg4b4w4BmTk1+gsCUhf21Ykg==} @@ -582,124 +582,124 @@ packages: '@jridgewell/trace-mapping@0.3.9': resolution: {integrity: sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==} - '@rollup/rollup-android-arm-eabi@4.34.7': - resolution: {integrity: sha512-l6CtzHYo8D2TQ3J7qJNpp3Q1Iye56ssIAtqbM2H8axxCEEwvN7o8Ze9PuIapbxFL3OHrJU2JBX6FIIVnP/rYyw==} + '@rollup/rollup-android-arm-eabi@4.34.8': + resolution: {integrity: sha512-q217OSE8DTp8AFHuNHXo0Y86e1wtlfVrXiAlwkIvGRQv9zbc6mE3sjIVfwI8sYUyNxwOg0j/Vm1RKM04JcWLJw==} cpu: [arm] os: [android] - '@rollup/rollup-android-arm64@4.34.7': - resolution: {integrity: sha512-KvyJpFUueUnSp53zhAa293QBYqwm94TgYTIfXyOTtidhm5V0LbLCJQRGkQClYiX3FXDQGSvPxOTD/6rPStMMDg==} + '@rollup/rollup-android-arm64@4.34.8': + resolution: {integrity: sha512-Gigjz7mNWaOL9wCggvoK3jEIUUbGul656opstjaUSGC3eT0BM7PofdAJaBfPFWWkXNVAXbaQtC99OCg4sJv70Q==} cpu: [arm64] os: [android] - '@rollup/rollup-darwin-arm64@4.34.7': - resolution: {integrity: sha512-jq87CjmgL9YIKvs8ybtIC98s/M3HdbqXhllcy9EdLV0yMg1DpxES2gr65nNy7ObNo/vZ/MrOTxt0bE5LinL6mA==} + '@rollup/rollup-darwin-arm64@4.34.8': + resolution: {integrity: sha512-02rVdZ5tgdUNRxIUrFdcMBZQoaPMrxtwSb+/hOfBdqkatYHR3lZ2A2EGyHq2sGOd0Owk80oV3snlDASC24He3Q==} cpu: [arm64] os: [darwin] - '@rollup/rollup-darwin-x64@4.34.7': - resolution: {integrity: sha512-rSI/m8OxBjsdnMMg0WEetu/w+LhLAcCDEiL66lmMX4R3oaml3eXz3Dxfvrxs1FbzPbJMaItQiksyMfv1hoIxnA==} + '@rollup/rollup-darwin-x64@4.34.8': + resolution: {integrity: sha512-qIP/elwR/tq/dYRx3lgwK31jkZvMiD6qUtOycLhTzCvrjbZ3LjQnEM9rNhSGpbLXVJYQ3rq39A6Re0h9tU2ynw==} cpu: [x64] os: [darwin] - '@rollup/rollup-freebsd-arm64@4.34.7': - resolution: {integrity: sha512-oIoJRy3ZrdsXpFuWDtzsOOa/E/RbRWXVokpVrNnkS7npz8GEG++E1gYbzhYxhxHbO2om1T26BZjVmdIoyN2WtA==} + '@rollup/rollup-freebsd-arm64@4.34.8': + resolution: {integrity: sha512-IQNVXL9iY6NniYbTaOKdrlVP3XIqazBgJOVkddzJlqnCpRi/yAeSOa8PLcECFSQochzqApIOE1GHNu3pCz+BDA==} cpu: [arm64] os: [freebsd] - '@rollup/rollup-freebsd-x64@4.34.7': - resolution: {integrity: sha512-X++QSLm4NZfZ3VXGVwyHdRf58IBbCu9ammgJxuWZYLX0du6kZvdNqPwrjvDfwmi6wFdvfZ/s6K7ia0E5kI7m8Q==} + '@rollup/rollup-freebsd-x64@4.34.8': + resolution: {integrity: sha512-TYXcHghgnCqYFiE3FT5QwXtOZqDj5GmaFNTNt3jNC+vh22dc/ukG2cG+pi75QO4kACohZzidsq7yKTKwq/Jq7Q==} cpu: [x64] os: [freebsd] - '@rollup/rollup-linux-arm-gnueabihf@4.34.7': - resolution: {integrity: sha512-Z0TzhrsNqukTz3ISzrvyshQpFnFRfLunYiXxlCRvcrb3nvC5rVKI+ZXPFG/Aa4jhQa1gHgH3A0exHaRRN4VmdQ==} + '@rollup/rollup-linux-arm-gnueabihf@4.34.8': + resolution: {integrity: sha512-A4iphFGNkWRd+5m3VIGuqHnG3MVnqKe7Al57u9mwgbyZ2/xF9Jio72MaY7xxh+Y87VAHmGQr73qoKL9HPbXj1g==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm-musleabihf@4.34.7': - resolution: {integrity: sha512-nkznpyXekFAbvFBKBy4nNppSgneB1wwG1yx/hujN3wRnhnkrYVugMTCBXED4+Ni6thoWfQuHNYbFjgGH0MBXtw==} + '@rollup/rollup-linux-arm-musleabihf@4.34.8': + resolution: {integrity: sha512-S0lqKLfTm5u+QTxlFiAnb2J/2dgQqRy/XvziPtDd1rKZFXHTyYLoVL58M/XFwDI01AQCDIevGLbQrMAtdyanpA==} cpu: [arm] os: [linux] - '@rollup/rollup-linux-arm64-gnu@4.34.7': - resolution: {integrity: sha512-KCjlUkcKs6PjOcxolqrXglBDcfCuUCTVlX5BgzgoJHw+1rWH1MCkETLkLe5iLLS9dP5gKC7mp3y6x8c1oGBUtA==} + '@rollup/rollup-linux-arm64-gnu@4.34.8': + resolution: {integrity: sha512-jpz9YOuPiSkL4G4pqKrus0pn9aYwpImGkosRKwNi+sJSkz+WU3anZe6hi73StLOQdfXYXC7hUfsQlTnjMd3s1A==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-arm64-musl@4.34.7': - resolution: {integrity: sha512-uFLJFz6+utmpbR313TTx+NpPuAXbPz4BhTQzgaP0tozlLnGnQ6rCo6tLwaSa6b7l6gRErjLicXQ1iPiXzYotjw==} + '@rollup/rollup-linux-arm64-musl@4.34.8': + resolution: {integrity: sha512-KdSfaROOUJXgTVxJNAZ3KwkRc5nggDk+06P6lgi1HLv1hskgvxHUKZ4xtwHkVYJ1Rep4GNo+uEfycCRRxht7+Q==} cpu: [arm64] os: [linux] - '@rollup/rollup-linux-loongarch64-gnu@4.34.7': - resolution: {integrity: sha512-ws8pc68UcJJqCpneDFepnwlsMUFoWvPbWXT/XUrJ7rWUL9vLoIN3GAasgG+nCvq8xrE3pIrd+qLX/jotcLy0Qw==} + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': + resolution: {integrity: sha512-NyF4gcxwkMFRjgXBM6g2lkT58OWztZvw5KkV2K0qqSnUEqCVcqdh2jN4gQrTn/YUpAcNKyFHfoOZEer9nwo6uQ==} cpu: [loong64] os: [linux] - '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': - resolution: {integrity: sha512-vrDk9JDa/BFkxcS2PbWpr0C/LiiSLxFbNOBgfbW6P8TBe9PPHx9Wqbvx2xgNi1TOAyQHQJ7RZFqBiEohm79r0w==} + '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': + resolution: {integrity: sha512-LMJc999GkhGvktHU85zNTDImZVUCJ1z/MbAJTnviiWmmjyckP5aQsHtcujMjpNdMZPT2rQEDBlJfubhs3jsMfw==} cpu: [ppc64] os: [linux] - '@rollup/rollup-linux-riscv64-gnu@4.34.7': - resolution: {integrity: sha512-rB+ejFyjtmSo+g/a4eovDD1lHWHVqizN8P0Hm0RElkINpS0XOdpaXloqM4FBkF9ZWEzg6bezymbpLmeMldfLTw==} + '@rollup/rollup-linux-riscv64-gnu@4.34.8': + resolution: {integrity: sha512-xAQCAHPj8nJq1PI3z8CIZzXuXCstquz7cIOL73HHdXiRcKk8Ywwqtx2wrIy23EcTn4aZ2fLJNBB8d0tQENPCmw==} cpu: [riscv64] os: [linux] - '@rollup/rollup-linux-s390x-gnu@4.34.7': - resolution: {integrity: sha512-nNXNjo4As6dNqRn7OrsnHzwTgtypfRA3u3AKr0B3sOOo+HkedIbn8ZtFnB+4XyKJojIfqDKmbIzO1QydQ8c+Pw==} + '@rollup/rollup-linux-s390x-gnu@4.34.8': + resolution: {integrity: sha512-DdePVk1NDEuc3fOe3dPPTb+rjMtuFw89gw6gVWxQFAuEqqSdDKnrwzZHrUYdac7A7dXl9Q2Vflxpme15gUWQFA==} cpu: [s390x] os: [linux] - '@rollup/rollup-linux-x64-gnu@4.34.7': - resolution: {integrity: sha512-9kPVf9ahnpOMSGlCxXGv980wXD0zRR3wyk8+33/MXQIpQEOpaNe7dEHm5LMfyRZRNt9lMEQuH0jUKj15MkM7QA==} + '@rollup/rollup-linux-x64-gnu@4.34.8': + resolution: {integrity: sha512-8y7ED8gjxITUltTUEJLQdgpbPh1sUQ0kMTmufRF/Ns5tI9TNMNlhWtmPKKHCU0SilX+3MJkZ0zERYYGIVBYHIA==} cpu: [x64] os: [linux] - '@rollup/rollup-linux-x64-musl@4.34.7': - resolution: {integrity: sha512-7wJPXRWTTPtTFDFezA8sle/1sdgxDjuMoRXEKtx97ViRxGGkVQYovem+Q8Pr/2HxiHp74SSRG+o6R0Yq0shPwQ==} + '@rollup/rollup-linux-x64-musl@4.34.8': + resolution: {integrity: sha512-SCXcP0ZpGFIe7Ge+McxY5zKxiEI5ra+GT3QRxL0pMMtxPfpyLAKleZODi1zdRHkz5/BhueUrYtYVgubqe9JBNQ==} cpu: [x64] os: [linux] - '@rollup/rollup-win32-arm64-msvc@4.34.7': - resolution: {integrity: sha512-MN7aaBC7mAjsiMEZcsJvwNsQVNZShgES/9SzWp1HC9Yjqb5OpexYnRjF7RmE4itbeesHMYYQiAtUAQaSKs2Rfw==} + '@rollup/rollup-win32-arm64-msvc@4.34.8': + resolution: {integrity: sha512-YHYsgzZgFJzTRbth4h7Or0m5O74Yda+hLin0irAIobkLQFRQd1qWmnoVfwmKm9TXIZVAD0nZ+GEb2ICicLyCnQ==} cpu: [arm64] os: [win32] - '@rollup/rollup-win32-ia32-msvc@4.34.7': - resolution: {integrity: sha512-aeawEKYswsFu1LhDM9RIgToobquzdtSc4jSVqHV8uApz4FVvhFl/mKh92wc8WpFc6aYCothV/03UjY6y7yLgbg==} + '@rollup/rollup-win32-ia32-msvc@4.34.8': + resolution: {integrity: sha512-r3NRQrXkHr4uWy5TOjTpTYojR9XmF0j/RYgKCef+Ag46FWUTltm5ziticv8LdNsDMehjJ543x/+TJAek/xBA2w==} cpu: [ia32] os: [win32] - '@rollup/rollup-win32-x64-msvc@4.34.7': - resolution: {integrity: sha512-4ZedScpxxIrVO7otcZ8kCX1mZArtH2Wfj3uFCxRJ9NO80gg1XV0U/b2f/MKaGwj2X3QopHfoWiDQ917FRpwY3w==} + '@rollup/rollup-win32-x64-msvc@4.34.8': + resolution: {integrity: sha512-U0FaE5O1BCpZSeE6gBl3c5ObhePQSfk9vDRToMmTkbhCOgW4jqvtS5LGyQ76L1fH8sM0keRp4uDTsbjiUyjk0g==} cpu: [x64] os: [win32] - '@shikijs/core@2.3.2': - resolution: {integrity: sha512-s7vyL3LzUKm3Qwf36zRWlavX9BQMZTIq9B1almM63M5xBuSldnsTHCmsXzoF/Kyw4k7Xgas7yAyJz9VR/vcP1A==} + '@shikijs/core@2.5.0': + resolution: {integrity: sha512-uu/8RExTKtavlpH7XqnVYBrfBkUc20ngXiX9NSrBhOVZYv/7XQRKUyhtkeflY5QsxC0GbJThCerruZfsUaSldg==} - '@shikijs/engine-javascript@2.3.2': - resolution: {integrity: sha512-w3IEMu5HfL/OaJTsMbIfZ1HRPnWVYRANeDtmsdIIEgUOcLjzFJFQwlnkckGjKHekEzNqlMLbgB/twnfZ/EEAGg==} + '@shikijs/engine-javascript@2.5.0': + resolution: {integrity: sha512-VjnOpnQf8WuCEZtNUdjjwGUbtAVKuZkVQ/5cHy/tojVVRIRtlWMYVjyWhxOmIq05AlSOv72z7hRNRGVBgQOl0w==} - '@shikijs/engine-oniguruma@2.3.2': - resolution: {integrity: sha512-vikMY1TroyZXUHIXbMnvY/mjtOxMn+tavcfAeQPgWS9FHcgFSUoEtywF5B5sOLb9NXb8P2vb7odkh3nj15/00A==} + '@shikijs/engine-oniguruma@2.5.0': + resolution: {integrity: sha512-pGd1wRATzbo/uatrCIILlAdFVKdxImWJGQ5rFiB5VZi2ve5xj3Ax9jny8QvkaV93btQEwR/rSz5ERFpC5mKNIw==} - '@shikijs/langs@2.3.2': - resolution: {integrity: sha512-UqI6bSxFzhexIJficZLKeB1L2Sc3xoNiAV0yHpfbg5meck93du+EKQtsGbBv66Ki53XZPhnR/kYkOr85elIuFw==} + '@shikijs/langs@2.5.0': + resolution: {integrity: sha512-Qfrrt5OsNH5R+5tJ/3uYBBZv3SuGmnRPejV9IlIbFH3HTGLDlkqgHymAlzklVmKBjAaVmkPkyikAV/sQ1wSL+w==} - '@shikijs/themes@2.3.2': - resolution: {integrity: sha512-QAh7D/hhfYKHibkG2tti8vxNt3ekAH5EqkXJeJbTh7FGvTCWEI7BHqNCtMdjFvZ0vav5nvUgdvA7/HI7pfsB4w==} + '@shikijs/themes@2.5.0': + resolution: {integrity: sha512-wGrk+R8tJnO0VMzmUExHR+QdSaPUl/NKs+a4cQQRWyoc3YFbUzuLEi/KWK1hj+8BfHRKm2jNhhJck1dfstJpiw==} - '@shikijs/transformers@2.3.2': - resolution: {integrity: sha512-2HDnJumw8A/9GecRpTgvfqSbPjEbJ4DPWq5J++OVP1gNMLvbV0MqFsP4canqRNM1LqB7VmWY45Stipb0ZIJ+0A==} + '@shikijs/transformers@2.5.0': + resolution: {integrity: sha512-SI494W5X60CaUwgi8u4q4m4s3YAFSxln3tzNjOSYqq54wlVgz0/NbbXEb3mdLbqMBztcmS7bVTaEd2w0qMmfeg==} - '@shikijs/types@2.3.2': - resolution: {integrity: sha512-CBaMY+a3pepyC4SETi7+bSzO0f6hxEQJUUuS4uD7zppzjmrN4ZRtBqxaT+wOan26CR9eeJ5iBhc4qvWEwn7Eeg==} + '@shikijs/types@2.5.0': + resolution: {integrity: sha512-ygl5yhxki9ZLNuNpPitBWvcy9fsSKKaRuO4BAlMyagszQidxcpLAr0qiW/q43DtSIDxO6hEbtYLiFZNXO/hdGw==} - '@shikijs/vscode-textmate@10.0.1': - resolution: {integrity: sha512-fTIQwLF+Qhuws31iw7Ncl1R3HUDtGwIipiJ9iU+UsDUwMhegFcQKQHd51nZjb7CArq0MvON8rbgCGQYWHUKAdg==} + '@shikijs/vscode-textmate@10.0.2': + resolution: {integrity: sha512-83yeghZ2xxin3Nj8z1NMd/NCuca+gsYXswywDy5bHvwlWL8tpTQmzGeUuHd9FC3E/SBEMvzJRwWEOz5gGes9Qg==} '@types/estree@1.0.6': resolution: {integrity: sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw==} @@ -835,8 +835,8 @@ packages: engines: {node: '>=0.4.0'} hasBin: true - algoliasearch@5.20.2: - resolution: {integrity: sha512-8evxG++iWyWnhng3g5RP+kwn6j+2vKLfew8pVoekn87FcfsDm92zJXKwSrU6pl+m5eAbGFhFF/gCYEQiRdbPlA==} + algoliasearch@5.20.3: + resolution: {integrity: sha512-iNC6BGvipaalFfDfDnXUje8GUlW5asj0cTMsZJwO/0rhsyLx1L7GZFAY8wW+eQ6AM4Yge2p5GSE5hrBlfSD90Q==} engines: {node: '>= 14.0.0'} as-table@1.0.55: @@ -953,8 +953,8 @@ packages: glob-to-regexp@0.4.1: resolution: {integrity: sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==} - hast-util-to-html@9.0.4: - resolution: {integrity: sha512-wxQzXtdbhiwGAUKrnQJXlOPmHnEehzphwkK7aluUPQ+lEc1xefC8pblMgpp2w5ldBTEfveRIrADcrhGIWrlTDA==} + hast-util-to-html@9.0.5: + resolution: {integrity: sha512-OguPdidb+fbHQSU4Q4ZiLKnzWo8Wwsf5bZfbvu7//a9oTYoqD/fWpe96NuHkoS9h0ccGOTe0C4NGXdtS0iObOw==} hast-util-whitespace@3.0.0: resolution: {integrity: sha512-88JUN06ipLwsnv+dVn+OIYOvAuvBMy/Qoi6O7mQHxdPXpjy+Cd6xRkWwux7DKO+4sYILtLBRIKgsdpS2gQc7qw==} @@ -1019,13 +1019,13 @@ packages: engines: {node: '>=10.0.0'} hasBin: true - miniflare@3.20250204.1: - resolution: {integrity: sha512-B4PQi/Ai4d0ZTWahQwsFe5WAfr1j8ISMYxJZTc56g2/btgbX+Go099LmojAZY/fMRLhIYsglcStW8SeW3f/afA==} + miniflare@3.20250214.0: + resolution: {integrity: sha512-XKwn+X/V2CEpbRhoeaIcJHpV/Duz5Md5rxVT8I6S1oqd3aLZkn8cUX1tuxHpUvfQSPuXwWH+2ESLNnTf9PKEWg==} engines: {node: '>=16.13'} hasBin: true - minisearch@7.1.1: - resolution: {integrity: sha512-b3YZEYCEH4EdCAtYP7OlDyx7FdPwNzuNwLQ34SfJpM9dlbBZzeXndGavTrC+VCiRWomL21SWfMc6SCKO/U2ZNw==} + minisearch@7.1.2: + resolution: {integrity: sha512-R1Pd9eF+MD5JYDDSPAp/q1ougKglm14uEkPMvQ/05RGmx6G9wvmLTrTI/Q5iPNJLYqNdsDQ7qTGIcNWR+FrHmA==} mitt@3.0.1: resolution: {integrity: sha512-vKivATfr97l2/QBCYAkXYDbrIWPM2IIKEl7YPhjCvKlG3kE2gm+uBo6nEXK3M5/Ffh/FLpKExzOQ3JJoJGFKBw==} @@ -1069,12 +1069,12 @@ packages: pkg-types@1.3.1: resolution: {integrity: sha512-/Jm5M4RvtBFVkKWRu2BLUTNP8/M2a+UwuAX+ae4770q1qVGtfjG+WTCupoZixokjmHiry8uI+dlY8KXYV5HVVQ==} - postcss@8.5.2: - resolution: {integrity: sha512-MjOadfU3Ys9KYoX0AdkBlFEF1Vx37uCCeN4ZHnmwm9FfpbsGWMZeBLMmmpY+6Ocqod7mkdZ0DT31OlbsFrLlkA==} + postcss@8.5.3: + resolution: {integrity: sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A==} engines: {node: ^10 || ^12 || >=14} - preact@10.25.4: - resolution: {integrity: sha512-jLdZDb+Q+odkHJ+MpW/9U5cODzqnB+fy2EiHSZES7ldV5LK7yjlVzTp7R8Xy6W6y75kfK8iWYtFVH7lvjwrCMA==} + preact@10.26.2: + resolution: {integrity: sha512-0gNmv4qpS9HaN3+40CLBAnKe0ZfyE4ZWo5xKlC1rVrr0ckkEvJvAQqKaHANdFKsGstoxrY4AItZ7kZSGVoVjgg==} printable-characters@1.0.42: resolution: {integrity: sha512-dKp+C4iXWK4vVYZmYSd0KBH5F/h1HoZRsbJ82AVKRO3PEo8L4lBS/vLwhVtpwwuYcoIsVY+1JYKR268yn480uQ==} @@ -1082,8 +1082,8 @@ packages: process-nextick-args@2.0.1: resolution: {integrity: sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==} - property-information@6.5.0: - resolution: {integrity: sha512-PgTgs/BlvHxOu8QuEN7wi5A0OmXaBcHpmCSTehcs6Uuu9IkDIEo13Hy7n898RHfrQ49vKCoGeWZSaAK01nwVig==} + property-information@7.0.0: + resolution: {integrity: sha512-7D/qOz/+Y4X/rzSB6jKxKUsQnphO046ei8qxG59mtM3RG3DHgTK81HrxrmoDVINJb8NKT5ZsRbwHvQ6B68Iyhg==} readable-stream@2.3.8: resolution: {integrity: sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==} @@ -1110,8 +1110,8 @@ packages: rollup-pluginutils@2.8.2: resolution: {integrity: sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ==} - rollup@4.34.7: - resolution: {integrity: sha512-8qhyN0oZ4x0H6wmBgfKxJtxM7qS98YJ0k0kNh5ECVtuchIJ7z9IVVvzpmtQyT10PXKMtBxYr1wQ5Apg8RS8kXQ==} + rollup@4.34.8: + resolution: {integrity: sha512-489gTVMzAYdiZHFVA/ig/iYFllCcWFHMvUHI1rpFmkoUtRlQxqh6/yiNqnYibjMZ2b/+FUQwldG+aLsEt6bglQ==} engines: {node: '>=18.0.0', npm: '>=8.0.0'} hasBin: true @@ -1133,8 +1133,8 @@ packages: resolution: {integrity: sha512-haPVm1EkS9pgvHrQ/F3Xy+hgcuMV0Wm9vfIBSiwZ05k+xgb0PkBQpGsAA/oWdDobNaZTH5ppvHtzCFbnSEwHVw==} engines: {node: ^18.17.0 || ^20.3.0 || >=21.0.0} - shiki@2.3.2: - resolution: {integrity: sha512-UZhz/gsUz7DHFbQBOJP7eXqvKyYvMGramxQiSDc83M/7OkWm6OdVHAReEc3vMLh6L6TRhgL9dvhXz9XDkCDaaw==} + shiki@2.5.0: + resolution: {integrity: sha512-mI//trrsaiCIPsja5CNfsyNOqgAZUb6VpJA+340toL42UpzQlXpwRV9nch69X6gaUxrr9kaOOa6e3y3uAkGFxQ==} simple-swizzle@0.2.2: resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==} @@ -1277,17 +1277,17 @@ packages: typescript: optional: true - workerd@1.20250204.0: - resolution: {integrity: sha512-zcKufjVFsQMiD3/acg1Ix00HIMCkXCrDxQXYRDn/1AIz3QQGkmbVDwcUk1Ki2jBUoXmBCMsJdycRucgMVEypWg==} + workerd@1.20250214.0: + resolution: {integrity: sha512-QWcqXZLiMpV12wiaVnb3nLmfs/g4ZsFQq2mX85z546r3AX4CTIkXl0VP50W3CwqLADej3PGYiRDOTelDOwVG1g==} engines: {node: '>=16'} hasBin: true - wrangler@3.109.1: - resolution: {integrity: sha512-1Jx+nZ6eCXPQ2rsGdrV6Qy/LGvhpqudeuTl4AYHl9P8Zugp44Uzxnj5w11qF4v/rv1dOZoA5TydSt9xMFfhpKg==} + wrangler@3.109.2: + resolution: {integrity: sha512-CT8izugPBth5o1o4gLNcQrDkHKSX2Jthy6gkyhaWiy2pFrx+536NMn/atWilLA1t1uhIgddEI5BXDNudIkPPHA==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250204.0 + '@cloudflare/workers-types': ^4.20250214.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -1315,110 +1315,110 @@ packages: snapshots: - '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)(search-insights@2.13.0)': + '@algolia/autocomplete-core@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)(search-insights@2.13.0) - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2) + '@algolia/autocomplete-plugin-algolia-insights': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.13.0) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - search-insights - '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)(search-insights@2.13.0)': + '@algolia/autocomplete-plugin-algolia-insights@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2) + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) search-insights: 2.13.0 transitivePeerDependencies: - '@algolia/client-search' - algoliasearch - '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)': + '@algolia/autocomplete-preset-algolia@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)': dependencies: - '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2) - '@algolia/client-search': 5.20.2 - algoliasearch: 5.20.2 + '@algolia/autocomplete-shared': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) + '@algolia/client-search': 5.20.3 + algoliasearch: 5.20.3 - '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)': + '@algolia/autocomplete-shared@1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)': dependencies: - '@algolia/client-search': 5.20.2 - algoliasearch: 5.20.2 + '@algolia/client-search': 5.20.3 + algoliasearch: 5.20.3 - '@algolia/client-abtesting@5.20.2': + '@algolia/client-abtesting@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/client-analytics@5.20.2': + '@algolia/client-analytics@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/client-common@5.20.2': {} + '@algolia/client-common@5.20.3': {} - '@algolia/client-insights@5.20.2': + '@algolia/client-insights@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/client-personalization@5.20.2': + '@algolia/client-personalization@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/client-query-suggestions@5.20.2': + '@algolia/client-query-suggestions@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/client-search@5.20.2': + '@algolia/client-search@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/ingestion@1.20.2': + '@algolia/ingestion@1.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/monitoring@1.20.2': + '@algolia/monitoring@1.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/recommend@5.20.2': + '@algolia/recommend@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-common': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 - '@algolia/requester-browser-xhr@5.20.2': + '@algolia/requester-browser-xhr@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 + '@algolia/client-common': 5.20.3 - '@algolia/requester-fetch@5.20.2': + '@algolia/requester-fetch@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 + '@algolia/client-common': 5.20.3 - '@algolia/requester-node-http@5.20.2': + '@algolia/requester-node-http@5.20.3': dependencies: - '@algolia/client-common': 5.20.2 + '@algolia/client-common': 5.20.3 '@babel/helper-string-parser@7.25.9': {} @@ -1437,19 +1437,19 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20250204.0': + '@cloudflare/workerd-darwin-64@1.20250214.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250204.0': + '@cloudflare/workerd-darwin-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-64@1.20250204.0': + '@cloudflare/workerd-linux-64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250204.0': + '@cloudflare/workerd-linux-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-windows-64@1.20250204.0': + '@cloudflare/workerd-windows-64@1.20250214.0': optional: true '@cspotcode/source-map-support@0.8.1': @@ -1458,10 +1458,10 @@ snapshots: '@docsearch/css@3.8.2': {} - '@docsearch/js@3.8.2(@algolia/client-search@5.20.2)(search-insights@2.13.0)': + '@docsearch/js@3.8.2(@algolia/client-search@5.20.3)(search-insights@2.13.0)': dependencies: - '@docsearch/react': 3.8.2(@algolia/client-search@5.20.2)(search-insights@2.13.0) - preact: 10.25.4 + '@docsearch/react': 3.8.2(@algolia/client-search@5.20.3)(search-insights@2.13.0) + preact: 10.26.2 transitivePeerDependencies: - '@algolia/client-search' - '@types/react' @@ -1469,12 +1469,12 @@ snapshots: - react-dom - search-insights - '@docsearch/react@3.8.2(@algolia/client-search@5.20.2)(search-insights@2.13.0)': + '@docsearch/react@3.8.2(@algolia/client-search@5.20.3)(search-insights@2.13.0)': dependencies: - '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2)(search-insights@2.13.0) - '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.20.2)(algoliasearch@5.20.2) + '@algolia/autocomplete-core': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3)(search-insights@2.13.0) + '@algolia/autocomplete-preset-algolia': 1.17.7(@algolia/client-search@5.20.3)(algoliasearch@5.20.3) '@docsearch/css': 3.8.2 - algoliasearch: 5.20.2 + algoliasearch: 5.20.3 optionalDependencies: search-insights: 2.13.0 transitivePeerDependencies: @@ -1632,7 +1632,7 @@ snapshots: '@fastify/busboy@2.1.1': {} - '@iconify-json/simple-icons@1.2.24': + '@iconify-json/simple-icons@1.2.25': dependencies: '@iconify/types': 2.0.0 @@ -1722,102 +1722,102 @@ snapshots: '@jridgewell/resolve-uri': 3.1.2 '@jridgewell/sourcemap-codec': 1.5.0 - '@rollup/rollup-android-arm-eabi@4.34.7': + '@rollup/rollup-android-arm-eabi@4.34.8': optional: true - '@rollup/rollup-android-arm64@4.34.7': + '@rollup/rollup-android-arm64@4.34.8': optional: true - '@rollup/rollup-darwin-arm64@4.34.7': + '@rollup/rollup-darwin-arm64@4.34.8': optional: true - '@rollup/rollup-darwin-x64@4.34.7': + '@rollup/rollup-darwin-x64@4.34.8': optional: true - '@rollup/rollup-freebsd-arm64@4.34.7': + '@rollup/rollup-freebsd-arm64@4.34.8': optional: true - '@rollup/rollup-freebsd-x64@4.34.7': + '@rollup/rollup-freebsd-x64@4.34.8': optional: true - '@rollup/rollup-linux-arm-gnueabihf@4.34.7': + '@rollup/rollup-linux-arm-gnueabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm-musleabihf@4.34.7': + '@rollup/rollup-linux-arm-musleabihf@4.34.8': optional: true - '@rollup/rollup-linux-arm64-gnu@4.34.7': + '@rollup/rollup-linux-arm64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-arm64-musl@4.34.7': + '@rollup/rollup-linux-arm64-musl@4.34.8': optional: true - '@rollup/rollup-linux-loongarch64-gnu@4.34.7': + '@rollup/rollup-linux-loongarch64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-powerpc64le-gnu@4.34.7': + '@rollup/rollup-linux-powerpc64le-gnu@4.34.8': optional: true - '@rollup/rollup-linux-riscv64-gnu@4.34.7': + '@rollup/rollup-linux-riscv64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-s390x-gnu@4.34.7': + '@rollup/rollup-linux-s390x-gnu@4.34.8': optional: true - '@rollup/rollup-linux-x64-gnu@4.34.7': + '@rollup/rollup-linux-x64-gnu@4.34.8': optional: true - '@rollup/rollup-linux-x64-musl@4.34.7': + '@rollup/rollup-linux-x64-musl@4.34.8': optional: true - '@rollup/rollup-win32-arm64-msvc@4.34.7': + '@rollup/rollup-win32-arm64-msvc@4.34.8': optional: true - '@rollup/rollup-win32-ia32-msvc@4.34.7': + '@rollup/rollup-win32-ia32-msvc@4.34.8': optional: true - '@rollup/rollup-win32-x64-msvc@4.34.7': + '@rollup/rollup-win32-x64-msvc@4.34.8': optional: true - '@shikijs/core@2.3.2': + '@shikijs/core@2.5.0': dependencies: - '@shikijs/engine-javascript': 2.3.2 - '@shikijs/engine-oniguruma': 2.3.2 - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - hast-util-to-html: 9.0.4 + hast-util-to-html: 9.0.5 - '@shikijs/engine-javascript@2.3.2': + '@shikijs/engine-javascript@2.5.0': dependencies: - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 oniguruma-to-es: 3.1.0 - '@shikijs/engine-oniguruma@2.3.2': + '@shikijs/engine-oniguruma@2.5.0': dependencies: - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 - '@shikijs/langs@2.3.2': + '@shikijs/langs@2.5.0': dependencies: - '@shikijs/types': 2.3.2 + '@shikijs/types': 2.5.0 - '@shikijs/themes@2.3.2': + '@shikijs/themes@2.5.0': dependencies: - '@shikijs/types': 2.3.2 + '@shikijs/types': 2.5.0 - '@shikijs/transformers@2.3.2': + '@shikijs/transformers@2.5.0': dependencies: - '@shikijs/core': 2.3.2 - '@shikijs/types': 2.3.2 + '@shikijs/core': 2.5.0 + '@shikijs/types': 2.5.0 - '@shikijs/types@2.3.2': + '@shikijs/types@2.5.0': dependencies: - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 - '@shikijs/vscode-textmate@10.0.1': {} + '@shikijs/vscode-textmate@10.0.2': {} '@types/estree@1.0.6': {} @@ -1875,7 +1875,7 @@ snapshots: '@vue/shared': 3.5.13 estree-walker: 2.0.2 magic-string: 0.30.17 - postcss: 8.5.2 + postcss: 8.5.3 source-map-js: 1.2.1 '@vue/compiler-ssr@3.5.13': @@ -1956,21 +1956,21 @@ snapshots: acorn@8.14.0: {} - algoliasearch@5.20.2: + algoliasearch@5.20.3: dependencies: - '@algolia/client-abtesting': 5.20.2 - '@algolia/client-analytics': 5.20.2 - '@algolia/client-common': 5.20.2 - '@algolia/client-insights': 5.20.2 - '@algolia/client-personalization': 5.20.2 - '@algolia/client-query-suggestions': 5.20.2 - '@algolia/client-search': 5.20.2 - '@algolia/ingestion': 1.20.2 - '@algolia/monitoring': 1.20.2 - '@algolia/recommend': 5.20.2 - '@algolia/requester-browser-xhr': 5.20.2 - '@algolia/requester-fetch': 5.20.2 - '@algolia/requester-node-http': 5.20.2 + '@algolia/client-abtesting': 5.20.3 + '@algolia/client-analytics': 5.20.3 + '@algolia/client-common': 5.20.3 + '@algolia/client-insights': 5.20.3 + '@algolia/client-personalization': 5.20.3 + '@algolia/client-query-suggestions': 5.20.3 + '@algolia/client-search': 5.20.3 + '@algolia/ingestion': 1.20.3 + '@algolia/monitoring': 1.20.3 + '@algolia/recommend': 5.20.3 + '@algolia/requester-browser-xhr': 5.20.3 + '@algolia/requester-fetch': 5.20.3 + '@algolia/requester-node-http': 5.20.3 as-table@1.0.55: dependencies: @@ -2110,7 +2110,7 @@ snapshots: glob-to-regexp@0.4.1: {} - hast-util-to-html@9.0.4: + hast-util-to-html@9.0.5: dependencies: '@types/hast': 3.0.4 '@types/unist': 3.0.3 @@ -2119,7 +2119,7 @@ snapshots: hast-util-whitespace: 3.0.0 html-void-elements: 3.0.0 mdast-util-to-hast: 13.2.0 - property-information: 6.5.0 + property-information: 7.0.0 space-separated-tokens: 2.0.2 stringify-entities: 4.0.4 zwitch: 2.0.4 @@ -2195,7 +2195,7 @@ snapshots: mime@3.0.0: {} - miniflare@3.20250204.1: + miniflare@3.20250214.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -2204,7 +2204,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.5 - workerd: 1.20250204.0 + workerd: 1.20250214.0 ws: 8.18.0 youch: 3.2.3 zod: 3.22.3 @@ -2212,7 +2212,7 @@ snapshots: - bufferutil - utf-8-validate - minisearch@7.1.1: {} + minisearch@7.1.2: {} mitt@3.0.1: {} @@ -2253,19 +2253,19 @@ snapshots: mlly: 1.7.4 pathe: 2.0.3 - postcss@8.5.2: + postcss@8.5.3: dependencies: nanoid: 3.3.8 picocolors: 1.1.1 source-map-js: 1.2.1 - preact@10.25.4: {} + preact@10.26.2: {} printable-characters@1.0.42: {} process-nextick-args@2.0.1: {} - property-information@6.5.0: {} + property-information@7.0.0: {} readable-stream@2.3.8: dependencies: @@ -2303,29 +2303,29 @@ snapshots: dependencies: estree-walker: 0.6.1 - rollup@4.34.7: + rollup@4.34.8: dependencies: '@types/estree': 1.0.6 optionalDependencies: - '@rollup/rollup-android-arm-eabi': 4.34.7 - '@rollup/rollup-android-arm64': 4.34.7 - '@rollup/rollup-darwin-arm64': 4.34.7 - '@rollup/rollup-darwin-x64': 4.34.7 - '@rollup/rollup-freebsd-arm64': 4.34.7 - '@rollup/rollup-freebsd-x64': 4.34.7 - '@rollup/rollup-linux-arm-gnueabihf': 4.34.7 - '@rollup/rollup-linux-arm-musleabihf': 4.34.7 - '@rollup/rollup-linux-arm64-gnu': 4.34.7 - '@rollup/rollup-linux-arm64-musl': 4.34.7 - '@rollup/rollup-linux-loongarch64-gnu': 4.34.7 - '@rollup/rollup-linux-powerpc64le-gnu': 4.34.7 - '@rollup/rollup-linux-riscv64-gnu': 4.34.7 - '@rollup/rollup-linux-s390x-gnu': 4.34.7 - '@rollup/rollup-linux-x64-gnu': 4.34.7 - '@rollup/rollup-linux-x64-musl': 4.34.7 - '@rollup/rollup-win32-arm64-msvc': 4.34.7 - '@rollup/rollup-win32-ia32-msvc': 4.34.7 - '@rollup/rollup-win32-x64-msvc': 4.34.7 + '@rollup/rollup-android-arm-eabi': 4.34.8 + '@rollup/rollup-android-arm64': 4.34.8 + '@rollup/rollup-darwin-arm64': 4.34.8 + '@rollup/rollup-darwin-x64': 4.34.8 + '@rollup/rollup-freebsd-arm64': 4.34.8 + '@rollup/rollup-freebsd-x64': 4.34.8 + '@rollup/rollup-linux-arm-gnueabihf': 4.34.8 + '@rollup/rollup-linux-arm-musleabihf': 4.34.8 + '@rollup/rollup-linux-arm64-gnu': 4.34.8 + '@rollup/rollup-linux-arm64-musl': 4.34.8 + '@rollup/rollup-linux-loongarch64-gnu': 4.34.8 + '@rollup/rollup-linux-powerpc64le-gnu': 4.34.8 + '@rollup/rollup-linux-riscv64-gnu': 4.34.8 + '@rollup/rollup-linux-s390x-gnu': 4.34.8 + '@rollup/rollup-linux-x64-gnu': 4.34.8 + '@rollup/rollup-linux-x64-musl': 4.34.8 + '@rollup/rollup-win32-arm64-msvc': 4.34.8 + '@rollup/rollup-win32-ia32-msvc': 4.34.8 + '@rollup/rollup-win32-x64-msvc': 4.34.8 fsevents: 2.3.3 safe-buffer@5.1.2: {} @@ -2364,15 +2364,15 @@ snapshots: '@img/sharp-win32-x64': 0.33.5 optional: true - shiki@2.3.2: + shiki@2.5.0: dependencies: - '@shikijs/core': 2.3.2 - '@shikijs/engine-javascript': 2.3.2 - '@shikijs/engine-oniguruma': 2.3.2 - '@shikijs/langs': 2.3.2 - '@shikijs/themes': 2.3.2 - '@shikijs/types': 2.3.2 - '@shikijs/vscode-textmate': 10.0.1 + '@shikijs/core': 2.5.0 + '@shikijs/engine-javascript': 2.5.0 + '@shikijs/engine-oniguruma': 2.5.0 + '@shikijs/langs': 2.5.0 + '@shikijs/themes': 2.5.0 + '@shikijs/types': 2.5.0 + '@shikijs/vscode-textmate': 10.0.2 '@types/hast': 3.0.4 simple-swizzle@0.2.2: @@ -2474,20 +2474,20 @@ snapshots: vite@5.4.14(@types/node@22.13.4): dependencies: esbuild: 0.21.5 - postcss: 8.5.2 - rollup: 4.34.7 + postcss: 8.5.3 + rollup: 4.34.8 optionalDependencies: '@types/node': 22.13.4 fsevents: 2.3.3 - vitepress@1.6.3(@algolia/client-search@5.20.2)(@types/node@22.13.4)(postcss@8.5.2)(search-insights@2.13.0)(typescript@5.4.5): + vitepress@1.6.3(@algolia/client-search@5.20.3)(@types/node@22.13.4)(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.20.2)(search-insights@2.13.0) - '@iconify-json/simple-icons': 1.2.24 - '@shikijs/core': 2.3.2 - '@shikijs/transformers': 2.3.2 - '@shikijs/types': 2.3.2 + '@docsearch/js': 3.8.2(@algolia/client-search@5.20.3)(search-insights@2.13.0) + '@iconify-json/simple-icons': 1.2.25 + '@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.1(vite@5.4.14(@types/node@22.13.4))(vue@3.5.13(typescript@5.4.5)) '@vue/devtools-api': 7.7.2 @@ -2496,12 +2496,12 @@ snapshots: '@vueuse/integrations': 12.7.0(focus-trap@7.6.4)(typescript@5.4.5) focus-trap: 7.6.4 mark.js: 8.11.1 - minisearch: 7.1.1 - shiki: 2.3.2 + minisearch: 7.1.2 + shiki: 2.5.0 vite: 5.4.14(@types/node@22.13.4) vue: 3.5.13(typescript@5.4.5) optionalDependencies: - postcss: 8.5.2 + postcss: 8.5.3 transitivePeerDependencies: - '@algolia/client-search' - '@types/node' @@ -2539,25 +2539,25 @@ snapshots: optionalDependencies: typescript: 5.4.5 - workerd@1.20250204.0: + workerd@1.20250214.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250204.0 - '@cloudflare/workerd-darwin-arm64': 1.20250204.0 - '@cloudflare/workerd-linux-64': 1.20250204.0 - '@cloudflare/workerd-linux-arm64': 1.20250204.0 - '@cloudflare/workerd-windows-64': 1.20250204.0 + '@cloudflare/workerd-darwin-64': 1.20250214.0 + '@cloudflare/workerd-darwin-arm64': 1.20250214.0 + '@cloudflare/workerd-linux-64': 1.20250214.0 + '@cloudflare/workerd-linux-arm64': 1.20250214.0 + '@cloudflare/workerd-windows-64': 1.20250214.0 - wrangler@3.109.1: + wrangler@3.109.2: dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 esbuild: 0.17.19 - miniflare: 3.20250204.1 + miniflare: 3.20250214.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.1 - workerd: 1.20250204.0 + workerd: 1.20250214.0 optionalDependencies: fsevents: 2.3.3 sharp: 0.33.5 diff --git a/worker/package.json b/worker/package.json index 790d15ea..c4fe7376 100644 --- a/worker/package.json +++ b/worker/package.json @@ -1,6 +1,6 @@ { "name": "cloudflare_temp_email", - "version": "0.8.7", + "version": "0.9.0", "private": true, "type": "module", "scripts": { @@ -16,14 +16,14 @@ "@simplewebauthn/types": "10.0.0", "eslint": "9.18.0", "globals": "^15.15.0", - "typescript-eslint": "^8.24.0", - "wrangler": "^3.109.1" + "typescript-eslint": "^8.24.1", + "wrangler": "^3.109.2" }, "dependencies": { - "@aws-sdk/client-s3": "^3.749.0", - "@aws-sdk/s3-request-presigner": "^3.749.0", + "@aws-sdk/client-s3": "^3.750.0", + "@aws-sdk/s3-request-presigner": "^3.750.0", "@simplewebauthn/server": "10.0.1", - "hono": "^4.7.1", + "hono": "^4.7.2", "mimetext": "^3.0.27", "postal-mime": "^2.4.3", "resend": "^4.1.2", diff --git a/worker/pnpm-lock.yaml b/worker/pnpm-lock.yaml index 06336c9c..216897c9 100644 --- a/worker/pnpm-lock.yaml +++ b/worker/pnpm-lock.yaml @@ -14,17 +14,17 @@ importers: .: dependencies: '@aws-sdk/client-s3': - specifier: ^3.749.0 - version: 3.749.0 + specifier: ^3.750.0 + version: 3.750.0 '@aws-sdk/s3-request-presigner': - specifier: ^3.749.0 - version: 3.749.0 + specifier: ^3.750.0 + version: 3.750.0 '@simplewebauthn/server': specifier: 10.0.1 version: 10.0.1 hono: - specifier: ^4.7.1 - version: 4.7.1 + specifier: ^4.7.2 + version: 4.7.2 mimetext: specifier: ^3.0.27 version: 3.0.27 @@ -57,11 +57,11 @@ importers: specifier: ^15.15.0 version: 15.15.0 typescript-eslint: - specifier: ^8.24.0 - version: 8.24.0(eslint@9.18.0)(typescript@5.4.5) + specifier: ^8.24.1 + version: 8.24.1(eslint@9.18.0)(typescript@5.4.5) wrangler: - specifier: ^3.109.1 - version: 3.109.1(@cloudflare/workers-types@4.20250214.0) + specifier: ^3.109.2 + version: 3.109.2(@cloudflare/workers-types@4.20250214.0) packages: @@ -88,44 +88,44 @@ packages: '@aws-crypto/util@5.2.0': resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==} - '@aws-sdk/client-s3@3.749.0': - resolution: {integrity: sha512-Xi+DaBeYRIa2d+1QTAlBdbRIc9j3+H+H5aMbxIrlyIYE2NOz+4fhIgpUYuF4ln63p9Fby5Wh36DhHJYyN4uE0w==} + '@aws-sdk/client-s3@3.750.0': + resolution: {integrity: sha512-S9G9noCeBxchoMVkHYrRi1A1xW/VOTP2W7X34lP+Y7Wpl32yMA7IJo0fAGAuTc0q1Nu6/pXDm+oDG7rhTCA1tg==} engines: {node: '>=18.0.0'} - '@aws-sdk/client-sso@3.749.0': - resolution: {integrity: sha512-ecmuDu8EPya1LDpGRtpgN7C9PHayDh8EaW37ZBKhuxA7cg099yvTFqsGngwRXbhNjKJ4oVa9OUe0EDnu60atYA==} + '@aws-sdk/client-sso@3.750.0': + resolution: {integrity: sha512-y0Rx6pTQXw0E61CaptpZF65qNggjqOgymq/RYZU5vWba5DGQ+iqGt8Yq8s+jfBoBBNXshxq8l8Dl5Uq/JTY1wg==} engines: {node: '>=18.0.0'} - '@aws-sdk/core@3.749.0': - resolution: {integrity: sha512-w5Jj573+XKwrDNZUjUJDXL5upx+RCw64TLq3Zk8FVg9MsgkzAPorQ9qmzffi6os+PWngd3pFmD8q5y+Y35LpFQ==} + '@aws-sdk/core@3.750.0': + resolution: {integrity: sha512-bZ5K7N5L4+Pa2epbVpUQqd1XLG2uU8BGs/Sd+2nbgTf+lNQJyIxAg/Qsrjz9MzmY8zzQIeRQEkNmR6yVAfCmmQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-env@3.749.0': - resolution: {integrity: sha512-bhB1ds5QzcSfmCTbjVessXy8xHJROota6wOhFtBsL1aZRQyNN2a9h2QS6xkxjmqVE3yHBsPz+OiSOeLn0kxm7Q==} + '@aws-sdk/credential-provider-env@3.750.0': + resolution: {integrity: sha512-In6bsG0p/P31HcH4DBRKBbcDS/3SHvEPjfXV8ODPWZO/l3/p7IRoYBdQ07C9R+VMZU2D0+/Sc/DWK/TUNDk1+Q==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-http@3.749.0': - resolution: {integrity: sha512-enFGT8uvETbE6+4bDA2aTOrA/83GrIVPpg2g2r7MwJb36jreXA3KDXaP/5jQsxyIZW70cnYNl/Cawdd4ZXs7CQ==} + '@aws-sdk/credential-provider-http@3.750.0': + resolution: {integrity: sha512-wFB9qqfa20AB0dElsQz5ZlZT5o+a+XzpEpmg0erylmGYqEOvh8NQWfDUVpRmQuGq9VbvW/8cIbxPoNqEbPtuWQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-ini@3.749.0': - resolution: {integrity: sha512-OB4AGK61lQdoW2mTmaMBw8L+eBo7wF3YJZXwqFI7M2cQe9WtfuKGIxbYWMBMzoLvEtmsbzeppoZZUezooaIclg==} + '@aws-sdk/credential-provider-ini@3.750.0': + resolution: {integrity: sha512-2YIZmyEr5RUd3uxXpxOLD9G67Bibm4I/65M6vKFP17jVMUT+R1nL7mKqmhEVO2p+BoeV+bwMyJ/jpTYG368PCg==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-node@3.749.0': - resolution: {integrity: sha512-1QGstZmGmgmY0rLSTAURlBJdR4s2PRYiZh6dS4HkzzQu7xVDWoCMD+2F7dolsNA8ChTNx2OvBW80n3O9QPICCg==} + '@aws-sdk/credential-provider-node@3.750.0': + resolution: {integrity: sha512-THWHHAceLwsOiowPEmKyhWVDlEUxH07GHSw5AQFDvNQtGKOQl0HSIFO1mKObT2Q2Vqzji9Bq8H58SO5BFtNPRw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-process@3.749.0': - resolution: {integrity: sha512-C/cgg/AhRabybZRY9mJ6KDz8uqfasWKuFIFGzTpeb/MIDIL53ZqP61CspiQJTRvC4zlFGqvm43XefphfrBGGlQ==} + '@aws-sdk/credential-provider-process@3.750.0': + resolution: {integrity: sha512-Q78SCH1n0m7tpu36sJwfrUSxI8l611OyysjQeMiIOliVfZICEoHcLHLcLkiR+tnIpZ3rk7d2EQ6R1jwlXnalMQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-sso@3.749.0': - resolution: {integrity: sha512-bQNgWcYk10fYOvFwcLskYYVNLO3KMgmV1ip9ieapJb9JDg6bSBaXNjIDhdpK4biTOfrV+adtDO5EU93ogpmAWA==} + '@aws-sdk/credential-provider-sso@3.750.0': + resolution: {integrity: sha512-FGYrDjXN/FOQVi/t8fHSv8zCk+NEvtFnuc4cZUj5OIbM4vrfFc5VaPyn41Uza3iv6Qq9rZg0QOwWnqK8lNrqUw==} engines: {node: '>=18.0.0'} - '@aws-sdk/credential-provider-web-identity@3.749.0': - resolution: {integrity: sha512-jzHk6i4G4dnXL+L+qeILguDCiIhA1rNvJzB5lTts4R8OdmNkG12bGbYL8bL4O1b5qCimlo7HS0IZIby0pS7rcg==} + '@aws-sdk/credential-provider-web-identity@3.750.0': + resolution: {integrity: sha512-Nz8zs3YJ+GOTSrq+LyzbbC1Ffpt7pK38gcOyNZv76pP5MswKTUKNYBJehqwa+i7FcFQHsCk3TdhR8MT1ZR23uA==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-bucket-endpoint@3.734.0': @@ -136,8 +136,8 @@ packages: resolution: {integrity: sha512-P38/v1l6HjuB2aFUewt7ueAW5IvKkFcv5dalPtbMGRhLeyivBOHwbCyuRKgVs7z7ClTpu9EaViEGki2jEQqEsQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-flexible-checksums@3.749.0': - resolution: {integrity: sha512-LebOuHbO5BPeke0EB7I7aU7EK807XEyHeCQ3El4CztkGr7cY37PiYP5E0bsSs/4dlK534en/oD0dBA82gZ3xcg==} + '@aws-sdk/middleware-flexible-checksums@3.750.0': + resolution: {integrity: sha512-ach0d2buDnX2TUausUbiXXFWFo3IegLnCrA+Rw8I9AYVpLN9lTaRwAYJwYC6zEuW9Golff8MwkYsp/OaC5tKMw==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-host-header@3.734.0': @@ -156,36 +156,36 @@ packages: resolution: {integrity: sha512-CUat2d9ITsFc2XsmeiRQO96iWpxSKYFjxvj27Hc7vo87YUHRnfMfnc8jw1EpxEwMcvBD7LsRa6vDNky6AjcrFA==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-sdk-s3@3.749.0': - resolution: {integrity: sha512-A7OaNkSFzI2vCRarSKEzoVejAyiLY1M1Z6PR3TE2woAPUUAgRv5UlFOXSymBx1Ya3HUQzWky7mnpnKAFyRGzSg==} + '@aws-sdk/middleware-sdk-s3@3.750.0': + resolution: {integrity: sha512-3H6Z46cmAQCHQ0z8mm7/cftY5ifiLfCjbObrbyyp2fhQs9zk6gCKzIX8Zjhw0RMd93FZi3ebRuKJWmMglf4Itw==} engines: {node: '>=18.0.0'} '@aws-sdk/middleware-ssec@3.734.0': resolution: {integrity: sha512-d4yd1RrPW/sspEXizq2NSOUivnheac6LPeLSLnaeTbBG9g1KqIqvCzP1TfXEqv2CrWfHEsWtJpX7oyjySSPvDQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/middleware-user-agent@3.749.0': - resolution: {integrity: sha512-dNRkZtiM8OoGb/h2Fgrgvty9ltYEubzsD5FH+VN14RrluertLQMmqHrgvq7JoAXFf7MJy+uwhRu4V6pf1sZR/w==} + '@aws-sdk/middleware-user-agent@3.750.0': + resolution: {integrity: sha512-YYcslDsP5+2NZoN3UwuhZGkhAHPSli7HlJHBafBrvjGV/I9f8FuOO1d1ebxGdEP4HyRXUGyh+7Ur4q+Psk0ryw==} engines: {node: '>=18.0.0'} - '@aws-sdk/nested-clients@3.749.0': - resolution: {integrity: sha512-5L8OuVojcVQAZw+iVXTaw88AZTlMw8fD51lB6spzbZdNLl6dd5Iz1JVJAOUl2mTAZXRiN5Q9VECwY1yMgWweAw==} + '@aws-sdk/nested-clients@3.750.0': + resolution: {integrity: sha512-OH68BRF0rt9nDloq4zsfeHI0G21lj11a66qosaljtEP66PWm7tQ06feKbFkXHT5E1K3QhJW3nVyK8v2fEBY5fg==} engines: {node: '>=18.0.0'} '@aws-sdk/region-config-resolver@3.734.0': resolution: {integrity: sha512-Lvj1kPRC5IuJBr9DyJ9T9/plkh+EfKLy+12s/mykOy1JaKHDpvj+XGy2YO6YgYVOb8JFtaqloid+5COtje4JTQ==} engines: {node: '>=18.0.0'} - '@aws-sdk/s3-request-presigner@3.749.0': - resolution: {integrity: sha512-ZUBBJvKGXNuLTsHymBjGsr6WoouRVojURouAc8ueePWxTCt0u/mOOP0KRFVfwmM166YMr+QWr/ym4bJ8aHLAkA==} + '@aws-sdk/s3-request-presigner@3.750.0': + resolution: {integrity: sha512-G4GNngNQlh9EyJZj2WKOOikX0Fev1WSxTV/XJugaHlpnVriebvi3GzolrgxUpRrcGpFGWjmAxLi/gYxTUla1ow==} engines: {node: '>=18.0.0'} - '@aws-sdk/signature-v4-multi-region@3.749.0': - resolution: {integrity: sha512-8ZR3vnJn1Tgg/qpalkyQMUILzZhw6XV1aCDxYMevqHYu6/f0ujvytJjiUd+j92sfxgN781f6bWpt/jVY0jarxg==} + '@aws-sdk/signature-v4-multi-region@3.750.0': + resolution: {integrity: sha512-RA9hv1Irro/CrdPcOEXKwJ0DJYJwYCsauGEdRXihrRfy8MNSR9E+mD5/Fr5Rxjaq5AHM05DYnN3mg/DU6VwzSw==} engines: {node: '>=18.0.0'} - '@aws-sdk/token-providers@3.749.0': - resolution: {integrity: sha512-s3ExVWoNZan6U7ljMqjiHq3bOe4EqL+U+cVPwqNxAsMaJpGyCiA8VQFlXNGg0EPAFbz/0DVBcozYht6/vyH3sg==} + '@aws-sdk/token-providers@3.750.0': + resolution: {integrity: sha512-X/KzqZw41iWolwNdc8e3RMcNSMR364viHv78u6AefXOO5eRM40c4/LuST1jDzq35/LpnqRhL7/MuixOetw+sFw==} engines: {node: '>=18.0.0'} '@aws-sdk/types@3.734.0': @@ -211,8 +211,8 @@ packages: '@aws-sdk/util-user-agent-browser@3.734.0': resolution: {integrity: sha512-xQTCus6Q9LwUuALW+S76OL0jcWtMOVu14q+GoLnWPUM7QeUw963oQcLhF7oq0CtaLLKyl4GOUfcwc773Zmwwng==} - '@aws-sdk/util-user-agent-node@3.749.0': - resolution: {integrity: sha512-uBzolGGrwvZKhpYlGIy9tw6gRdqVs2zyjjXUiifdgbr3WiQXJe8sE1KhLjzyN/VOPcZB0rY34ybqiKEDOymOeQ==} + '@aws-sdk/util-user-agent-node@3.750.0': + resolution: {integrity: sha512-84HJj9G9zbrHX2opLk9eHfDceB+UIHVrmflMzWHpsmo9fDuro/flIBqaVDlE021Osj6qIM0SJJcnL6s23j7JEw==} engines: {node: '>=18.0.0'} peerDependencies: aws-crt: '>=1.0.0' @@ -236,32 +236,32 @@ packages: resolution: {integrity: sha512-YLPHc8yASwjNkmcDMQMY35yiWjoKAKnhUbPRszBRS0YgH+IXtsMp61j+yTcnCE3oO2DgP0U3iejLC8FTtKDC8Q==} engines: {node: '>=16.13'} - '@cloudflare/workerd-darwin-64@1.20250204.0': - resolution: {integrity: sha512-HpsgbWEfvdcwuZ8WAZhi1TlSCyyHC3tbghpKsOqGDaQNltyAFAWqa278TPNfcitYf/FmV4961v3eqUE+RFdHNQ==} + '@cloudflare/workerd-darwin-64@1.20250214.0': + resolution: {integrity: sha512-cDvvedWDc5zrgDnuXe2qYcz/TwBvzmweO55C7XpPuAWJ9Oqxv81PkdekYxD8mH989aQ/GI5YD0Fe6fDYlM+T3Q==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20250204.0': - resolution: {integrity: sha512-AJ8Tk7KMJqePlch3SH8oL41ROtsrb07hKRHD6M+FvGC3tLtf26rpteAAMNYKMDYKzFNFUIKZNijYDFZjBFndXQ==} + '@cloudflare/workerd-darwin-arm64@1.20250214.0': + resolution: {integrity: sha512-NytCvRveVzu0mRKo+tvZo3d/gCUway3B2ZVqSi/TS6NXDGBYIJo7g6s3BnTLS74kgyzeDOjhu9j/RBJBS809qw==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20250204.0': - resolution: {integrity: sha512-RIUfUSnDC8h73zAa+u1K2Frc7nc+eeQoBBP7SaqsRe6JdX8jfIv/GtWjQWCoj8xQFgLvhpJKZ4sTTTV+AilQbw==} + '@cloudflare/workerd-linux-64@1.20250214.0': + resolution: {integrity: sha512-pQ7+aHNHj8SiYEs4d/6cNoimE5xGeCMfgU1yfDFtA9YGN9Aj2BITZgOWPec+HW7ZkOy9oWlNrO6EvVjGgB4tbQ==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20250204.0': - resolution: {integrity: sha512-8Ql8jDjoIgr2J7oBD01kd9kduUz60njofrBpAOkjCPed15He8e8XHkYaYow3g0xpae4S2ryrPOeoD3M64sRxeg==} + '@cloudflare/workerd-linux-arm64@1.20250214.0': + resolution: {integrity: sha512-Vhlfah6Yd9ny1npNQjNgElLIjR6OFdEbuR3LCfbLDCwzWEBFhIf7yC+Tpp/a0Hq7kLz3sLdktaP7xl3PJhyOjA==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20250204.0': - resolution: {integrity: sha512-RpDJO3+to+e17X3EWfRCagboZYwBz2fowc+jL53+fd7uD19v3F59H48lw2BDpHJMRyhg6ouWcpM94OhsHv8ecA==} + '@cloudflare/workerd-windows-64@1.20250214.0': + resolution: {integrity: sha512-GMwMyFbkjBKjYJoKDhGX8nuL4Gqe3IbVnVWf2Q6086CValyIknupk5J6uQWGw2EBU3RGO3x4trDXT5WphQJZDQ==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -436,6 +436,10 @@ packages: resolution: {integrity: sha512-gFHJ+xBOo4G3WRlR1e/3G8A6/KZAH6zcE/hkLRCZTi/B9avAG365QhFA8uOGzTMqgTghpn7/fSnscW++dpMSAw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/core@0.11.0': + resolution: {integrity: sha512-DWUB2pksgNEb6Bz2fggIy1wh6fGgZP4Xyy/Mt0QZPiloKKXerbqq9D3SBQTlCRYOrcRPu4vuz+CGjwdfqxnoWA==} + engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} + '@eslint/eslintrc@3.2.0': resolution: {integrity: sha512-grOjVNN8P3hjJn/eIETF1wwd12DdnwFDoyceUJLYYdkpbwq3nLi+4fqrTAONx7XDALqlL220wC/RHSC/QTI/0w==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} @@ -448,8 +452,8 @@ packages: resolution: {integrity: sha512-RBMg5FRL0I0gs51M/guSAj5/e14VQ4tpZnQNWwuDT66P14I43ItmPfIZRhO9fUVIPOAQXU47atlywZ/czoqFPA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@eslint/plugin-kit@0.2.5': - resolution: {integrity: sha512-lB05FkqEdUg2AA0xEbUz0SnkXT1LcCTa438W4IWTUh4hdOnVbQyOJ81OrDXsJk/LSiJHubgGEFoR5EHq1NsH1A==} + '@eslint/plugin-kit@0.2.6': + resolution: {integrity: sha512-+0TjwR1eAUdZtvv/ir1mGX+v0tUoR3VEPB8Up0LLJC+whRW0GgBBtpbOkg/a/U4Dxa6l5a3l9AJ1aWIQVyoWJA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} '@fastify/busboy@2.1.1': @@ -873,51 +877,51 @@ packages: '@types/json-schema@7.0.15': resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==} - '@typescript-eslint/eslint-plugin@8.24.0': - resolution: {integrity: sha512-aFcXEJJCI4gUdXgoo/j9udUYIHgF23MFkg09LFz2dzEmU0+1Plk4rQWv/IYKvPHAtlkkGoB3m5e6oUp+JPsNaQ==} + '@typescript-eslint/eslint-plugin@8.24.1': + resolution: {integrity: sha512-ll1StnKtBigWIGqvYDVuDmXJHVH4zLVot1yQ4fJtLpL7qacwkxJc1T0bptqw+miBQ/QfUbhl1TcQ4accW5KUyA==} 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.8.0' - '@typescript-eslint/parser@8.24.0': - resolution: {integrity: sha512-MFDaO9CYiard9j9VepMNa9MTcqVvSny2N4hkY6roquzj8pdCBRENhErrteaQuu7Yjn1ppk0v1/ZF9CG3KIlrTA==} + '@typescript-eslint/parser@8.24.1': + resolution: {integrity: sha512-Tqoa05bu+t5s8CTZFaGpCH2ub3QeT9YDkXbPd3uQ4SfsLoh1/vv2GEYAioPoxCWJJNsenXlC88tRjwoHNts1oQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/scope-manager@8.24.0': - resolution: {integrity: sha512-HZIX0UByphEtdVBKaQBgTDdn9z16l4aTUz8e8zPQnyxwHBtf5vtl1L+OhH+m1FGV9DrRmoDuYKqzVrvWDcDozw==} + '@typescript-eslint/scope-manager@8.24.1': + resolution: {integrity: sha512-OdQr6BNBzwRjNEXMQyaGyZzgg7wzjYKfX2ZBV3E04hUCBDv3GQCHiz9RpqdUIiVrMgJGkXm3tcEh4vFSHreS2Q==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/type-utils@8.24.0': - resolution: {integrity: sha512-8fitJudrnY8aq0F1wMiPM1UUgiXQRJ5i8tFjq9kGfRajU+dbPyOuHbl0qRopLEidy0MwqgTHDt6CnSeXanNIwA==} + '@typescript-eslint/type-utils@8.24.1': + resolution: {integrity: sha512-/Do9fmNgCsQ+K4rCz0STI7lYB4phTtEXqqCAs3gZW0pnK7lWNkvWd5iW545GSmApm4AzmQXmSqXPO565B4WVrw==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/types@8.24.0': - resolution: {integrity: sha512-VacJCBTyje7HGAw7xp11q439A+zeGG0p0/p2zsZwpnMzjPB5WteaWqt4g2iysgGFafrqvyLWqq6ZPZAOCoefCw==} + '@typescript-eslint/types@8.24.1': + resolution: {integrity: sha512-9kqJ+2DkUXiuhoiYIUvIYjGcwle8pcPpdlfkemGvTObzgmYfJ5d0Qm6jwb4NBXP9W1I5tss0VIAnWFumz3mC5A==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} - '@typescript-eslint/typescript-estree@8.24.0': - resolution: {integrity: sha512-ITjYcP0+8kbsvT9bysygfIfb+hBj6koDsu37JZG7xrCiy3fPJyNmfVtaGsgTUSEuTzcvME5YI5uyL5LD1EV5ZQ==} + '@typescript-eslint/typescript-estree@8.24.1': + resolution: {integrity: sha512-UPyy4MJ/0RE648DSKQe9g0VDSehPINiejjA6ElqnFaFIhI6ZEiZAkUI0D5MCk0bQcTf/LVqZStvQ6K4lPn/BRg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/utils@8.24.0': - resolution: {integrity: sha512-07rLuUBElvvEb1ICnafYWr4hk8/U7X9RDCOqd9JcAMtjh/9oRmcfN4yGzbPVirgMR0+HLVHehmu19CWeh7fsmQ==} + '@typescript-eslint/utils@8.24.1': + resolution: {integrity: sha512-OOcg3PMMQx9EXspId5iktsI3eMaXVwlhC8BvNnX6B5w9a4dVgpkQZuU8Hy67TolKcl+iFWq0XX+jbDGN4xWxjQ==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 typescript: '>=4.8.4 <5.8.0' - '@typescript-eslint/visitor-keys@8.24.0': - resolution: {integrity: sha512-kArLq83QxGLbuHrTMoOEWO+l2MwsNS2TGISEdx8xgqpkbytB07XmlQyQdNDrCc1ecSqx0cnmhGvpX+VBwqqSkg==} + '@typescript-eslint/visitor-keys@8.24.1': + resolution: {integrity: sha512-EwVHlp5l+2vp8CoqJm9KikPZgi3gbdZAtabKT9KPShGeOcJhsv4Zdo3oc8T8I0uKEmYoU4ItyxbptjF08enaxg==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} abbrev@3.0.0: @@ -1206,8 +1210,8 @@ packages: resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==} engines: {node: '>=16'} - flatted@3.3.2: - resolution: {integrity: sha512-AiwGJM8YcNOaobumgtng+6NHuOqC3A7MixFeDafM3X9cIUM+xUXoS5Vfgf+OihAYe20fxqNM9yPBXJzRtZ/4eA==} + flatted@3.3.3: + resolution: {integrity: sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg==} foreground-child@3.3.0: resolution: {integrity: sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==} @@ -1251,8 +1255,8 @@ packages: resolution: {integrity: sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==} engines: {node: '>=8'} - hono@4.7.1: - resolution: {integrity: sha512-V3eWoPkBxoNgFCkSc5Y5rpLF6YoQQx1pkYO4qrF6YfOw8RZbujUNlJLZCxh0z9gZct70+je2Ih7Zrdpv21hP9w==} + hono@4.7.2: + resolution: {integrity: sha512-8V5XxoOF6SI12jkHkzX/6aLBMU5GEF5g387EjVSQipS0DlxWgWGSMeEayY3CRBjtTUQYwLHx9JYouWqKzy2Vng==} engines: {node: '>=16.9.0'} html-to-text@9.0.5: @@ -1381,8 +1385,8 @@ packages: mimetext@3.0.27: resolution: {integrity: sha512-mUhWAsZD1N/K6dbN4+a5Yq78OPnYQw1ubOSMasBntsLQ2S7KVNlvDEA8dwpr4a7PszWMzeslKahAprtwYMgaBA==} - miniflare@3.20250204.1: - resolution: {integrity: sha512-B4PQi/Ai4d0ZTWahQwsFe5WAfr1j8ISMYxJZTc56g2/btgbX+Go099LmojAZY/fMRLhIYsglcStW8SeW3f/afA==} + miniflare@3.20250214.0: + resolution: {integrity: sha512-XKwn+X/V2CEpbRhoeaIcJHpV/Duz5Md5rxVT8I6S1oqd3aLZkn8cUX1tuxHpUvfQSPuXwWH+2ESLNnTf9PKEWg==} engines: {node: '>=16.13'} hasBin: true @@ -1663,8 +1667,8 @@ packages: resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==} engines: {node: '>= 0.8.0'} - typescript-eslint@8.24.0: - resolution: {integrity: sha512-/lmv4366en/qbB32Vz5+kCNZEMf6xYHwh1z48suBwZvAtnXKbP+YhGe8OLE2BqC67LMqKkCNLtjejdwsdW6uOQ==} + typescript-eslint@8.24.1: + resolution: {integrity: sha512-cw3rEdzDqBs70TIcb0Gdzbt6h11BSs2pS0yaq7hDWDBtCCSei1pPSUXE9qUdQ/Wm9NgFg8mKtMt1b8fTHIl1jA==} engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0} peerDependencies: eslint: ^8.57.0 || ^9.0.0 @@ -1710,17 +1714,17 @@ packages: worker-mailer@1.0.1: resolution: {integrity: sha512-y6U9B2cWGGasj7B+6ZtRBsdTPRAZ0P73ykKq5hsIHXReUB8WAq7feS4JoN2xmAZl7yQpVz/GTLqmqLyDmsOUnw==} - workerd@1.20250204.0: - resolution: {integrity: sha512-zcKufjVFsQMiD3/acg1Ix00HIMCkXCrDxQXYRDn/1AIz3QQGkmbVDwcUk1Ki2jBUoXmBCMsJdycRucgMVEypWg==} + workerd@1.20250214.0: + resolution: {integrity: sha512-QWcqXZLiMpV12wiaVnb3nLmfs/g4ZsFQq2mX85z546r3AX4CTIkXl0VP50W3CwqLADej3PGYiRDOTelDOwVG1g==} engines: {node: '>=16'} hasBin: true - wrangler@3.109.1: - resolution: {integrity: sha512-1Jx+nZ6eCXPQ2rsGdrV6Qy/LGvhpqudeuTl4AYHl9P8Zugp44Uzxnj5w11qF4v/rv1dOZoA5TydSt9xMFfhpKg==} + wrangler@3.109.2: + resolution: {integrity: sha512-CT8izugPBth5o1o4gLNcQrDkHKSX2Jthy6gkyhaWiy2pFrx+536NMn/atWilLA1t1uhIgddEI5BXDNudIkPPHA==} engines: {node: '>=16.17.0'} hasBin: true peerDependencies: - '@cloudflare/workers-types': ^4.20250204.0 + '@cloudflare/workers-types': ^4.20250214.0 peerDependenciesMeta: '@cloudflare/workers-types': optional: true @@ -1804,29 +1808,29 @@ snapshots: '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 - '@aws-sdk/client-s3@3.749.0': + '@aws-sdk/client-s3@3.750.0': dependencies: '@aws-crypto/sha1-browser': 5.2.0 '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.749.0 - '@aws-sdk/credential-provider-node': 3.749.0 + '@aws-sdk/core': 3.750.0 + '@aws-sdk/credential-provider-node': 3.750.0 '@aws-sdk/middleware-bucket-endpoint': 3.734.0 '@aws-sdk/middleware-expect-continue': 3.734.0 - '@aws-sdk/middleware-flexible-checksums': 3.749.0 + '@aws-sdk/middleware-flexible-checksums': 3.750.0 '@aws-sdk/middleware-host-header': 3.734.0 '@aws-sdk/middleware-location-constraint': 3.734.0 '@aws-sdk/middleware-logger': 3.734.0 '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-sdk-s3': 3.749.0 + '@aws-sdk/middleware-sdk-s3': 3.750.0 '@aws-sdk/middleware-ssec': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.749.0 + '@aws-sdk/middleware-user-agent': 3.750.0 '@aws-sdk/region-config-resolver': 3.734.0 - '@aws-sdk/signature-v4-multi-region': 3.749.0 + '@aws-sdk/signature-v4-multi-region': 3.750.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.743.0 '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.749.0 + '@aws-sdk/util-user-agent-node': 3.750.0 '@aws-sdk/xml-builder': 3.734.0 '@smithy/config-resolver': 4.0.1 '@smithy/core': 3.1.4 @@ -1865,20 +1869,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/client-sso@3.749.0': + '@aws-sdk/client-sso@3.750.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/middleware-host-header': 3.734.0 '@aws-sdk/middleware-logger': 3.734.0 '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.749.0 + '@aws-sdk/middleware-user-agent': 3.750.0 '@aws-sdk/region-config-resolver': 3.734.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.743.0 '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.749.0 + '@aws-sdk/util-user-agent-node': 3.750.0 '@smithy/config-resolver': 4.0.1 '@smithy/core': 3.1.4 '@smithy/fetch-http-handler': 5.0.1 @@ -1908,7 +1912,7 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/core@3.749.0': + '@aws-sdk/core@3.750.0': dependencies: '@aws-sdk/types': 3.734.0 '@smithy/core': 3.1.4 @@ -1922,17 +1926,17 @@ snapshots: fast-xml-parser: 4.4.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-env@3.749.0': + '@aws-sdk/credential-provider-env@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-http@3.749.0': + '@aws-sdk/credential-provider-http@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/fetch-http-handler': 5.0.1 '@smithy/node-http-handler': 4.0.2 @@ -1943,15 +1947,15 @@ snapshots: '@smithy/util-stream': 4.1.1 tslib: 2.8.1 - '@aws-sdk/credential-provider-ini@3.749.0': + '@aws-sdk/credential-provider-ini@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 - '@aws-sdk/credential-provider-env': 3.749.0 - '@aws-sdk/credential-provider-http': 3.749.0 - '@aws-sdk/credential-provider-process': 3.749.0 - '@aws-sdk/credential-provider-sso': 3.749.0 - '@aws-sdk/credential-provider-web-identity': 3.749.0 - '@aws-sdk/nested-clients': 3.749.0 + '@aws-sdk/core': 3.750.0 + '@aws-sdk/credential-provider-env': 3.750.0 + '@aws-sdk/credential-provider-http': 3.750.0 + '@aws-sdk/credential-provider-process': 3.750.0 + '@aws-sdk/credential-provider-sso': 3.750.0 + '@aws-sdk/credential-provider-web-identity': 3.750.0 + '@aws-sdk/nested-clients': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/credential-provider-imds': 4.0.1 '@smithy/property-provider': 4.0.1 @@ -1961,14 +1965,14 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-node@3.749.0': + '@aws-sdk/credential-provider-node@3.750.0': dependencies: - '@aws-sdk/credential-provider-env': 3.749.0 - '@aws-sdk/credential-provider-http': 3.749.0 - '@aws-sdk/credential-provider-ini': 3.749.0 - '@aws-sdk/credential-provider-process': 3.749.0 - '@aws-sdk/credential-provider-sso': 3.749.0 - '@aws-sdk/credential-provider-web-identity': 3.749.0 + '@aws-sdk/credential-provider-env': 3.750.0 + '@aws-sdk/credential-provider-http': 3.750.0 + '@aws-sdk/credential-provider-ini': 3.750.0 + '@aws-sdk/credential-provider-process': 3.750.0 + '@aws-sdk/credential-provider-sso': 3.750.0 + '@aws-sdk/credential-provider-web-identity': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/credential-provider-imds': 4.0.1 '@smithy/property-provider': 4.0.1 @@ -1978,20 +1982,20 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-process@3.749.0': + '@aws-sdk/credential-provider-process@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/credential-provider-sso@3.749.0': + '@aws-sdk/credential-provider-sso@3.750.0': dependencies: - '@aws-sdk/client-sso': 3.749.0 - '@aws-sdk/core': 3.749.0 - '@aws-sdk/token-providers': 3.749.0 + '@aws-sdk/client-sso': 3.750.0 + '@aws-sdk/core': 3.750.0 + '@aws-sdk/token-providers': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 @@ -2000,10 +2004,10 @@ snapshots: transitivePeerDependencies: - aws-crt - '@aws-sdk/credential-provider-web-identity@3.749.0': + '@aws-sdk/credential-provider-web-identity@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 - '@aws-sdk/nested-clients': 3.749.0 + '@aws-sdk/core': 3.750.0 + '@aws-sdk/nested-clients': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/types': 4.1.0 @@ -2028,12 +2032,12 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/middleware-flexible-checksums@3.749.0': + '@aws-sdk/middleware-flexible-checksums@3.750.0': dependencies: '@aws-crypto/crc32': 5.2.0 '@aws-crypto/crc32c': 5.2.0 '@aws-crypto/util': 5.2.0 - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/is-array-buffer': 4.0.0 '@smithy/node-config-provider': 4.0.1 @@ -2070,9 +2074,9 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/middleware-sdk-s3@3.749.0': + '@aws-sdk/middleware-sdk-s3@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-arn-parser': 3.723.0 '@smithy/core': 3.1.4 @@ -2093,9 +2097,9 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/middleware-user-agent@3.749.0': + '@aws-sdk/middleware-user-agent@3.750.0': dependencies: - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.743.0 '@smithy/core': 3.1.4 @@ -2103,20 +2107,20 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/nested-clients@3.749.0': + '@aws-sdk/nested-clients@3.750.0': dependencies: '@aws-crypto/sha256-browser': 5.2.0 '@aws-crypto/sha256-js': 5.2.0 - '@aws-sdk/core': 3.749.0 + '@aws-sdk/core': 3.750.0 '@aws-sdk/middleware-host-header': 3.734.0 '@aws-sdk/middleware-logger': 3.734.0 '@aws-sdk/middleware-recursion-detection': 3.734.0 - '@aws-sdk/middleware-user-agent': 3.749.0 + '@aws-sdk/middleware-user-agent': 3.750.0 '@aws-sdk/region-config-resolver': 3.734.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-endpoints': 3.743.0 '@aws-sdk/util-user-agent-browser': 3.734.0 - '@aws-sdk/util-user-agent-node': 3.749.0 + '@aws-sdk/util-user-agent-node': 3.750.0 '@smithy/config-resolver': 4.0.1 '@smithy/core': 3.1.4 '@smithy/fetch-http-handler': 5.0.1 @@ -2155,9 +2159,9 @@ snapshots: '@smithy/util-middleware': 4.0.1 tslib: 2.8.1 - '@aws-sdk/s3-request-presigner@3.749.0': + '@aws-sdk/s3-request-presigner@3.750.0': dependencies: - '@aws-sdk/signature-v4-multi-region': 3.749.0 + '@aws-sdk/signature-v4-multi-region': 3.750.0 '@aws-sdk/types': 3.734.0 '@aws-sdk/util-format-url': 3.734.0 '@smithy/middleware-endpoint': 4.0.5 @@ -2166,18 +2170,18 @@ snapshots: '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/signature-v4-multi-region@3.749.0': + '@aws-sdk/signature-v4-multi-region@3.750.0': dependencies: - '@aws-sdk/middleware-sdk-s3': 3.749.0 + '@aws-sdk/middleware-sdk-s3': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/protocol-http': 5.0.1 '@smithy/signature-v4': 5.0.1 '@smithy/types': 4.1.0 tslib: 2.8.1 - '@aws-sdk/token-providers@3.749.0': + '@aws-sdk/token-providers@3.750.0': dependencies: - '@aws-sdk/nested-clients': 3.749.0 + '@aws-sdk/nested-clients': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/property-provider': 4.0.1 '@smithy/shared-ini-file-loader': 4.0.1 @@ -2220,9 +2224,9 @@ snapshots: bowser: 2.11.0 tslib: 2.8.1 - '@aws-sdk/util-user-agent-node@3.749.0': + '@aws-sdk/util-user-agent-node@3.750.0': dependencies: - '@aws-sdk/middleware-user-agent': 3.749.0 + '@aws-sdk/middleware-user-agent': 3.750.0 '@aws-sdk/types': 3.734.0 '@smithy/node-config-provider': 4.0.1 '@smithy/types': 4.1.0 @@ -2246,19 +2250,19 @@ snapshots: dependencies: mime: 3.0.0 - '@cloudflare/workerd-darwin-64@1.20250204.0': + '@cloudflare/workerd-darwin-64@1.20250214.0': optional: true - '@cloudflare/workerd-darwin-arm64@1.20250204.0': + '@cloudflare/workerd-darwin-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-64@1.20250204.0': + '@cloudflare/workerd-linux-64@1.20250214.0': optional: true - '@cloudflare/workerd-linux-arm64@1.20250204.0': + '@cloudflare/workerd-linux-arm64@1.20250214.0': optional: true - '@cloudflare/workerd-windows-64@1.20250204.0': + '@cloudflare/workerd-windows-64@1.20250214.0': optional: true '@cloudflare/workers-types@4.20250214.0': {} @@ -2367,6 +2371,10 @@ snapshots: dependencies: '@types/json-schema': 7.0.15 + '@eslint/core@0.11.0': + dependencies: + '@types/json-schema': 7.0.15 + '@eslint/eslintrc@3.2.0': dependencies: ajv: 6.12.6 @@ -2385,9 +2393,9 @@ snapshots: '@eslint/object-schema@2.1.6': {} - '@eslint/plugin-kit@0.2.5': + '@eslint/plugin-kit@0.2.6': dependencies: - '@eslint/core': 0.10.0 + '@eslint/core': 0.11.0 levn: 0.4.1 '@fastify/busboy@2.1.1': {} @@ -2918,14 +2926,14 @@ snapshots: '@types/json-schema@7.0.15': {} - '@typescript-eslint/eslint-plugin@8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/eslint-plugin@8.24.1(@typescript-eslint/parser@8.24.1(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.24.0(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/type-utils': 8.24.0(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.24.0(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/parser': 8.24.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/type-utils': 8.24.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.24.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.24.1 eslint: 9.18.0 graphemer: 1.4.0 ignore: 5.3.2 @@ -2935,27 +2943,27 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/parser@8.24.0(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/parser@8.24.1(eslint@9.18.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.4.5) - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.4.5) + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/scope-manager@8.24.0': + '@typescript-eslint/scope-manager@8.24.1': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 - '@typescript-eslint/type-utils@8.24.0(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/type-utils@8.24.1(eslint@9.18.0)(typescript@5.4.5)': dependencies: - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.4.5) - '@typescript-eslint/utils': 8.24.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.4.5) + '@typescript-eslint/utils': 8.24.1(eslint@9.18.0)(typescript@5.4.5) debug: 4.4.0 eslint: 9.18.0 ts-api-utils: 2.0.1(typescript@5.4.5) @@ -2963,12 +2971,12 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/types@8.24.0': {} + '@typescript-eslint/types@8.24.1': {} - '@typescript-eslint/typescript-estree@8.24.0(typescript@5.4.5)': + '@typescript-eslint/typescript-estree@8.24.1(typescript@5.4.5)': dependencies: - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/visitor-keys': 8.24.0 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/visitor-keys': 8.24.1 debug: 4.4.0 fast-glob: 3.3.3 is-glob: 4.0.3 @@ -2979,20 +2987,20 @@ snapshots: transitivePeerDependencies: - supports-color - '@typescript-eslint/utils@8.24.0(eslint@9.18.0)(typescript@5.4.5)': + '@typescript-eslint/utils@8.24.1(eslint@9.18.0)(typescript@5.4.5)': dependencies: '@eslint-community/eslint-utils': 4.4.1(eslint@9.18.0) - '@typescript-eslint/scope-manager': 8.24.0 - '@typescript-eslint/types': 8.24.0 - '@typescript-eslint/typescript-estree': 8.24.0(typescript@5.4.5) + '@typescript-eslint/scope-manager': 8.24.1 + '@typescript-eslint/types': 8.24.1 + '@typescript-eslint/typescript-estree': 8.24.1(typescript@5.4.5) eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: - supports-color - '@typescript-eslint/visitor-keys@8.24.0': + '@typescript-eslint/visitor-keys@8.24.1': dependencies: - '@typescript-eslint/types': 8.24.0 + '@typescript-eslint/types': 8.24.1 eslint-visitor-keys: 4.2.0 abbrev@3.0.0: {} @@ -3210,7 +3218,7 @@ snapshots: '@eslint/core': 0.10.0 '@eslint/eslintrc': 3.2.0 '@eslint/js': 9.18.0 - '@eslint/plugin-kit': 0.2.5 + '@eslint/plugin-kit': 0.2.6 '@humanfs/node': 0.16.6 '@humanwhocodes/module-importer': 1.0.1 '@humanwhocodes/retry': 0.4.1 @@ -3304,10 +3312,10 @@ snapshots: flat-cache@4.0.1: dependencies: - flatted: 3.3.2 + flatted: 3.3.3 keyv: 4.5.4 - flatted@3.3.2: {} + flatted@3.3.3: {} foreground-child@3.3.0: dependencies: @@ -3349,7 +3357,7 @@ snapshots: has-flag@4.0.0: {} - hono@4.7.1: {} + hono@4.7.2: {} html-to-text@9.0.5: dependencies: @@ -3471,7 +3479,7 @@ snapshots: js-base64: 3.7.7 mime-types: 2.1.35 - miniflare@3.20250204.1: + miniflare@3.20250214.0: dependencies: '@cspotcode/source-map-support': 0.8.1 acorn: 8.14.0 @@ -3480,7 +3488,7 @@ snapshots: glob-to-regexp: 0.4.1 stoppable: 1.1.0 undici: 5.28.5 - workerd: 1.20250204.0 + workerd: 1.20250214.0 ws: 8.18.0 youch: 3.2.3 zod: 3.22.3 @@ -3770,11 +3778,11 @@ snapshots: dependencies: prelude-ls: 1.2.1 - typescript-eslint@8.24.0(eslint@9.18.0)(typescript@5.4.5): + typescript-eslint@8.24.1(eslint@9.18.0)(typescript@5.4.5): dependencies: - '@typescript-eslint/eslint-plugin': 8.24.0(@typescript-eslint/parser@8.24.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/parser': 8.24.0(eslint@9.18.0)(typescript@5.4.5) - '@typescript-eslint/utils': 8.24.0(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/eslint-plugin': 8.24.1(@typescript-eslint/parser@8.24.1(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/parser': 8.24.1(eslint@9.18.0)(typescript@5.4.5) + '@typescript-eslint/utils': 8.24.1(eslint@9.18.0)(typescript@5.4.5) eslint: 9.18.0 typescript: 5.4.5 transitivePeerDependencies: @@ -3817,25 +3825,25 @@ snapshots: worker-mailer@1.0.1: {} - workerd@1.20250204.0: + workerd@1.20250214.0: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20250204.0 - '@cloudflare/workerd-darwin-arm64': 1.20250204.0 - '@cloudflare/workerd-linux-64': 1.20250204.0 - '@cloudflare/workerd-linux-arm64': 1.20250204.0 - '@cloudflare/workerd-windows-64': 1.20250204.0 + '@cloudflare/workerd-darwin-64': 1.20250214.0 + '@cloudflare/workerd-darwin-arm64': 1.20250214.0 + '@cloudflare/workerd-linux-64': 1.20250214.0 + '@cloudflare/workerd-linux-arm64': 1.20250214.0 + '@cloudflare/workerd-windows-64': 1.20250214.0 - wrangler@3.109.1(@cloudflare/workers-types@4.20250214.0): + wrangler@3.109.2(@cloudflare/workers-types@4.20250214.0): dependencies: '@cloudflare/kv-asset-handler': 0.3.4 '@esbuild-plugins/node-globals-polyfill': 0.2.3(esbuild@0.17.19) '@esbuild-plugins/node-modules-polyfill': 0.2.2(esbuild@0.17.19) blake3-wasm: 2.1.5 esbuild: 0.17.19 - miniflare: 3.20250204.1 + miniflare: 3.20250214.0 path-to-regexp: 6.3.0 unenv: 2.0.0-rc.1 - workerd: 1.20250204.0 + workerd: 1.20250214.0 optionalDependencies: '@cloudflare/workers-types': 4.20250214.0 fsevents: 2.3.3 diff --git a/worker/src/admin_api/index.ts b/worker/src/admin_api/index.ts index bff330a9..b44bf14f 100644 --- a/worker/src/admin_api/index.ts +++ b/worker/src/admin_api/index.ts @@ -1,6 +1,7 @@ import { Hono } from 'hono' import { Jwt } from 'hono/utils/jwt' +import i18n from '../i18n' import { HonoCustomType } from '../types' import { sendAdminInternalMail, getJsonSetting, saveSetting, getUserRoles } from '../utils' import { newAddress, handleListQuery } from '../common' @@ -40,6 +41,8 @@ api.get('/admin/address', async (c) => { api.post('/admin/new_address', async (c) => { const { name, domain, enablePrefix } = await c.req.json(); + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (!name) { return c.text("Please provide a name", 400) } @@ -53,7 +56,7 @@ api.post('/admin/new_address', async (c) => { }); return c.json(res); } catch (e) { - return c.text(`Failed create address: ${(e as Error).message}`, 400) + return c.text(`${msgs.FailedCreateAddressMsg}: ${(e as Error).message}`, 400) } }) diff --git a/worker/src/constants.ts b/worker/src/constants.ts index 62c52631..598a5c57 100644 --- a/worker/src/constants.ts +++ b/worker/src/constants.ts @@ -1,5 +1,5 @@ export const CONSTANTS = { - VERSION: 'v0.8.7', + VERSION: 'v' + '0.9.0', // DB settings ADDRESS_BLOCK_LIST_KEY: 'address_block_list', diff --git a/worker/src/i18n/en.ts b/worker/src/i18n/en.ts new file mode 100644 index 00000000..66f8f9a5 --- /dev/null +++ b/worker/src/i18n/en.ts @@ -0,0 +1,24 @@ +import { LocaleMessages } from "./type"; + +const messages: LocaleMessages = { + CustomAuthPasswordMsg: "You have enabled the private site password, please provide the password", + UserTokenExpiredMsg: "Your token has expired, please login again", + UserAcceesTokenExpiredMsg: "Your access token has expired, please refresh the page", + UserRoleIsNotAdminMsg: "Your user role is not admin, no access to visit this page", + NeedAdminPasswordMsg: "You need to provide the admin password to access this page", + + KVNotAvailableMsg: "KV is not available, please contact the administrator", + DBNotAvailableMsg: "DB is not available, please contact the administrator", + JWTSecretNotSetMsg: "JWT_SECRET is not set, please contact the administrator", + WebhookNotEnabledMsg: "Webhook is not enabled, please contact the administrator", + DomainsNotSetMsg: "Domains are not set, please contact the administrator", + + TurnstileCheckFailedMsg: "Human verification check failed", + NewAddressDisabledMsg: "New address is disabled, please contact the administrator", + NewAddressAnonymousDisabledMsg: "New address for anonymous user is disabled, please contact the administrator", + FailedCreateAddressMsg: "Failed to create address", + InvalidAddressMsg: "Invalid address", + UserDeleteEmailDisabledMsg: "User delete address/email is disabled, please contact the administrator", +} + +export default messages; diff --git a/worker/src/i18n/index.ts b/worker/src/i18n/index.ts new file mode 100644 index 00000000..1e39887a --- /dev/null +++ b/worker/src/i18n/index.ts @@ -0,0 +1,16 @@ +import { LocaleMessages } from "./type"; +import zh from "./zh"; +import en from "./en"; + +export default { + getMessages: ( + locale: string | null | undefined + ): LocaleMessages => { + // multi-language support + if (locale === "en") return en; + if (locale === "zh") return zh; + + // fallback language + return en; + } +} diff --git a/worker/src/i18n/type.ts b/worker/src/i18n/type.ts new file mode 100644 index 00000000..34907c46 --- /dev/null +++ b/worker/src/i18n/type.ts @@ -0,0 +1,20 @@ +export type LocaleMessages = { + CustomAuthPasswordMsg: string + UserTokenExpiredMsg: string + UserAcceesTokenExpiredMsg: string + UserRoleIsNotAdminMsg: string + NeedAdminPasswordMsg: string + + KVNotAvailableMsg: string + DBNotAvailableMsg: string + JWTSecretNotSetMsg: string + WebhookNotEnabledMsg: string + DomainsNotSetMsg: string + + TurnstileCheckFailedMsg: string + NewAddressDisabledMsg: string + NewAddressAnonymousDisabledMsg: string + FailedCreateAddressMsg: string + InvalidAddressMsg: string + UserDeleteEmailDisabledMsg: string +} diff --git a/worker/src/i18n/zh.ts b/worker/src/i18n/zh.ts new file mode 100644 index 00000000..762ba749 --- /dev/null +++ b/worker/src/i18n/zh.ts @@ -0,0 +1,24 @@ +import { LocaleMessages } from "./type"; + +const messages: LocaleMessages = { + CustomAuthPasswordMsg: "你已启用私有站点密码,请提供密码", + UserTokenExpiredMsg: "您的令牌已过期, 请重新登录", + UserAcceesTokenExpiredMsg: "您的访问令牌已过期, 请刷新页面", + UserRoleIsNotAdminMsg: "您的用户角色不是管理员, 无权访问", + NeedAdminPasswordMsg: "您需要提供管理员密码才能访问此页面", + + KVNotAvailableMsg: "KV 不可用, 请联系管理员", + DBNotAvailableMsg: "DB 不可用, 请联系管理员", + JWTSecretNotSetMsg: "JWT_SECRET 未设置, 请联系管理员", + WebhookNotEnabledMsg: "Webhook 未启用, 请联系管理员", + DomainsNotSetMsg: "域名列表未设置, 请联系管理员", + + TurnstileCheckFailedMsg: "人机验证检查失败", + NewAddressDisabledMsg: "新建邮箱地址已禁用, 请联系管理员", + NewAddressAnonymousDisabledMsg: "匿名用户新建邮箱地址已禁用, 请联系管理员", + FailedCreateAddressMsg: "创建邮箱地址失败", + InvalidAddressMsg: "无效的邮箱地址", + UserDeleteEmailDisabledMsg: "用户删除邮箱/邮件已禁用, 请联系管理员", +} + +export default messages; diff --git a/worker/src/mails_api/index.ts b/worker/src/mails_api/index.ts index 0464064b..d083bf48 100644 --- a/worker/src/mails_api/index.ts +++ b/worker/src/mails_api/index.ts @@ -1,5 +1,6 @@ import { Hono } from 'hono' +import i18n from '../i18n'; import { HonoCustomType } from "../types"; import { getBooleanValue, getJsonSetting, checkCfTurnstile, getStringValue } from '../utils'; import { newAddress, handleListQuery, deleteAddressWithData, getAddressPrefix, getAllowDomains } from '../common' @@ -42,8 +43,10 @@ api.get('/api/mail/:mail_id', async (c) => { }) api.delete('/api/mails/:id', async (c) => { + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (!getBooleanValue(c.env.ENABLE_USER_DELETE_EMAIL)) { - return c.text("User delete email is disabled", 403) + return c.text(msgs.UserDeleteEmailDisabledMsg, 403) } const { address } = c.get("jwtPayload") const { id } = c.req.param(); @@ -59,16 +62,18 @@ api.delete('/api/mails/:id', async (c) => { api.get('/api/settings', async (c) => { const { address, address_id } = c.get("jwtPayload") const user_role = c.get("userRolePayload") + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (address_id && address_id > 0) { try { const db_address_id = await c.env.DB.prepare( `SELECT id FROM address where id = ? ` ).bind(address_id).first("id"); if (!db_address_id) { - return c.text("Invalid address", 400) + return c.text(msgs.InvalidAddressMsg, 400) } } catch (error) { - return c.text("Invalid address", 400) + return c.text(msgs.InvalidAddressMsg, 400) } } // check address id @@ -78,11 +83,11 @@ api.get('/api/settings', async (c) => { `SELECT id FROM address where name = ? ` ).bind(address).first("id"); if (!db_address_id) { - return c.text("Invalid address", 400) + return c.text(msgs.InvalidAddressMsg, 400) } } } catch (error) { - return c.text("Invalid address", 400) + return c.text(msgs.InvalidAddressMsg, 400) } // update address updated_at try { @@ -103,13 +108,15 @@ api.get('/api/settings', async (c) => { }) api.post('/api/new_address', async (c) => { + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (getBooleanValue(c.env.DISABLE_ANONYMOUS_USER_CREATE_EMAIL) && !c.get("userPayload") ) { - return c.text("New address for anonymous user is disabled", 403) + return c.text(msgs.NewAddressAnonymousDisabledMsg, 403) } if (!getBooleanValue(c.env.ENABLE_USER_CREATE_EMAIL)) { - return c.text("New address is disabled", 403) + return c.text(msgs.NewAddressDisabledMsg, 403) } // eslint-disable-next-line prefer-const let { name, domain, cf_token } = await c.req.json(); @@ -117,7 +124,7 @@ api.post('/api/new_address', async (c) => { try { await checkCfTurnstile(c, cf_token); } catch (error) { - return c.text("Failed to check cf turnstile", 500) + return c.text(msgs.TurnstileCheckFailedMsg, 500) } // if no name, generate random name if (!name) { @@ -143,7 +150,7 @@ api.post('/api/new_address', async (c) => { }); return c.json(res); } catch (e) { - return c.text(`Failed create address: ${(e as Error).message}`, 400) + return c.text(`${msgs.FailedCreateAddressMsg}: ${(e as Error).message}`, 400) } }) diff --git a/worker/src/mails_api/send_mail_api.ts b/worker/src/mails_api/send_mail_api.ts index 5a3fcd57..9f00a43c 100644 --- a/worker/src/mails_api/send_mail_api.ts +++ b/worker/src/mails_api/send_mail_api.ts @@ -4,6 +4,7 @@ import { createMimeMessage } from 'mimetext'; import { Resend } from 'resend'; import { WorkerMailer, WorkerMailerOptions } from 'worker-mailer'; +import i18n from '../i18n'; import { CONSTANTS } from '../constants' import { getJsonSetting, getDomains, getIntValue, getBooleanValue, getStringValue, getJsonObjectValue } from '../utils'; import { GeoData } from '../models' @@ -288,8 +289,10 @@ api.get('/api/sendbox', async (c) => { }) api.delete('/api/sendbox/:id', async (c) => { + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (!getBooleanValue(c.env.ENABLE_USER_DELETE_EMAIL)) { - return c.text("User delete email is disabled", 403) + return c.text(msgs.UserDeleteEmailDisabledMsg, 403) } const { address } = c.get("jwtPayload") const { id } = c.req.param(); diff --git a/worker/src/telegram_api/miniapp.ts b/worker/src/telegram_api/miniapp.ts index 380e2dbc..c22bb4c1 100644 --- a/worker/src/telegram_api/miniapp.ts +++ b/worker/src/telegram_api/miniapp.ts @@ -5,6 +5,7 @@ import { CONSTANTS } from "../constants"; import { bindTelegramAddress, jwtListToAddressData, tgUserNewAddress, unbindTelegramAddress } from "./common"; import { checkCfTurnstile } from "../utils"; import { TelegramSettings } from "./settings"; +import i18n from "../i18n"; const encoder = new TextEncoder(); const TG_AUTH_TIMEOUT = 300; @@ -84,11 +85,13 @@ async function getTelegramBindAddress(c: Context): Promise): Promise { const { initData, address, cf_token } = await c.req.json(); + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); // check cf turnstile try { await checkCfTurnstile(c, cf_token); } catch (error) { - return c.text("Failed to check cf turnstile", 500) + return c.text(msgs.TurnstileCheckFailedMsg, 500) } try { const userId = await checkTelegramAuth(c, initData); diff --git a/worker/src/types.d.ts b/worker/src/types.d.ts index 4100a77f..2fa50734 100644 --- a/worker/src/types.d.ts +++ b/worker/src/types.d.ts @@ -12,6 +12,7 @@ export type Bindings = { SEND_MAIL: any // config + DEFAULT_LANG: string | undefined TITLE: string | undefined ANNOUNCEMENT: string | undefined | null PREFIX: string | undefined @@ -96,6 +97,7 @@ type Variables = { userPayload: UserPayload, userRolePayload: string | undefined | null, jwtPayload: JwtPayload, + lang: string | undefined | null } type HonoCustomType = { diff --git a/worker/src/user_api/user.ts b/worker/src/user_api/user.ts index 39df68b6..8f7f3a41 100644 --- a/worker/src/user_api/user.ts +++ b/worker/src/user_api/user.ts @@ -1,6 +1,7 @@ import { Context } from 'hono'; import { Jwt } from 'hono/utils/jwt' +import i18n from '../i18n'; import { HonoCustomType } from '../types'; import { checkCfTurnstile, getJsonSetting, checkUserPassword, getUserRoles, getStringValue } from "../utils" import { CONSTANTS } from "../constants"; @@ -10,11 +11,13 @@ import { sendMail } from "../mails_api/send_mail_api"; export default { verifyCode: async (c: Context) => { const { email, cf_token } = await c.req.json(); + const lang = c.get("lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); // check cf turnstile try { await checkCfTurnstile(c, cf_token); } catch (error) { - return c.text("Failed to check cf turnstile", 500) + return c.text(msgs.TurnstileCheckFailedMsg, 500) } const value = await getJsonSetting(c, CONSTANTS.USER_SETTINGS_KEY); const settings = new UserSettings(value) diff --git a/worker/src/worker.ts b/worker/src/worker.ts index 653f8d73..a69d5bfb 100644 --- a/worker/src/worker.ts +++ b/worker/src/worker.ts @@ -10,6 +10,7 @@ import { api as adminApi } from './admin_api'; import { api as apiSendMail } from './mails_api/send_mail_api' import { api as telegramApi } from './telegram_api' +import i18n from './i18n'; import { email } from './email'; import { scheduled } from './scheduled'; import { getAdminPasswords, getPasswords, getBooleanValue, getStringArray } from './utils'; @@ -25,6 +26,10 @@ app.onError((err, c) => { }) // rate limit app.use('/*', async (c, next) => { + // save language in context + const lang = c.req.raw.headers.get("x-lang"); + if (lang) { c.set("lang", lang); } + const msgs = i18n.getMessages(lang || c.env.DEFAULT_LANG); if ( c.req.path.startsWith("/api/new_address") || c.req.path.startsWith("/api/send_mail") @@ -49,17 +54,17 @@ app.use('/*', async (c, next) => { || c.req.path.startsWith("/admin/mail_webhook") ) { if (!c.env.KV) { - return c.text("KV is not available", 400); + return c.text(msgs.KVNotAvailableMsg, 400); } if (!getBooleanValue(c.env.ENABLE_WEBHOOK)) { - return c.text("Webhook is disabled", 403); + return c.text(msgs.WebhookNotEnabledMsg, 403); } } if (!c.env.DB) { - return c.text("DB is not available", 400); + return c.text(msgs.DBNotAvailableMsg, 400); } if (!c.env.JWT_SECRET) { - return c.text("JWT_SECRET is not set", 400); + return c.text(msgs.JWTSecretNotSetMsg, 400); } await next() }); @@ -110,7 +115,9 @@ app.use('/api/*', async (c, next) => { if (passwords && passwords.length > 0) { const auth = c.req.raw.headers.get("x-custom-auth"); if (!auth || !passwords.includes(auth)) { - return c.text("Need Password", 401) + const lang = c.req.raw.headers.get("x-lang") || c.env.DEFAULT_LANG; + const messages = i18n.getMessages(lang); + return c.text(messages.CustomAuthPasswordMsg, 401) } } if (c.req.path.startsWith("/api/new_address")) { @@ -138,20 +145,24 @@ app.use('/user_api/*', async (c, next) => { await next(); return; } + + const lang = c.req.raw.headers.get("x-lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); + try { const token = c.req.raw.headers.get("x-user-token"); - if (!token) return c.text("Need User Token", 401) + if (!token) return c.text(msgs.UserTokenExpiredMsg, 401) const payload = await Jwt.verify(token, c.env.JWT_SECRET, "HS256"); // check expired - if (!payload.exp) return c.text("Invalid Token", 401); + if (!payload.exp) return c.text(msgs.UserTokenExpiredMsg, 401); // exp is in seconds if (payload.exp < Math.floor(Date.now() / 1000)) { - return c.text("Token Expired", 401) + return c.text(msgs.UserTokenExpiredMsg, 401) } c.set("userPayload", payload as UserPayload); } catch (e) { console.error(e); - return c.text("Need User Token", 401) + return c.text(msgs.UserTokenExpiredMsg, 401) } if (c.req.path.startsWith('/user_api/bind_address') && c.req.method === 'POST' @@ -172,19 +183,21 @@ app.use('/admin/*', async (c, next) => { return; } } + const lang = c.req.raw.headers.get("x-lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); // check if user is admin const access_token = c.req.raw.headers.get("x-user-access-token"); if (c.env.ADMIN_USER_ROLE && access_token) { try { const payload = await Jwt.verify(access_token, c.env.JWT_SECRET, "HS256"); // check expired - if (!payload.exp) return c.text("Invalid Token", 401); + if (!payload.exp) return c.text(msgs.UserAcceesTokenExpiredMsg, 401); // exp is in seconds if (payload.exp < Math.floor(Date.now() / 1000)) { - return c.text("Token Expired", 401) + return c.text(msgs.UserAcceesTokenExpiredMsg, 401) } if (payload.user_role !== c.env.ADMIN_USER_ROLE) { - return c.text("Need Admin Role", 401) + return c.text(msgs.UserRoleIsNotAdminMsg, 401) } await next(); return; @@ -199,7 +212,7 @@ app.use('/admin/*', async (c, next) => { return; } - return c.text("Need Admin Password", 401) + return c.text(msgs.NeedAdminPasswordMsg, 401) }); @@ -211,14 +224,16 @@ app.route('/', apiSendMail) app.route('/', telegramApi) const health_check = async (c: Context) => { + const lang = c.req.raw.headers.get("x-lang") || c.env.DEFAULT_LANG; + const msgs = i18n.getMessages(lang); if (!c.env.DB) { - return c.text("DB is not available", 400); + return c.text(msgs.DBNotAvailableMsg, 400); } if (!c.env.JWT_SECRET) { - return c.text("JWT_SECRET is not set", 400); + return c.text(msgs.JWTSecretNotSetMsg, 400); } if (getStringArray(c.env.DOMAINS).length === 0) { - return c.text("DOMAINS is not set", 400); + return c.text(msgs.DomainsNotSetMsg, 400); } return c.text("OK"); }