Files
Desktop/ts/util/isRelinkingToSameAccount.std.ts
2026-05-05 15:57:18 -04:00

61 lines
1.3 KiB
TypeScript

// Copyright 2026 Signal Messenger, LLC
// SPDX-License-Identifier: AGPL-3.0-only
import { createLogger } from '../logging/log.std.ts';
import type { AciString, PniString } from '../types/ServiceId.std.ts';
const log = createLogger('isRelinkingToSameAccount');
export function isCleanStart({
existingAci,
existingPni,
existingNumber,
registrationEverDone,
}: {
existingAci: AciString | undefined;
existingPni: PniString | undefined;
existingNumber: string | undefined;
registrationEverDone: boolean;
}): boolean {
return (
existingAci == null &&
existingPni == null &&
existingNumber == null &&
!registrationEverDone
);
}
export function isRelinkingToSameAccount({
newAci,
newNumber,
previousAci,
previousNumber,
}: {
newAci: AciString;
newNumber: string | undefined;
previousAci: AciString | undefined;
previousNumber: string | undefined;
}): boolean {
if (!previousAci && !previousNumber) {
return false;
}
if (!previousAci) {
log.warn('no previous ACI, only a number');
if (previousNumber === newNumber) {
return true;
}
log.warn('new E164 is different');
return false;
}
if (newAci === previousAci) {
return true;
}
log.warn('new ACI is different');
return false;
}