Files
ai-code-app/src/app/main/notificationIdentity.js

84 lines
3.2 KiB
JavaScript

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY = exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY = void 0;
exports.buildScopedPwaNotificationTargetId = buildScopedPwaNotificationTargetId;
exports.getSavedNotificationDeviceId = getSavedNotificationDeviceId;
exports.getSavedPwaNotificationToken = getSavedPwaNotificationToken;
exports.setSavedPwaNotificationToken = setSavedPwaNotificationToken;
exports.clearNotificationIdentity = clearNotificationIdentity;
exports.getAutomationNotificationPreferenceTarget = getAutomationNotificationPreferenceTarget;
var clientIdentity_1 = require("./clientIdentity");
exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY = 'work-server.notification.device-id';
exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY = 'work-server.notification.pwa-token';
function buildScopedPwaNotificationTargetId(token, clientId) {
return [token.trim(), clientId.trim()].filter(Boolean).join('::client::');
}
function getSavedNotificationDeviceId() {
if (typeof window === 'undefined') {
return '';
}
var clientId = (0, clientIdentity_1.getOrCreateClientId)();
if (clientId) {
window.localStorage.setItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY, clientId);
return clientId;
}
var saved = window.localStorage.getItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY);
if (saved) {
return saved;
}
var generated = "web-".concat(Date.now());
window.localStorage.setItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY, generated);
return generated;
}
function getSavedPwaNotificationToken() {
var _a, _b;
if (typeof window === 'undefined') {
return '';
}
return (_b = (_a = window.localStorage.getItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY)) === null || _a === void 0 ? void 0 : _a.trim()) !== null && _b !== void 0 ? _b : '';
}
function setSavedPwaNotificationToken(token) {
var _a;
if (typeof window === 'undefined') {
return;
}
var normalizedToken = (_a = token === null || token === void 0 ? void 0 : token.trim()) !== null && _a !== void 0 ? _a : '';
if (normalizedToken) {
window.localStorage.setItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY, normalizedToken);
}
else {
window.localStorage.removeItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY);
}
}
function clearNotificationIdentity() {
if (typeof window === 'undefined') {
return;
}
window.localStorage.removeItem(exports.NOTIFICATION_DEVICE_ID_STORAGE_KEY);
window.localStorage.removeItem(exports.PWA_NOTIFICATION_TOKEN_STORAGE_KEY);
(0, clientIdentity_1.clearClientId)();
}
function getAutomationNotificationPreferenceTarget() {
var pwaToken = getSavedPwaNotificationToken();
var clientId = getSavedNotificationDeviceId();
if (pwaToken && clientId) {
return {
targetKind: 'ios-token-client',
targetId: buildScopedPwaNotificationTargetId(pwaToken, clientId),
};
}
if (pwaToken) {
return {
targetKind: 'ios-token',
targetId: pwaToken,
};
}
if (!clientId) {
return null;
}
return {
targetKind: 'client',
targetId: clientId,
};
}