imMessageNormalize
IM 消息/会话行归一化、时间排序与 sender_seq 补全。
函数签名
typescript
function normalizeOptionalIso8601(input?: string): string | undefined
function parseImMessageTimeFieldToMs(raw: unknown): number
function shouldPreferClientSentAtForImMessageSort(m: ImMessage): boolean
function coerceImMessageTimeMsOutboundAware(m: ImMessage): number
function coerceMessageTimeMsForSort(m: ImMessage): number
function compareMessageIdAsc(a: string | number, b: string | number): number
function sortMessagesChronologicalAsc(messages: ImMessage[]): void
function coerceMessageCreatedAtMsForSort(m: ImMessage): number
function sortMessagesChronologicalByCreatedAtAsc(messages: ImMessage[]): void
function ensureSenderSeqChronological(messages: ImMessage[]): void
function normalizeMessageId(raw: unknown): string | number | null
function normalizeDatabaseMessageToIm(item: ImDbMessageRow): ImMessage
function normalizeDatabaseConversationToIm(
item: ImDbConversationRow,
): Conversation使用场景
- 仓储行 →
ImMessage/Conversation领域对象 - 消息列表按时间正序排列(与 DB
created_at或server_sent_at策略对齐)