@intuitionrobotics/push-pub-sub 0.41.67 → 0.41.70

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.
@@ -17,19 +17,6 @@
17
17
  * See the License for the specific language governing permissions and
18
18
  * limitations under the License.
19
19
  */
20
- var __extends = (this && this.__extends) || (function () {
21
- var extendStatics = function (d, b) {
22
- extendStatics = Object.setPrototypeOf ||
23
- ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
24
- function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
25
- return extendStatics(d, b);
26
- };
27
- return function (d, b) {
28
- extendStatics(d, b);
29
- function __() { this.constructor = d; }
30
- d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
31
- };
32
- })();
33
20
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
34
21
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
35
22
  return new (P || (P = Promise))(function (resolve, reject) {
@@ -39,49 +26,21 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
39
26
  step((generator = generator.apply(thisArg, _arguments || [])).next());
40
27
  });
41
28
  };
42
- var __generator = (this && this.__generator) || function (thisArg, body) {
43
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
44
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
45
- function verb(n) { return function (v) { return step([n, v]); }; }
46
- function step(op) {
47
- if (f) throw new TypeError("Generator is already executing.");
48
- while (_) try {
49
- 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;
50
- if (y = 0, t) op = [op[0] & 2, t.value];
51
- switch (op[0]) {
52
- case 0: case 1: t = op; break;
53
- case 4: _.label++; return { value: op[1], done: false };
54
- case 5: _.label++; y = op[1]; op = [0]; continue;
55
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
56
- default:
57
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
58
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
59
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
60
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
61
- if (t[2]) _.ops.pop();
62
- _.trys.pop(); continue;
63
- }
64
- op = body.call(thisArg, _);
65
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
66
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
67
- }
68
- };
69
29
  Object.defineProperty(exports, "__esModule", { value: true });
70
30
  exports.PushPubSubModule = exports.PushPubSubModule_Class = void 0;
71
- var ts_common_1 = require("@intuitionrobotics/ts-common");
72
- var backend_1 = require("@intuitionrobotics/firebase/backend");
73
- var backend_2 = require("@intuitionrobotics/thunderstorm/backend");
74
- var PushPubSubModule_Class = /** @class */ (function (_super) {
75
- __extends(PushPubSubModule_Class, _super);
76
- function PushPubSubModule_Class() {
77
- var _this = _super !== null && _super.apply(this, arguments) || this;
78
- _this.buildNotification = function (pushkey, persistent, data, props, user) {
79
- var notification = {
31
+ const ts_common_1 = require("@intuitionrobotics/ts-common");
32
+ const backend_1 = require("@intuitionrobotics/firebase/backend");
33
+ const backend_2 = require("@intuitionrobotics/thunderstorm/backend");
34
+ class PushPubSubModule_Class extends ts_common_1.Module {
35
+ constructor() {
36
+ super(...arguments);
37
+ this.buildNotification = (pushkey, persistent, data, props, user) => {
38
+ const notification = {
80
39
  _id: ts_common_1.generateHex(16),
81
40
  timestamp: ts_common_1.currentTimeMillies(),
82
41
  read: false,
83
42
  pushKey: pushkey,
84
- persistent: persistent
43
+ persistent
85
44
  };
86
45
  if (data)
87
46
  notification.data = data;
@@ -91,296 +50,167 @@ var PushPubSubModule_Class = /** @class */ (function (_super) {
91
50
  notification.userId = user;
92
51
  return notification;
93
52
  };
94
- _this.sendMessage = function (persistent, _messages) { return __awaiter(_this, void 0, void 0, function () {
95
- var messages, response;
96
- return __generator(this, function (_a) {
97
- switch (_a.label) {
98
- case 0:
99
- messages = Object.keys(_messages).map(function (token) { return ({ token: token, data: { messages: ts_common_1.__stringify(_messages[token]) } }); });
100
- if (messages.length === 0)
101
- return [2 /*return*/];
102
- console.log("sending a message to \n" + Object.keys(_messages).join("\n"));
103
- return [4 /*yield*/, this.messaging.sendAll(messages)];
104
- case 1:
105
- response = _a.sent();
106
- console.log("and this is the response: " + response.responses.map(function (_response) { return _response.success; }));
107
- return [2 /*return*/, { response: response, messages: messages }];
108
- }
109
- });
110
- }); };
111
- _this.readNotification = function (id, read) { return __awaiter(_this, void 0, void 0, function () {
112
- return __generator(this, function (_a) {
113
- switch (_a.label) {
114
- case 0: return [4 /*yield*/, this.notifications.patch({ _id: id, read: read })];
115
- case 1:
116
- _a.sent();
117
- return [2 /*return*/];
118
- }
119
- });
120
- }); };
121
- _this.scheduledCleanup = function () { return __awaiter(_this, void 0, void 0, function () {
122
- var sessionsCleanupTime, notificationsCleanupTime, docs;
53
+ this.sendMessage = (persistent, _messages) => __awaiter(this, void 0, void 0, function* () {
54
+ const messages = Object.keys(_messages).map(token => ({ token, data: { messages: ts_common_1.__stringify(_messages[token]) } }));
55
+ if (messages.length === 0)
56
+ return;
57
+ console.log("sending a message to \n" + Object.keys(_messages).join("\n"));
58
+ const response = yield this.messaging.sendAll(messages);
59
+ console.log("and this is the response: " + response.responses.map(_response => _response.success));
60
+ return { response, messages };
61
+ });
62
+ this.readNotification = (id, read) => __awaiter(this, void 0, void 0, function* () {
63
+ yield this.notifications.patch({ _id: id, read });
64
+ });
65
+ this.scheduledCleanup = () => __awaiter(this, void 0, void 0, function* () {
123
66
  var _a, _b;
124
- return __generator(this, function (_c) {
125
- switch (_c.label) {
126
- case 0:
127
- sessionsCleanupTime = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionsCleanupTime) || ts_common_1.Hour;
128
- notificationsCleanupTime = ((_b = this.config) === null || _b === void 0 ? void 0 : _b.notificationsCleanupTime) || 7 * ts_common_1.Day;
129
- return [4 /*yield*/, this.pushSessions.query({ where: { timestamp: { $lt: ts_common_1.currentTimeMillies() - sessionsCleanupTime } } })];
130
- case 1:
131
- docs = _c.sent();
132
- return [4 /*yield*/, Promise.all([
133
- this.notifications.delete({ where: { timestamp: { $lt: ts_common_1.currentTimeMillies() - notificationsCleanupTime } } }),
134
- this.cleanUpImpl(docs.map(function (d) { return d.firebaseToken; }))
135
- ])];
136
- case 2:
137
- _c.sent();
138
- return [2 /*return*/];
139
- }
140
- });
141
- }); };
142
- _this.cleanUp = function (response, messages) { return __awaiter(_this, void 0, void 0, function () {
143
- var toDelete;
144
- return __generator(this, function (_a) {
145
- this.logInfo(response.successCount + " sent, " + response.failureCount + " failed");
146
- if (response.failureCount > 0)
147
- this.logWarning(response.responses.filter(function (r) { return r.error; }));
148
- toDelete = response.responses.reduce(function (carry, resp, i) {
149
- if (!resp.success && messages[i])
150
- carry.push(messages[i].token);
151
- return carry;
152
- }, []);
153
- //TODO: delete notifications for the user that are older than X
154
- return [2 /*return*/, this.cleanUpImpl(toDelete)];
155
- });
156
- }); };
157
- return _this;
67
+ const sessionsCleanupTime = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionsCleanupTime) || ts_common_1.Hour;
68
+ const notificationsCleanupTime = ((_b = this.config) === null || _b === void 0 ? void 0 : _b.notificationsCleanupTime) || 7 * ts_common_1.Day;
69
+ const docs = yield this.pushSessions.query({ where: { timestamp: { $lt: ts_common_1.currentTimeMillies() - sessionsCleanupTime } } });
70
+ yield Promise.all([
71
+ this.notifications.delete({ where: { timestamp: { $lt: ts_common_1.currentTimeMillies() - notificationsCleanupTime } } }),
72
+ this.cleanUpImpl(docs.map(d => d.firebaseToken))
73
+ ]);
74
+ });
75
+ this.cleanUp = (response, messages) => __awaiter(this, void 0, void 0, function* () {
76
+ this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`);
77
+ if (response.failureCount > 0)
78
+ this.logWarning(response.responses.filter(r => r.error));
79
+ const toDelete = response.responses.reduce((carry, resp, i) => {
80
+ if (!resp.success && messages[i])
81
+ carry.push(messages[i].token);
82
+ return carry;
83
+ }, []);
84
+ //TODO: delete notifications for the user that are older than X
85
+ return this.cleanUpImpl(toDelete);
86
+ });
158
87
  }
159
- PushPubSubModule_Class.prototype.init = function () {
160
- var session = backend_1.FirebaseModule.createAdminSession();
161
- var firestore = session.getFirestore();
88
+ init() {
89
+ const session = backend_1.FirebaseModule.createAdminSession();
90
+ const firestore = session.getFirestore();
162
91
  this.pushSessions = firestore.getCollection("push-sessions", ["pushSessionId"]);
163
92
  this.pushKeys = firestore.getCollection("push-keys");
164
93
  this.notifications = firestore.getCollection("notifications", ["_id"]);
165
94
  this.messaging = session.getMessaging();
166
- };
167
- PushPubSubModule_Class.prototype.register = function (body, request) {
95
+ }
96
+ register(body, request) {
168
97
  var _a, _b, _c;
169
- return __awaiter(this, void 0, void 0, function () {
170
- var resp, userId, session, subscriptions;
171
- var _this = this;
172
- return __generator(this, function (_d) {
173
- switch (_d.label) {
174
- case 0: return [4 /*yield*/, backend_2.dispatch_queryRequestInfo.dispatchModuleAsync([request])];
175
- case 1:
176
- resp = _d.sent();
177
- userId = ((_b = (_a = resp.find(function (e) { return e.key === "AccountsModule"; })) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._id) || ((_c = resp.find(function (e) { return e.key === "RemoteProxy"; })) === null || _c === void 0 ? void 0 : _c.data);
178
- session = {
179
- firebaseToken: body.firebaseToken,
180
- pushSessionId: body.pushSessionId,
181
- timestamp: ts_common_1.currentTimeMillies()
182
- };
183
- if (userId)
184
- session.userId = userId;
185
- subscriptions = body.subscriptions.map(function (s) {
186
- var sub = {
187
- pushSessionId: body.pushSessionId,
188
- pushKey: s.pushKey
189
- };
190
- if (s.props)
191
- sub.props = s.props;
192
- return sub;
193
- });
194
- return [2 /*return*/, this.pushSessions.runInTransaction(function (transaction) { return __awaiter(_this, void 0, void 0, function () {
195
- var pushKeys, subscriptionNotifications, _a, userNotifications, _b, notifications, writePush, write;
196
- var _this = this;
197
- return __generator(this, function (_c) {
198
- switch (_c.label) {
199
- case 0:
200
- pushKeys = subscriptions.map(function (_sub) { return _sub.pushKey; });
201
- if (!(pushKeys.length !== 0)) return [3 /*break*/, 2];
202
- return [4 /*yield*/, ts_common_1.batchAction(pushKeys, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
203
- return [2 /*return*/, transaction.query(this.notifications, { where: { pushKey: { $in: elements } } })];
204
- }); }); })];
205
- case 1:
206
- _a = _c.sent();
207
- return [3 /*break*/, 3];
208
- case 2:
209
- _a = [];
210
- _c.label = 3;
211
- case 3:
212
- subscriptionNotifications = _a;
213
- if (subscriptionNotifications.length > 0)
214
- subscriptionNotifications = subscriptionNotifications.filter(function (_notification) {
215
- var _a;
216
- var x = (_a = subscriptions.find(function (_sub) { return _sub.pushKey === _notification.pushKey; })) === null || _a === void 0 ? void 0 : _a.props;
217
- return ts_common_1.compare(x, _notification.props) || _notification.userId;
218
- });
219
- if (!userId) return [3 /*break*/, 5];
220
- return [4 /*yield*/, transaction.query(this.notifications, { where: { userId: userId } })];
221
- case 4:
222
- _b = _c.sent();
223
- return [3 /*break*/, 6];
224
- case 5:
225
- _b = [];
226
- _c.label = 6;
227
- case 6:
228
- userNotifications = _b;
229
- notifications = userNotifications.concat(subscriptionNotifications);
230
- return [4 /*yield*/, transaction.upsert_Read(this.pushSessions, session)];
231
- case 7:
232
- writePush = _c.sent();
233
- return [4 /*yield*/, transaction.delete_Read(this.pushKeys, { where: { pushSessionId: body.pushSessionId } })];
234
- case 8:
235
- write = _c.sent();
236
- return [4 /*yield*/, transaction.insertAll(this.pushKeys, subscriptions)];
237
- case 9:
238
- _c.sent();
239
- return [4 /*yield*/, Promise.all([write(), writePush()])];
240
- case 10:
241
- _c.sent();
242
- return [2 /*return*/, ts_common_1.filterDuplicates(notifications)];
243
- }
244
- });
245
- }); })];
246
- }
98
+ return __awaiter(this, void 0, void 0, function* () {
99
+ const resp = yield backend_2.dispatch_queryRequestInfo.dispatchModuleAsync([request]);
100
+ const userId = ((_b = (_a = resp.find(e => e.key === "AccountsModule")) === null || _a === void 0 ? void 0 : _a.data) === null || _b === void 0 ? void 0 : _b._id) || ((_c = resp.find(e => e.key === "RemoteProxy")) === null || _c === void 0 ? void 0 : _c.data);
101
+ // if (!userId)
102
+ // throw new ImplementationMissingException("Missing user from accounts Module");
103
+ const session = {
104
+ firebaseToken: body.firebaseToken,
105
+ pushSessionId: body.pushSessionId,
106
+ timestamp: ts_common_1.currentTimeMillies()
107
+ };
108
+ if (userId)
109
+ session.userId = userId;
110
+ const subscriptions = body.subscriptions.map((s) => {
111
+ const sub = {
112
+ pushSessionId: body.pushSessionId,
113
+ pushKey: s.pushKey
114
+ };
115
+ if (s.props)
116
+ sub.props = s.props;
117
+ return sub;
247
118
  });
248
- });
249
- };
250
- PushPubSubModule_Class.prototype.pushToKey = function (key, props, data, persistent, transaction) {
251
- if (persistent === void 0) { persistent = false; }
252
- return __awaiter(this, void 0, void 0, function () {
253
- var processor;
254
- var _this = this;
255
- return __generator(this, function (_a) {
256
- processor = function (_transaction) { return __awaiter(_this, void 0, void 0, function () {
257
- var docs, notification, sessionsIds, sessions, _messages, resp, response, messages;
258
- var _this = this;
259
- return __generator(this, function (_a) {
260
- switch (_a.label) {
261
- case 0:
262
- console.log("i am pushing to key...", key, props, data);
263
- return [4 /*yield*/, _transaction.query(this.pushKeys, { where: { pushKey: key } })];
264
- case 1:
265
- docs = _a.sent();
266
- if (props)
267
- docs = docs.filter(function (doc) { return !doc.props || ts_common_1.compare(doc.props, props); });
268
- notification = this.buildNotification(key, persistent, data, props);
269
- if (!persistent) return [3 /*break*/, 3];
270
- return [4 /*yield*/, this.notifications.insertAll([notification])];
271
- case 2:
272
- _a.sent();
273
- _a.label = 3;
274
- case 3:
275
- if (docs.length === 0)
276
- return [2 /*return*/];
277
- sessionsIds = docs.map(function (d) { return d.pushSessionId; });
278
- return [4 /*yield*/, ts_common_1.batchAction(sessionsIds, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
279
- return [2 /*return*/, _transaction.query(this.pushSessions, { where: { pushSessionId: { $in: elements } } })];
280
- }); }); })];
281
- case 4:
282
- sessions = _a.sent();
283
- _messages = docs.reduce(function (carry, db_pushKey) {
284
- var session = sessions.find(function (s) { return s.pushSessionId === db_pushKey.pushSessionId; });
285
- if (!session)
286
- return carry;
287
- carry[session.firebaseToken] = [notification];
288
- return carry;
289
- }, {});
290
- return [4 /*yield*/, this.sendMessage(persistent, _messages)];
291
- case 5:
292
- resp = _a.sent();
293
- if (!resp)
294
- return [2 /*return*/, this.logInfo('No messages to send. Empty subscriptions')];
295
- response = resp.response, messages = resp.messages;
296
- this.logInfo(response.successCount + " sent, " + response.failureCount + " failed", "messages", messages);
297
- return [2 /*return*/];
298
- }
119
+ return this.pushSessions.runInTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
120
+ const pushKeys = subscriptions.map(_sub => _sub.pushKey);
121
+ let subscriptionNotifications = pushKeys.length !== 0 ?
122
+ yield ts_common_1.batchAction(pushKeys, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return transaction.query(this.notifications, { where: { pushKey: { $in: elements } } }); })) : [];
123
+ if (subscriptionNotifications.length > 0)
124
+ subscriptionNotifications = subscriptionNotifications.filter(_notification => {
125
+ var _a;
126
+ const x = (_a = subscriptions.find(_sub => _sub.pushKey === _notification.pushKey)) === null || _a === void 0 ? void 0 : _a.props;
127
+ return ts_common_1.compare(x, _notification.props) || _notification.userId;
299
128
  });
300
- }); };
301
- if (transaction)
302
- return [2 /*return*/, processor(transaction)];
303
- return [2 /*return*/, this.pushKeys.runInTransaction(processor)];
304
- });
129
+ const userNotifications = userId ? yield transaction.query(this.notifications, { where: { userId } }) : [];
130
+ const notifications = userNotifications.concat(subscriptionNotifications);
131
+ const writePush = yield transaction.upsert_Read(this.pushSessions, session);
132
+ const write = yield transaction.delete_Read(this.pushKeys, { where: { pushSessionId: body.pushSessionId } });
133
+ yield transaction.insertAll(this.pushKeys, subscriptions);
134
+ yield Promise.all([write(), writePush()]);
135
+ return ts_common_1.filterDuplicates(notifications);
136
+ }));
305
137
  });
306
- };
307
- PushPubSubModule_Class.prototype.pushToUser = function (user, key, props, data, persistent) {
308
- if (persistent === void 0) { persistent = false; }
309
- return __awaiter(this, void 0, void 0, function () {
310
- var notification, notifications, docs, sessionsIds, sessions, _messages;
311
- var _this = this;
312
- return __generator(this, function (_a) {
313
- switch (_a.label) {
314
- case 0:
315
- console.log("i am pushing to user...", user, props);
316
- notification = this.buildNotification(key, persistent, data, props, user);
317
- notifications = [];
318
- if (!persistent) return [3 /*break*/, 2];
319
- notifications.push(notification);
320
- return [4 /*yield*/, this.notifications.insertAll(notifications)];
321
- case 1:
322
- _a.sent();
323
- _a.label = 2;
324
- case 2: return [4 /*yield*/, this.pushSessions.query({ where: { userId: user } })];
325
- case 3:
326
- docs = _a.sent();
327
- if (docs.length === 0)
328
- return [2 /*return*/];
329
- sessionsIds = docs.map(function (d) { return d.pushSessionId; });
330
- return [4 /*yield*/, ts_common_1.batchAction(sessionsIds, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
331
- return [2 /*return*/, this.pushSessions.query({ where: { pushSessionId: { $in: elements } } })];
332
- }); }); })];
333
- case 4:
334
- sessions = _a.sent();
335
- _messages = docs.reduce(function (carry, db_pushKey) {
336
- var session = sessions.find(function (s) { return s.pushSessionId === db_pushKey.pushSessionId; });
337
- if (!session)
338
- return carry;
339
- carry[session.firebaseToken] = [notification];
340
- return carry;
341
- }, {});
342
- return [4 /*yield*/, this.sendMessage(persistent, _messages)];
343
- case 5:
344
- _a.sent();
345
- return [2 /*return*/];
138
+ }
139
+ pushToKey(key, props, data, persistent = false, transaction) {
140
+ return __awaiter(this, void 0, void 0, function* () {
141
+ const processor = (_transaction) => __awaiter(this, void 0, void 0, function* () {
142
+ console.log("i am pushing to key...", key, props, data);
143
+ let docs = yield _transaction.query(this.pushKeys, { where: { pushKey: key } });
144
+ if (props)
145
+ docs = docs.filter(doc => !doc.props || ts_common_1.compare(doc.props, props));
146
+ const notification = this.buildNotification(key, persistent, data, props);
147
+ // If we need to do read and write for a transaction move this to a callback and rename to pushToKey_Read
148
+ if (persistent) {
149
+ yield this.notifications.insertAll([notification]);
346
150
  }
151
+ if (docs.length === 0)
152
+ return;
153
+ const sessionsIds = docs.map(d => d.pushSessionId);
154
+ // I get the tokens relative to those sessions (query)
155
+ const sessions = yield ts_common_1.batchAction(sessionsIds, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return _transaction.query(this.pushSessions, { where: { pushSessionId: { $in: elements } } }); }));
156
+ const _messages = docs.reduce((carry, db_pushKey) => {
157
+ const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
158
+ if (!session)
159
+ return carry;
160
+ carry[session.firebaseToken] = [notification];
161
+ return carry;
162
+ }, {});
163
+ const resp = yield this.sendMessage(persistent, _messages);
164
+ if (!resp)
165
+ return this.logInfo('No messages to send. Empty subscriptions');
166
+ const { response, messages } = resp;
167
+ this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`, "messages", messages);
168
+ // return this.cleanUp(response, messages);
347
169
  });
170
+ if (transaction)
171
+ return processor(transaction);
172
+ return this.pushKeys.runInTransaction(processor);
348
173
  });
349
- };
350
- PushPubSubModule_Class.prototype.cleanUpImpl = function (_toDelete) {
351
- return __awaiter(this, void 0, void 0, function () {
352
- var toDelete, _sessions, sessions, async;
353
- var _this = this;
354
- return __generator(this, function (_a) {
355
- switch (_a.label) {
356
- case 0:
357
- if (_toDelete.length === 0)
358
- return [2 /*return*/];
359
- toDelete = ts_common_1.filterDuplicates(_toDelete);
360
- return [4 /*yield*/, ts_common_1.batchActionParallel(toDelete, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
361
- return [2 /*return*/, this.pushSessions.query({ where: { firebaseToken: { $in: elements } } })];
362
- }); }); })];
363
- case 1:
364
- _sessions = _a.sent();
365
- sessions = ts_common_1.filterDuplicates(_sessions.map(function (s) { return s.pushSessionId; }));
366
- async = [
367
- ts_common_1.batchActionParallel(toDelete, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
368
- return [2 /*return*/, this.pushSessions.delete({ where: { firebaseToken: { $in: elements } } })];
369
- }); }); }),
370
- ts_common_1.batchActionParallel(sessions, 10, function (elements) { return __awaiter(_this, void 0, void 0, function () { return __generator(this, function (_a) {
371
- return [2 /*return*/, this.pushKeys.delete({ where: { pushSessionId: { $in: elements } } })];
372
- }); }); })
373
- ];
374
- return [4 /*yield*/, Promise.all(async)];
375
- case 2:
376
- _a.sent();
377
- return [2 /*return*/];
378
- }
379
- });
174
+ }
175
+ pushToUser(user, key, props, data, persistent = false) {
176
+ return __awaiter(this, void 0, void 0, function* () {
177
+ console.log("i am pushing to user...", user, props);
178
+ const notification = this.buildNotification(key, persistent, data, props, user);
179
+ const notifications = [];
180
+ if (persistent) {
181
+ notifications.push(notification);
182
+ yield this.notifications.insertAll(notifications);
183
+ }
184
+ const docs = yield this.pushSessions.query({ where: { userId: user } });
185
+ if (docs.length === 0)
186
+ return;
187
+ const sessionsIds = docs.map(d => d.pushSessionId);
188
+ const sessions = yield ts_common_1.batchAction(sessionsIds, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.query({ where: { pushSessionId: { $in: elements } } }); }));
189
+ const _messages = docs.reduce((carry, db_pushKey) => {
190
+ const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
191
+ if (!session)
192
+ return carry;
193
+ carry[session.firebaseToken] = [notification];
194
+ return carry;
195
+ }, {});
196
+ yield this.sendMessage(persistent, _messages);
380
197
  });
