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
JavaScript
;
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