84 lines
3.2 KiB
JavaScript
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,
|
|
};
|
|
}
|