refactor(signal): split uuid helper from monitor

This commit is contained in:
Vincent Koc
2026-04-04 02:34:07 +09:00
parent c4eaa30ee7
commit 022a24ec48
4 changed files with 18 additions and 20 deletions

View File

@@ -5,7 +5,7 @@ import {
import { normalizeSignalMessagingTarget } from "openclaw/plugin-sdk/channel-targets";
import { normalizeE164 } from "openclaw/plugin-sdk/text-runtime";
import { resolveSignalAccount } from "./accounts.js";
import { looksLikeUuid } from "./identity.js";
import { looksLikeUuid } from "./uuid.js";
function normalizeSignalApproverId(value: string | number): string | undefined {
const normalized = normalizeSignalMessagingTarget(String(value));

View File

@@ -1,5 +1,6 @@
import { evaluateSenderGroupAccessForPolicy } from "openclaw/plugin-sdk/group-access";
import { normalizeE164 } from "openclaw/plugin-sdk/text-runtime";
import { looksLikeUuid } from "./uuid.js";
export type SignalSender =
| { kind: "phone"; raw: string; e164: string }
@@ -10,19 +11,7 @@ type SignalAllowEntry =
| { kind: "phone"; e164: string }
| { kind: "uuid"; raw: string };
const UUID_HYPHENATED_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
const UUID_COMPACT_RE = /^[0-9a-f]{32}$/i;
export function looksLikeUuid(value: string): boolean {
if (UUID_HYPHENATED_RE.test(value) || UUID_COMPACT_RE.test(value)) {
return true;
}
const compact = value.replace(/-/g, "");
if (!/^[0-9a-f]+$/i.test(compact)) {
return false;
}
return /[a-f]/i.test(compact);
}
export { looksLikeUuid } from "./uuid.js";
function stripSignalPrefix(value: string): string {
return value.replace(/^signal:/i, "").trim();

View File

@@ -1,10 +1,6 @@
import { type RoutePeer } from "openclaw/plugin-sdk/routing";
import {
looksLikeUuid,
resolveSignalPeerId,
resolveSignalRecipient,
resolveSignalSender,
} from "./identity.js";
import { resolveSignalPeerId, resolveSignalRecipient, resolveSignalSender } from "./identity.js";
import { looksLikeUuid } from "./uuid.js";
export type ResolvedSignalOutboundTarget = {
peer: RoutePeer;

View File

@@ -0,0 +1,13 @@
const UUID_HYPHENATED_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
const UUID_COMPACT_RE = /^[0-9a-f]{32}$/i;
export function looksLikeUuid(value: string): boolean {
if (UUID_HYPHENATED_RE.test(value) || UUID_COMPACT_RE.test(value)) {
return true;
}
const compact = value.replace(/-/g, "");
if (!/^[0-9a-f]+$/i.test(compact)) {
return false;
}
return /[a-f]/i.test(compact);
}