@flink-app/firebase-messaging-plugin 1.0.0 → 2.0.0-alpha.101
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.
- package/.flink/generatedAgents.ts +5 -0
- package/.flink/generatedHandlers.ts +2 -2
- package/.flink/generatedJobs.ts +1 -1
- package/.flink/generatedRepos.ts +1 -1
- package/.flink/generatedServices.ts +5 -0
- package/.flink/generatedTools.ts +5 -0
- package/.flink/schema-cache.json +92 -0
- package/.flink/schemas/schemas.json +53 -42
- package/.flink/start.ts +4 -1
- package/CHANGELOG.md +432 -0
- package/dist/.flink/generatedAgents.d.ts +1 -0
- package/dist/.flink/generatedAgents.js +14 -0
- package/dist/.flink/generatedAgents.js.map +1 -0
- package/dist/.flink/generatedHandlers.js +59 -28
- package/dist/.flink/generatedHandlers.js.map +1 -0
- package/dist/.flink/generatedJobs.js +13 -6
- package/dist/.flink/generatedJobs.js.map +1 -0
- package/dist/.flink/generatedRepos.js +13 -6
- package/dist/.flink/generatedRepos.js.map +1 -0
- package/dist/.flink/generatedServices.js +14 -0
- package/dist/.flink/generatedServices.js.map +1 -0
- package/dist/.flink/generatedTools.d.ts +1 -0
- package/dist/.flink/generatedTools.js +14 -0
- package/dist/.flink/generatedTools.js.map +1 -0
- package/dist/.flink/schema-manifest.json +104 -0
- package/dist/.flink/schemas/schemas.d.ts +2 -2
- package/dist/.flink/schemas/schemas.json +53 -42
- package/dist/.flink/start.d.ts +2 -0
- package/dist/.flink/start.js +15 -3
- package/dist/.flink/start.js.map +1 -0
- package/dist/.tsbuildinfo +1 -0
- package/dist/src/FirebaseMessagingContext.js +3 -1
- package/dist/src/FirebaseMessagingContext.js.map +1 -0
- package/dist/src/ManagementModule.js +69 -46
- package/dist/src/ManagementModule.js.map +1 -0
- package/dist/src/firebaseMessagingPlugin.js +177 -152
- package/dist/src/firebaseMessagingPlugin.js.map +1 -0
- package/dist/src/handlers/PostMessage.d.ts +1 -2
- package/dist/src/handlers/PostMessage.js +27 -55
- package/dist/src/handlers/PostMessage.js.map +1 -0
- package/dist/src/index.js +19 -18
- package/dist/src/index.js.map +1 -0
- package/dist/src/managementHandlers/Get.js +29 -61
- package/dist/src/managementHandlers/Get.js.map +1 -0
- package/dist/src/managementHandlers/PostMessage.js +41 -78
- package/dist/src/managementHandlers/PostMessage.js.map +1 -0
- package/dist/src/schemas/ManagementGet.js +3 -1
- package/dist/src/schemas/ManagementGet.js.map +1 -0
- package/dist/src/schemas/ManagementModule.js +3 -1
- package/dist/src/schemas/ManagementModule.js.map +1 -0
- package/dist/src/schemas/ManagementPostMessage.js +3 -1
- package/dist/src/schemas/ManagementPostMessage.js.map +1 -0
- package/dist/src/schemas/Message.js +3 -1
- package/dist/src/schemas/Message.js.map +1 -0
- package/dist/src/schemas/SendResult.js +3 -1
- package/dist/src/schemas/SendResult.js.map +1 -0
- package/package.json +6 -3
- package/.flink/schemas/schemas.ts +0 -7
|
@@ -1,171 +1,196 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
return t;
|
|
10
|
-
};
|
|
11
|
-
return __assign.apply(this, arguments);
|
|
12
|
-
};
|
|
13
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
-
if (k2 === undefined) k2 = k;
|
|
15
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "firebaseMessagingPlugin", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return firebaseMessagingPlugin;
|
|
18
9
|
}
|
|
19
|
-
Object.defineProperty(o, k2, desc);
|
|
20
|
-
}) : (function(o, m, k, k2) {
|
|
21
|
-
if (k2 === undefined) k2 = k;
|
|
22
|
-
o[k2] = m[k];
|
|
23
|
-
}));
|
|
24
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
25
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
26
|
-
}) : function(o, v) {
|
|
27
|
-
o["default"] = v;
|
|
28
10
|
});
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
}
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
11
|
+
const _flink = require("@flink-app/flink");
|
|
12
|
+
const _PostMessage = /*#__PURE__*/ _interop_require_wildcard(require("./handlers/PostMessage"));
|
|
13
|
+
const _firebaseadmin = /*#__PURE__*/ _interop_require_default(require("firebase-admin"));
|
|
14
|
+
function _define_property(obj, key, value) {
|
|
15
|
+
if (key in obj) {
|
|
16
|
+
Object.defineProperty(obj, key, {
|
|
17
|
+
value: value,
|
|
18
|
+
enumerable: true,
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true
|
|
21
|
+
});
|
|
22
|
+
} else {
|
|
23
|
+
obj[key] = value;
|
|
24
|
+
}
|
|
25
|
+
return obj;
|
|
26
|
+
}
|
|
27
|
+
function _interop_require_default(obj) {
|
|
28
|
+
return obj && obj.__esModule ? obj : {
|
|
29
|
+
default: obj
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
function _getRequireWildcardCache(nodeInterop) {
|
|
33
|
+
if (typeof WeakMap !== "function") return null;
|
|
34
|
+
var cacheBabelInterop = new WeakMap();
|
|
35
|
+
var cacheNodeInterop = new WeakMap();
|
|
36
|
+
return (_getRequireWildcardCache = function(nodeInterop) {
|
|
37
|
+
return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
|
|
38
|
+
})(nodeInterop);
|
|
39
|
+
}
|
|
40
|
+
function _interop_require_wildcard(obj, nodeInterop) {
|
|
41
|
+
if (!nodeInterop && obj && obj.__esModule) {
|
|
42
|
+
return obj;
|
|
43
|
+
}
|
|
44
|
+
if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
|
|
45
|
+
return {
|
|
46
|
+
default: obj
|
|
47
|
+
};
|
|
48
|
+
}
|
|
49
|
+
var cache = _getRequireWildcardCache(nodeInterop);
|
|
50
|
+
if (cache && cache.has(obj)) {
|
|
51
|
+
return cache.get(obj);
|
|
52
|
+
}
|
|
53
|
+
var newObj = {
|
|
54
|
+
__proto__: null
|
|
55
|
+
};
|
|
56
|
+
var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
|
|
57
|
+
for(var key in obj){
|
|
58
|
+
if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
|
|
59
|
+
var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
|
|
60
|
+
if (desc && (desc.get || desc.set)) {
|
|
61
|
+
Object.defineProperty(newObj, key, desc);
|
|
62
|
+
} else {
|
|
63
|
+
newObj[key] = obj[key];
|
|
66
64
|
}
|
|
67
|
-
|
|
68
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
69
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
65
|
+
}
|
|
70
66
|
}
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
67
|
+
newObj.default = obj;
|
|
68
|
+
if (cache) {
|
|
69
|
+
cache.set(obj, newObj);
|
|
70
|
+
}
|
|
71
|
+
return newObj;
|
|
72
|
+
}
|
|
73
|
+
function _object_spread(target) {
|
|
74
|
+
for(var i = 1; i < arguments.length; i++){
|
|
75
|
+
var source = arguments[i] != null ? arguments[i] : {};
|
|
76
|
+
var ownKeys = Object.keys(source);
|
|
77
|
+
if (typeof Object.getOwnPropertySymbols === "function") {
|
|
78
|
+
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function(sym) {
|
|
79
|
+
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
|
|
80
|
+
}));
|
|
80
81
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
var
|
|
89
|
-
|
|
90
|
-
var
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
82
|
+
ownKeys.forEach(function(key) {
|
|
83
|
+
_define_property(target, key, source[key]);
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
return target;
|
|
87
|
+
}
|
|
88
|
+
function ownKeys(object, enumerableOnly) {
|
|
89
|
+
var keys = Object.keys(object);
|
|
90
|
+
if (Object.getOwnPropertySymbols) {
|
|
91
|
+
var symbols = Object.getOwnPropertySymbols(object);
|
|
92
|
+
if (enumerableOnly) {
|
|
93
|
+
symbols = symbols.filter(function(sym) {
|
|
94
|
+
return Object.getOwnPropertyDescriptor(object, sym).enumerable;
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
keys.push.apply(keys, symbols);
|
|
98
|
+
}
|
|
99
|
+
return keys;
|
|
100
|
+
}
|
|
101
|
+
function _object_spread_props(target, source) {
|
|
102
|
+
source = source != null ? source : {};
|
|
103
|
+
if (Object.getOwnPropertyDescriptors) {
|
|
104
|
+
Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));
|
|
105
|
+
} else {
|
|
106
|
+
ownKeys(Object(source)).forEach(function(key) {
|
|
107
|
+
Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
return target;
|
|
111
|
+
}
|
|
112
|
+
function _object_without_properties(source, excluded) {
|
|
113
|
+
if (source == null) return {};
|
|
114
|
+
var target = {}, sourceKeys, key, i;
|
|
115
|
+
if (typeof Reflect !== "undefined" && Reflect.ownKeys) {
|
|
116
|
+
sourceKeys = Reflect.ownKeys(Object(source));
|
|
117
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
118
|
+
key = sourceKeys[i];
|
|
119
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
120
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
121
|
+
target[key] = source[key];
|
|
122
|
+
}
|
|
123
|
+
return target;
|
|
124
|
+
}
|
|
125
|
+
target = _object_without_properties_loose(source, excluded);
|
|
126
|
+
if (Object.getOwnPropertySymbols) {
|
|
127
|
+
sourceKeys = Object.getOwnPropertySymbols(source);
|
|
128
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
129
|
+
key = sourceKeys[i];
|
|
130
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
131
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
132
|
+
target[key] = source[key];
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
return target;
|
|
136
|
+
}
|
|
137
|
+
function _object_without_properties_loose(source, excluded) {
|
|
138
|
+
if (source == null) return {};
|
|
139
|
+
var target = {}, sourceKeys = Object.getOwnPropertyNames(source), key, i;
|
|
140
|
+
for(i = 0; i < sourceKeys.length; i++){
|
|
141
|
+
key = sourceKeys[i];
|
|
142
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
143
|
+
if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;
|
|
144
|
+
target[key] = source[key];
|
|
145
|
+
}
|
|
146
|
+
return target;
|
|
147
|
+
}
|
|
148
|
+
const firebaseMessagingPlugin = (options)=>{
|
|
149
|
+
const decodedKey = Buffer.from(options.serviceAccountKey, "base64").toString("utf-8");
|
|
150
|
+
const adminAdpp = _firebaseadmin.default.initializeApp({
|
|
151
|
+
credential: _firebaseadmin.default.credential.cert(JSON.parse(decodedKey))
|
|
95
152
|
});
|
|
96
153
|
return {
|
|
97
154
|
id: "firebaseMessaging",
|
|
98
155
|
ctx: {
|
|
99
|
-
send:
|
|
156
|
+
send: (message)=>send(message, adminAdpp)
|
|
100
157
|
},
|
|
101
|
-
init:
|
|
102
|
-
var
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
return [2 /*return*/];
|
|
158
|
+
init: async (app)=>{
|
|
159
|
+
var _options_permissions;
|
|
160
|
+
app.addHandler(_PostMessage, {
|
|
161
|
+
permissions: [
|
|
162
|
+
((_options_permissions = options.permissions) === null || _options_permissions === void 0 ? void 0 : _options_permissions.send) || "firebase-messaging:send"
|
|
163
|
+
]
|
|
108
164
|
});
|
|
109
|
-
}
|
|
165
|
+
}
|
|
110
166
|
};
|
|
111
167
|
};
|
|
112
|
-
exports.firebaseMessagingPlugin = firebaseMessagingPlugin;
|
|
113
168
|
/**
|
|
114
169
|
* Send push notification.
|
|
115
|
-
*/
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
messages = message.to.map(function (to) {
|
|
123
|
-
var toArray = message.to, rest = __rest(message, ["to"]);
|
|
124
|
-
return __assign(__assign({}, rest), { token: to });
|
|
125
|
-
});
|
|
126
|
-
batchSize = 500;
|
|
127
|
-
_loop_1 = function (i) {
|
|
128
|
-
var batch, response, err_1;
|
|
129
|
-
return __generator(this, function (_b) {
|
|
130
|
-
switch (_b.label) {
|
|
131
|
-
case 0:
|
|
132
|
-
batch = messages.slice(i, i + batchSize);
|
|
133
|
-
_b.label = 1;
|
|
134
|
-
case 1:
|
|
135
|
-
_b.trys.push([1, 3, , 4]);
|
|
136
|
-
return [4 /*yield*/, adminApp.messaging().sendEach(batch)];
|
|
137
|
-
case 2:
|
|
138
|
-
response = _b.sent();
|
|
139
|
-
response.responses.forEach(function (res, idx) {
|
|
140
|
-
if (res.success) {
|
|
141
|
-
flink_1.log.debug("[firebaseMessaging] Successfully sent to device ".concat(batch[idx].token));
|
|
142
|
-
}
|
|
143
|
-
else {
|
|
144
|
-
flink_1.log.debug("[firebaseMessaging] Failed sending to device ".concat(batch[idx].token, ": ").concat(res.error));
|
|
145
|
-
}
|
|
146
|
-
});
|
|
147
|
-
return [3 /*break*/, 4];
|
|
148
|
-
case 3:
|
|
149
|
-
err_1 = _b.sent();
|
|
150
|
-
flink_1.log.debug("[firebaseMessaging] Failed sending batch: ".concat(err_1));
|
|
151
|
-
return [3 /*break*/, 4];
|
|
152
|
-
case 4: return [2 /*return*/];
|
|
153
|
-
}
|
|
154
|
-
});
|
|
155
|
-
};
|
|
156
|
-
i = 0;
|
|
157
|
-
_a.label = 1;
|
|
158
|
-
case 1:
|
|
159
|
-
if (!(i < messages.length)) return [3 /*break*/, 4];
|
|
160
|
-
return [5 /*yield**/, _loop_1(i)];
|
|
161
|
-
case 2:
|
|
162
|
-
_a.sent();
|
|
163
|
-
_a.label = 3;
|
|
164
|
-
case 3:
|
|
165
|
-
i += batchSize;
|
|
166
|
-
return [3 /*break*/, 1];
|
|
167
|
-
case 4: return [2 /*return*/];
|
|
168
|
-
}
|
|
170
|
+
*/ async function send(message, adminApp) {
|
|
171
|
+
const messages = message.to.map((to)=>{
|
|
172
|
+
const { to: toArray } = message, rest = _object_without_properties(message, [
|
|
173
|
+
"to"
|
|
174
|
+
]);
|
|
175
|
+
return _object_spread_props(_object_spread({}, rest), {
|
|
176
|
+
token: to
|
|
169
177
|
});
|
|
170
178
|
});
|
|
179
|
+
// Split messages into batches of 500
|
|
180
|
+
const batchSize = 500;
|
|
181
|
+
for(let i = 0; i < messages.length; i += batchSize){
|
|
182
|
+
const batch = messages.slice(i, i + batchSize);
|
|
183
|
+
try {
|
|
184
|
+
const response = await adminApp.messaging().sendEach(batch);
|
|
185
|
+
response.responses.forEach((res, idx)=>{
|
|
186
|
+
if (res.success) {
|
|
187
|
+
_flink.log.debug(`[firebaseMessaging] Successfully sent to device ${batch[idx].token}`);
|
|
188
|
+
} else {
|
|
189
|
+
_flink.log.debug(`[firebaseMessaging] Failed sending to device ${batch[idx].token}: ${res.error}`);
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
} catch (err) {
|
|
193
|
+
_flink.log.debug(`[firebaseMessaging] Failed sending batch: ${err}`);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
171
196
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/firebase-messaging-plugin/src/firebaseMessagingPlugin.ts"],"sourcesContent":["import { FlinkPlugin, log } from \"@flink-app/flink\";\n\nimport * as PostMessage from \"./handlers/PostMessage\";\nimport Message from \"./schemas/Message\";\nimport admin from \"firebase-admin\";\n\nexport type FirebaseMessagingPluginOptions = {\n /**\n * Firebase server key\n */\n\n serviceAccountKey: string;\n\n /**\n * If to expose endpoints for sending push notification.\n */\n exposeEndpoints?: boolean;\n\n permissions?: {\n send: string;\n };\n};\n\nexport const firebaseMessagingPlugin = (options: FirebaseMessagingPluginOptions): FlinkPlugin => {\n const decodedKey = Buffer.from(options.serviceAccountKey, \"base64\").toString(\"utf-8\");\n\n const adminAdpp = admin.initializeApp({\n credential: admin.credential.cert(JSON.parse(decodedKey)),\n });\n\n return {\n id: \"firebaseMessaging\",\n ctx: {\n send: (message: Message) => send(message, adminAdpp),\n },\n init: async (app) => {\n app.addHandler(PostMessage, {\n permissions: [options.permissions?.send || \"firebase-messaging:send\"],\n });\n },\n };\n};\n\n/**\n * Send push notification.\n */\nasync function send(message: Message, adminApp: admin.app.App) {\n const messages = message.to.map((to) => {\n const { to: toArray, ...rest } = message;\n return { ...rest, token: to };\n });\n\n // Split messages into batches of 500\n const batchSize = 500;\n for (let i = 0; i < messages.length; i += batchSize) {\n const batch = messages.slice(i, i + batchSize);\n\n try {\n const response = await adminApp.messaging().sendEach(batch);\n response.responses.forEach((res, idx) => {\n if (res.success) {\n log.debug(`[firebaseMessaging] Successfully sent to device ${batch[idx].token}`);\n } else {\n log.debug(`[firebaseMessaging] Failed sending to device ${batch[idx].token}: ${res.error}`);\n }\n });\n } catch (err: any) {\n log.debug(`[firebaseMessaging] Failed sending batch: ${err}`);\n }\n }\n}\n"],"names":["firebaseMessagingPlugin","options","decodedKey","Buffer","from","serviceAccountKey","toString","adminAdpp","admin","initializeApp","credential","cert","JSON","parse","id","ctx","send","message","init","app","addHandler","PostMessage","permissions","adminApp","messages","to","map","toArray","rest","token","batchSize","i","length","batch","slice","response","messaging","sendEach","responses","forEach","res","idx","success","log","debug","error","err"],"mappings":";;;;+BAuBaA;;;eAAAA;;;uBAvBoB;qEAEJ;sEAEX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmBX,MAAMA,0BAA0B,CAACC;IACpC,MAAMC,aAAaC,OAAOC,IAAI,CAACH,QAAQI,iBAAiB,EAAE,UAAUC,QAAQ,CAAC;IAE7E,MAAMC,YAAYC,sBAAK,CAACC,aAAa,CAAC;QAClCC,YAAYF,sBAAK,CAACE,UAAU,CAACC,IAAI,CAACC,KAAKC,KAAK,CAACX;IACjD;IAEA,OAAO;QACHY,IAAI;QACJC,KAAK;YACDC,MAAM,CAACC,UAAqBD,KAAKC,SAASV;QAC9C;QACAW,MAAM,OAAOC;gBAESlB;YADlBkB,IAAIC,UAAU,CAACC,cAAa;gBACxBC,aAAa;oBAACrB,EAAAA,uBAAAA,QAAQqB,WAAW,cAAnBrB,2CAAAA,qBAAqBe,IAAI,KAAI;iBAA0B;YACzE;QACJ;IACJ;AACJ;AAEA;;CAEC,GACD,eAAeA,KAAKC,OAAgB,EAAEM,QAAuB;IACzD,MAAMC,WAAWP,QAAQQ,EAAE,CAACC,GAAG,CAAC,CAACD;QAC7B,MAAM,EAAEA,IAAIE,OAAO,EAAW,GAAGV,SAATW,kCAASX;;;QACjC,OAAO,wCAAKW;YAAMC,OAAOJ;;IAC7B;IAEA,qCAAqC;IACrC,MAAMK,YAAY;IAClB,IAAK,IAAIC,IAAI,GAAGA,IAAIP,SAASQ,MAAM,EAAED,KAAKD,UAAW;QACjD,MAAMG,QAAQT,SAASU,KAAK,CAACH,GAAGA,IAAID;QAEpC,IAAI;YACA,MAAMK,WAAW,MAAMZ,SAASa,SAAS,GAAGC,QAAQ,CAACJ;YACrDE,SAASG,SAAS,CAACC,OAAO,CAAC,CAACC,KAAKC;gBAC7B,IAAID,IAAIE,OAAO,EAAE;oBACbC,UAAG,CAACC,KAAK,CAAC,CAAC,gDAAgD,EAAEX,KAAK,CAACQ,IAAI,CAACZ,KAAK,EAAE;gBACnF,OAAO;oBACHc,UAAG,CAACC,KAAK,CAAC,CAAC,6CAA6C,EAAEX,KAAK,CAACQ,IAAI,CAACZ,KAAK,CAAC,EAAE,EAAEW,IAAIK,KAAK,EAAE;gBAC9F;YACJ;QACJ,EAAE,OAAOC,KAAU;YACfH,UAAG,CAACC,KAAK,CAAC,CAAC,0CAA0C,EAAEE,KAAK;QAChE;IACJ;AACJ"}
|
|
@@ -5,5 +5,4 @@ import SendResult from "../schemas/SendResult";
|
|
|
5
5
|
export declare const Route: RouteProps;
|
|
6
6
|
declare const PostMessage: Handler<FlinkContext<FirebaseMessagingContext>, Message, SendResult>;
|
|
7
7
|
export default PostMessage;
|
|
8
|
-
export declare const __assumedHttpMethod = "post", __file = "PostMessage.ts", __query: never[], __params: never[];
|
|
9
|
-
export declare const __schemas: any;
|
|
8
|
+
export declare const __assumedHttpMethod = "post", __file = "src/handlers/PostMessage.ts", __query: never[], __params: never[];
|
|
@@ -1,61 +1,33 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
function _export(target, all) {
|
|
6
|
+
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
9
|
});
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
10
|
+
}
|
|
11
|
+
_export(exports, {
|
|
12
|
+
get Route () {
|
|
13
|
+
return Route;
|
|
14
|
+
},
|
|
15
|
+
get default () {
|
|
16
|
+
return _default;
|
|
36
17
|
}
|
|
37
|
-
};
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
exports.Route = {
|
|
42
|
-
method: flink_1.HttpMethod.post,
|
|
18
|
+
});
|
|
19
|
+
const _flink = require("@flink-app/flink");
|
|
20
|
+
const Route = {
|
|
21
|
+
method: _flink.HttpMethod.post,
|
|
43
22
|
path: "/send-message",
|
|
44
|
-
docs: "Publishes push notification to one or multiple devices"
|
|
23
|
+
docs: "Publishes push notification to one or multiple devices"
|
|
45
24
|
};
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
return
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
case 1:
|
|
52
|
-
_c.sent();
|
|
53
|
-
return [2 /*return*/, {
|
|
54
|
-
data: { failedDevices: [] }, // TODO
|
|
55
|
-
}];
|
|
25
|
+
const PostMessage = async ({ ctx, req })=>{
|
|
26
|
+
await ctx.plugins.firebaseMessaging.send(req.body);
|
|
27
|
+
return {
|
|
28
|
+
data: {
|
|
29
|
+
failedDevices: []
|
|
56
30
|
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
exports.__assumedHttpMethod = "post", exports.__file = "PostMessage.ts", exports.__query = [], exports.__params = [];
|
|
61
|
-
exports.__schemas = { reqSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "to": { "type": "array", "items": { "type": "string" } }, "notification": { "type": "object", "properties": { "title": { "type": "string" }, "body": { "type": "string" } }, "additionalProperties": false }, "data": { "type": "object", "additionalProperties": { "type": "string" } } }, "required": ["data", "to"], "definitions": {} }, resSchema: { "$schema": "http://json-schema.org/draft-07/schema#", "type": "object", "additionalProperties": false, "properties": { "failedDevices": { "type": "array", "items": { "type": "string" } } }, "required": ["failedDevices"], "definitions": {} } };
|
|
31
|
+
};
|
|
32
|
+
};
|
|
33
|
+
const _default = PostMessage;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/firebase-messaging-plugin/src/handlers/PostMessage.ts"],"sourcesContent":["import { FlinkContext, Handler, HttpMethod, RouteProps } from \"@flink-app/flink\";\nimport { FirebaseMessagingContext } from \"../FirebaseMessagingContext\";\nimport Message from \"../schemas/Message\";\nimport SendResult from \"../schemas/SendResult\";\n\nexport const Route: RouteProps = {\n method: HttpMethod.post,\n path: \"/send-message\",\n docs: \"Publishes push notification to one or multiple devices\",\n};\n\nconst PostMessage: Handler<FlinkContext<FirebaseMessagingContext>, Message, SendResult> = async ({ ctx, req }) => {\n await ctx.plugins.firebaseMessaging.send(req.body);\n\n return {\n data: { failedDevices: [] }, // TODO\n };\n};\n\nexport default PostMessage;\n"],"names":["Route","method","HttpMethod","post","path","docs","PostMessage","ctx","req","plugins","firebaseMessaging","send","body","data","failedDevices"],"mappings":";;;;;;;;;;;QAKaA;eAAAA;;QAcb;eAAA;;;uBAnB8D;AAKvD,MAAMA,QAAoB;IAC7BC,QAAQC,iBAAU,CAACC,IAAI;IACvBC,MAAM;IACNC,MAAM;AACV;AAEA,MAAMC,cAAoF,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAE;IACzG,MAAMD,IAAIE,OAAO,CAACC,iBAAiB,CAACC,IAAI,CAACH,IAAII,IAAI;IAEjD,OAAO;QACHC,MAAM;YAAEC,eAAe,EAAE;QAAC;IAC9B;AACJ;MAEA,WAAeR"}
|
package/dist/src/index.js
CHANGED
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
_export_star(require("./firebaseMessagingPlugin"), exports);
|
|
6
|
+
_export_star(require("./FirebaseMessagingContext"), exports);
|
|
7
|
+
_export_star(require("./ManagementModule"), exports);
|
|
8
|
+
function _export_star(from, to) {
|
|
9
|
+
Object.keys(from).forEach(function(k) {
|
|
10
|
+
if (k !== "default" && !Object.prototype.hasOwnProperty.call(to, k)) {
|
|
11
|
+
Object.defineProperty(to, k, {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function() {
|
|
14
|
+
return from[k];
|
|
15
|
+
}
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
return from;
|
|
20
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/firebase-messaging-plugin/src/index.ts"],"sourcesContent":["export * from \"./firebaseMessagingPlugin\";\nexport * from \"./FirebaseMessagingContext\";\nexport * from \"./ManagementModule\";\n"],"names":[],"mappings":";;;;qBAAc;qBACA;qBACA"}
|
|
@@ -1,64 +1,32 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
12
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g = Object.create((typeof Iterator === "function" ? Iterator : Object).prototype);
|
|
13
|
-
return g.next = verb(0), g["throw"] = verb(1), g["return"] = verb(2), typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
14
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
15
|
-
function step(op) {
|
|
16
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
17
|
-
while (g && (g = 0, op[0] && (_ = 0)), _) try {
|
|
18
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
19
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
20
|
-
switch (op[0]) {
|
|
21
|
-
case 0: case 1: t = op; break;
|
|
22
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
23
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
24
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
25
|
-
default:
|
|
26
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
27
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
28
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
29
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
30
|
-
if (t[2]) _.ops.pop();
|
|
31
|
-
_.trys.pop(); continue;
|
|
32
|
-
}
|
|
33
|
-
op = body.call(thisArg, _);
|
|
34
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
35
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
2
|
+
Object.defineProperty(exports, "__esModule", {
|
|
3
|
+
value: true
|
|
4
|
+
});
|
|
5
|
+
Object.defineProperty(exports, "default", {
|
|
6
|
+
enumerable: true,
|
|
7
|
+
get: function() {
|
|
8
|
+
return _default;
|
|
36
9
|
}
|
|
10
|
+
});
|
|
11
|
+
const getManagementPluginHandler = async ({ ctx, req, origin })=>{
|
|
12
|
+
var _module_data, _module_data1;
|
|
13
|
+
const modules = ctx.plugins.managementApi.moduleList.modules;
|
|
14
|
+
const module = modules.find((p)=>p.id == origin);
|
|
15
|
+
const segments = (_module_data = module.data) === null || _module_data === void 0 ? void 0 : _module_data.segments;
|
|
16
|
+
const messageingData = ((_module_data1 = module.data) === null || _module_data1 === void 0 ? void 0 : _module_data1.data) || [];
|
|
17
|
+
const data = {
|
|
18
|
+
segments: segments.map((s)=>{
|
|
19
|
+
let sv = {
|
|
20
|
+
id: s.id,
|
|
21
|
+
description: s.description
|
|
22
|
+
};
|
|
23
|
+
return sv;
|
|
24
|
+
}),
|
|
25
|
+
data: messageingData
|
|
26
|
+
};
|
|
27
|
+
return {
|
|
28
|
+
data,
|
|
29
|
+
status: 200
|
|
30
|
+
};
|
|
37
31
|
};
|
|
38
|
-
|
|
39
|
-
var getManagementPluginHandler = function (_a) { return __awaiter(void 0, [_a], void 0, function (_b) {
|
|
40
|
-
var modules, module, segments, messageingData, data;
|
|
41
|
-
var _c, _d;
|
|
42
|
-
var ctx = _b.ctx, req = _b.req, origin = _b.origin;
|
|
43
|
-
return __generator(this, function (_e) {
|
|
44
|
-
modules = ctx.plugins.managementApi.moduleList.modules;
|
|
45
|
-
module = modules.find(function (p) { return p.id == origin; });
|
|
46
|
-
segments = (_c = module.data) === null || _c === void 0 ? void 0 : _c.segments;
|
|
47
|
-
messageingData = ((_d = module.data) === null || _d === void 0 ? void 0 : _d.data) || [];
|
|
48
|
-
data = {
|
|
49
|
-
segments: segments.map(function (s) {
|
|
50
|
-
var sv = {
|
|
51
|
-
id: s.id,
|
|
52
|
-
description: s.description,
|
|
53
|
-
};
|
|
54
|
-
return sv;
|
|
55
|
-
}),
|
|
56
|
-
data: messageingData,
|
|
57
|
-
};
|
|
58
|
-
return [2 /*return*/, {
|
|
59
|
-
data: data,
|
|
60
|
-
status: 200,
|
|
61
|
-
}];
|
|
62
|
-
});
|
|
63
|
-
}); };
|
|
64
|
-
exports.default = getManagementPluginHandler;
|
|
32
|
+
const _default = getManagementPluginHandler;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["/Users/joel/projects/flink/flink-framework/packages/firebase-messaging-plugin/src/managementHandlers/Get.ts"],"sourcesContent":["import { FlinkContext, Handler } from \"@flink-app/flink\";\n\nimport { ManagementGetRequest, ManagementGetResponse } from \"../schemas/ManagementGet\";\nimport { MessagingData, MessagingSegment, MessagingSegmentView } from \"../schemas/ManagementModule\";\n\nconst getManagementPluginHandler: Handler<FlinkContext, ManagementGetRequest, ManagementGetResponse> = async ({ ctx, req, origin }) => {\n const modules = ctx.plugins.managementApi.moduleList.modules as any[];\n const module = modules.find((p) => p.id == origin);\n\n const segments = module.data?.segments as MessagingSegment[];\n const messageingData = (module.data?.data as MessagingData[] | undefined) || [];\n\n const data = {\n segments: segments.map((s) => {\n let sv: MessagingSegmentView = {\n id: s.id,\n description: s.description,\n };\n return sv;\n }),\n data: messageingData,\n };\n\n return {\n data,\n status: 200,\n };\n};\n\nexport default getManagementPluginHandler;\n"],"names":["getManagementPluginHandler","ctx","req","origin","module","modules","plugins","managementApi","moduleList","find","p","id","segments","data","messageingData","map","s","sv","description","status"],"mappings":";;;;+BA6BA;;;eAAA;;;AAxBA,MAAMA,6BAAiG,OAAO,EAAEC,GAAG,EAAEC,GAAG,EAAEC,MAAM,EAAE;QAI7GC,cACOA;IAJxB,MAAMC,UAAUJ,IAAIK,OAAO,CAACC,aAAa,CAACC,UAAU,CAACH,OAAO;IAC5D,MAAMD,SAASC,QAAQI,IAAI,CAAC,CAACC,IAAMA,EAAEC,EAAE,IAAIR;IAE3C,MAAMS,YAAWR,eAAAA,OAAOS,IAAI,cAAXT,mCAAAA,aAAaQ,QAAQ;IACtC,MAAME,iBAAiB,EAACV,gBAAAA,OAAOS,IAAI,cAAXT,oCAAAA,cAAaS,IAAI,KAAoC,EAAE;IAE/E,MAAMA,OAAO;QACTD,UAAUA,SAASG,GAAG,CAAC,CAACC;YACpB,IAAIC,KAA2B;gBAC3BN,IAAIK,EAAEL,EAAE;gBACRO,aAAaF,EAAEE,WAAW;YAC9B;YACA,OAAOD;QACX;QACAJ,MAAMC;IACV;IAEA,OAAO;QACHD;QACAM,QAAQ;IACZ;AACJ;MAEA,WAAenB"}
|