ts-mls
Version:
[](https://github.com/LukaJCB/ts-mls/actions/workflows/ci.yml) [](https://badge.fury.io/js/ts-mls) [ => [msg.wireformat, msg.publicMessage]);
export const encodeMlsPublicMessage = encode(mlsPublicMessageEncoder);
export const mlsWelcomeEncoder = contramapBufferEncoders([wireformatEncoder, welcomeEncoder], (wm) => [wm.wireformat, wm.welcome]);
export const encodeMlsWelcome = encode(mlsWelcomeEncoder);
export const mlsPrivateMessageEncoder = contramapBufferEncoders([wireformatEncoder, privateMessageEncoder], (pm) => [pm.wireformat, pm.privateMessage]);
export const encodeMlsPrivateMessage = encode(mlsPrivateMessageEncoder);
export const mlsGroupInfoEncoder = contramapBufferEncoders([wireformatEncoder, groupInfoEncoder], (gi) => [gi.wireformat, gi.groupInfo]);
export const encodeMlsGroupInfo = encode(mlsGroupInfoEncoder);
export const mlsKeyPackageEncoder = contramapBufferEncoders([wireformatEncoder, keyPackageEncoder], (kp) => [kp.wireformat, kp.keyPackage]);
export const encodeMlsKeyPackage = encode(mlsKeyPackageEncoder);
export const mlsMessageContentEncoder = (mc) => {
switch (mc.wireformat) {
case "mls_public_message":
return mlsPublicMessageEncoder(mc);
case "mls_welcome":
return mlsWelcomeEncoder(mc);
case "mls_private_message":
return mlsPrivateMessageEncoder(mc);
case "mls_group_info":
return mlsGroupInfoEncoder(mc);
case "mls_key_package":
return mlsKeyPackageEncoder(mc);
}
};
export const encodeMlsMessageContent = encode(mlsMessageContentEncoder);
export const decodeMlsMessageContent = flatMapDecoder(decodeWireformat, (wireformat) => {
switch (wireformat) {
case "mls_public_message":
return mapDecoder(decodePublicMessage, (publicMessage) => ({ wireformat, publicMessage }));
case "mls_welcome":
return mapDecoder(decodeWelcome, (welcome) => ({ wireformat, welcome }));
case "mls_private_message":
return mapDecoder(decodePrivateMessage, (privateMessage) => ({ wireformat, privateMessage }));
case "mls_group_info":
return mapDecoder(decodeGroupInfo, (groupInfo) => ({ wireformat, groupInfo }));
case "mls_key_package":
return mapDecoder(decodeKeyPackage, (keyPackage) => ({ wireformat, keyPackage }));
}
});
export const mlsMessageEncoder = contramapBufferEncoders([protocolVersionEncoder, mlsMessageContentEncoder], (w) => [w.version, w]);
export const encodeMlsMessage = encode(mlsMessageEncoder);
export const decodeMlsMessage = mapDecoders([decodeProtocolVersion, decodeMlsMessageContent], (version, mc) => ({ ...mc, version }));
//# sourceMappingURL=message.js.map