381
- };
382
- return PushPubSubModule_Class;
383
- }(ts_common_1.Module));
198
+ }
199
+ cleanUpImpl(_toDelete) {
200
+ return __awaiter(this, void 0, void 0, function* () {
201
+ if (_toDelete.length === 0)
202
+ return;
203
+ const toDelete = ts_common_1.filterDuplicates(_toDelete);
204
+ const _sessions = yield ts_common_1.batchActionParallel(toDelete, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.query({ where: { firebaseToken: { $in: elements } } }); }));
205
+ const sessions = ts_common_1.filterDuplicates(_sessions.map(s => s.pushSessionId));
206
+ const async = [
207
+ ts_common_1.batchActionParallel(toDelete, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.delete({ where: { firebaseToken: { $in: elements } } }); })),
208
+ ts_common_1.batchActionParallel(sessions, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushKeys.delete({ where: { pushSessionId: { $in: elements } } }); }))
209
+ ];
210
+ yield Promise.all(async);
211
+ });
212
+ }
213
+ }
384
214
  exports.PushPubSubModule_Class = PushPubSubModule_Class;
385
215
  exports.PushPubSubModule = new PushPubSubModule_Class();
386
216
  //# sourceMappingURL=PushPubSubModule.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PushPubSubModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushPubSubModule.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;;;GAiBG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,0DAYsC;AAEtC,+DAO6C;AAa7C,mEAGiD;AAWjD;IACS,0CAAc;IADvB;QAAA,qEAiOC;QA/EQ,uBAAiB,GAAG,UAAC,OAAe,EAAE,UAAmB,EAAE,IAAU,EAAE,KAAW,EAAE,IAAa;YACxG,IAAM,YAAY,GAAqB;gBACtC,GAAG,EAAE,uBAAW,CAAC,EAAE,CAAC;gBACpB,SAAS,EAAE,8BAAkB,EAAE;gBAC/B,IAAI,EAAE,KAAK;gBACX,OAAO,EAAE,OAAO;gBAChB,UAAU,YAAA;aACV,CAAC;YAEF,IAAI,IAAI;gBACP,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC;YAE1B,IAAI,KAAK;gBACR,YAAY,CAAC,KAAK,GAAG,KAAK,CAAC;YAE5B,IAAI,IAAI;gBACP,YAAY,CAAC,MAAM,GAAG,IAAI,CAAC;YAE5B,OAAO,YAAY,CAAC;QACrB,CAAC,CAAC;QAEF,iBAAW,GAAG,UAAO,UAAmB,EAAE,SAAuB;;;;;wBAC1D,QAAQ,GAA2B,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,UAAA,KAAK,IAAI,OAAA,CAAC,EAAC,KAAK,OAAA,EAAE,IAAI,EAAE,EAAC,QAAQ,EAAE,uBAAW,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,EAAC,EAAC,CAAC,EAA1D,CAA0D,CAAC,CAAC;wBACzI,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;4BACxB,sBAAO;wBAER,OAAO,CAAC,GAAG,CAAC,yBAAyB,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;wBAC9B,qBAAM,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAA;;wBAA7E,QAAQ,GAA+B,SAAsC;wBACnF,OAAO,CAAC,GAAG,CAAC,4BAA4B,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,SAAS,IAAI,OAAA,SAAS,CAAC,OAAO,EAAjB,CAAiB,CAAC,CAAC,CAAC;wBACnG,sBAAO,EAAC,QAAQ,UAAA,EAAE,QAAQ,UAAA,EAAC,EAAC;;;aAC5B,CAAC;QAEF,sBAAgB,GAAG,UAAO,EAAU,EAAE,IAAa;;;4BAClD,qBAAM,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAC,GAAG,EAAE,EAAE,EAAE,IAAI,MAAA,EAA6B,CAAC,EAAA;;wBAA3E,SAA2E,CAAC;;;;aAC5E,CAAC;QAEF,sBAAgB,GAAG;;;;;;wBACZ,mBAAmB,GAAG,OAAA,IAAI,CAAC,MAAM,0CAAE,mBAAmB,KAAI,gBAAI,CAAC;wBAC/D,wBAAwB,GAAG,OAAA,IAAI,CAAC,MAAM,0CAAE,wBAAwB,KAAI,CAAC,GAAG,eAAG,CAAC;wBAErE,qBAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,SAAS,EAAE,EAAC,GAAG,EAAE,8BAAkB,EAAE,GAAG,mBAAmB,EAAC,EAAC,EAAC,CAAC,EAAA;;wBAA7G,IAAI,GAAG,SAAsG;wBAEnH,qBAAM,OAAO,CAAC,GAAG,CAAC;gCACC,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,EAAC,SAAS,EAAE,EAAC,GAAG,EAAE,8BAAkB,EAAE,GAAG,wBAAwB,EAAC,EAAC,EAAC,CAAC;gCACvG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAC;6BAChD,CAAC,EAAA;;wBAHpB,SAGoB,CAAC;;;;aACrB,CAAC;QAEF,aAAO,GAAG,UAAO,QAAoC,EAAE,QAAgC;;;gBACtF,IAAI,CAAC,OAAO,CAAI,QAAQ,CAAC,YAAY,eAAU,QAAQ,CAAC,YAAY,YAAS,CAAC,CAAC;gBAE/E,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC;oBAC5B,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,KAAK,EAAP,CAAO,CAAC,CAAC,CAAC;gBAEpD,QAAQ,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,UAAC,KAAK,EAAE,IAAI,EAAE,CAAC;oBACzD,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC,CAAC,CAAC;wBAC/B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;oBAE/B,OAAO,KAAK,CAAC;gBACd,CAAC,EAAE,EAAc,CAAC,CAAC;gBAEnB,+DAA+D;gBAC/D,sBAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAC;;aAClC,CAAC;;IAgBH,CAAC;IAzNU,qCAAI,GAAd;QACC,IAAM,OAAO,GAAG,wBAAc,CAAC,kBAAkB,EAAE,CAAC;QACpD,IAAM,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;QAEzC,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC,aAAa,CAAiB,eAAe,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;QAChG,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,aAAa,CAAc,WAAW,CAAC,CAAC;QAClE,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC,aAAa,CAAmB,eAAe,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;QACzF,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IACzC,CAAC;IAEK,yCAAQ,GAAd,UAAe,IAA0B,EAAE,OAAuB;;;;;;;4BACpD,qBAAM,mCAAyB,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,EAAA;;wBAArE,IAAI,GAAG,SAA8D;wBACrE,MAAM,GAAuB,aAAA,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAK,gBAAgB,EAA1B,CAA0B,CAAC,0CAAE,IAAI,0CAAE,GAAG,YAAI,IAAI,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,GAAG,KAAK,aAAa,EAAvB,CAAuB,CAAC,0CAAE,IAAI,CAAA,CAAC;wBAIpI,OAAO,GAAmB;4BAC/B,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,aAAa,EAAE,IAAI,CAAC,aAAa;4BACjC,SAAS,EAAE,8BAAkB,EAAE;yBAC/B,CAAC;wBAEF,IAAG,MAAM;4BACR,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;wBAEnB,aAAa,GAAkB,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,UAAC,CAAC;4BAC7D,IAAM,GAAG,GAAgB;gCACxB,aAAa,EAAE,IAAI,CAAC,aAAa;gCACjC,OAAO,EAAE,CAAC,CAAC,OAAO;6BAClB,CAAC;4BACF,IAAI,CAAC,CAAC,KAAK;gCACV,GAAG,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;4BAErB,OAAO,GAAG,CAAC;wBACZ,CAAC,CAAC,CAAC;wBAEH,sBAAO,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,UAAM,WAAW;;;;;;4CACpD,QAAQ,GAAG,aAAa,CAAC,GAAG,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,OAAO,EAAZ,CAAY,CAAC,CAAC;iDAEL,CAAA,QAAQ,CAAC,MAAM,KAAK,CAAC,CAAA,EAArB,wBAAqB;4CACxE,qBAAM,uBAAW,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAM,QAAQ;oDAAI,sBAAA,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;yDAAA,CAAC,EAAA;;4CAA7H,KAAA,SAA6H,CAAA;;;4CAAG,KAAA,EAAE,CAAA;;;4CAD/H,yBAAyB,KACsG;4CAEnI,IAAI,yBAAyB,CAAC,MAAM,GAAG,CAAC;gDACvC,yBAAyB,GAAG,yBAAyB,CAAC,MAAM,CAAC,UAAA,aAAa;;oDACzE,IAAM,CAAC,SAAG,aAAa,CAAC,IAAI,CAAC,UAAA,IAAI,IAAI,OAAA,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,OAAO,EAAtC,CAAsC,CAAC,0CAAE,KAAK,CAAC;oDACpF,OAAO,mBAAO,CAAC,CAAC,EAAE,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC;gDAChE,CAAC,CAAC,CAAC;iDAE0C,MAAM,EAAN,wBAAM;4CAAG,qBAAM,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,EAAC,KAAK,EAAE,EAAC,MAAM,QAAA,EAAC,EAAC,CAAC,EAAA;;4CAA9D,KAAA,SAA8D,CAAA;;;4CAAG,KAAA,EAAE,CAAA;;;4CAApH,iBAAiB,KAAmG;4CACpH,aAAa,GAAG,iBAAiB,CAAC,MAAM,CAAC,yBAAyB,CAAC,CAAC;4CACxD,qBAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,OAAO,CAAC,EAAA;;4CAArE,SAAS,GAAG,SAAyD;4CAE7D,qBAAM,WAAW,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,IAAI,CAAC,aAAa,EAAC,EAAC,CAAC,EAAA;;4CAAlG,KAAK,GAAG,SAA0F;4CACxG,qBAAM,WAAW,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAA;;4CAAzD,SAAyD,CAAC;4CAC1D,qBAAM,OAAO,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,EAAA;;4CAAzC,SAAyC,CAAC;4CAC1C,sBAAO,4BAAgB,CAAC,aAAa,CAAC,EAAC;;;iCACvC,CAAC,EAAC;;;;KACH;IAEK,0CAAS,GAAf,UAGa,GAAM,EAAE,KAAS,EAAE,IAAQ,EAAE,UAA2B,EAAE,WAAkC;QAA/D,2BAAA,EAAA,kBAA2B;;;;;gBAC9D,SAAS,GAAG,UAAO,YAAkC;;;;;;gCAC1D,OAAO,CAAC,GAAG,CAAC,wBAAwB,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;gCAC7C,qBAAM,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,EAAE,EAAC,KAAK,EAAE,EAAC,OAAO,EAAE,GAAG,EAAC,EAAC,CAAC,EAAA;;gCAAvE,IAAI,GAAG,SAAgE;gCAC3E,IAAI,KAAK;oCACR,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,UAAA,GAAG,IAAI,OAAA,CAAC,GAAG,CAAC,KAAK,IAAI,mBAAO,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,EAAvC,CAAuC,CAAC,CAAC;gCAE9D,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;qCAEtE,UAAU,EAAV,wBAAU;gCACb,qBAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,YAAY,CAAC,CAAC,EAAA;;gCAAlD,SAAkD,CAAC;;;gCAGpD,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;oCACpB,sBAAO;gCAEF,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAC;gCAElC,qBAAM,uBAAW,CAAC,WAAW,EAAE,EAAE,EAAE,UAAM,QAAQ;wCAAI,sBAAA,YAAY,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;6CAAA,CAAC,EAAA;;gCAAjJ,QAAQ,GAAG,SAAsI;gCACjJ,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,KAAmB,EAAE,UAAuB;oCAC1E,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,EAA5C,CAA4C,CAAC,CAAC;oCACjF,IAAI,CAAC,OAAO;wCACX,OAAO,KAAK,CAAC;oCAEd,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;oCAE9C,OAAO,KAAK,CAAC;gCACd,CAAC,EAAE,EAAkB,CAAC,CAAC;gCACV,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA;;gCAApD,IAAI,GAAG,SAA6C;gCAC1D,IAAI,CAAC,IAAI;oCACR,sBAAO,IAAI,CAAC,OAAO,CAAC,0CAA0C,CAAC,EAAC;gCAE1D,QAAQ,GAAc,IAAI,SAAlB,EAAE,QAAQ,GAAI,IAAI,SAAR,CAAS;gCAClC,IAAI,CAAC,OAAO,CAAI,QAAQ,CAAC,YAAY,eAAU,QAAQ,CAAC,YAAY,YAAS,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC;;;;qBAErG,CAAC;gBACF,IAAI,WAAW;oBACd,sBAAO,SAAS,CAAC,WAAW,CAAC,EAAC;gBAE/B,sBAAO,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,SAAS,CAAC,EAAC;;;KACjD;IAEK,2CAAU,GAAhB,UAGa,IAAY,EAAE,GAAW,EAAE,KAAS,EAAE,IAAQ,EAAE,UAA2B;QAA3B,2BAAA,EAAA,kBAA2B;;;;;;;wBACvF,OAAO,CAAC,GAAG,CAAC,yBAAyB,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;wBAE9C,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;wBAC1E,aAAa,GAAuB,EAAE,CAAC;6BACzC,UAAU,EAAV,wBAAU;wBACb,aAAa,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;wBACjC,qBAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,aAAa,CAAC,EAAA;;wBAAjD,SAAiD,CAAC;;4BAGtC,qBAAM,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,MAAM,EAAE,IAAI,EAAC,EAAC,CAAC,EAAA;;wBAA7D,IAAI,GAAG,SAAsD;wBACnE,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC;4BACpB,sBAAO;wBAEF,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAC;wBAClC,qBAAM,uBAAW,CAAC,WAAW,EAAE,EAAE,EAAE,UAAM,QAAQ;gCAAI,sBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;qCAAA,CAAC,EAAA;;wBAAnI,QAAQ,GAAG,SAAwH;wBAEnI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,UAAC,KAAmB,EAAE,UAA0B;4BAC7E,IAAM,OAAO,GAAG,QAAQ,CAAC,IAAI,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,KAAK,UAAU,CAAC,aAAa,EAA5C,CAA4C,CAAC,CAAC;4BACjF,IAAI,CAAC,OAAO;gCACX,OAAO,KAAK,CAAC;4BAEd,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;4BAG9C,OAAO,KAAK,CAAC;wBACd,CAAC,EAAE,EAAkB,CAAC,CAAC;wBAEvB,qBAAM,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,SAAS,CAAC,EAAA;;wBAA7C,SAA6C,CAAC;;;;;KAC9C;IAmEa,4CAAW,GAAzB,UAA0B,SAAmB;;;;;;;wBAC5C,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;4BACzB,sBAAO;wBAEF,QAAQ,GAAG,4BAAgB,CAAC,SAAS,CAAC,CAAC;wBAC3B,qBAAM,+BAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAM,QAAQ;gCAAI,sBAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;qCAAA,CAAC,EAAA;;wBAAzI,SAAS,GAAG,SAA6H;wBACzI,QAAQ,GAAG,4BAAgB,CAAC,SAAS,CAAC,GAAG,CAAC,UAAA,CAAC,IAAI,OAAA,CAAC,CAAC,aAAa,EAAf,CAAe,CAAC,CAAC,CAAC;wBACjE,KAAK,GAAG;4BACb,+BAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAM,QAAQ;gCAAI,sBAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;qCAAA,CAAC;4BACxH,+BAAmB,CAAC,QAAQ,EAAE,EAAE,EAAE,UAAM,QAAQ;gCAAI,sBAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAC,KAAK,EAAE,EAAC,aAAa,EAAE,EAAC,GAAG,EAAE,QAAQ,EAAC,EAAC,EAAC,CAAC,EAAA;qCAAA,CAAC;yBACpH,CAAC;wBAEF,qBAAM,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAA;;wBAAxB,SAAwB,CAAC;;;;;KACzB;IACF,6BAAC;AAAD,CAAC,AAjOD,CACS,kBAAM,GAgOd;AAjOY,wDAAsB;AAmOtB,QAAA,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
1
+ {"version":3,"file":"PushPubSubModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushPubSubModule.ts"],"names":[],"mappings":"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"}