@roadmanjs/push 1.3.0 → 1.3.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FirebaseProject } from '@roadmanjs/firebase-admin';
|
|
2
|
-
import {
|
|
2
|
+
import type { BatchResponse, MessagingOptions, MessagingPayload } from 'firebase-admin/messaging';
|
|
3
3
|
export interface PushOptions {
|
|
4
4
|
options?: MessagingOptions;
|
|
5
5
|
payload: MessagingPayload;
|
|
@@ -8,22 +8,22 @@ export interface SendToTopic extends PushOptions {
|
|
|
8
8
|
topic: string;
|
|
9
9
|
client: FirebaseProject;
|
|
10
10
|
}
|
|
11
|
-
export declare const sendToTopic: (args: SendToTopic) => Promise<
|
|
11
|
+
export declare const sendToTopic: (args: SendToTopic) => Promise<string | null>;
|
|
12
12
|
export interface SendMessageToTopic extends PushOptions {
|
|
13
13
|
topic: string;
|
|
14
14
|
}
|
|
15
|
-
export declare const sendMessageToTopic: (args: SendMessageToTopic) => Promise<
|
|
15
|
+
export declare const sendMessageToTopic: (args: SendMessageToTopic) => Promise<(string | null)[] | null>;
|
|
16
16
|
export interface SendNotification {
|
|
17
17
|
options?: MessagingOptions;
|
|
18
18
|
payload: MessagingPayload;
|
|
19
19
|
iosTokens: string[];
|
|
20
20
|
androidTokens: string[];
|
|
21
21
|
}
|
|
22
|
-
export declare const sendNotification: (args: SendNotification) => Promise<
|
|
22
|
+
export declare const sendNotification: (args: SendNotification) => Promise<BatchResponse[] | null>;
|
|
23
23
|
/**
|
|
24
24
|
* How to use sendNotification
|
|
25
25
|
* @param owner
|
|
26
26
|
* @param payload
|
|
27
27
|
* @param options
|
|
28
28
|
*/
|
|
29
|
-
export declare const sendMessageToUser: (owner: string, payload: MessagingPayload, options?: MessagingOptions) => Promise<
|
|
29
|
+
export declare const sendMessageToUser: (owner: string, payload: MessagingPayload, options?: MessagingOptions) => Promise<BatchResponse[] | null>;
|
|
@@ -10,15 +10,103 @@ const config_1 = require("../config");
|
|
|
10
10
|
const auth_1 = require("@roadmanjs/auth");
|
|
11
11
|
const isEmpty_1 = __importDefault(require("lodash/isEmpty"));
|
|
12
12
|
const logs_1 = require("@roadmanjs/logs");
|
|
13
|
+
const buildApnsExpiration = (timeToLive) => {
|
|
14
|
+
if (timeToLive === undefined) {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
if (timeToLive <= 0) {
|
|
18
|
+
return '0';
|
|
19
|
+
}
|
|
20
|
+
return String(Math.floor(Date.now() / 1000 + timeToLive));
|
|
21
|
+
};
|
|
22
|
+
const buildBaseMessage = (payload, options) => {
|
|
23
|
+
const base = {};
|
|
24
|
+
if (payload.data) {
|
|
25
|
+
base.data = payload.data;
|
|
26
|
+
}
|
|
27
|
+
if (payload.notification) {
|
|
28
|
+
const notification = {};
|
|
29
|
+
const imageUrl = payload.notification.imageUrl;
|
|
30
|
+
if (payload.notification.title) {
|
|
31
|
+
notification.title = payload.notification.title;
|
|
32
|
+
}
|
|
33
|
+
if (payload.notification.body) {
|
|
34
|
+
notification.body = payload.notification.body;
|
|
35
|
+
}
|
|
36
|
+
if (imageUrl) {
|
|
37
|
+
notification.imageUrl = imageUrl;
|
|
38
|
+
}
|
|
39
|
+
if (Object.keys(notification).length > 0) {
|
|
40
|
+
base.notification = notification;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
const androidConfig = {};
|
|
44
|
+
const apnsConfig = {};
|
|
45
|
+
const apnsAps = {};
|
|
46
|
+
const apnsHeaders = {};
|
|
47
|
+
let hasAndroidConfig = false;
|
|
48
|
+
let hasApnsConfig = false;
|
|
49
|
+
let hasApnsAps = false;
|
|
50
|
+
let hasApnsHeaders = false;
|
|
51
|
+
if ((options === null || options === void 0 ? void 0 : options.priority) === 'high' || (options === null || options === void 0 ? void 0 : options.priority) === 'normal') {
|
|
52
|
+
androidConfig.priority = options.priority;
|
|
53
|
+
hasAndroidConfig = true;
|
|
54
|
+
apnsHeaders['apns-priority'] = options.priority === 'high' ? '10' : '5';
|
|
55
|
+
hasApnsHeaders = true;
|
|
56
|
+
}
|
|
57
|
+
if (options === null || options === void 0 ? void 0 : options.collapseKey) {
|
|
58
|
+
androidConfig.collapseKey = options.collapseKey;
|
|
59
|
+
hasAndroidConfig = true;
|
|
60
|
+
apnsHeaders['apns-collapse-id'] = options.collapseKey;
|
|
61
|
+
hasApnsHeaders = true;
|
|
62
|
+
}
|
|
63
|
+
if (options === null || options === void 0 ? void 0 : options.restrictedPackageName) {
|
|
64
|
+
androidConfig.restrictedPackageName = options.restrictedPackageName;
|
|
65
|
+
hasAndroidConfig = true;
|
|
66
|
+
}
|
|
67
|
+
if (typeof (options === null || options === void 0 ? void 0 : options.timeToLive) === 'number') {
|
|
68
|
+
androidConfig.ttl = options.timeToLive * 1000;
|
|
69
|
+
hasAndroidConfig = true;
|
|
70
|
+
const expiration = buildApnsExpiration(options.timeToLive);
|
|
71
|
+
if (expiration) {
|
|
72
|
+
apnsHeaders['apns-expiration'] = expiration;
|
|
73
|
+
hasApnsHeaders = true;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (options === null || options === void 0 ? void 0 : options.contentAvailable) {
|
|
77
|
+
apnsAps.contentAvailable = true;
|
|
78
|
+
hasApnsAps = true;
|
|
79
|
+
}
|
|
80
|
+
if (options === null || options === void 0 ? void 0 : options.mutableContent) {
|
|
81
|
+
apnsAps.mutableContent = true;
|
|
82
|
+
hasApnsAps = true;
|
|
83
|
+
}
|
|
84
|
+
if (hasAndroidConfig) {
|
|
85
|
+
base.android = androidConfig;
|
|
86
|
+
}
|
|
87
|
+
if (hasApnsHeaders) {
|
|
88
|
+
apnsConfig.headers = apnsHeaders;
|
|
89
|
+
hasApnsConfig = true;
|
|
90
|
+
}
|
|
91
|
+
if (hasApnsAps) {
|
|
92
|
+
apnsConfig.payload = { aps: apnsAps };
|
|
93
|
+
hasApnsConfig = true;
|
|
94
|
+
}
|
|
95
|
+
if (hasApnsConfig) {
|
|
96
|
+
base.apns = apnsConfig;
|
|
97
|
+
}
|
|
98
|
+
return base;
|
|
99
|
+
};
|
|
13
100
|
const sendToTopic = async (args) => {
|
|
14
101
|
try {
|
|
15
102
|
const { client, options, payload, topic } = args;
|
|
16
|
-
const
|
|
17
|
-
|
|
103
|
+
const message = Object.assign(Object.assign({}, buildBaseMessage(payload, options)), { topic });
|
|
104
|
+
const sentToTopic = await client.messaging().send(message, options === null || options === void 0 ? void 0 : options.dryRun);
|
|
105
|
+
(0, logs_1.log)('messaging().send', JSON.stringify(sentToTopic));
|
|
18
106
|
return sentToTopic;
|
|
19
107
|
}
|
|
20
108
|
catch (error) {
|
|
21
|
-
(0, logs_1.log)('messaging().
|
|
109
|
+
(0, logs_1.log)('messaging().send', error);
|
|
22
110
|
return null;
|
|
23
111
|
}
|
|
24
112
|
};
|
|
@@ -75,12 +163,15 @@ const sendNotification = async (args) => {
|
|
|
75
163
|
const androidClient = await (0, firebase_admin_1.configureFirebase)(config_1.firebaseAndroid);
|
|
76
164
|
const sendMsg = async (client, tokens) => {
|
|
77
165
|
try {
|
|
78
|
-
const
|
|
79
|
-
|
|
166
|
+
const message = Object.assign(Object.assign({}, buildBaseMessage(payload, options)), { tokens });
|
|
167
|
+
const sentMessage = await client
|
|
168
|
+
.messaging()
|
|
169
|
+
.sendEachForMulticast(message, options === null || options === void 0 ? void 0 : options.dryRun);
|
|
170
|
+
(0, logs_1.log)('messaging().sendEachForMulticast', JSON.stringify(sentMessage));
|
|
80
171
|
return sentMessage;
|
|
81
172
|
}
|
|
82
173
|
catch (error) {
|
|
83
|
-
(0, logs_1.log)('messaging().
|
|
174
|
+
(0, logs_1.log)('messaging().sendEachForMulticast', error);
|
|
84
175
|
return null;
|
|
85
176
|
}
|
|
86
177
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"push.methods.js","sourceRoot":"","sources":["../../src/push/push.methods.ts"],"names":[],"mappings":";;;;;;AAAA,8DAA6E;
|
|
1
|
+
{"version":3,"file":"push.methods.js","sourceRoot":"","sources":["../../src/push/push.methods.ts"],"names":[],"mappings":"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"}
|