diff --git a/lib/types/messages/unsupported.js b/lib/types/messages/unsupported.js --- a/lib/types/messages/unsupported.js +++ b/lib/types/messages/unsupported.js @@ -2,6 +2,10 @@ import t, { type TInterface } from 'tcomb'; +import { rawChangeRoleMessageInfoValidator } from './change-role.js'; +import { rawEditMessageInfoValidator } from './edit.js'; +import { rawMediaMessageInfoValidator } from './media.js'; +import { rawUpdateRelationshipMessageInfoValidator } from './update-relationship.js'; import { tID, tNumber, tShape } from '../../utils/validation-utils.js'; import { messageTypes } from '../message-types-enum.js'; import type { RelativeUserInfo } from '../user-types.js'; @@ -26,7 +30,18 @@ time: t.Number, robotext: t.String, dontPrefixCreator: t.maybe(t.Boolean), - unsupportedMessageInfo: t.Object, + unsupportedMessageInfo: t.union([ + // We include these four validators here to make sure that the keyserver + // does ID conversion on unsupportedMessageInfo when it's one of these + // types. These are the types whose message speces have shimming logic + // that targets codeVersions that have been released after ID conversion + // was introduced. + rawUpdateRelationshipMessageInfoValidator, + rawChangeRoleMessageInfoValidator, + rawEditMessageInfoValidator, + rawMediaMessageInfoValidator, + t.Object, + ]), }); export type UnsupportedMessageInfo = {