mirror of
https://github.com/dreamhunter2333/cloudflare_temp_email.git
synced 2026-09-10 18:07:00 +08:00
Compare commits
3
Commits
v1.0.4
..
8e5293f010
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8e5293f010 | ||
|
|
711378cb11 | ||
|
|
648e9f7adf |
+7
-1
@@ -1,7 +1,13 @@
|
||||
<!-- markdownlint-disable-file MD004 MD024 MD034 MD036 -->
|
||||
# CHANGE LOG
|
||||
|
||||
## main(v1.0.4)
|
||||
## main(v1.0.5)
|
||||
|
||||
- feat: 新增 `DISABLE_CUSTOM_ADDRESS_NAME` 配置: 禁用自定义邮箱地址名称功能
|
||||
- feat: 新增 `CREATE_ADDRESS_DEFAULT_DOMAIN_FIRST` 配置: 创建地址时优先使用第一个域名
|
||||
- feat: |UI| 主页增加进入极简模式按钮
|
||||
|
||||
## v1.0.4
|
||||
|
||||
- feat: |UI| 优化极简模式主页, 增加全部邮件页面功能(删除/下载/附件/...), 可在 `外观` 中切换
|
||||
- feat: admin 账号设置页面增加 `邮件转发规则` 配置
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
<!-- markdownlint-disable-file MD033 MD045 -->
|
||||
# 🚀 Cloudflare 临时邮箱 - 免费搭建临时邮件服务
|
||||
# Cloudflare 临时邮箱 - 免费搭建临时邮件服务
|
||||
|
||||
<p align="center">
|
||||
<a href="https://temp-mail-docs.awsl.uk" target="_blank">
|
||||
@@ -81,7 +81,7 @@
|
||||
<details open>
|
||||
<summary>📖 目录(点击收缩/展开)</summary>
|
||||
|
||||
- [🚀 Cloudflare 临时邮箱 - 免费搭建临时邮件服务](#-cloudflare-临时邮箱---免费搭建临时邮件服务)
|
||||
- [Cloudflare 临时邮箱 - 免费搭建临时邮件服务](#cloudflare-临时邮箱---免费搭建临时邮件服务)
|
||||
- [📚 部署文档 - 快速开始](#-部署文档---快速开始)
|
||||
- [📝 更新日志](#-更新日志)
|
||||
- [🎯 在线体验](#-在线体验)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cloudflare_temp_email",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
@@ -30,7 +30,7 @@
|
||||
"naive-ui": "^2.42.0",
|
||||
"postal-mime": "^2.4.4",
|
||||
"vooks": "^0.2.12",
|
||||
"vue": "^3.5.19",
|
||||
"vue": "^3.5.20",
|
||||
"vue-clipboard3": "^2.0.0",
|
||||
"vue-i18n": "^11.1.11",
|
||||
"vue-router": "^4.5.1"
|
||||
@@ -47,7 +47,7 @@
|
||||
"vite-plugin-wasm": "^3.5.0",
|
||||
"workbox-build": "^7.3.0",
|
||||
"workbox-window": "^7.3.0",
|
||||
"wrangler": "^4.32.0"
|
||||
"wrangler": "^4.33.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
|
||||
}
|
||||
|
||||
Generated
+287
-286
File diff suppressed because it is too large
Load Diff
@@ -78,6 +78,7 @@ const getOpenSettings = async (message, notification) => {
|
||||
adminContact: res["adminContact"] || "",
|
||||
enableUserCreateEmail: res["enableUserCreateEmail"] || false,
|
||||
disableAnonymousUserCreateEmail: res["disableAnonymousUserCreateEmail"] || false,
|
||||
disableCustomAddressName: res["disableCustomAddressName"] || false,
|
||||
enableUserDeleteEmail: res["enableUserDeleteEmail"] || false,
|
||||
enableAutoReply: res["enableAutoReply"] || false,
|
||||
enableIndexAbout: res["enableIndexAbout"] || false,
|
||||
|
||||
@@ -22,6 +22,7 @@ export const useGlobalState = createGlobalState(
|
||||
adminContact: '',
|
||||
enableUserCreateEmail: false,
|
||||
disableAnonymousUserCreateEmail: false,
|
||||
disableCustomAddressName: false,
|
||||
enableUserDeleteEmail: false,
|
||||
enableAutoReply: false,
|
||||
enableIndexAbout: false,
|
||||
|
||||
@@ -5,6 +5,8 @@ import { useRoute } from 'vue-router'
|
||||
|
||||
import { useGlobalState } from '../store'
|
||||
import { api } from '../api'
|
||||
import { useIsMobile } from '../utils/composables'
|
||||
import { FullscreenExitOutlined } from '@vicons/material'
|
||||
|
||||
import AddressBar from './index/AddressBar.vue';
|
||||
import MailBox from '../components/MailBox.vue';
|
||||
@@ -15,12 +17,12 @@ import Appearance from './common/Appearance.vue';
|
||||
import Webhook from './index/Webhook.vue';
|
||||
import Attachment from './index/Attachment.vue';
|
||||
import About from './common/About.vue';
|
||||
|
||||
import SimpleIndex from './index/SimpleIndex.vue';
|
||||
|
||||
const { loading, settings, openSettings, indexTab, globalTabplacement, useSimpleIndex } = useGlobalState()
|
||||
const message = useMessage()
|
||||
const route = useRoute()
|
||||
const isMobile = useIsMobile()
|
||||
|
||||
const SendMail = defineAsyncComponent(() => {
|
||||
loading.value = true;
|
||||
@@ -42,6 +44,7 @@ const { t } = useI18n({
|
||||
saveToS3Success: 'save to s3 success',
|
||||
webhookSettings: 'Webhook Settings',
|
||||
query: 'Query',
|
||||
enterSimpleMode: 'Simple Mode',
|
||||
},
|
||||
zh: {
|
||||
mailbox: '收件箱',
|
||||
@@ -55,6 +58,7 @@ const { t } = useI18n({
|
||||
saveToS3Success: '保存到s3成功',
|
||||
webhookSettings: 'Webhook 设置',
|
||||
query: '查询',
|
||||
enterSimpleMode: '极简模式',
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -133,6 +137,16 @@ onMounted(() => {
|
||||
<div v-else>
|
||||
<AddressBar />
|
||||
<n-tabs v-if="settings.address" type="card" v-model:value="indexTab" :placement="globalTabplacement">
|
||||
<template #prefix v-if="!isMobile">
|
||||
<n-button @click="useSimpleIndex = true" tertiary size="small">
|
||||
<template #icon>
|
||||
<n-icon>
|
||||
<FullscreenExitOutlined />
|
||||
</n-icon>
|
||||
</template>
|
||||
{{ t('enterSimpleMode') }}
|
||||
</n-button>
|
||||
</template>
|
||||
<n-tab-pane name="mailbox" :tab="t('mailbox')">
|
||||
<div v-if="showMailIdQuery" style="margin-bottom: 10px;">
|
||||
<n-input-group>
|
||||
|
||||
@@ -84,6 +84,7 @@ const { locale, t } = useI18n({
|
||||
credentialInput: 'Please input the Mail Address Credential',
|
||||
bindUserInfo: 'Logged in user, login without binding email or create new email address will bind to current user',
|
||||
bindUserAddressError: 'Error when bind email address to user',
|
||||
autoGeneratedName: 'Auto-generated name',
|
||||
},
|
||||
zh: {
|
||||
login: '登录',
|
||||
@@ -100,6 +101,7 @@ const { locale, t } = useI18n({
|
||||
credentialInput: '请输入邮箱地址凭据',
|
||||
bindUserInfo: '已登录用户, 登录未绑定邮箱或创建新邮箱地址将绑定到当前用户',
|
||||
bindUserAddressError: '绑定邮箱地址到用户时错误',
|
||||
autoGeneratedName: '自动生成名称',
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -147,8 +149,10 @@ const generateName = async () => {
|
||||
|
||||
const newEmail = async () => {
|
||||
try {
|
||||
// If custom names are disabled, send empty name to trigger backend auto-generation
|
||||
const nameToSend = openSettings.value.disableCustomAddressName ? "" : emailName.value;
|
||||
const res = await props.newAddressPath(
|
||||
emailName.value,
|
||||
nameToSend,
|
||||
emailDomain.value,
|
||||
cfToken.value
|
||||
);
|
||||
@@ -240,19 +244,20 @@ onMounted(async () => {
|
||||
<n-spin :show="generateNameLoading">
|
||||
<n-form>
|
||||
<span>
|
||||
<p>{{ t("getNewEmailTip1") + addressRegex.source }}</p>
|
||||
<p>{{ t("getNewEmailTip2") }}</p>
|
||||
<p v-if="!openSettings.disableCustomAddressName">{{ t("getNewEmailTip1") + addressRegex.source }}</p>
|
||||
<p v-if="!openSettings.disableCustomAddressName">{{ t("getNewEmailTip2") }}</p>
|
||||
<p>{{ t("getNewEmailTip3") }}</p>
|
||||
</span>
|
||||
<n-button @click="generateName" style="margin-bottom: 10px;">
|
||||
<n-button v-if="!openSettings.disableCustomAddressName" @click="generateName" style="margin-bottom: 10px;">
|
||||
{{ t('generateName') }}
|
||||
</n-button>
|
||||
<n-input-group>
|
||||
<n-input-group-label v-if="addressPrefix">
|
||||
{{ addressPrefix }}
|
||||
</n-input-group-label>
|
||||
<n-input v-model:value="emailName" show-count :minlength="openSettings.minAddressLen"
|
||||
<n-input v-if="!openSettings.disableCustomAddressName" v-model:value="emailName" show-count :minlength="openSettings.minAddressLen"
|
||||
:maxlength="openSettings.maxAddressLen" />
|
||||
<n-input v-else :value="t('autoGeneratedName')" disabled />
|
||||
<n-input-group-label>@</n-input-group-label>
|
||||
<n-select v-model:value="emailDomain" :consistent-menu-width="false"
|
||||
:options="domainsOptions" />
|
||||
|
||||
+2
-2
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "temp-email-pages",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"description": "",
|
||||
"main": "index.js",
|
||||
"scripts": {
|
||||
@@ -11,7 +11,7 @@
|
||||
"author": "",
|
||||
"license": "ISC",
|
||||
"devDependencies": {
|
||||
"wrangler": "^4.32.0"
|
||||
"wrangler": "^4.33.0"
|
||||
},
|
||||
"packageManager": "pnpm@10.10.0+sha512.d615db246fe70f25dcfea6d8d73dee782ce23e2245e3c4f6f888249fb568149318637dca73c2c5c8ef2a4ca0d5657fb9567188bfab47f566d1ee6ce987815c39"
|
||||
}
|
||||
|
||||
@@ -24,9 +24,9 @@ res = requests.post(
|
||||
print(res.json())
|
||||
```
|
||||
|
||||
# 批量创建随机用户名邮箱地址 API 示例
|
||||
## 批量创建随机用户名邮箱地址 API 示例
|
||||
|
||||
## 通过 admin API 批量新建邮箱地址
|
||||
### 通过 admin API 批量新建邮箱地址
|
||||
|
||||
这是一个 `python` 的例子,使用 `requests` 库发送邮件。
|
||||
|
||||
|
||||
@@ -22,17 +22,19 @@
|
||||
|
||||
## 邮箱相关变量
|
||||
|
||||
| 变量名 | 类型 | 说明 | 示例 |
|
||||
| ---------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
||||
| `PREFIX` | 文本 | 新建 `邮箱名称` 的默认前缀,不需要前缀可不配置 | `tmp` |
|
||||
| `MIN_ADDRESS_LEN` | 数字 | `邮箱名称` 的最小长度 | `1` |
|
||||
| `MAX_ADDRESS_LEN` | 数字 | `邮箱名称` 的最大长度 | `30` |
|
||||
| `ADDRESS_CHECK_REGEX` | 文本 | `邮箱名称` 的正则表达式, 只用于检查 | `^(?!.*admin).*` |
|
||||
| `ADDRESS_REGEX` | 文本 | `邮箱名称` 替换非法符号的正则表达式, 不在其中的符号将被替换,如果不设置,默认为 `[^a-z0-9]`, 需谨慎使用, 有些符号可能导致无法收件 | `[^a-z0-9]` |
|
||||
| `DEFAULT_DOMAINS` | JSON | 默认用户可用的域名(未登录或未分配角色的用户) | `["awsl.uk", "dreamhunter2333.xyz"]` |
|
||||
| `DOMAIN_LABELS` | JSON | 对于中文域名,可以使用 DOMAIN_LABELS 显示域名的中文展示名称 | `["中文.awsl.uk", "dreamhunter2333.xyz"]` |
|
||||
| `ENABLE_AUTO_REPLY` | 文本/JSON | 允许自动回复邮件 | `true` |
|
||||
| `DEFAULT_SEND_BALANCE` | 文本/JSON | 默认发送邮件余额,如果不设置,将为 0 | `1` |
|
||||
| 变量名 | 类型 | 说明 | 示例 |
|
||||
| ------------------------------------- | --------- | --------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------- |
|
||||
| `PREFIX` | 文本 | 新建 `邮箱名称` 的默认前缀,不需要前缀可不配置 | `tmp` |
|
||||
| `MIN_ADDRESS_LEN` | 数字 | `邮箱名称` 的最小长度 | `1` |
|
||||
| `MAX_ADDRESS_LEN` | 数字 | `邮箱名称` 的最大长度 | `30` |
|
||||
| `DISABLE_CUSTOM_ADDRESS_NAME` | 文本/JSON | 禁用自定义邮箱地址名称,如果设置为 true,则用户无法输入自定义邮箱名称,将由后台自动生成 | `true` |
|
||||
| `ADDRESS_CHECK_REGEX` | 文本 | `邮箱名称` 的正则表达式, 只用于检查 | `^(?!.*admin).*` |
|
||||
| `ADDRESS_REGEX` | 文本 | `邮箱名称` 替换非法符号的正则表达式, 不在其中的符号将被替换,如果不设置,默认为 `[^a-z0-9]`, 需谨慎使用, 有些符号可能导致无法收件 | `[^a-z0-9]` |
|
||||
| `DEFAULT_DOMAINS` | JSON | 默认用户可用的域名(未登录或未分配角色的用户) | `["awsl.uk", "dreamhunter2333.xyz"]` |
|
||||
| `CREATE_ADDRESS_DEFAULT_DOMAIN_FIRST` | 文本/JSON | 创建新地址时是否优先使用默认域名,如果设置为 true,当未指定域名时将使用第一个域名, 主要用于 telegram bot 场景 | `false` |
|
||||
| `DOMAIN_LABELS` | JSON | 对于中文域名,可以使用 DOMAIN_LABELS 显示域名的中文展示名称 | `["中文.awsl.uk", "dreamhunter2333.xyz"]` |
|
||||
| `ENABLE_AUTO_REPLY` | 文本/JSON | 允许自动回复邮件 | `true` |
|
||||
| `DEFAULT_SEND_BALANCE` | 文本/JSON | 默认发送邮件余额,如果不设置,将为 0 | `1` |
|
||||
|
||||
## 接受邮件相关变量
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "temp-mail-docs",
|
||||
"private": true,
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"type": "module",
|
||||
"devDependencies": {
|
||||
"@types/node": "^24.3.0",
|
||||
"vitepress": "^1.6.4",
|
||||
"wrangler": "^4.32.0"
|
||||
"wrangler": "^4.33.0"
|
||||
},
|
||||
"scripts": {
|
||||
"dev": "vitepress dev docs",
|
||||
|
||||
Generated
+317
-317
File diff suppressed because it is too large
Load Diff
+7
-7
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "cloudflare_temp_email",
|
||||
"version": "1.0.4",
|
||||
"version": "1.0.5",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
@@ -11,18 +11,18 @@
|
||||
"build": "wrangler deploy --dry-run --outdir dist --minify"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@cloudflare/workers-types": "^4.20250822.0",
|
||||
"@cloudflare/workers-types": "^4.20250826.0",
|
||||
"@eslint/js": "9.18.0",
|
||||
"@simplewebauthn/types": "10.0.0",
|
||||
"@types/node": "^22.17.2",
|
||||
"@types/node": "^22.18.0",
|
||||
"eslint": "9.18.0",
|
||||
"globals": "^15.15.0",
|
||||
"typescript-eslint": "^8.40.0",
|
||||
"wrangler": "^4.32.0"
|
||||
"typescript-eslint": "^8.41.0",
|
||||
"wrangler": "^4.33.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"@aws-sdk/client-s3": "^3.873.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.873.0",
|
||||
"@aws-sdk/client-s3": "^3.876.0",
|
||||
"@aws-sdk/s3-request-presigner": "^3.876.0",
|
||||
"@simplewebauthn/server": "10.0.1",
|
||||
"hono": "^4.9.4",
|
||||
"jsonpath-plus": "^10.3.0",
|
||||
|
||||
Generated
+231
-230
@@ -14,11 +14,11 @@ importers:
|
||||
.:
|
||||
dependencies:
|
||||
'@aws-sdk/client-s3':
|
||||
specifier: ^3.873.0
|
||||
version: 3.873.0
|
||||
specifier: ^3.876.0
|
||||
version: 3.876.0
|
||||
'@aws-sdk/s3-request-presigner':
|
||||
specifier: ^3.873.0
|
||||
version: 3.873.0
|
||||
specifier: ^3.876.0
|
||||
version: 3.876.0
|
||||
'@simplewebauthn/server':
|
||||
specifier: 10.0.1
|
||||
version: 10.0.1
|
||||
@@ -45,8 +45,8 @@ importers:
|
||||
version: 1.1.5
|
||||
devDependencies:
|
||||
'@cloudflare/workers-types':
|
||||
specifier: ^4.20250822.0
|
||||
version: 4.20250822.0
|
||||
specifier: ^4.20250826.0
|
||||
version: 4.20250826.0
|
||||
'@eslint/js':
|
||||
specifier: 9.18.0
|
||||
version: 9.18.0
|
||||
@@ -54,8 +54,8 @@ importers:
|
||||
specifier: 10.0.0
|
||||
version: 10.0.0
|
||||
'@types/node':
|
||||
specifier: ^22.17.2
|
||||
version: 22.17.2
|
||||
specifier: ^22.18.0
|
||||
version: 22.18.0
|
||||
eslint:
|
||||
specifier: 9.18.0
|
||||
version: 9.18.0
|
||||
@@ -63,11 +63,11 @@ importers:
|
||||
specifier: ^15.15.0
|
||||
version: 15.15.0
|
||||
typescript-eslint:
|
||||
specifier: ^8.40.0
|
||||
version: 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
specifier: ^8.41.0
|
||||
version: 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
wrangler:
|
||||
specifier: ^4.32.0
|
||||
version: 4.32.0(@cloudflare/workers-types@4.20250822.0)
|
||||
specifier: ^4.33.0
|
||||
version: 4.33.0(@cloudflare/workers-types@4.20250826.0)
|
||||
|
||||
packages:
|
||||
|
||||
@@ -94,44 +94,44 @@ packages:
|
||||
'@aws-crypto/util@5.2.0':
|
||||
resolution: {integrity: sha512-4RkU9EsI6ZpBve5fseQlGNUWKMa1RLPQ1dnjnQoe07ldfIzcsGb5hC5W0Dm7u423KWzawlrpbjXBrXCEv9zazQ==}
|
||||
|
||||
'@aws-sdk/client-s3@3.873.0':
|
||||
resolution: {integrity: sha512-b+1lSEf+obcC508blw5qEDR1dyTiHViZXbf8G6nFospyqLJS0Vu2py+e+LG2VDVdAouZ8+RvW+uAi73KgsWl0w==}
|
||||
'@aws-sdk/client-s3@3.876.0':
|
||||
resolution: {integrity: sha512-rrdrB0IlHfRaY+qxo87iSPJJxjCZ2WIV0wKi0EWz02yBpq17c0o6Vzc8f1+ksR+IZGkGttQnD2j4UpItMdLSKg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/client-sso@3.873.0':
|
||||
resolution: {integrity: sha512-EmcrOgFODWe7IsLKFTeSXM9TlQ80/BO1MBISlr7w2ydnOaUYIiPGRRJnDpeIgMaNqT4Rr2cRN2RiMrbFO7gDdA==}
|
||||
'@aws-sdk/client-sso@3.876.0':
|
||||
resolution: {integrity: sha512-Vf0PMF7HVpvllrfPODnBZmlz6kT/y2AvOt1RQG3+qD0VrHWzShc5nwgRZ+yyP3xkKVhZsQ3sJapfZTFnjqMOYA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/core@3.873.0':
|
||||
resolution: {integrity: sha512-WrROjp8X1VvmnZ4TBzwM7RF+EB3wRaY9kQJLXw+Aes0/3zRjUXvGIlseobGJMqMEGnM0YekD2F87UaVfot1xeQ==}
|
||||
'@aws-sdk/core@3.876.0':
|
||||
resolution: {integrity: sha512-sVFBFkdoPOPyY13NaXO1E/R9O5J6ixzHnnRbqrbXYM2QQgLNPTKIiRtmVEuVoFV9YULg+/aKm7caix8m468y9w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.873.0':
|
||||
resolution: {integrity: sha512-FWj1yUs45VjCADv80JlGshAttUHBL2xtTAbJcAxkkJZzLRKVkdyrepFWhv/95MvDyzfbT6PgJiWMdW65l/8ooA==}
|
||||
'@aws-sdk/credential-provider-env@3.876.0':
|
||||
resolution: {integrity: sha512-cof7lwp2AlrAfRs0pt4W2KMS2VMBvEmpcti1UOFfSJIqkn+cyJliMJ8LHg22GI+kUexjvxdAqSbf3M7OHvEW+w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.873.0':
|
||||
resolution: {integrity: sha512-0sIokBlXIsndjZFUfr3Xui8W6kPC4DAeBGAXxGi9qbFZ9PWJjn1vt2COLikKH3q2snchk+AsznREZG8NW6ezSg==}
|
||||
'@aws-sdk/credential-provider-http@3.876.0':
|
||||
resolution: {integrity: sha512-wzmef2NBp2+X1l8D4Q8hx1G8oI3+WdvLdPev9VnVpRYZxYGRWVPl++wvCBsCn/ZL0mdWopPkhHA3kFexQhMzvg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.873.0':
|
||||
resolution: {integrity: sha512-bQdGqh47Sk0+2S3C+N46aNQsZFzcHs7ndxYLARH/avYXf02Nl68p194eYFaAHJSQ1re5IbExU1+pbums7FJ9fA==}
|
||||
'@aws-sdk/credential-provider-ini@3.876.0':
|
||||
resolution: {integrity: sha512-JHbW6fqnJsVjGHCyko7B0NVPT1nEAPxkM3CGjUcVGsHgJBkxOLVCMQqTRyHcDdeHR2qeojlLoOHRz97xIHQjYw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.873.0':
|
||||
resolution: {integrity: sha512-+v/xBEB02k2ExnSDL8+1gD6UizY4Q/HaIJkNSkitFynRiiTQpVOSkCkA0iWxzksMeN8k1IHTE5gzeWpkEjNwbA==}
|
||||
'@aws-sdk/credential-provider-node@3.876.0':
|
||||
resolution: {integrity: sha512-eHbNt1+Hi43e8ANnwf6toapLSxfMiyGq459y3Uh6i7NBOiWWKEsOVcgOfUC3RCoqeikxovt1tFM2cEElWUIOhg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.873.0':
|
||||
resolution: {integrity: sha512-ycFv9WN+UJF7bK/ElBq1ugWA4NMbYS//1K55bPQZb2XUpAM2TWFlEjG7DIyOhLNTdl6+CbHlCdhlKQuDGgmm0A==}
|
||||
'@aws-sdk/credential-provider-process@3.876.0':
|
||||
resolution: {integrity: sha512-SMX4OlHvspu3gF4hxe7WAnZFhxpiCye+WlBSVoWfW/i9XNhtrZS1JMr29MK34GlCTk9qO7FlRwds/Z5k7xPpHg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.873.0':
|
||||
resolution: {integrity: sha512-SudkAOZmjEEYgUrqlUUjvrtbWJeI54/0Xo87KRxm4kfBtMqSx0TxbplNUAk8Gkg4XQNY0o7jpG8tK7r2Wc2+uw==}
|
||||
'@aws-sdk/credential-provider-sso@3.876.0':
|
||||
resolution: {integrity: sha512-iP5dz9XqwePbgnh7Bdrq5e1319JpCRKLyomUfHH1XVeXkIHmwIJdmTj1Upeo1J8L/5cLHmhXAN6CTN11bLo8SA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.873.0':
|
||||
resolution: {integrity: sha512-Gw2H21+VkA6AgwKkBtTtlGZ45qgyRZPSKWs0kUwXVlmGOiPz61t/lBX0vG6I06ZIz2wqeTJ5OA1pWZLqw1j0JQ==}
|
||||
'@aws-sdk/credential-provider-web-identity@3.876.0':
|
||||
resolution: {integrity: sha512-q/XSCP1uae5aB9veM8zcm6Gqu6A4ckX9ZbhHgCzURXVJDwp+nINW1hM9vppMjGw3ND9Ibx/adR+KfTI0TDMzqw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-bucket-endpoint@3.873.0':
|
||||
@@ -142,8 +142,8 @@ packages:
|
||||
resolution: {integrity: sha512-GIqoc8WgRcf/opBOZXFLmplJQKwOMjiOMmDz9gQkaJ8FiVJoAp8EGVmK2TOWZMQUYsavvHYsHaor5R2xwPoGVg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-flexible-checksums@3.873.0':
|
||||
resolution: {integrity: sha512-NNiy2Y876P5cgIhsDlHopbPZS3ugdfBW1va0WdpVBviwAs6KT4irPNPAOyF1/33N/niEDKx0fKQV7ROB70nNPA==}
|
||||
'@aws-sdk/middleware-flexible-checksums@3.876.0':
|
||||
resolution: {integrity: sha512-Xfb9/XP0WcQq/yJxUubfzMUF0AYSX10UUIRbCJog0/lnDNocEiGEIaarwuQzoxb9QW9TQ1l5dDc/5bOMa1YVGw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-host-header@3.873.0':
|
||||
@@ -154,44 +154,44 @@ packages:
|
||||
resolution: {integrity: sha512-r+hIaORsW/8rq6wieDordXnA/eAu7xAPLue2InhoEX6ML7irP52BgiibHLpt9R0psiCzIHhju8qqKa4pJOrmiw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-logger@3.873.0':
|
||||
resolution: {integrity: sha512-QhNZ8X7pW68kFez9QxUSN65Um0Feo18ZmHxszQZNUhKDsXew/EG9NPQE/HgYcekcon35zHxC4xs+FeNuPurP2g==}
|
||||
'@aws-sdk/middleware-logger@3.876.0':
|
||||
resolution: {integrity: sha512-cpWJhOuMSyz9oV25Z/CMHCBTgafDCbv7fHR80nlRrPdPZ8ETNsahwRgltXP1QJJ8r3X/c1kwpOR7tc+RabVzNA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-recursion-detection@3.873.0':
|
||||
resolution: {integrity: sha512-OtgY8EXOzRdEWR//WfPkA/fXl0+WwE8hq0y9iw2caNyKPtca85dzrrZWnPqyBK/cpImosrpR1iKMYr41XshsCg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-sdk-s3@3.873.0':
|
||||
resolution: {integrity: sha512-bOoWGH57ORK2yKOqJMmxBV4b3yMK8Pc0/K2A98MNPuQedXaxxwzRfsT2Qw+PpfYkiijrrNFqDYmQRGntxJ2h8A==}
|
||||
'@aws-sdk/middleware-sdk-s3@3.876.0':
|
||||
resolution: {integrity: sha512-h+TDs9EKAfXnrkogQpQz3o11zvs6Vh9+ehxyd35OcM7evnDeoV4GFjjnAKq+MxbBk/5Ewnvng+d6/WQDvMbj7Q==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-ssec@3.873.0':
|
||||
resolution: {integrity: sha512-AF55J94BoiuzN7g3hahy0dXTVZahVi8XxRBLgzNp6yQf0KTng+hb/V9UQZVYY1GZaDczvvvnqC54RGe9OZZ9zQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.873.0':
|
||||
resolution: {integrity: sha512-gHqAMYpWkPhZLwqB3Yj83JKdL2Vsb64sryo8LN2UdpElpS+0fT4yjqSxKTfp7gkhN6TCIxF24HQgbPk5FMYJWw==}
|
||||
'@aws-sdk/middleware-user-agent@3.876.0':
|
||||
resolution: {integrity: sha512-FR+8INfnbNv32QDQ5szxkWX6mB/QgezfNyx8LnAh1ErISZMmEFBxXXir+ZOfuV8vsmal1a6cy9qmnMNDaNnaNQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/nested-clients@3.873.0':
|
||||
resolution: {integrity: sha512-yg8JkRHuH/xO65rtmLOWcd9XQhxX1kAonp2CliXT44eA/23OBds6XoheY44eZeHfCTgutDLTYitvy3k9fQY6ZA==}
|
||||
'@aws-sdk/nested-clients@3.876.0':
|
||||
resolution: {integrity: sha512-R4TZrkM2gUElTsotk8mt3y7iLG8TNi1LL1wgVdEEWSLOYTaFyglGdoNBMtEeP7lmXilaTy00AbYF6BakJvSTHg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/region-config-resolver@3.873.0':
|
||||
resolution: {integrity: sha512-q9sPoef+BBG6PJnc4x60vK/bfVwvRWsPgcoQyIra057S/QGjq5VkjvNk6H8xedf6vnKlXNBwq9BaANBXnldUJg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/s3-request-presigner@3.873.0':
|
||||
resolution: {integrity: sha512-DiVlfCpdR7EaZSNPQwBB1jq8INWezKMWb3BUOWxrOcIcS3p2WpKbYl0H76D6TCHvQzXRVgKSSM6tHuWPoJtUHA==}
|
||||
'@aws-sdk/s3-request-presigner@3.876.0':
|
||||
resolution: {integrity: sha512-Mmj9xZ+NWDxatIsVsQ4986fTpNcPhLbWMX0PcgGLsSd8CnciWFsy06i7LbCzXS6sr6QzLP5Yesfdj+WWxgnFNQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/signature-v4-multi-region@3.873.0':
|
||||
resolution: {integrity: sha512-FQ5OIXw1rmDud7f/VO9y2Mg9rX1o4MnngRKUOD8mS9ALK4uxKrTczb4jA+uJLSLwTqMGs3bcB1RzbMW1zWTMwQ==}
|
||||
'@aws-sdk/signature-v4-multi-region@3.876.0':
|
||||
resolution: {integrity: sha512-OMDcuaVlC2rbze92w4QcNfuEA0IeT2GsT1ByZCwe+Y9tZwxzj7fCiOOU0UmJfa+juuQ/YBzVYxnkrkz3Rg6DEw==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/token-providers@3.873.0':
|
||||
resolution: {integrity: sha512-BWOCeFeV/Ba8fVhtwUw/0Hz4wMm9fjXnMb4Z2a5he/jFlz5mt1/rr6IQ4MyKgzOaz24YrvqsJW2a0VUKOaYDvg==}
|
||||
'@aws-sdk/token-providers@3.876.0':
|
||||
resolution: {integrity: sha512-iU08kaQbhXnY0CC2TBcr7y/2PqPwZP2CTWX/Rbq0NvhOyteikfh7ASC+bRfLUp0XMSHKvSb+w2dh8a0lvx4oHg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@aws-sdk/types@3.862.0':
|
||||
@@ -217,8 +217,8 @@ packages:
|
||||
'@aws-sdk/util-user-agent-browser@3.873.0':
|
||||
resolution: {integrity: sha512-AcRdbK6o19yehEcywI43blIBhOCSo6UgyWcuOJX5CFF8k39xm1ILCjQlRRjchLAxWrm0lU0Q7XV90RiMMFMZtA==}
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.873.0':
|
||||
resolution: {integrity: sha512-9MivTP+q9Sis71UxuBaIY3h5jxH0vN3/ZWGxO8ADL19S2OIfknrYSAfzE5fpoKROVBu0bS4VifHOFq4PY1zsxw==}
|
||||
'@aws-sdk/util-user-agent-node@3.876.0':
|
||||
resolution: {integrity: sha512-/ZIaeUt60JBdI0mNc7sZ8v3Tuzp8Pbe4gIAYnppGyF4KV8QA+Yu8tp2bGHfkKn150t1uvQ6P/4CwFfoGF34dzg==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
peerDependencies:
|
||||
aws-crt: '>=1.0.0'
|
||||
@@ -242,8 +242,8 @@ packages:
|
||||
resolution: {integrity: sha512-+tv3z+SPp+gqTIcImN9o0hqE9xyfQjI1XD9pL6NuKjua9B1y7mNYv0S9cP+QEbA4ppVgGZEmKOvHX5G5Ei1CVA==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
|
||||
'@cloudflare/unenv-preset@2.6.2':
|
||||
resolution: {integrity: sha512-C7/tW7Qy+wGOCmHXu7xpP1TF3uIhRoi7zVY7dmu/SOSGjPilK+lSQ2lIRILulZsT467ZJNlI0jBxMbd8LzkGRg==}
|
||||
'@cloudflare/unenv-preset@2.6.3':
|
||||
resolution: {integrity: sha512-Bj3i0kHAKFh/fViM8RT5ToV7w5Q8bGUR6yw4R0pkNktn559rmBMNf0+hkRmX8BmVH4WTo1Ye79zjkCxnmNt4+g==}
|
||||
peerDependencies:
|
||||
unenv: 2.0.0-rc.19
|
||||
workerd: ^1.20250802.0
|
||||
@@ -251,38 +251,38 @@ packages:
|
||||
workerd:
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20250816.0':
|
||||
resolution: {integrity: sha512-yN1Rga4ufTdrJPCP4gEqfB47i1lWi3teY5IoeQbUuKnjnCtm4pZvXur526JzCmaw60Jx+AEWf5tizdwRd5hHBQ==}
|
||||
'@cloudflare/workerd-darwin-64@1.20250823.0':
|
||||
resolution: {integrity: sha512-yRLJc1cQNqQYcDViOk7kpTXnR5XuBP7B/Ms5KBdlQ6eTr2Vsg9mfKqWKInjzY8/Cx+p+Sic2Tbld42gcYkiM2A==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20250816.0':
|
||||
resolution: {integrity: sha512-WyKPMQhbU+TTf4uDz3SA7ZObspg7WzyJMv/7J4grSddpdx2A4Y4SfPu3wsZleAOIMOAEVi0A1sYDhdltKM7Mxg==}
|
||||
'@cloudflare/workerd-darwin-arm64@1.20250823.0':
|
||||
resolution: {integrity: sha512-KJnikUe6J29Ga1QMPKNCc8eHD56DdBlu5XE5LoBH/AYRrbS5UI1d5F844hUWoFKJb8KRaPIH9F849HZWfNa1vw==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [darwin]
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20250816.0':
|
||||
resolution: {integrity: sha512-NWHOuFnVBaPRhLHw8kjPO9GJmc2P/CTYbnNlNm0EThyi57o/oDx0ldWLJqEHlrdEPOw7zEVGBqM/6M+V9agC6w==}
|
||||
'@cloudflare/workerd-linux-64@1.20250823.0':
|
||||
resolution: {integrity: sha512-4QFXq4eDWEAK5QjGxRe0XUTBax1Fgarc08HETL6q0y/KPZp2nOTLfjLjklTn/qEiztafNFoJEIwhkiknHeOi/g==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20250816.0':
|
||||
resolution: {integrity: sha512-FR+/yhaWs7FhfC3GKsM3+usQVrGEweJ9qyh7p+R6HNwnobgKr/h5ATWvJ4obGJF6ZHHodgSe+gOSYR7fkJ1xAQ==}
|
||||
'@cloudflare/workerd-linux-arm64@1.20250823.0':
|
||||
resolution: {integrity: sha512-sODSrSVe4W/maoBu76qb0sJGBhxhSM2Q2tg/+G7q1IPgRZSzArMKIPrW6nBnmBrrG1O0X6aoAdID6w5hfuEM4g==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [arm64]
|
||||
os: [linux]
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20250816.0':
|
||||
resolution: {integrity: sha512-0lqClj2UMhFa8tCBiiX7Zhd5Bjp0V+X8oNBG6V6WsR9p9/HlIHAGgwRAM7aYkyG+8KC8xlbC89O2AXUXLpHx0g==}
|
||||
'@cloudflare/workerd-windows-64@1.20250823.0':
|
||||
resolution: {integrity: sha512-WaNqUOXUnrcEI+i2NI4+okA9CrJMI9n2XTfVtDg/pLvcA/ZPTz23MEFMZU1splr4SslS1th1NBO38RMPnDB4rA==}
|
||||
engines: {node: '>=16'}
|
||||
cpu: [x64]
|
||||
os: [win32]
|
||||
|
||||
'@cloudflare/workers-types@4.20250822.0':
|
||||
resolution: {integrity: sha512-SR5nxiclSEXS/lVwcfFCS/h7L99VWg0wa2B2CavdTAOwGznwTNcd3vmrrer3LwkqhAUQnDc2aZg3HbRvoh4LYw==}
|
||||
'@cloudflare/workers-types@4.20250826.0':
|
||||
resolution: {integrity: sha512-nAbTVI81wFSxbESRbfGRlfL4WYNvq8T46yr1ukypHL8O2xnbZfQnQhC7ftSBmDqov8HqQSdqcz9jCgLjVh61SQ==}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
resolution: {integrity: sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==}
|
||||
@@ -684,6 +684,7 @@ packages:
|
||||
|
||||
'@simplewebauthn/types@10.0.0':
|
||||
resolution: {integrity: sha512-SFXke7xkgPRowY2E+8djKbdEznTVnD5R6GO7GPTthpHrokLvNKw8C3lFZypTxLI7KkCfGPfhtqB3d7OVGGa9jQ==}
|
||||
deprecated: Package no longer supported. Contact Support at https://www.npmjs.com/support for more info.
|
||||
|
||||
'@sindresorhus/is@7.0.2':
|
||||
resolution: {integrity: sha512-d9xRovfKNz1SKieM0qJdO+PQonjnnIfSNWfHYnBSJ9hkjm0ZPw6HlxscDXYstp3z+7V2GOFHc+J0CYrYTjqCJw==}
|
||||
@@ -913,69 +914,69 @@ packages:
|
||||
'@types/json-schema@7.0.15':
|
||||
resolution: {integrity: sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA==}
|
||||
|
||||
'@types/node@22.17.2':
|
||||
resolution: {integrity: sha512-gL6z5N9Jm9mhY+U2KXZpteb+09zyffliRkZyZOHODGATyC5B1Jt/7TzuuiLkFsSUMLbS1OLmlj/E+/3KF4Q/4w==}
|
||||
'@types/node@22.18.0':
|
||||
resolution: {integrity: sha512-m5ObIqwsUp6BZzyiy4RdZpzWGub9bqLJMvZDD0QMXhxjqMHMENlj+SqF5QxoUwaQNFe+8kz8XM8ZQhqkQPTgMQ==}
|
||||
|
||||
'@types/uuid@9.0.8':
|
||||
resolution: {integrity: sha512-jg+97EGIcY9AGHJJRaaPVgetKDsrTgbRjQ5Msgjh/DQKEFl0DtyRr/VCOyD1T2R1MNeWPK/u7JoGhlDZnKBAfA==}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.40.0':
|
||||
resolution: {integrity: sha512-w/EboPlBwnmOBtRbiOvzjD+wdiZdgFeo17lkltrtn7X37vagKKWJABvyfsJXTlHe6XBzugmYgd4A4nW+k8Mixw==}
|
||||
'@typescript-eslint/eslint-plugin@8.41.0':
|
||||
resolution: {integrity: sha512-8fz6oa6wEKZrhXWro/S3n2eRJqlRcIa6SlDh59FXJ5Wp5XRZ8B9ixpJDcjadHq47hMx0u+HW6SNa6LjJQ6NLtw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
'@typescript-eslint/parser': ^8.40.0
|
||||
'@typescript-eslint/parser': ^8.41.0
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/parser@8.40.0':
|
||||
resolution: {integrity: sha512-jCNyAuXx8dr5KJMkecGmZ8KI61KBUhkCob+SD+C+I5+Y1FWI2Y3QmY4/cxMCC5WAsZqoEtEETVhUiUMIGCf6Bw==}
|
||||
'@typescript-eslint/parser@8.41.0':
|
||||
resolution: {integrity: sha512-gTtSdWX9xiMPA/7MV9STjJOOYtWwIJIYxkQxnSV1U3xcE+mnJSH3f6zI0RYP+ew66WSlZ5ed+h0VCxsvdC1jJg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/project-service@8.40.0':
|
||||
resolution: {integrity: sha512-/A89vz7Wf5DEXsGVvcGdYKbVM9F7DyFXj52lNYUDS1L9yJfqjW/fIp5PgMuEJL/KeqVTe2QSbXAGUZljDUpArw==}
|
||||
'@typescript-eslint/project-service@8.41.0':
|
||||
resolution: {integrity: sha512-b8V9SdGBQzQdjJ/IO3eDifGpDBJfvrNTp2QD9P2BeqWTGrRibgfgIlBSw6z3b6R7dPzg752tOs4u/7yCLxksSQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/scope-manager@8.40.0':
|
||||
resolution: {integrity: sha512-y9ObStCcdCiZKzwqsE8CcpyuVMwRouJbbSrNuThDpv16dFAj429IkM6LNb1dZ2m7hK5fHyzNcErZf7CEeKXR4w==}
|
||||
'@typescript-eslint/scope-manager@8.41.0':
|
||||
resolution: {integrity: sha512-n6m05bXn/Cd6DZDGyrpXrELCPVaTnLdPToyhBoFkLIMznRUQUEQdSp96s/pcWSQdqOhrgR1mzJ+yItK7T+WPMQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.40.0':
|
||||
resolution: {integrity: sha512-jtMytmUaG9d/9kqSl/W3E3xaWESo4hFDxAIHGVW/WKKtQhesnRIJSAJO6XckluuJ6KDB5woD1EiqknriCtAmcw==}
|
||||
'@typescript-eslint/tsconfig-utils@8.41.0':
|
||||
resolution: {integrity: sha512-TDhxYFPUYRFxFhuU5hTIJk+auzM/wKvWgoNYOPcOf6i4ReYlOoYN8q1dV5kOTjNQNJgzWN3TUUQMtlLOcUgdUw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/type-utils@8.40.0':
|
||||
resolution: {integrity: sha512-eE60cK4KzAc6ZrzlJnflXdrMqOBaugeukWICO2rB0KNvwdIMaEaYiywwHMzA1qFpTxrLhN9Lp4E/00EgWcD3Ow==}
|
||||
'@typescript-eslint/type-utils@8.41.0':
|
||||
resolution: {integrity: sha512-63qt1h91vg3KsjVVonFJWjgSK7pZHSQFKH6uwqxAH9bBrsyRhO6ONoKyXxyVBzG1lJnFAJcKAcxLS54N1ee1OQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/types@8.40.0':
|
||||
resolution: {integrity: sha512-ETdbFlgbAmXHyFPwqUIYrfc12ArvpBhEVgGAxVYSwli26dn8Ko+lIo4Su9vI9ykTZdJn+vJprs/0eZU0YMAEQg==}
|
||||
'@typescript-eslint/types@8.41.0':
|
||||
resolution: {integrity: sha512-9EwxsWdVqh42afLbHP90n2VdHaWU/oWgbH2P0CfcNfdKL7CuKpwMQGjwev56vWu9cSKU7FWSu6r9zck6CVfnag==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.40.0':
|
||||
resolution: {integrity: sha512-k1z9+GJReVVOkc1WfVKs1vBrR5MIKKbdAjDTPvIK3L8De6KbFfPFt6BKpdkdk7rZS2GtC/m6yI5MYX+UsuvVYQ==}
|
||||
'@typescript-eslint/typescript-estree@8.41.0':
|
||||
resolution: {integrity: sha512-D43UwUYJmGhuwHfY7MtNKRZMmfd8+p/eNSfFe6tH5mbVDto+VQCayeAt35rOx3Cs6wxD16DQtIKw/YXxt5E0UQ==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/utils@8.40.0':
|
||||
resolution: {integrity: sha512-Cgzi2MXSZyAUOY+BFwGs17s7ad/7L+gKt6Y8rAVVWS+7o6wrjeFN4nVfTpbE25MNcxyJ+iYUXflbs2xR9h4UBg==}
|
||||
'@typescript-eslint/utils@8.41.0':
|
||||
resolution: {integrity: sha512-udbCVstxZ5jiPIXrdH+BZWnPatjlYwJuJkDA4Tbo3WyYLh8NvB+h/bKeSZHDOFKfphsZYJQqaFtLeXEqurQn1A==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
typescript: '>=4.8.4 <6.0.0'
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.40.0':
|
||||
resolution: {integrity: sha512-8CZ47QwalyRjsypfwnbI3hKy5gJDPmrkLjkgMxhi0+DZZ2QNx2naS6/hWoVYUHU7LU2zleF68V9miaVZvhFfTA==}
|
||||
'@typescript-eslint/visitor-keys@8.41.0':
|
||||
resolution: {integrity: sha512-+GeGMebMCy0elMNg67LRNoVnUFPIm37iu5CmHESVx56/9Jsfdpsvbv605DQ81Pi/x11IdKUsS5nzgTYbCQU9fg==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
|
||||
abort-controller@3.0.0:
|
||||
@@ -1021,8 +1022,8 @@ packages:
|
||||
blake3-wasm@2.1.5:
|
||||
resolution: {integrity: sha512-F1+K8EbfOZE49dtoPtmxUQrpXaBIl3ICvasLh+nJta0xkz+9kF/7uet9fLnwKqhDrmj6g+6K3Tw9yQPUg2ka5g==}
|
||||
|
||||
bowser@2.12.0:
|
||||
resolution: {integrity: sha512-HcOcTudTeEWgbHh0Y1Tyb6fdeR71m4b/QACf0D4KswGTsNeIJQmg38mRENZPAYPZvGFN3fk3604XbQEPdxXdKg==}
|
||||
bowser@2.12.1:
|
||||
resolution: {integrity: sha512-z4rE2Gxh7tvshQ4hluIT7XcFrgLIQaw9X3A+kTTRdovCz5PMukm/0QC/BKSYPj3omF5Qfypn9O/c5kgpmvYUCw==}
|
||||
|
||||
brace-expansion@1.1.12:
|
||||
resolution: {integrity: sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==}
|
||||
@@ -1382,8 +1383,8 @@ packages:
|
||||
mimetext@3.0.27:
|
||||
resolution: {integrity: sha512-mUhWAsZD1N/K6dbN4+a5Yq78OPnYQw1ubOSMasBntsLQ2S7KVNlvDEA8dwpr4a7PszWMzeslKahAprtwYMgaBA==}
|
||||
|
||||
miniflare@4.20250816.1:
|
||||
resolution: {integrity: sha512-2X8yMy5wWw0dF1pNU4kztzZgp0jWv2KMqAOOb2FeQ/b11yck4aczmYHi7UYD3uyOgtj8WFhwG/KdRWAaATTtRA==}
|
||||
miniflare@4.20250823.0:
|
||||
resolution: {integrity: sha512-ofQRQ6rb/5P4nsz/J+xptdrN4zvYUm0wuezbKfaxbAGiIVTsM1vd+Pta5MtZwdQ6BKLM9tKMtU0rnbTzy3wntQ==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
|
||||
@@ -1590,8 +1591,8 @@ packages:
|
||||
resolution: {integrity: sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew==}
|
||||
engines: {node: '>= 0.8.0'}
|
||||
|
||||
typescript-eslint@8.40.0:
|
||||
resolution: {integrity: sha512-Xvd2l+ZmFDPEt4oj1QEXzA4A2uUK6opvKu3eGN9aGjB8au02lIVcLyi375w94hHyejTOmzIU77L8ol2sRg9n7Q==}
|
||||
typescript-eslint@8.41.0:
|
||||
resolution: {integrity: sha512-n66rzs5OBXW3SFSnZHr2T685q1i4ODm2nulFJhMZBotaTavsS8TrI3d7bDlRSs9yWo7HmyWrN9qDu14Qv7Y0Dw==}
|
||||
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
|
||||
peerDependencies:
|
||||
eslint: ^8.57.0 || ^9.0.0
|
||||
@@ -1608,8 +1609,8 @@ packages:
|
||||
undici-types@6.21.0:
|
||||
resolution: {integrity: sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==}
|
||||
|
||||
undici@7.14.0:
|
||||
resolution: {integrity: sha512-Vqs8HTzjpQXZeXdpsfChQTlafcMQaaIwnGwLam1wudSSjlJeQ3bw1j+TLPePgrCnCpUXx7Ba5Pdpf5OBih62NQ==}
|
||||
undici@7.15.0:
|
||||
resolution: {integrity: sha512-7oZJCPvvMvTd0OlqWsIxTuItTpJBpU1tcbVl24FMn3xt3+VSunwUasmfPJRE57oNO1KsZ4PgA1xTdAX4hq8NyQ==}
|
||||
engines: {node: '>=20.18.1'}
|
||||
|
||||
unenv@2.0.0-rc.19:
|
||||
@@ -1640,17 +1641,17 @@ packages:
|
||||
worker-mailer@1.1.5:
|
||||
resolution: {integrity: sha512-Yq+LiQ25CHjdQakO3IE/srzYFS94XVQH9e0z30y/NoPyw6vLiLacYDPOBDD9CLpEMhy6vTgLQbsJzFBt9/7E2w==}
|
||||
|
||||
workerd@1.20250816.0:
|
||||
resolution: {integrity: sha512-5gIvHPE/3QVlQR1Sc1NdBkWmqWj/TSgIbY/f/qs9lhiLBw/Da+HbNBTVYGjvwYqEb3NQ+XQM4gAm5b2+JJaUJg==}
|
||||
workerd@1.20250823.0:
|
||||
resolution: {integrity: sha512-95lToK9zeaC7bX5ZmlP/wz6zqoUPBk3hhec1JjEMGZrxsXY9cPRkjWNCcjDctQ17U97vjMcY/ymchgx7w8Cfmg==}
|
||||
engines: {node: '>=16'}
|
||||
hasBin: true
|
||||
|
||||
wrangler@4.32.0:
|
||||
resolution: {integrity: sha512-q7TRSavBW3Eg3pp4rxqKJwSK+u/ieFOBdNvUsq1P1EMmyj3//tN/iXDokFak+dkW0vDYjsVG3PfOfHxU92OS6w==}
|
||||
wrangler@4.33.0:
|
||||
resolution: {integrity: sha512-LIVnW/VePLMca8Y4pKz4ycXc8yPfXwJJnOnpq65fRTh9lR4UAuqHvSNW4Vx4JJI3ZniRZXIM8pb+tSntd5161w==}
|
||||
engines: {node: '>=18.0.0'}
|
||||
hasBin: true
|
||||
peerDependencies:
|
||||
'@cloudflare/workers-types': ^4.20250816.0
|
||||
'@cloudflare/workers-types': ^4.20250823.0
|
||||
peerDependenciesMeta:
|
||||
'@cloudflare/workers-types':
|
||||
optional: true
|
||||
@@ -1729,29 +1730,29 @@ snapshots:
|
||||
'@smithy/util-utf8': 2.3.0
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/client-s3@3.873.0':
|
||||
'@aws-sdk/client-s3@3.876.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.873.0
|
||||
'@aws-sdk/credential-provider-node': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/credential-provider-node': 3.876.0
|
||||
'@aws-sdk/middleware-bucket-endpoint': 3.873.0
|
||||
'@aws-sdk/middleware-expect-continue': 3.873.0
|
||||
'@aws-sdk/middleware-flexible-checksums': 3.873.0
|
||||
'@aws-sdk/middleware-flexible-checksums': 3.876.0
|
||||
'@aws-sdk/middleware-host-header': 3.873.0
|
||||
'@aws-sdk/middleware-location-constraint': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.876.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.873.0
|
||||
'@aws-sdk/middleware-sdk-s3': 3.873.0
|
||||
'@aws-sdk/middleware-sdk-s3': 3.876.0
|
||||
'@aws-sdk/middleware-ssec': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.876.0
|
||||
'@aws-sdk/region-config-resolver': 3.873.0
|
||||
'@aws-sdk/signature-v4-multi-region': 3.873.0
|
||||
'@aws-sdk/signature-v4-multi-region': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-endpoints': 3.873.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.876.0
|
||||
'@aws-sdk/xml-builder': 3.873.0
|
||||
'@smithy/config-resolver': 4.1.5
|
||||
'@smithy/core': 3.8.0
|
||||
@@ -1792,20 +1793,20 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/client-sso@3.873.0':
|
||||
'@aws-sdk/client-sso@3.876.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/middleware-host-header': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.876.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.876.0
|
||||
'@aws-sdk/region-config-resolver': 3.873.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-endpoints': 3.873.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.876.0
|
||||
'@smithy/config-resolver': 4.1.5
|
||||
'@smithy/core': 3.8.0
|
||||
'@smithy/fetch-http-handler': 5.1.1
|
||||
@@ -1835,7 +1836,7 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/core@3.873.0':
|
||||
'@aws-sdk/core@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/xml-builder': 3.873.0
|
||||
@@ -1853,17 +1854,17 @@ snapshots:
|
||||
fast-xml-parser: 5.2.5
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-env@3.873.0':
|
||||
'@aws-sdk/credential-provider-env@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-http@3.873.0':
|
||||
'@aws-sdk/credential-provider-http@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/fetch-http-handler': 5.1.1
|
||||
'@smithy/node-http-handler': 4.1.1
|
||||
@@ -1874,15 +1875,15 @@ snapshots:
|
||||
'@smithy/util-stream': 4.2.4
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-ini@3.873.0':
|
||||
'@aws-sdk/credential-provider-ini@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/credential-provider-env': 3.873.0
|
||||
'@aws-sdk/credential-provider-http': 3.873.0
|
||||
'@aws-sdk/credential-provider-process': 3.873.0
|
||||
'@aws-sdk/credential-provider-sso': 3.873.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.873.0
|
||||
'@aws-sdk/nested-clients': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/credential-provider-env': 3.876.0
|
||||
'@aws-sdk/credential-provider-http': 3.876.0
|
||||
'@aws-sdk/credential-provider-process': 3.876.0
|
||||
'@aws-sdk/credential-provider-sso': 3.876.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.876.0
|
||||
'@aws-sdk/nested-clients': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/credential-provider-imds': 4.0.7
|
||||
'@smithy/property-provider': 4.0.5
|
||||
@@ -1892,14 +1893,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-node@3.873.0':
|
||||
'@aws-sdk/credential-provider-node@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/credential-provider-env': 3.873.0
|
||||
'@aws-sdk/credential-provider-http': 3.873.0
|
||||
'@aws-sdk/credential-provider-ini': 3.873.0
|
||||
'@aws-sdk/credential-provider-process': 3.873.0
|
||||
'@aws-sdk/credential-provider-sso': 3.873.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.873.0
|
||||
'@aws-sdk/credential-provider-env': 3.876.0
|
||||
'@aws-sdk/credential-provider-http': 3.876.0
|
||||
'@aws-sdk/credential-provider-ini': 3.876.0
|
||||
'@aws-sdk/credential-provider-process': 3.876.0
|
||||
'@aws-sdk/credential-provider-sso': 3.876.0
|
||||
'@aws-sdk/credential-provider-web-identity': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/credential-provider-imds': 4.0.7
|
||||
'@smithy/property-provider': 4.0.5
|
||||
@@ -1909,20 +1910,20 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-process@3.873.0':
|
||||
'@aws-sdk/credential-provider-process@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/shared-ini-file-loader': 4.0.5
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/credential-provider-sso@3.873.0':
|
||||
'@aws-sdk/credential-provider-sso@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/client-sso': 3.873.0
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/token-providers': 3.873.0
|
||||
'@aws-sdk/client-sso': 3.876.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/token-providers': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/shared-ini-file-loader': 4.0.5
|
||||
@@ -1931,10 +1932,10 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- aws-crt
|
||||
|
||||
'@aws-sdk/credential-provider-web-identity@3.873.0':
|
||||
'@aws-sdk/credential-provider-web-identity@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/nested-clients': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/nested-clients': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/types': 4.3.2
|
||||
@@ -1959,12 +1960,12 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-flexible-checksums@3.873.0':
|
||||
'@aws-sdk/middleware-flexible-checksums@3.876.0':
|
||||
dependencies:
|
||||
'@aws-crypto/crc32': 5.2.0
|
||||
'@aws-crypto/crc32c': 5.2.0
|
||||
'@aws-crypto/util': 5.2.0
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/is-array-buffer': 4.0.0
|
||||
'@smithy/node-config-provider': 4.1.4
|
||||
@@ -1988,7 +1989,7 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-logger@3.873.0':
|
||||
'@aws-sdk/middleware-logger@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/types': 4.3.2
|
||||
@@ -2001,9 +2002,9 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-sdk-s3@3.873.0':
|
||||
'@aws-sdk/middleware-sdk-s3@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-arn-parser': 3.873.0
|
||||
'@smithy/core': 3.8.0
|
||||
@@ -2024,9 +2025,9 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/middleware-user-agent@3.873.0':
|
||||
'@aws-sdk/middleware-user-agent@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-endpoints': 3.873.0
|
||||
'@smithy/core': 3.8.0
|
||||
@@ -2034,20 +2035,20 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/nested-clients@3.873.0':
|
||||
'@aws-sdk/nested-clients@3.876.0':
|
||||
dependencies:
|
||||
'@aws-crypto/sha256-browser': 5.2.0
|
||||
'@aws-crypto/sha256-js': 5.2.0
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/middleware-host-header': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.873.0
|
||||
'@aws-sdk/middleware-logger': 3.876.0
|
||||
'@aws-sdk/middleware-recursion-detection': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.876.0
|
||||
'@aws-sdk/region-config-resolver': 3.873.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-endpoints': 3.873.0
|
||||
'@aws-sdk/util-user-agent-browser': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.873.0
|
||||
'@aws-sdk/util-user-agent-node': 3.876.0
|
||||
'@smithy/config-resolver': 4.1.5
|
||||
'@smithy/core': 3.8.0
|
||||
'@smithy/fetch-http-handler': 5.1.1
|
||||
@@ -2086,9 +2087,9 @@ snapshots:
|
||||
'@smithy/util-middleware': 4.0.5
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/s3-request-presigner@3.873.0':
|
||||
'@aws-sdk/s3-request-presigner@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/signature-v4-multi-region': 3.873.0
|
||||
'@aws-sdk/signature-v4-multi-region': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@aws-sdk/util-format-url': 3.873.0
|
||||
'@smithy/middleware-endpoint': 4.1.18
|
||||
@@ -2097,19 +2098,19 @@ snapshots:
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/signature-v4-multi-region@3.873.0':
|
||||
'@aws-sdk/signature-v4-multi-region@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-sdk-s3': 3.873.0
|
||||
'@aws-sdk/middleware-sdk-s3': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/protocol-http': 5.1.3
|
||||
'@smithy/signature-v4': 5.1.3
|
||||
'@smithy/types': 4.3.2
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/token-providers@3.873.0':
|
||||
'@aws-sdk/token-providers@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/core': 3.873.0
|
||||
'@aws-sdk/nested-clients': 3.873.0
|
||||
'@aws-sdk/core': 3.876.0
|
||||
'@aws-sdk/nested-clients': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/shared-ini-file-loader': 4.0.5
|
||||
@@ -2150,12 +2151,12 @@ snapshots:
|
||||
dependencies:
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/types': 4.3.2
|
||||
bowser: 2.12.0
|
||||
bowser: 2.12.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@aws-sdk/util-user-agent-node@3.873.0':
|
||||
'@aws-sdk/util-user-agent-node@3.876.0':
|
||||
dependencies:
|
||||
'@aws-sdk/middleware-user-agent': 3.873.0
|
||||
'@aws-sdk/middleware-user-agent': 3.876.0
|
||||
'@aws-sdk/types': 3.862.0
|
||||
'@smithy/node-config-provider': 4.1.4
|
||||
'@smithy/types': 4.3.2
|
||||
@@ -2176,28 +2177,28 @@ snapshots:
|
||||
dependencies:
|
||||
mime: 3.0.0
|
||||
|
||||
'@cloudflare/unenv-preset@2.6.2(unenv@2.0.0-rc.19)(workerd@1.20250816.0)':
|
||||
'@cloudflare/unenv-preset@2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250823.0)':
|
||||
dependencies:
|
||||
unenv: 2.0.0-rc.19
|
||||
optionalDependencies:
|
||||
workerd: 1.20250816.0
|
||||
workerd: 1.20250823.0
|
||||
|
||||
'@cloudflare/workerd-darwin-64@1.20250816.0':
|
||||
'@cloudflare/workerd-darwin-64@1.20250823.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-darwin-arm64@1.20250816.0':
|
||||
'@cloudflare/workerd-darwin-arm64@1.20250823.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-64@1.20250816.0':
|
||||
'@cloudflare/workerd-linux-64@1.20250823.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-linux-arm64@1.20250816.0':
|
||||
'@cloudflare/workerd-linux-arm64@1.20250823.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workerd-windows-64@1.20250816.0':
|
||||
'@cloudflare/workerd-windows-64@1.20250823.0':
|
||||
optional: true
|
||||
|
||||
'@cloudflare/workers-types@4.20250822.0': {}
|
||||
'@cloudflare/workers-types@4.20250826.0': {}
|
||||
|
||||
'@cspotcode/source-map-support@0.8.1':
|
||||
dependencies:
|
||||
@@ -2797,7 +2798,7 @@ snapshots:
|
||||
'@smithy/property-provider': 4.0.5
|
||||
'@smithy/smithy-client': 4.4.10
|
||||
'@smithy/types': 4.3.2
|
||||
bowser: 2.12.0
|
||||
bowser: 2.12.1
|
||||
tslib: 2.8.1
|
||||
|
||||
'@smithy/util-defaults-mode-node@4.0.26':
|
||||
@@ -2870,20 +2871,20 @@ snapshots:
|
||||
|
||||
'@types/json-schema@7.0.15': {}
|
||||
|
||||
'@types/node@22.17.2':
|
||||
'@types/node@22.18.0':
|
||||
dependencies:
|
||||
undici-types: 6.21.0
|
||||
|
||||
'@types/uuid@9.0.8': {}
|
||||
|
||||
'@typescript-eslint/eslint-plugin@8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)':
|
||||
'@typescript-eslint/eslint-plugin@8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@eslint-community/regexpp': 4.12.1
|
||||
'@typescript-eslint/parser': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/scope-manager': 8.40.0
|
||||
'@typescript-eslint/type-utils': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/visitor-keys': 8.40.0
|
||||
'@typescript-eslint/parser': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/scope-manager': 8.41.0
|
||||
'@typescript-eslint/type-utils': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/visitor-keys': 8.41.0
|
||||
eslint: 9.18.0
|
||||
graphemer: 1.4.0
|
||||
ignore: 7.0.5
|
||||
@@ -2893,41 +2894,41 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/parser@8.40.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
'@typescript-eslint/parser@8.41.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@typescript-eslint/scope-manager': 8.40.0
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/typescript-estree': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/visitor-keys': 8.40.0
|
||||
'@typescript-eslint/scope-manager': 8.41.0
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
'@typescript-eslint/typescript-estree': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/visitor-keys': 8.41.0
|
||||
debug: 4.4.1
|
||||
eslint: 9.18.0
|
||||
typescript: 5.4.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/project-service@8.40.0(typescript@5.4.5)':
|
||||
'@typescript-eslint/project-service@8.41.0(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
debug: 4.4.1
|
||||
typescript: 5.4.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/scope-manager@8.40.0':
|
||||
'@typescript-eslint/scope-manager@8.41.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/visitor-keys': 8.40.0
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
'@typescript-eslint/visitor-keys': 8.41.0
|
||||
|
||||
'@typescript-eslint/tsconfig-utils@8.40.0(typescript@5.4.5)':
|
||||
'@typescript-eslint/tsconfig-utils@8.41.0(typescript@5.4.5)':
|
||||
dependencies:
|
||||
typescript: 5.4.5
|
||||
|
||||
'@typescript-eslint/type-utils@8.40.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
'@typescript-eslint/type-utils@8.41.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/typescript-estree': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
'@typescript-eslint/typescript-estree': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
debug: 4.4.1
|
||||
eslint: 9.18.0
|
||||
ts-api-utils: 2.1.0(typescript@5.4.5)
|
||||
@@ -2935,14 +2936,14 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/types@8.40.0': {}
|
||||
'@typescript-eslint/types@8.41.0': {}
|
||||
|
||||
'@typescript-eslint/typescript-estree@8.40.0(typescript@5.4.5)':
|
||||
'@typescript-eslint/typescript-estree@8.41.0(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@typescript-eslint/project-service': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/tsconfig-utils': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/visitor-keys': 8.40.0
|
||||
'@typescript-eslint/project-service': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/tsconfig-utils': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
'@typescript-eslint/visitor-keys': 8.41.0
|
||||
debug: 4.4.1
|
||||
fast-glob: 3.3.3
|
||||
is-glob: 4.0.3
|
||||
@@ -2953,20 +2954,20 @@ snapshots:
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/utils@8.40.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
'@typescript-eslint/utils@8.41.0(eslint@9.18.0)(typescript@5.4.5)':
|
||||
dependencies:
|
||||
'@eslint-community/eslint-utils': 4.7.0(eslint@9.18.0)
|
||||
'@typescript-eslint/scope-manager': 8.40.0
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/typescript-estree': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/scope-manager': 8.41.0
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
'@typescript-eslint/typescript-estree': 8.41.0(typescript@5.4.5)
|
||||
eslint: 9.18.0
|
||||
typescript: 5.4.5
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
|
||||
'@typescript-eslint/visitor-keys@8.40.0':
|
||||
'@typescript-eslint/visitor-keys@8.41.0':
|
||||
dependencies:
|
||||
'@typescript-eslint/types': 8.40.0
|
||||
'@typescript-eslint/types': 8.41.0
|
||||
eslint-visitor-keys: 4.2.1
|
||||
|
||||
abort-controller@3.0.0:
|
||||
@@ -3006,7 +3007,7 @@ snapshots:
|
||||
|
||||
blake3-wasm@2.1.5: {}
|
||||
|
||||
bowser@2.12.0: {}
|
||||
bowser@2.12.1: {}
|
||||
|
||||
brace-expansion@1.1.12:
|
||||
dependencies:
|
||||
@@ -3379,7 +3380,7 @@ snapshots:
|
||||
js-base64: 3.7.8
|
||||
mime-types: 2.1.35
|
||||
|
||||
miniflare@4.20250816.1:
|
||||
miniflare@4.20250823.0:
|
||||
dependencies:
|
||||
'@cspotcode/source-map-support': 0.8.1
|
||||
acorn: 8.14.0
|
||||
@@ -3388,8 +3389,8 @@ snapshots:
|
||||
glob-to-regexp: 0.4.1
|
||||
sharp: 0.33.5
|
||||
stoppable: 1.1.0
|
||||
undici: 7.14.0
|
||||
workerd: 1.20250816.0
|
||||
undici: 7.15.0
|
||||
workerd: 1.20250823.0
|
||||
ws: 8.18.0
|
||||
youch: 4.1.0-beta.10
|
||||
zod: 3.22.3
|
||||
@@ -3596,12 +3597,12 @@ snapshots:
|
||||
dependencies:
|
||||
prelude-ls: 1.2.1
|
||||
|
||||
typescript-eslint@8.40.0(eslint@9.18.0)(typescript@5.4.5):
|
||||
typescript-eslint@8.41.0(eslint@9.18.0)(typescript@5.4.5):
|
||||
dependencies:
|
||||
'@typescript-eslint/eslint-plugin': 8.40.0(@typescript-eslint/parser@8.40.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/parser': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/typescript-estree': 8.40.0(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.40.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/eslint-plugin': 8.41.0(@typescript-eslint/parser@8.41.0(eslint@9.18.0)(typescript@5.4.5))(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/parser': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
'@typescript-eslint/typescript-estree': 8.41.0(typescript@5.4.5)
|
||||
'@typescript-eslint/utils': 8.41.0(eslint@9.18.0)(typescript@5.4.5)
|
||||
eslint: 9.18.0
|
||||
typescript: 5.4.5
|
||||
transitivePeerDependencies:
|
||||
@@ -3613,7 +3614,7 @@ snapshots:
|
||||
|
||||
undici-types@6.21.0: {}
|
||||
|
||||
undici@7.14.0: {}
|
||||
undici@7.15.0: {}
|
||||
|
||||
unenv@2.0.0-rc.19:
|
||||
dependencies:
|
||||
@@ -3644,26 +3645,26 @@ snapshots:
|
||||
|
||||
worker-mailer@1.1.5: {}
|
||||
|
||||
workerd@1.20250816.0:
|
||||
workerd@1.20250823.0:
|
||||
optionalDependencies:
|
||||
'@cloudflare/workerd-darwin-64': 1.20250816.0
|
||||
'@cloudflare/workerd-darwin-arm64': 1.20250816.0
|
||||
'@cloudflare/workerd-linux-64': 1.20250816.0
|
||||
'@cloudflare/workerd-linux-arm64': 1.20250816.0
|
||||
'@cloudflare/workerd-windows-64': 1.20250816.0
|
||||
'@cloudflare/workerd-darwin-64': 1.20250823.0
|
||||
'@cloudflare/workerd-darwin-arm64': 1.20250823.0
|
||||
'@cloudflare/workerd-linux-64': 1.20250823.0
|
||||
'@cloudflare/workerd-linux-arm64': 1.20250823.0
|
||||
'@cloudflare/workerd-windows-64': 1.20250823.0
|
||||
|
||||
wrangler@4.32.0(@cloudflare/workers-types@4.20250822.0):
|
||||
wrangler@4.33.0(@cloudflare/workers-types@4.20250826.0):
|
||||
dependencies:
|
||||
'@cloudflare/kv-asset-handler': 0.4.0
|
||||
'@cloudflare/unenv-preset': 2.6.2(unenv@2.0.0-rc.19)(workerd@1.20250816.0)
|
||||
'@cloudflare/unenv-preset': 2.6.3(unenv@2.0.0-rc.19)(workerd@1.20250823.0)
|
||||
blake3-wasm: 2.1.5
|
||||
esbuild: 0.25.4
|
||||
miniflare: 4.20250816.1
|
||||
miniflare: 4.20250823.0
|
||||
path-to-regexp: 6.3.0
|
||||
unenv: 2.0.0-rc.19
|
||||
workerd: 1.20250816.0
|
||||
workerd: 1.20250823.0
|
||||
optionalDependencies:
|
||||
'@cloudflare/workers-types': 4.20250822.0
|
||||
'@cloudflare/workers-types': 4.20250826.0
|
||||
fsevents: 2.3.3
|
||||
transitivePeerDependencies:
|
||||
- bufferutil
|
||||
|
||||
@@ -14,6 +14,7 @@ api.get('/open_api/settings', async (c) => {
|
||||
const auth = c.req.raw.headers.get("x-custom-auth");
|
||||
needAuth = !auth || !passwords.includes(auth);
|
||||
}
|
||||
|
||||
return c.json({
|
||||
"title": c.env.TITLE,
|
||||
"announcement": utils.getStringValue(c.env.ANNOUNCEMENT),
|
||||
@@ -29,6 +30,7 @@ api.get('/open_api/settings', async (c) => {
|
||||
"adminContact": c.env.ADMIN_CONTACT,
|
||||
"enableUserCreateEmail": utils.getBooleanValue(c.env.ENABLE_USER_CREATE_EMAIL),
|
||||
"disableAnonymousUserCreateEmail": utils.getBooleanValue(c.env.DISABLE_ANONYMOUS_USER_CREATE_EMAIL),
|
||||
"disableCustomAddressName": utils.getBooleanValue(c.env.DISABLE_CUSTOM_ADDRESS_NAME),
|
||||
"enableUserDeleteEmail": utils.getBooleanValue(c.env.ENABLE_USER_DELETE_EMAIL),
|
||||
"enableAutoReply": utils.getBooleanValue(c.env.ENABLE_AUTO_REPLY),
|
||||
"enableIndexAbout": utils.getBooleanValue(c.env.ENABLE_INDEX_ABOUT),
|
||||
|
||||
+36
-6
@@ -8,6 +8,31 @@ import { AdminWebhookSettings, WebhookMail, WebhookSettings } from './models';
|
||||
|
||||
const DEFAULT_NAME_REGEX = /[^a-z0-9]/g;
|
||||
|
||||
export const generateRandomName = (c: Context<HonoCustomType>): string => {
|
||||
// name min length min 1
|
||||
const minLength = Math.max(
|
||||
getIntValue(c.env.MIN_ADDRESS_LEN, 1),
|
||||
1
|
||||
);
|
||||
// name max length min 1
|
||||
const maxLength = Math.max(
|
||||
getIntValue(c.env.MAX_ADDRESS_LEN, 30),
|
||||
1
|
||||
);
|
||||
|
||||
// Build full name recursively until minimum length is reached
|
||||
const buildName = (currentName: string = ""): string => {
|
||||
return currentName.length >= minLength
|
||||
? currentName
|
||||
: buildName(currentName + Math.random().toString(36).substring(2, 15));
|
||||
};
|
||||
|
||||
const fullName = buildName();
|
||||
|
||||
// Return truncated to max length
|
||||
return fullName.substring(0, Math.min(fullName.length, maxLength));
|
||||
};
|
||||
|
||||
const checkNameRegex = (c: Context<HonoCustomType>, name: string) => {
|
||||
let error = null;
|
||||
try {
|
||||
@@ -76,8 +101,8 @@ export const newAddress = async (
|
||||
enableCheckNameRegex?: boolean,
|
||||
}
|
||||
): Promise<{ address: string, jwt: string }> => {
|
||||
// remove special characters
|
||||
name = name.replace(getNameRegex(c), '')
|
||||
// trim whitespace and remove special characters
|
||||
name = name.trim().replace(getNameRegex(c), '')
|
||||
// check name
|
||||
if (enableCheckNameRegex) {
|
||||
await checkNameBlockList(c, name);
|
||||
@@ -102,15 +127,20 @@ export const newAddress = async (
|
||||
}
|
||||
// create address with prefix
|
||||
if (typeof addressPrefix === "string") {
|
||||
name = addressPrefix + name;
|
||||
name = addressPrefix.trim() + name;
|
||||
} else if (enablePrefix) {
|
||||
name = getStringValue(c.env.PREFIX) + name;
|
||||
name = getStringValue(c.env.PREFIX).trim() + name;
|
||||
}
|
||||
// check domain
|
||||
const allowDomains = checkAllowDomains ? await getAllowDomains(c) : getDomains(c);
|
||||
// if domain is not set, use the random domain
|
||||
// if domain is not set, select domain based on environment configuration
|
||||
if (!domain && allowDomains.length > 0) {
|
||||
domain = allowDomains[Math.floor(Math.random() * allowDomains.length)];
|
||||
const createAddressDefaultDomainFirst = getBooleanValue(c.env.CREATE_ADDRESS_DEFAULT_DOMAIN_FIRST);
|
||||
if (createAddressDefaultDomainFirst) {
|
||||
domain = allowDomains[0];
|
||||
} else {
|
||||
domain = allowDomains[Math.floor(Math.random() * allowDomains.length)];
|
||||
}
|
||||
}
|
||||
// check domain is valid
|
||||
if (!domain || !allowDomains.includes(domain)) {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
export const CONSTANTS = {
|
||||
VERSION: 'v' + '1.0.4',
|
||||
VERSION: 'v' + '1.0.5',
|
||||
|
||||
// DB Version
|
||||
DB_VERSION_KEY: 'db_version',
|
||||
|
||||
@@ -2,7 +2,7 @@ import { Context, Hono } from 'hono'
|
||||
|
||||
import i18n from '../i18n';
|
||||
import { getBooleanValue, getJsonSetting, checkCfTurnstile, getStringValue, getSplitStringListValue } from '../utils';
|
||||
import { newAddress, handleListQuery, deleteAddressWithData, getAddressPrefix, getAllowDomains, updateAddressUpdatedAt } from '../common'
|
||||
import { newAddress, handleListQuery, deleteAddressWithData, getAddressPrefix, getAllowDomains, updateAddressUpdatedAt, generateRandomName } from '../common'
|
||||
import { CONSTANTS } from '../constants'
|
||||
import auto_reply from './auto_reply'
|
||||
import webhook_settings from './webhook_settings';
|
||||
@@ -123,9 +123,13 @@ api.post('/api/new_address', async (c) => {
|
||||
} catch (error) {
|
||||
return c.text(msgs.TurnstileCheckFailedMsg, 500)
|
||||
}
|
||||
// if no name, generate random name
|
||||
if (!name) {
|
||||
name = Math.random().toString(36).substring(2, 15);
|
||||
// Check if custom email names are disabled from environment variable
|
||||
const disableCustomAddressName = getBooleanValue(c.env.DISABLE_CUSTOM_ADDRESS_NAME);
|
||||
|
||||
// if no name or custom names are disabled, generate random name
|
||||
if (!name || disableCustomAddressName) {
|
||||
// Generate random name with context-based length configuration
|
||||
name = generateRandomName(c);
|
||||
}
|
||||
// check name block list
|
||||
try {
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import { Context } from "hono";
|
||||
import { Jwt } from "hono/utils/jwt";
|
||||
import { CONSTANTS } from "../constants";
|
||||
import { getIntValue, getJsonSetting } from "../utils";
|
||||
import { deleteAddressWithData, newAddress } from "../common";
|
||||
import { getBooleanValue, getIntValue, getJsonSetting } from "../utils";
|
||||
import { deleteAddressWithData, newAddress, generateRandomName } from "../common";
|
||||
|
||||
export const tgUserNewAddress = async (
|
||||
c: Context<HonoCustomType>, userId: string, address: string
|
||||
@@ -15,21 +15,28 @@ export const tgUserNewAddress = async (
|
||||
throw Error("Rate limit exceeded")
|
||||
}
|
||||
}
|
||||
// @ts-ignore
|
||||
address = address || Math.random().toString(36).substring(2, 15);
|
||||
const [name, domain] = address.includes("@") ? address.split("@") : [address, null];
|
||||
// Check if custom address names are disabled
|
||||
const disableCustomAddressName = getBooleanValue(c.env.DISABLE_CUSTOM_ADDRESS_NAME);
|
||||
|
||||
// Parse address parameter - handle empty or whitespace-only address
|
||||
const trimmedAddress = address ? address.trim() : "";
|
||||
const [name, domain] = trimmedAddress.includes("@") ? trimmedAddress.split("@") : [trimmedAddress, null];
|
||||
const jwtList = await c.env.KV.get<string[]>(`${CONSTANTS.TG_KV_PREFIX}:${userId}`, 'json') || [];
|
||||
if (jwtList.length >= getIntValue(c.env.TG_MAX_ADDRESS, 5)) {
|
||||
throw Error("绑定地址数量已达上限");
|
||||
}
|
||||
// Generate name if disabled or not provided
|
||||
const finalName = (!name || disableCustomAddressName) ? generateRandomName(c) : name;
|
||||
|
||||
// check name block list
|
||||
const value = await getJsonSetting(c, CONSTANTS.ADDRESS_BLOCK_LIST_KEY);
|
||||
const blockList = (value || []) as string[];
|
||||
if (blockList.some((item) => name.includes(item))) {
|
||||
throw Error(`Name[${name}]is blocked`);
|
||||
if (blockList.some((item) => finalName.includes(item))) {
|
||||
throw Error(`Name[${finalName}]is blocked`);
|
||||
}
|
||||
|
||||
const res = await newAddress(c, {
|
||||
name: name || Math.random().toString(36).substring(2, 15),
|
||||
name: finalName,
|
||||
domain,
|
||||
enablePrefix: true
|
||||
});
|
||||
|
||||
@@ -18,7 +18,7 @@ const COMMANDS = [
|
||||
},
|
||||
{
|
||||
command: "new",
|
||||
description: "新建邮箱地址, 如果要自定义邮箱地址, 请输入 /new <name>@<domain>, name [a-z0-9] 有效"
|
||||
description: "新建邮箱地址, 如果要自定义邮箱地址, 请输入 /new, 通过 /new <name>@<domain> 可以指定, name [a-z0-9] 有效, name 为空则随机生成, @<domain> 可选"
|
||||
},
|
||||
{
|
||||
command: "address",
|
||||
|
||||
Vendored
+2
@@ -24,6 +24,8 @@ type Bindings = {
|
||||
MAX_ADDRESS_LEN: string | number | undefined
|
||||
DEFAULT_DOMAINS: string | string[] | undefined
|
||||
DOMAINS: string | string[] | undefined
|
||||
DISABLE_CUSTOM_ADDRESS_NAME: string | boolean | undefined
|
||||
CREATE_ADDRESS_DEFAULT_DOMAIN_FIRST: string | boolean | undefined
|
||||
ADMIN_USER_ROLE: string | undefined
|
||||
USER_DEFAULT_ROLE: string | UserRole | undefined
|
||||
USER_ROLES: string | UserRole[] | undefined
|
||||
|
||||
@@ -35,6 +35,8 @@ PREFIX = "tmp"
|
||||
# (min, max) length of the adderss, if not set, the default is (1, 30)
|
||||
# MIN_ADDRESS_LEN = 1
|
||||
# MAX_ADDRESS_LEN = 30
|
||||
# Disable custom email address name, if set true, users cannot input custom email name, will auto generate
|
||||
# DISABLE_CUSTOM_ADDRESS_NAME = true
|
||||
# IF YOU WANT TO MAKE YOUR SITE PRIVATE, UNCOMMENT THE FOLLOWING LINES
|
||||
# PASSWORDS = ["123", "456"]
|
||||
# For admin panel
|
||||
@@ -43,6 +45,8 @@ PREFIX = "tmp"
|
||||
# DISABLE_ADMIN_PASSWORD_CHECK = false
|
||||
# ADMIN CONTACT, CAN BE ANY STRING
|
||||
# ADMIN_CONTACT = "xx@xx.xxx"
|
||||
# Create new address with default domain first, if set true, will use first domain from DEFAULT_DOMAINS when no domain specified
|
||||
# CREATE_ADDRESS_DEFAULT_DOMAIN_FIRST = false
|
||||
DEFAULT_DOMAINS = ["xxx.xxx1" , "xxx.xxx2"] # domain name for no role users
|
||||
DOMAINS = ["xxx.xxx1" , "xxx.xxx2"] # all domain names
|
||||
# For chinese domain name, you can use DOMAIN_LABELS to show chinese domain name
|
||||
|
||||
Reference in New Issue
Block a user