// Copyright 2020 Signal Messenger, LLC // SPDX-License-Identifier: AGPL-3.0-only import semver from 'semver'; type RemoteVersion = { 'min-version': string; iso8601: string; }; export function parseRemoteClientExpiration( remoteExpirationValue: string ): number | null { const remoteVersions = JSON.parse(remoteExpirationValue) || []; const ourVersion = window.getVersion(); return remoteVersions.reduce( (acc: number | null, remoteVersion: RemoteVersion) => { const minVersion = remoteVersion['min-version']; const { iso8601 } = remoteVersion; if (semver.gt(minVersion, ourVersion)) { const timestamp = new Date(iso8601).getTime(); if (!acc) { return timestamp; } return timestamp < acc ? timestamp : acc; } return acc; }, null ); }