{"version":3,"file":"fikoyt-shared-push.service-BzAcfiMe.mjs","sources":["../../../projects/shared/src/lib/service/servisler/push.service.ts"],"sourcesContent":["import { Injectable, signal } from '@angular/core';\nimport { FikoYTIstekKok } from '@/src/service/modules/fikoyt-istek-kok/fikoyt.istek.makinesi.service';\n\n@Injectable({ providedIn: 'root' })\nexport class PushService {\n private registration: ServiceWorkerRegistration | null = null;\n private subscription: PushSubscription | null = null;\n abone = signal(false);\n destekleniyor = signal(false);\n\n constructor() { this.init(); }\n\n private async init() {\n if (!('serviceWorker' in navigator) || !('PushManager' in window)) return;\n this.destekleniyor.set(true);\n try {\n this.registration = (await navigator.serviceWorker.getRegistration('/')) ?? null;\n if (!this.registration) {\n this.registration = await navigator.serviceWorker.register('/push-sw.js', { scope: '/' });\n }\n this.subscription = await this.registration.pushManager.getSubscription();\n this.abone.set(!!this.subscription);\n } catch (e) {\n console.warn('[Push] SW register basarisiz:', e);\n }\n }\n\n async aboneOl(): Promise {\n if (!this.registration) return false;\n try {\n const vapidKey = await this.vapidKeyAl();\n if (!vapidKey) return false;\n\n const sub = await this.registration.pushManager.subscribe({\n userVisibleOnly: true,\n applicationServerKey: this.urlBase64ToUint8Array(vapidKey).buffer as ArrayBuffer,\n });\n this.subscription = sub;\n\n const json = sub.toJSON();\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.push.abonelik-kaydet' });\n istek.parametreler = {\n endpoint: json.endpoint,\n keys: { p256dh: json.keys?.['p256dh'], auth: json.keys?.['auth'] },\n };\n await istek.isteSync();\n\n this.abone.set(true);\n return true;\n } catch (e) {\n console.error('[Push] Abonelik hatası:', e);\n return false;\n }\n }\n\n async aboneDurumuKontrol(): Promise {\n if (!this.destekleniyor()) return;\n try {\n const reg = await navigator.serviceWorker.ready;\n const sub = await reg.pushManager.getSubscription();\n this.subscription = sub;\n this.abone.set(!!sub);\n } catch {}\n }\n\n async abonelikIptal(): Promise {\n if (!this.subscription) return;\n try {\n const endpoint = this.subscription.endpoint;\n await this.subscription.unsubscribe();\n\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.push.abonelik-sil' });\n istek.parametreler = { endpoint };\n await istek.isteSync();\n } catch {}\n this.subscription = null;\n this.abone.set(false);\n }\n\n private async vapidKeyAl(): Promise {\n try {\n const istek = new FikoYTIstekKok({ metod: 'POST', komut: 'FikoYT.sistem.push.vapid-public-key' });\n await istek.isteSync();\n return (istek.cevap?.sonuc as any)?.vapidPublicKey || null;\n } catch { return null; }\n }\n\n private urlBase64ToUint8Array(base64String: string): Uint8Array {\n const padding = '='.repeat((4 - base64String.length % 4) % 4);\n const base64 = (base64String + padding).replace(/-/g, '+').replace(/_/g, '/');\n const rawData = window.atob(base64);\n const outputArray = new Uint8Array(rawData.length);\n for (let i = 0; i < rawData.length; ++i) outputArray[i] = rawData.charCodeAt(i);\n return outputArray;\n }\n}\n"],"names":[],"mappings":"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"}