

























@@ -29,7 +29,7 @@ function parseList(raw: string | string[] | undefined): string[] {
2929return [];
3030}
3131return (Array.isArray(raw) ? raw : normalizeStringEntries(raw.split(",")))
32-.map((entry) => normalizeSmsAllowFrom(String(entry)))
32+.map((entry) => normalizeSmsAllowFrom(entry))
3333.filter(Boolean);
3434}
3535@@ -83,17 +83,21 @@ export function resolveSmsAccount(
8383): ResolvedSmsAccount {
8484const channelCfg = getChannelConfig(cfg) ?? {};
8585const id = normalizeOptionalAccountId(accountId) ?? resolveDefaultSmsAccountId(cfg);
86-const accountConfig = resolveAccountEntry(
87-channelCfg.accounts as
88-| Record<string, Partial<Record<string, unknown> & SmsChannelConfig>>
89-| undefined,
90-id,
91-);
86+const accountConfig = resolveAccountEntry(channelCfg.accounts, id);
87+const channelConfig: Record<string, unknown> & SmsChannelConfig = { ...channelCfg };
88+const accountEntries:
89+| Record<string, Partial<Record<string, unknown> & SmsChannelConfig>>
90+| undefined = channelCfg.accounts
91+ ? Object.fromEntries(
92+Object.entries(channelCfg.accounts).map(([accountKey, account]) => [
93+accountKey,
94+{ ...account },
95+]),
96+)
97+ : undefined;
9298const merged = resolveMergedAccountConfig<Record<string, unknown> & SmsChannelConfig>({
93-channelConfig: channelCfg as Record<string, unknown> & SmsChannelConfig,
94-accounts: channelCfg.accounts as
95-| Record<string, Partial<Record<string, unknown> & SmsChannelConfig>>
96-| undefined,
99+ channelConfig,
100+accounts: accountEntries,
97101accountId: id,
98102omitKeys: ["defaultAccount"],
99103});
@@ -115,8 +119,8 @@ export function resolveSmsAccount(
115119 ? process.env.SMS_DANGEROUSLY_DISABLE_SIGNATURE_VALIDATION
116120 : undefined;
117121118-const webhookPath = String(merged.webhookPath ?? envWebhookPath ?? DEFAULT_WEBHOOK_PATH).trim();
119-const publicWebhookUrl = String(merged.publicWebhookUrl ?? envPublicWebhookUrl ?? "").trim();
122+const webhookPath = (merged.webhookPath ?? envWebhookPath ?? DEFAULT_WEBHOOK_PATH).trim();
123+const publicWebhookUrl = (merged.publicWebhookUrl ?? envPublicWebhookUrl ?? "").trim();
120124const authToken =
121125normalizeResolvedSecretInputString({
122126value: merged.authToken ?? envAuthToken,
@@ -128,11 +132,11 @@ export function resolveSmsAccount(
128132return {
129133accountId: id,
130134enabled: channelCfg.enabled !== false && accountConfig?.enabled !== false,
131-accountSid: String(merged.accountSid ?? envAccountSid ?? "").trim(),
135+accountSid: (merged.accountSid ?? envAccountSid ?? "").trim(),
132136 authToken,
133-fromNumber: normalizeSmsPhoneNumber(String(merged.fromNumber ?? envFromNumber ?? "")),
134-messagingServiceSid: String(merged.messagingServiceSid ?? envMessagingServiceSid ?? "").trim(),
135-defaultTo: normalizeSmsPhoneNumber(String(merged.defaultTo ?? "")),
137+fromNumber: normalizeSmsPhoneNumber(merged.fromNumber ?? envFromNumber ?? ""),
138+messagingServiceSid: (merged.messagingServiceSid ?? envMessagingServiceSid ?? "").trim(),
139+defaultTo: normalizeSmsPhoneNumber(merged.defaultTo ?? ""),
136140webhookPath: webhookPath || DEFAULT_WEBHOOK_PATH,
137141 publicWebhookUrl,
138142dangerouslyDisableSignatureValidation:
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。