UNPKG

@signalapp/mock-server

Version:
130 lines (129 loc) 5.91 kB
"use strict"; // Copyright 2022 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.BackupMediaBatchSchema = exports.SetBackupKeySchema = exports.BackupHeadersSchema = exports.SetBackupIdSchema = exports.DeleteCallLinkSchema = exports.UpdateCallLinkSchema = exports.CreateCallLinkSchema = exports.CreateCallLinkAuthSchema = exports.PutUsernameLinkSchema = exports.UsernameConfirmationSchema = exports.UsernameReservationSchema = exports.GroupStateSchema = exports.AtomicLinkingDataSchema = exports.MessageListSchema = exports.MessageSchema = exports.DeviceKeysSchema = exports.DeviceIdSchema = exports.RegistrationIdSchema = exports.ServiceIdSchema = exports.PniSchema = exports.AciSchema = exports.PositiveInt = void 0; const zod_1 = __importDefault(require("zod")); const util_1 = require("../util"); exports.PositiveInt = zod_1.default.coerce.number().int().nonnegative(); exports.AciSchema = zod_1.default.string().transform((x) => x); exports.PniSchema = zod_1.default .string() .refine((x) => x.startsWith('PNI:')) .transform((x) => x); exports.ServiceIdSchema = zod_1.default .string() .transform((x) => x); exports.RegistrationIdSchema = zod_1.default .number() .transform((x) => x); exports.DeviceIdSchema = zod_1.default.number().transform((x) => x); const PreKeySchema = zod_1.default.object({ keyId: zod_1.default.number(), publicKey: zod_1.default.string(), }); const SignedPreKeySchema = zod_1.default.object({ keyId: zod_1.default.number(), publicKey: zod_1.default.string(), signature: zod_1.default.string(), }); exports.DeviceKeysSchema = zod_1.default.object({ preKeys: PreKeySchema.array(), pqPreKeys: SignedPreKeySchema.array().optional(), pqLastResortPreKey: SignedPreKeySchema.optional(), signedPreKey: SignedPreKeySchema.optional(), }); exports.MessageSchema = zod_1.default.object({ // NOTE: Envelope.Type type: zod_1.default.number(), destinationDeviceId: exports.DeviceIdSchema, destinationRegistrationId: exports.RegistrationIdSchema, content: zod_1.default.string(), }); exports.MessageListSchema = zod_1.default.object({ messages: exports.MessageSchema.array(), timestamp: zod_1.default.number(), }); exports.AtomicLinkingDataSchema = zod_1.default.object({ verificationCode: zod_1.default.string(), accountAttributes: zod_1.default.object({ fetchesMessages: zod_1.default.boolean(), registrationId: exports.RegistrationIdSchema, pniRegistrationId: exports.RegistrationIdSchema, name: zod_1.default.string(), }), aciSignedPreKey: SignedPreKeySchema, pniSignedPreKey: SignedPreKeySchema, aciPqLastResortPreKey: SignedPreKeySchema, pniPqLastResortPreKey: SignedPreKeySchema, }); exports.GroupStateSchema = zod_1.default.object({ publicKey: zod_1.default.instanceof(Uint8Array), version: zod_1.default.literal(0), accessControl: zod_1.default.object({ attributes: zod_1.default.number(), members: zod_1.default.number(), addFromInviteLink: zod_1.default.number(), }), members: zod_1.default.unknown().array().min(1), }); exports.UsernameReservationSchema = zod_1.default.object({ usernameHashes: zod_1.default .string() .transform(util_1.fromURLSafeBase64) .array() .min(1) .max(20), }); exports.UsernameConfirmationSchema = zod_1.default.object({ usernameHash: zod_1.default.string().transform(util_1.fromURLSafeBase64), zkProof: zod_1.default.string().transform(util_1.fromURLSafeBase64), encryptedUsername: zod_1.default.string().transform(util_1.fromURLSafeBase64).optional(), }); exports.PutUsernameLinkSchema = zod_1.default.object({ usernameLinkEncryptedValue: zod_1.default.string().transform(util_1.fromURLSafeBase64), }); exports.CreateCallLinkAuthSchema = zod_1.default.object({ createCallLinkCredentialRequest: zod_1.default.string().transform(util_1.fromBase64), }); exports.CreateCallLinkSchema = zod_1.default.object({ adminPasskey: zod_1.default.string().transform(util_1.fromBase64), zkparams: zod_1.default.string().transform(util_1.fromBase64), }); exports.UpdateCallLinkSchema = zod_1.default.object({ adminPasskey: zod_1.default.string().transform(util_1.fromBase64), name: zod_1.default.string().optional(), restrictions: zod_1.default.enum(['none', 'adminApproval']).optional(), revoked: zod_1.default.boolean().optional(), }); exports.DeleteCallLinkSchema = zod_1.default.object({ adminPasskey: zod_1.default.string().transform(util_1.fromBase64), }); exports.SetBackupIdSchema = zod_1.default.object({ messagesBackupAuthCredentialRequest: zod_1.default.string().transform(util_1.fromBase64), mediaBackupAuthCredentialRequest: zod_1.default.string().transform(util_1.fromBase64), }); exports.BackupHeadersSchema = zod_1.default.object({ 'x-signal-zk-auth': zod_1.default.string().transform(util_1.fromBase64), 'x-signal-zk-auth-signature': zod_1.default.string().transform(util_1.fromBase64), }); exports.SetBackupKeySchema = zod_1.default.object({ backupIdPublicKey: zod_1.default.string().transform(util_1.fromBase64), }); exports.BackupMediaBatchSchema = zod_1.default.object({ items: zod_1.default .object({ sourceAttachment: zod_1.default.object({ cdn: zod_1.default.number(), key: zod_1.default.string(), }), objectLength: zod_1.default.number(), mediaId: zod_1.default.string(), hmacKey: zod_1.default.string().transform(util_1.fromBase64), encryptionKey: zod_1.default.string().transform(util_1.fromBase64), }) .array(), });