UNPKG

notification-kit

Version:

A unified notification library for React + Capacitor apps. One API for push notifications, in-app notifications, and local notifications across Web, iOS, and Android.

251 lines (250 loc) 7.26 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const inApp = require("./inApp-D3paDkmL.js"); const FirebaseProvider = require("./FirebaseProvider-Ck-yYsmP.js"); const OneSignalProvider = require("./OneSignalProvider-B6fbxuu7.js"); /** * notification-kit - A unified notification library for React + Capacitor apps * * @description One API for push notifications, in-app notifications, and local notifications * across Web, iOS, and Android platforms. * * @author Ahsan Mahmood <aoneahsan@gmail.com> * @version 2.0.0 * @license MIT */ const version = "2.0.0"; const metadata = { name: "notification-kit", version: "2.0.0", description: "A unified notification library for React + Capacitor apps", author: "Ahsan Mahmood", license: "MIT", homepage: "https://github.com/aoneahsan/notification-kit", repository: "https://github.com/aoneahsan/notification-kit.git", bugs: "https://github.com/aoneahsan/notification-kit/issues", keywords: [ "capacitor", "react", "notifications", "push-notifications", "local-notifications", "in-app-notifications", "firebase", "onesignal", "typescript", "mobile", "ios", "android", "web" ], platforms: ["web", "ios", "android", "electron"], frameworks: ["react", "capacitor"], providers: ["firebase", "onesignal"] }; const quickStart = { /** * Initialize with Firebase */ initFirebase: async (config) => { return await inApp.NotificationKit.getInstance().init({ provider: "firebase", config }); }, /** * Initialize with OneSignal */ initOneSignal: async (config) => { return await inApp.NotificationKit.getInstance().init({ provider: "onesignal", config }); }, /** * Request permissions and get token */ setup: async () => { const kit = inApp.NotificationKit.getInstance(); const granted = await kit.requestPermission(); if (granted) { const token = await kit.getToken(); return { granted, token }; } return { granted, token: null }; }, /** * Show success notification */ success: (title, message) => inApp.notifications.success(title, message), /** * Show error notification */ error: (title, message) => inApp.notifications.error(title, message), /** * Show warning notification */ warning: (title, message) => inApp.notifications.warning(title, message), /** * Show info notification */ info: (title, message) => inApp.notifications.info(title, message), /** * Schedule a local notification */ scheduleLocal: (options) => inApp.notifications.schedule({ ...options, id: String(options.id), schedule: { at: options.schedule.at instanceof Date ? options.schedule.at : new Date(options.schedule.at) } }), /** * Subscribe to a topic */ subscribe: (topic) => inApp.notifications.subscribe(topic), /** * Unsubscribe from a topic */ unsubscribe: (topic) => inApp.notifications.unsubscribe(topic) }; const features = { pushNotifications: true, localNotifications: true, inAppNotifications: true, channels: true, actions: true, scheduling: true, topics: true, analytics: true, permissions: true, storage: true, validation: true, formatting: true, react: true, firebase: true, onesignal: true, typescript: true }; const compatibility = { web: { chrome: "50+", firefox: "44+", safari: "16+", edge: "79+", opera: "37+" }, mobile: { ios: "10+", android: "5.0+" }, features: { pushNotifications: [ "chrome", "firefox", "safari", "edge", "ios", "android" ], serviceWorker: ["chrome", "firefox", "safari", "edge"], notifications: ["chrome", "firefox", "safari", "edge", "ios", "android"], vibration: ["chrome", "firefox", "opera", "android"], badging: ["chrome", "edge", "ios", "android"] } }; const dev = { /** * Enable debug mode */ enableDebug: () => { if (typeof window !== "undefined") { window.__NOTIFICATION_KIT_DEBUG__ = true; } }, /** * Disable debug mode */ disableDebug: () => { if (typeof window !== "undefined") { window.__NOTIFICATION_KIT_DEBUG__ = false; } }, /** * Check if debug mode is enabled */ isDebugEnabled: () => { if (typeof window !== "undefined") { return window.__NOTIFICATION_KIT_DEBUG__ === true; } return false; }, /** * Get platform information */ getPlatformInfo: () => inApp.platform.detect(), /** * Get capabilities */ getCapabilities: () => inApp.platform.getCapabilities(), /** * Test notifications */ test: { inApp: () => inApp.notifications.info( "Test Notification", "This is a test in-app notification" ), permission: () => inApp.notifications.requestPermission(), token: () => inApp.notifications.getToken(), schedule: () => inApp.notifications.schedule({ id: "test", title: "Test Local Notification", body: "This is a test local notification", schedule: { at: new Date(Date.now() + 5e3) // 5 seconds from now } }) } }; exports.FormattingUtils = inApp.FormattingUtils; exports.InAppNotificationManager = inApp.InAppNotificationManager; exports.NotificationKit = inApp.NotificationKit; exports.PermissionManager = inApp.PermissionManager; exports.PlatformManager = inApp.PlatformManager; exports.SchedulingUtils = inApp.SchedulingUtils; exports.StorageManager = inApp.StorageManager; exports.ValidationUtils = inApp.ValidationUtils; exports.configureInAppNotifications = inApp.configureInAppNotifications; exports.createStorage = inApp.createStorage; exports.default = inApp.NotificationKit; exports.dismissAllInAppNotifications = inApp.dismissAllInAppNotifications; exports.dismissInAppNotification = inApp.dismissInAppNotification; exports.format = inApp.format; exports.fromCapacitorChannel = inApp.fromCapacitorChannel; exports.fromCapacitorImportance = inApp.fromCapacitorImportance; exports.fromCapacitorLocalNotification = inApp.fromCapacitorLocalNotification; exports.getActiveInAppNotifications = inApp.getActiveInAppNotifications; exports.inApp = inApp.inApp; exports.notifications = inApp.notifications; exports.permissionManager = inApp.permissionManager; exports.permissions = inApp.permissions; exports.platform = inApp.platform; exports.platformManager = inApp.platformManager; exports.showInAppNotification = inApp.showInAppNotification; exports.storage = inApp.storage; exports.toCapacitorChannel = inApp.toCapacitorChannel; exports.toCapacitorImportance = inApp.toCapacitorImportance; exports.toCapacitorLocalNotification = inApp.toCapacitorLocalNotification; exports.toPlatformCapabilities = inApp.toPlatformCapabilities; exports.validate = inApp.validate; exports.FirebaseProvider = FirebaseProvider.FirebaseProvider; exports.OneSignalProvider = OneSignalProvider.OneSignalProvider; exports.compatibility = compatibility; exports.dev = dev; exports.features = features; exports.metadata = metadata; exports.quickStart = quickStart; exports.version = version; //# sourceMappingURL=index.js.map