export function mergeAllowFromSources(params: { allowFrom?: Array; storeAllowFrom?: string[]; dmPolicy?: string; }): string[] { const storeEntries = params.dmPolicy === "allowlist" ? [] : (params.storeAllowFrom ?? []); return [...(params.allowFrom ?? []), ...storeEntries] .map((value) => String(value).trim()) .filter(Boolean); } export function firstDefined(...values: Array) { for (const value of values) { if (typeof value !== "undefined") { return value; } } return undefined; } export function isSenderIdAllowed( allow: { entries: string[]; hasWildcard: boolean; hasEntries: boolean }, senderId: string | undefined, allowWhenEmpty: boolean, ): boolean { if (!allow.hasEntries) { return allowWhenEmpty; } if (allow.hasWildcard) { return true; } if (!senderId) { return false; } return allow.entries.includes(senderId); }