From 3ef2d8cf056306d805c9828ff27f992ee47e7230 Mon Sep 17 00:00:00 2001 From: VectorPeak Date: Mon, 20 Jul 2026 17:29:06 +0800 Subject: [PATCH] fix(sms): trim prefixed phone number spacing (#111111) Co-authored-by: chatgpt-codex-connector[bot] <199175422+chatgpt-codex-connector[bot]@users.noreply.github.com> Co-authored-by: Peter Steinberger --- extensions/sms/src/phone.test.ts | 4 ++++ extensions/sms/src/phone.ts | 5 ++++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/extensions/sms/src/phone.test.ts b/extensions/sms/src/phone.test.ts index d1e8f731e3a4..d70a51af2972 100644 --- a/extensions/sms/src/phone.test.ts +++ b/extensions/sms/src/phone.test.ts @@ -9,14 +9,18 @@ import { describe("SMS phone normalization", () => { it("normalizes sms-prefixed E.164 phone numbers", () => { expect(normalizeSmsPhoneNumber("sms:+1 (555) 123-4567")).toBe("+15551234567"); + expect(normalizeSmsPhoneNumber("sms: +1 (555) 123-4567")).toBe("+15551234567"); expect(normalizeSmsPhoneNumber("twilio-sms:+1 (555) 123-4567")).toBe("+15551234567"); + expect(normalizeSmsPhoneNumber("twilio-sms: +1 (555) 123-4567")).toBe("+15551234567"); expect(normalizeSmsAllowFrom("SMS:+44 20 7946 0958")).toBe("+442079460958"); + expect(normalizeSmsAllowFrom("SMS: +44 20 7946 0958")).toBe("+442079460958"); expect(normalizeSmsAllowFrom("*")).toBe("*"); }); it("validates E.164-ish SMS targets", () => { expect(looksLikeSmsPhoneNumber("+15551234567")).toBe(true); expect(looksLikeSmsPhoneNumber("15551234567")).toBe(true); + expect(looksLikeSmsPhoneNumber("sms: +1 (555) 123-4567")).toBe(true); expect(looksLikeSmsPhoneNumber("+01234567")).toBe(false); expect(looksLikeSmsPhoneNumber("+1555")).toBe(false); }); diff --git a/extensions/sms/src/phone.ts b/extensions/sms/src/phone.ts index e6852cba2607..e19f099365d9 100644 --- a/extensions/sms/src/phone.ts +++ b/extensions/sms/src/phone.ts @@ -1,6 +1,9 @@ // Sms plugin module implements phone behavior. export function normalizeSmsPhoneNumber(raw: string): string { - const trimmed = raw.trim().replace(/^(?:sms|twilio-sms):/i, ""); + const trimmed = raw + .trim() + .replace(/^(?:sms|twilio-sms):/i, "") + .trim(); if (!trimmed) { return ""; }