|
|
|
@ -14,12 +14,19 @@
|
|
|
|
|
LokiFileServerAPI.secureRpcPubKey
|
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
let nextWaitSeconds = 1;
|
|
|
|
|
const checkForUpgrades = async () => {
|
|
|
|
|
const response = await window.tokenlessFileServerAdnAPI.serverRequest(
|
|
|
|
|
const result = await window.tokenlessFileServerAdnAPI.serverRequest(
|
|
|
|
|
'loki/v1/version/client/desktop'
|
|
|
|
|
);
|
|
|
|
|
if (response && response.response) {
|
|
|
|
|
const latestVer = semver.clean(response.response.data[0][0]);
|
|
|
|
|
if (
|
|
|
|
|
result &&
|
|
|
|
|
result.response &&
|
|
|
|
|
result.response.data &&
|
|
|
|
|
result.response.data.length &&
|
|
|
|
|
result.response.data[0].length
|
|
|
|
|
) {
|
|
|
|
|
const latestVer = semver.clean(result.response.data[0][0]);
|
|
|
|
|
if (semver.valid(latestVer)) {
|
|
|
|
|
const ourVersion = window.getVersion();
|
|
|
|
|
if (latestVer === ourVersion) {
|
|
|
|
@ -36,10 +43,11 @@
|
|
|
|
|
}
|
|
|
|
|
} else {
|
|
|
|
|
// give it a minute
|
|
|
|
|
log.warn('Could not check to see if newer version is available');
|
|
|
|
|
log.warn('Could not check to see if newer version is available', result);
|
|
|
|
|
nextWaitSeconds = 60;
|
|
|
|
|
setTimeout(async () => {
|
|
|
|
|
await checkForUpgrades();
|
|
|
|
|
}, 60 * 1000); // wait a minute
|
|
|
|
|
}, nextWaitSeconds * 1000); // wait a minute
|
|
|
|
|
}
|
|
|
|
|
// no message logged means serverRequest never returned...
|
|
|
|
|
};
|
|
|
|
@ -56,22 +64,33 @@
|
|
|
|
|
if (expiredVersion !== null) {
|
|
|
|
|
return res(expiredVersion);
|
|
|
|
|
}
|
|
|
|
|
log.info('Delaying sending checks for 1s, no version yet');
|
|
|
|
|
setTimeout(waitForVersion, 1000);
|
|
|
|
|
log.info(
|
|
|
|
|
'Delaying sending checks for',
|
|
|
|
|
nextWaitSeconds,
|
|
|
|
|
's, no version yet'
|
|
|
|
|
);
|
|
|
|
|
setTimeout(waitForVersion, nextWaitSeconds * 1000);
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
waitForVersion();
|
|
|
|
|
return true;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
// just get current status
|
|
|
|
|
window.extension.expiredStatus = () => expiredVersion;
|
|
|
|
|
// actually wait until we know for sure
|
|
|
|
|
window.extension.expiredPromise = () => new Promise(resolveWhenReady);
|
|
|
|
|
window.extension.expired = cb => {
|
|
|
|
|
if (expiredVersion === null) {
|
|
|
|
|
// just give it another second
|
|
|
|
|
log.info('Delaying expire banner determination for 1s');
|
|
|
|
|
log.info(
|
|
|
|
|
'Delaying expire banner determination for',
|
|
|
|
|
nextWaitSeconds,
|
|
|
|
|
's'
|
|
|
|
|
);
|
|
|
|
|
setTimeout(() => {
|
|
|
|
|
window.extension.expired(cb);
|
|
|
|
|
}, 1000);
|
|
|
|
|
}, nextWaitSeconds * 1000);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
// yes we know
|
|
|
|
|