@intuitionrobotics/push-pub-sub 0.47.59 → 1.0.1
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/LICENSE +3 -0
- package/dist/app-backend/api/_push.d.ts +4 -0
- package/dist/app-backend/api/_push.d.ts.map +1 -0
- package/dist/app-backend/api/_push.js +3 -0
- package/dist/app-backend/api/_push.js.map +1 -0
- package/dist/app-backend/api/v1/push/read.d.ts +9 -0
- package/dist/app-backend/api/v1/push/read.d.ts.map +1 -0
- package/dist/app-backend/api/v1/push/read.js +15 -0
- package/dist/app-backend/api/v1/push/read.js.map +1 -0
- package/dist/app-backend/api/v1/push/register.d.ts +9 -0
- package/dist/app-backend/api/v1/push/register.d.ts.map +1 -0
- package/dist/app-backend/api/v1/push/register.js +15 -0
- package/dist/app-backend/api/v1/push/register.js.map +1 -0
- package/dist/app-backend/core/module-pack.d.ts +5 -0
- package/dist/app-backend/core/module-pack.d.ts.map +1 -0
- package/dist/app-backend/core/module-pack.js +10 -0
- package/dist/app-backend/core/module-pack.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/PushKey.d.ts +3 -2
- package/dist/app-backend/modules/PushKey.d.ts.map +1 -0
- package/dist/app-backend/modules/PushKey.js +16 -0
- package/dist/app-backend/modules/PushKey.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/PushPubSubModule.d.ts +5 -4
- package/dist/app-backend/modules/PushPubSubModule.d.ts.map +1 -0
- package/dist/app-backend/modules/PushPubSubModule.js +185 -0
- package/dist/app-backend/modules/PushPubSubModule.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/ScheduledPushCleanup.d.ts +1 -0
- package/dist/app-backend/modules/ScheduledPushCleanup.d.ts.map +1 -0
- package/dist/app-backend/modules/ScheduledPushCleanup.js +13 -0
- package/dist/app-backend/modules/ScheduledPushCleanup.js.map +1 -0
- package/{app-backend → dist/app-backend}/modules/_imports.d.ts +2 -1
- package/dist/app-backend/modules/_imports.d.ts.map +1 -0
- package/dist/app-backend/modules/_imports.js +4 -0
- package/{app-backend → dist/app-backend}/modules/_imports.js.map +1 -1
- package/dist/app-frontend/core/module-pack.d.ts +4 -0
- package/dist/app-frontend/core/module-pack.d.ts.map +1 -0
- package/dist/app-frontend/core/module-pack.js +11 -0
- package/dist/app-frontend/core/module-pack.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/NotificationModule.d.ts +2 -1
- package/dist/app-frontend/modules/NotificationModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/NotificationModule.js +52 -0
- package/dist/app-frontend/modules/NotificationModule.js.map +1 -0
- package/{app-frontend → dist/app-frontend}/modules/PushPubSubModule.d.ts +2 -1
- package/dist/app-frontend/modules/PushPubSubModule.d.ts.map +1 -0
- package/dist/app-frontend/modules/PushPubSubModule.js +175 -0
- package/dist/app-frontend/modules/PushPubSubModule.js.map +1 -0
- package/dist/backend.d.ts +2 -0
- package/dist/backend.d.ts.map +1 -0
- package/dist/backend.js +2 -0
- package/dist/backend.js.map +1 -0
- package/dist/frontend.d.ts +4 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +7 -0
- package/dist/frontend.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +3 -0
- package/dist/index.js.map +1 -0
- package/dist/shared/api.d.ts +5 -0
- package/dist/shared/api.d.ts.map +1 -0
- package/dist/shared/api.js +3 -0
- package/dist/shared/api.js.map +1 -0
- package/{shared → dist/shared}/types.d.ts +3 -2
- package/dist/shared/types.d.ts.map +1 -0
- package/dist/shared/types.js +2 -0
- package/dist/shared/types.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/package.json +66 -14
- package/app-backend/api/_push.d.ts +0 -1
- package/app-backend/api/_push.js +0 -5
- package/app-backend/api/_push.js.map +0 -1
- package/app-backend/api/v1/push/read.d.ts +0 -1
- package/app-backend/api/v1/push/read.js +0 -27
- package/app-backend/api/v1/push/read.js.map +0 -1
- package/app-backend/api/v1/push/register.d.ts +0 -1
- package/app-backend/api/v1/push/register.js +0 -27
- package/app-backend/api/v1/push/register.js.map +0 -1
- package/app-backend/core/module-pack.d.ts +0 -4
- package/app-backend/core/module-pack.js +0 -27
- package/app-backend/core/module-pack.js.map +0 -1
- package/app-backend/modules/PushKey.js +0 -27
- package/app-backend/modules/PushKey.js.map +0 -1
- package/app-backend/modules/PushPubSubModule.js +0 -203
- package/app-backend/modules/PushPubSubModule.js.map +0 -1
- package/app-backend/modules/ScheduledPushCleanup.js +0 -26
- package/app-backend/modules/ScheduledPushCleanup.js.map +0 -1
- package/app-backend/modules/_imports.js +0 -21
- package/app-frontend/core/module-pack.d.ts +0 -3
- package/app-frontend/core/module-pack.js +0 -28
- package/app-frontend/core/module-pack.js.map +0 -1
- package/app-frontend/modules/NotificationModule.js +0 -55
- package/app-frontend/modules/NotificationModule.js.map +0 -1
- package/app-frontend/modules/PushPubSubModule.js +0 -184
- package/app-frontend/modules/PushPubSubModule.js.map +0 -1
- package/backend.d.ts +0 -1
- package/backend.js +0 -18
- package/backend.js.map +0 -1
- package/frontend.d.ts +0 -3
- package/frontend.js +0 -20
- package/frontend.js.map +0 -1
- package/index.d.ts +0 -2
- package/index.js +0 -19
- package/index.js.map +0 -1
- package/shared/api.d.ts +0 -4
- package/shared/api.js +0 -3
- package/shared/api.js.map +0 -1
- package/shared/types.js +0 -3
- package/shared/types.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@intuitionrobotics/push-pub-sub",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"description": "push-pub-sub",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"IR",
|
|
@@ -17,22 +17,74 @@
|
|
|
17
17
|
},
|
|
18
18
|
"license": "Apache-2.0",
|
|
19
19
|
"author": "IR",
|
|
20
|
-
"
|
|
21
|
-
"
|
|
22
|
-
"
|
|
23
|
-
|
|
24
|
-
"
|
|
25
|
-
|
|
20
|
+
"type": "module",
|
|
21
|
+
"main": "./dist/index.js",
|
|
22
|
+
"types": "./dist/index.d.ts",
|
|
23
|
+
"files": [
|
|
24
|
+
"dist"
|
|
25
|
+
],
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@intuitionrobotics/firebase": "
|
|
28
|
-
"@intuitionrobotics/thunderstorm": "
|
|
29
|
-
"@intuitionrobotics/ts-common": "
|
|
27
|
+
"@intuitionrobotics/firebase": "1.0.1",
|
|
28
|
+
"@intuitionrobotics/thunderstorm": "1.0.1",
|
|
29
|
+
"@intuitionrobotics/ts-common": "1.0.1"
|
|
30
|
+
},
|
|
31
|
+
"peerDependencies": {
|
|
32
|
+
"@types/react": "^18.0.0"
|
|
30
33
|
},
|
|
31
34
|
"devDependencies": {
|
|
32
|
-
"@intuitionrobotics/testelot": "~0.47.0",
|
|
33
35
|
"@types/node": "^20.0.0",
|
|
34
36
|
"ts-node": "^8.6.2",
|
|
35
|
-
"
|
|
36
|
-
"
|
|
37
|
+
"typescript": "^5.3.0",
|
|
38
|
+
"@intuitionrobotics/testelot": "1.0.1"
|
|
39
|
+
},
|
|
40
|
+
"typesVersions": {
|
|
41
|
+
"*": {
|
|
42
|
+
"backend": [
|
|
43
|
+
"dist/backend"
|
|
44
|
+
],
|
|
45
|
+
"frontend": [
|
|
46
|
+
"dist/frontend"
|
|
47
|
+
],
|
|
48
|
+
"app-backend/*": [
|
|
49
|
+
"dist/app-backend/*"
|
|
50
|
+
],
|
|
51
|
+
"app-frontend/*": [
|
|
52
|
+
"dist/app-frontend/*"
|
|
53
|
+
],
|
|
54
|
+
"shared/*": [
|
|
55
|
+
"dist/shared/*"
|
|
56
|
+
]
|
|
57
|
+
}
|
|
58
|
+
},
|
|
59
|
+
"exports": {
|
|
60
|
+
".": {
|
|
61
|
+
"types": "./dist/index.d.ts",
|
|
62
|
+
"default": "./dist/index.js"
|
|
63
|
+
},
|
|
64
|
+
"./frontend": {
|
|
65
|
+
"types": "./dist/frontend.d.ts",
|
|
66
|
+
"default": "./dist/frontend.js"
|
|
67
|
+
},
|
|
68
|
+
"./backend": {
|
|
69
|
+
"types": "./dist/backend.d.ts",
|
|
70
|
+
"default": "./dist/backend.js"
|
|
71
|
+
},
|
|
72
|
+
"./app-frontend/*": {
|
|
73
|
+
"types": "./dist/app-frontend/*.d.ts",
|
|
74
|
+
"default": "./dist/app-frontend/*.js"
|
|
75
|
+
},
|
|
76
|
+
"./app-backend/*": {
|
|
77
|
+
"types": "./dist/app-backend/*.d.ts",
|
|
78
|
+
"default": "./dist/app-backend/*.js"
|
|
79
|
+
},
|
|
80
|
+
"./shared/*": {
|
|
81
|
+
"types": "./dist/shared/*.d.ts",
|
|
82
|
+
"default": "./dist/shared/*.js"
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"sideEffects": false,
|
|
86
|
+
"scripts": {
|
|
87
|
+
"build": "tsc -b src/main/tsconfig.json",
|
|
88
|
+
"lint": "eslint src/main --cache --cache-location ../node_modules/.cache/eslint/push-pub-sub"
|
|
37
89
|
}
|
|
38
|
-
}
|
|
90
|
+
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/app-backend/api/_push.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"_push.js","sourceRoot":"","sources":["../../../src/main/app-backend/api/_push.ts"],"names":[],"mappings":";;AAAA,qEAAsE;AAEtE,MAAM,CAAC,OAAO,GAAG,IAAI,uBAAa,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
13
|
-
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
14
|
-
const PushPubSubModule_1 = require("../../../modules/PushPubSubModule");
|
|
15
|
-
class ServerApi_PushRead extends backend_1.ServerApi {
|
|
16
|
-
constructor() {
|
|
17
|
-
super(thunderstorm_1.HttpMethod.POST, "read");
|
|
18
|
-
}
|
|
19
|
-
process(request, response, queryParams, body) {
|
|
20
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
// const user = await KasperoProxy.validateSession(request);
|
|
22
|
-
return yield PushPubSubModule_1.PushPubSubModule.readNotification(body._id, body.read);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
module.exports = new ServerApi_PushRead();
|
|
27
|
-
//# sourceMappingURL=read.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/read.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qEAIiD;AAGjD,kEAA2D;AAC3D,wEAAmE;AAMnE,MAAM,kBACL,SAAQ,mBAAiC;IAEzC;QACC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAsB;;YAC9G,4DAA4D;YAC5D,OAAO,MAAM,mCAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,kBAAkB,EAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
const backend_1 = require("@intuitionrobotics/thunderstorm/backend");
|
|
13
|
-
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
14
|
-
const PushPubSubModule_1 = require("../../../modules/PushPubSubModule");
|
|
15
|
-
class ServerApi_PushRegister extends backend_1.ServerApi {
|
|
16
|
-
constructor() {
|
|
17
|
-
super(thunderstorm_1.HttpMethod.POST, "register");
|
|
18
|
-
}
|
|
19
|
-
process(request, response, queryParams, body) {
|
|
20
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
// const user = await KasperoProxy.validateSession(request);
|
|
22
|
-
return yield PushPubSubModule_1.PushPubSubModule.register(body, request);
|
|
23
|
-
});
|
|
24
|
-
}
|
|
25
|
-
}
|
|
26
|
-
module.exports = new ServerApi_PushRegister();
|
|
27
|
-
//# sourceMappingURL=register.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/register.ts"],"names":[],"mappings":";;;;;;;;;;;AAAA,qEAIiD;AAGjD,kEAA2D;AAC3D,wEAAmE;AAMnE,MAAM,sBACL,SAAQ,mBAA+B;IAEvC;QACC,KAAK,CAAC,yBAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAEe,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAA0B;;YAClH,4DAA4D;YAC5D,OAAO,MAAM,mCAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACvD,CAAC;KAAA;CACD;AAED,MAAM,CAAC,OAAO,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
export declare const Backend_ModulePack_PushPubSub: (import("../modules/PushPubSubModule").PushPubSubModule_Class | import("../modules/ScheduledPushCleanup").ScheduledCleanup_Class)[];
|
|
2
|
-
export * from "../modules/PushPubSubModule";
|
|
3
|
-
export * from "../modules/ScheduledPushCleanup";
|
|
4
|
-
export * from "../modules/PushKey";
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.Backend_ModulePack_PushPubSub = void 0;
|
|
18
|
-
const PushPubSubModule_1 = require("../modules/PushPubSubModule");
|
|
19
|
-
const ScheduledPushCleanup_1 = require("../modules/ScheduledPushCleanup");
|
|
20
|
-
exports.Backend_ModulePack_PushPubSub = [
|
|
21
|
-
PushPubSubModule_1.PushPubSubModule,
|
|
22
|
-
ScheduledPushCleanup_1.ScheduledCleanup
|
|
23
|
-
];
|
|
24
|
-
__exportStar(require("../modules/PushPubSubModule"), exports);
|
|
25
|
-
__exportStar(require("../modules/ScheduledPushCleanup"), exports);
|
|
26
|
-
__exportStar(require("../modules/PushKey"), exports);
|
|
27
|
-
//# sourceMappingURL=module-pack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,kEAA6D;AAC7D,0EAAiE;AAEpD,QAAA,6BAA6B,GAAG;IAC5C,mCAAgB;IAChB,uCAAgB;CAChB,CAAC;AAEF,8DAA2C;AAC3C,kEAA+C;AAC/C,qDAAkC"}
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PushKey = void 0;
|
|
13
|
-
const PushPubSubModule_1 = require("./PushPubSubModule");
|
|
14
|
-
class PushKey {
|
|
15
|
-
constructor(key, persist = false) {
|
|
16
|
-
this.key = key;
|
|
17
|
-
this.persist = persist;
|
|
18
|
-
}
|
|
19
|
-
push(data, props) {
|
|
20
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
21
|
-
return PushPubSubModule_1.PushPubSubModule.pushToKey(this.key, props, data, this.persist);
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
;
|
|
25
|
-
}
|
|
26
|
-
exports.PushKey = PushKey;
|
|
27
|
-
//# sourceMappingURL=PushKey.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PushKey.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AAEA,yDAAoD;AAGpD,MAAa,OAAO;IAKnB,YAAY,GAAM,EAAE,OAAO,GAAG,KAAK;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAEK,IAAI,CAAC,IAAO,EAAE,KAAS;;YAC5B,OAAO,mCAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACxE,CAAC;KAAA;IAAA,CAAC;CACF;AAbD,0BAaC"}
|
|
@@ -1,203 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PushPubSubModule = exports.PushPubSubModule_Class = void 0;
|
|
13
|
-
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
14
|
-
const backend_1 = require("@intuitionrobotics/firebase/backend");
|
|
15
|
-
const backend_2 = require("@intuitionrobotics/thunderstorm/backend");
|
|
16
|
-
class PushPubSubModule_Class extends ts_common_1.Module {
|
|
17
|
-
constructor() {
|
|
18
|
-
super("PushPubSubModule");
|
|
19
|
-
this.buildNotification = (pushkey, persistent, data, props, user) => {
|
|
20
|
-
const notification = {
|
|
21
|
-
_id: (0, ts_common_1.generateHex)(16),
|
|
22
|
-
timestamp: (0, ts_common_1.currentTimeMillies)(),
|
|
23
|
-
read: false,
|
|
24
|
-
pushKey: pushkey,
|
|
25
|
-
persistent
|
|
26
|
-
};
|
|
27
|
-
if (data)
|
|
28
|
-
notification.data = data;
|
|
29
|
-
if (props)
|
|
30
|
-
notification.props = props;
|
|
31
|
-
if (user)
|
|
32
|
-
notification.userId = user;
|
|
33
|
-
return notification;
|
|
34
|
-
};
|
|
35
|
-
this.sendMessage = (persistent, _messages) => __awaiter(this, void 0, void 0, function* () {
|
|
36
|
-
const messages = Object.keys(_messages).map(token => ({
|
|
37
|
-
token,
|
|
38
|
-
data: { messages: (0, ts_common_1.__stringify)(_messages[token]) }
|
|
39
|
-
}));
|
|
40
|
-
if (messages.length === 0)
|
|
41
|
-
return;
|
|
42
|
-
console.log("sending a message to \n" + Object.keys(_messages).join("\n"));
|
|
43
|
-
const response = yield this.messaging.sendAll(messages);
|
|
44
|
-
console.log("and this is the response: " + response.responses.map(_response => _response.success));
|
|
45
|
-
return { response, messages };
|
|
46
|
-
});
|
|
47
|
-
this.readNotification = (id, read) => __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
yield this.notifications.patch({ _id: id, read });
|
|
49
|
-
});
|
|
50
|
-
this.scheduledCleanup = () => __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
var _a, _b;
|
|
52
|
-
const sessionsCleanupTime = ((_a = this.config) === null || _a === void 0 ? void 0 : _a.sessionsCleanupTime) || ts_common_1.Hour;
|
|
53
|
-
const notificationsCleanupTime = ((_b = this.config) === null || _b === void 0 ? void 0 : _b.notificationsCleanupTime) || 7 * ts_common_1.Day;
|
|
54
|
-
const docs = yield this.pushSessions.query({ where: { timestamp: { $lt: (0, ts_common_1.currentTimeMillies)() - sessionsCleanupTime } } });
|
|
55
|
-
yield Promise.all([
|
|
56
|
-
this.notifications.delete({ where: { timestamp: { $lt: (0, ts_common_1.currentTimeMillies)() - notificationsCleanupTime } } }),
|
|
57
|
-
this.cleanUpImpl(docs.map(d => d.firebaseToken))
|
|
58
|
-
]);
|
|
59
|
-
});
|
|
60
|
-
this.cleanUp = (response, messages) => __awaiter(this, void 0, void 0, function* () {
|
|
61
|
-
this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`);
|
|
62
|
-
if (response.failureCount > 0)
|
|
63
|
-
this.logWarning(response.responses.filter(r => r.error));
|
|
64
|
-
const toDelete = response.responses.reduce((carry, resp, i) => {
|
|
65
|
-
if (!resp.success && messages[i])
|
|
66
|
-
carry.push(messages[i].token);
|
|
67
|
-
return carry;
|
|
68
|
-
}, []);
|
|
69
|
-
//TODO: delete notifications for the user that are older than X
|
|
70
|
-
return this.cleanUpImpl(toDelete);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
init() {
|
|
74
|
-
const session = backend_1.FirebaseModule.createAdminSession();
|
|
75
|
-
const firestore = session.getFirestore();
|
|
76
|
-
this.pushSessions = firestore.getCollection("push-sessions", ["pushSessionId"]);
|
|
77
|
-
this.pushKeys = firestore.getCollection("push-keys");
|
|
78
|
-
this.notifications = firestore.getCollection("notifications", ["_id"]);
|
|
79
|
-
this.messaging = session.getMessaging();
|
|
80
|
-
}
|
|
81
|
-
register(body, request) {
|
|
82
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
83
|
-
var _a, _b, _c;
|
|
84
|
-
const resp = yield backend_2.dispatch_queryRequestInfo.dispatchModuleAsync(request);
|
|
85
|
-
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);
|
|
86
|
-
// if (!userId)
|
|
87
|
-
// throw new ImplementationMissingException("Missing user from accounts Module");
|
|
88
|
-
const session = {
|
|
89
|
-
firebaseToken: body.firebaseToken,
|
|
90
|
-
pushSessionId: body.pushSessionId,
|
|
91
|
-
timestamp: (0, ts_common_1.currentTimeMillies)()
|
|
92
|
-
};
|
|
93
|
-
if (body.language)
|
|
94
|
-
session.language = body.language;
|
|
95
|
-
if (userId)
|
|
96
|
-
session.userId = userId;
|
|
97
|
-
const subscriptions = body.subscriptions.map((s) => {
|
|
98
|
-
const sub = {
|
|
99
|
-
pushSessionId: body.pushSessionId,
|
|
100
|
-
pushKey: s.pushKey
|
|
101
|
-
};
|
|
102
|
-
if (s.props)
|
|
103
|
-
sub.props = s.props;
|
|
104
|
-
return sub;
|
|
105
|
-
});
|
|
106
|
-
return this.pushSessions.runInTransaction((transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
107
|
-
const pushKeys = subscriptions.map(_sub => _sub.pushKey);
|
|
108
|
-
let subscriptionNotifications = pushKeys.length !== 0 ?
|
|
109
|
-
yield (0, ts_common_1.batchAction)(pushKeys, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return transaction.query(this.notifications, { where: { pushKey: { $in: elements } } }); })) : [];
|
|
110
|
-
if (subscriptionNotifications.length > 0)
|
|
111
|
-
subscriptionNotifications = subscriptionNotifications.filter(_notification => {
|
|
112
|
-
var _a;
|
|
113
|
-
const x = (_a = subscriptions.find(_sub => _sub.pushKey === _notification.pushKey)) === null || _a === void 0 ? void 0 : _a.props;
|
|
114
|
-
return (0, ts_common_1.compare)(x, _notification.props) || _notification.userId;
|
|
115
|
-
});
|
|
116
|
-
const userNotifications = userId ? yield transaction.query(this.notifications, { where: { userId } }) : [];
|
|
117
|
-
const notifications = userNotifications.concat(subscriptionNotifications);
|
|
118
|
-
const writePush = yield transaction.upsert_Read(this.pushSessions, session);
|
|
119
|
-
const write = yield transaction.delete_Read(this.pushKeys, { where: { pushSessionId: body.pushSessionId } });
|
|
120
|
-
yield transaction.insertAll(this.pushKeys, subscriptions);
|
|
121
|
-
yield Promise.all([write(), writePush()]);
|
|
122
|
-
return (0, ts_common_1.filterDuplicates)(notifications);
|
|
123
|
-
}));
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
pushToKey(key_1, props_1, data_1) {
|
|
127
|
-
return __awaiter(this, arguments, void 0, function* (key, props, data, persistent = false, transaction) {
|
|
128
|
-
const processor = (_transaction) => __awaiter(this, void 0, void 0, function* () {
|
|
129
|
-
console.log("i am pushing to key...", key, props, data);
|
|
130
|
-
let docs = yield _transaction.query(this.pushKeys, { where: { pushKey: key } });
|
|
131
|
-
if (props)
|
|
132
|
-
docs = docs.filter(doc => !doc.props || (0, ts_common_1.compare)(doc.props, props));
|
|
133
|
-
const notification = this.buildNotification(key, persistent, data, props);
|
|
134
|
-
// If we need to do read and write for a transaction move this to a callback and rename to pushToKey_Read
|
|
135
|
-
if (persistent) {
|
|
136
|
-
yield this.notifications.insertAll([notification]);
|
|
137
|
-
}
|
|
138
|
-
if (docs.length === 0)
|
|
139
|
-
return;
|
|
140
|
-
const sessionsIds = docs.map(d => d.pushSessionId);
|
|
141
|
-
// I get the tokens relative to those sessions (query)
|
|
142
|
-
const sessions = yield (0, ts_common_1.batchAction)(sessionsIds, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return _transaction.query(this.pushSessions, { where: { pushSessionId: { $in: elements } } }); }));
|
|
143
|
-
const _messages = docs.reduce((carry, db_pushKey) => {
|
|
144
|
-
const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
|
|
145
|
-
if (!session)
|
|
146
|
-
return carry;
|
|
147
|
-
carry[session.firebaseToken] = [notification];
|
|
148
|
-
return carry;
|
|
149
|
-
}, {});
|
|
150
|
-
const resp = yield this.sendMessage(persistent, _messages);
|
|
151
|
-
if (!resp)
|
|
152
|
-
return this.logInfo('No messages to send. Empty subscriptions');
|
|
153
|
-
const { response, messages } = resp;
|
|
154
|
-
this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`, "messages", messages);
|
|
155
|
-
// return this.cleanUp(response, messages);
|
|
156
|
-
});
|
|
157
|
-
if (transaction)
|
|
158
|
-
return processor(transaction);
|
|
159
|
-
return this.pushKeys.runInTransaction(processor);
|
|
160
|
-
});
|
|
161
|
-
}
|
|
162
|
-
pushToUser(user_1, key_1, props_1, data_1) {
|
|
163
|
-
return __awaiter(this, arguments, void 0, function* (user, key, props, data, persistent = false) {
|
|
164
|
-
console.log("i am pushing to user...", user, props);
|
|
165
|
-
const notification = this.buildNotification(key, persistent, data, props, user);
|
|
166
|
-
const notifications = [];
|
|
167
|
-
if (persistent) {
|
|
168
|
-
notifications.push(notification);
|
|
169
|
-
yield this.notifications.insertAll(notifications);
|
|
170
|
-
}
|
|
171
|
-
const docs = yield this.pushSessions.query({ where: { userId: user } });
|
|
172
|
-
if (docs.length === 0)
|
|
173
|
-
return;
|
|
174
|
-
const sessionsIds = docs.map(d => d.pushSessionId);
|
|
175
|
-
const sessions = yield (0, ts_common_1.batchAction)(sessionsIds, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.query({ where: { pushSessionId: { $in: elements } } }); }));
|
|
176
|
-
const _messages = docs.reduce((carry, db_pushKey) => {
|
|
177
|
-
const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
|
|
178
|
-
if (!session)
|
|
179
|
-
return carry;
|
|
180
|
-
carry[session.firebaseToken] = [notification];
|
|
181
|
-
return carry;
|
|
182
|
-
}, {});
|
|
183
|
-
yield this.sendMessage(persistent, _messages);
|
|
184
|
-
});
|
|
185
|
-
}
|
|
186
|
-
cleanUpImpl(_toDelete) {
|
|
187
|
-
return __awaiter(this, void 0, void 0, function* () {
|
|
188
|
-
if (_toDelete.length === 0)
|
|
189
|
-
return;
|
|
190
|
-
const toDelete = (0, ts_common_1.filterDuplicates)(_toDelete);
|
|
191
|
-
const _sessions = yield (0, ts_common_1.batchActionParallel)(toDelete, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.query({ where: { firebaseToken: { $in: elements } } }); }));
|
|
192
|
-
const sessions = (0, ts_common_1.filterDuplicates)(_sessions.map(s => s.pushSessionId));
|
|
193
|
-
const async = [
|
|
194
|
-
(0, ts_common_1.batchActionParallel)(toDelete, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushSessions.delete({ where: { firebaseToken: { $in: elements } } }); })),
|
|
195
|
-
(0, ts_common_1.batchActionParallel)(sessions, 10, (elements) => __awaiter(this, void 0, void 0, function* () { return this.pushKeys.delete({ where: { pushSessionId: { $in: elements } } }); }))
|
|
196
|
-
];
|
|
197
|
-
yield Promise.all(async);
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
}
|
|
201
|
-
exports.PushPubSubModule_Class = PushPubSubModule_Class;
|
|
202
|
-
exports.PushPubSubModule = new PushPubSubModule_Class();
|
|
203
|
-
//# sourceMappingURL=PushPubSubModule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"PushPubSubModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushPubSubModule.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.ScheduledCleanup = exports.ScheduledCleanup_Class = void 0;
|
|
13
|
-
const backend_functions_1 = require("@intuitionrobotics/firebase/backend-functions");
|
|
14
|
-
const PushPubSubModule_1 = require("./PushPubSubModule");
|
|
15
|
-
class ScheduledCleanup_Class extends backend_functions_1.FirebaseScheduledFunction {
|
|
16
|
-
constructor() {
|
|
17
|
-
super("ScheduledCleanup");
|
|
18
|
-
this.onScheduledEvent = () => __awaiter(this, void 0, void 0, function* () {
|
|
19
|
-
return PushPubSubModule_1.PushPubSubModule.scheduledCleanup();
|
|
20
|
-
});
|
|
21
|
-
this.setSchedule('every 1 hours');
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
exports.ScheduledCleanup_Class = ScheduledCleanup_Class;
|
|
25
|
-
exports.ScheduledCleanup = new ScheduledCleanup_Class();
|
|
26
|
-
//# sourceMappingURL=ScheduledPushCleanup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ScheduledPushCleanup.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ScheduledPushCleanup.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qFAAwF;AACxF,yDAAoD;AAEpD,MAAa,sBACZ,SAAQ,6CAAyB;IAEjC;QACC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAI3B,qBAAgB,GAAG,GAAuB,EAAE;YAC3C,OAAO,mCAAgB,CAAC,gBAAgB,EAAE,CAAA;QAC3C,CAAC,CAAA,CAAC;QALD,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;CAKD;AAXD,wDAWC;AAEY,QAAA,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.CollectionName_Tabs = exports.CollectionName_PushSubscribers = void 0;
|
|
18
|
-
__exportStar(require("../../shared/types"), exports);
|
|
19
|
-
exports.CollectionName_PushSubscribers = "push-pub-sub--subscribers";
|
|
20
|
-
exports.CollectionName_Tabs = "push-pub-sub--tabs";
|
|
21
|
-
//# sourceMappingURL=_imports.js.map
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
export declare const Frontend_ModulePack_PushPubSub: (import("@intuitionrobotics/firebase/frontend").FirebaseModule_Class | import("../modules/NotificationModule").NotificationsModule_Class | import("../modules/PushPubSubModule").PushPubSubModule_Class)[];
|
|
2
|
-
export * from "../modules/PushPubSubModule";
|
|
3
|
-
export * from "../modules/NotificationModule";
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
exports.Frontend_ModulePack_PushPubSub = void 0;
|
|
18
|
-
const PushPubSubModule_1 = require("../modules/PushPubSubModule");
|
|
19
|
-
const frontend_1 = require("@intuitionrobotics/firebase/frontend");
|
|
20
|
-
const NotificationModule_1 = require("../modules/NotificationModule");
|
|
21
|
-
exports.Frontend_ModulePack_PushPubSub = [
|
|
22
|
-
frontend_1.FirebaseModule,
|
|
23
|
-
PushPubSubModule_1.PushPubSubModule,
|
|
24
|
-
NotificationModule_1.NotificationsModule
|
|
25
|
-
];
|
|
26
|
-
__exportStar(require("../modules/PushPubSubModule"), exports);
|
|
27
|
-
__exportStar(require("../modules/NotificationModule"), exports);
|
|
28
|
-
//# sourceMappingURL=module-pack.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-frontend/core/module-pack.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AACA,kEAA6D;AAC7D,mEAAoE;AACpE,sEAAkE;AAErD,QAAA,8BAA8B,GAAG;IAC7C,yBAAc;IACd,mCAAgB;IAChB,wCAAmB;CACnB,CAAC;AAEF,8DAA4C;AAC5C,gEAA8C"}
|
|
@@ -1,55 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.NotificationsModule = exports.NotificationsModule_Class = exports.dispatch_NotificationsUpdated = void 0;
|
|
4
|
-
const thunder_dispatcher_1 = require("@intuitionrobotics/thunderstorm/app-frontend/core/thunder-dispatcher");
|
|
5
|
-
const ts_common_1 = require("@intuitionrobotics/ts-common");
|
|
6
|
-
const frontend_1 = require("@intuitionrobotics/thunderstorm/frontend");
|
|
7
|
-
const thunderstorm_1 = require("@intuitionrobotics/thunderstorm");
|
|
8
|
-
exports.dispatch_NotificationsUpdated = new thunder_dispatcher_1.ThunderDispatcher('__onNotificationsUpdated');
|
|
9
|
-
class NotificationsModule_Class extends ts_common_1.Module {
|
|
10
|
-
constructor() {
|
|
11
|
-
super("NotificationsModule");
|
|
12
|
-
this.notifications = [];
|
|
13
|
-
this.setNotificationList = (notifications) => {
|
|
14
|
-
this.notifications = notifications;
|
|
15
|
-
exports.dispatch_NotificationsUpdated.dispatchUI();
|
|
16
|
-
};
|
|
17
|
-
this.read = (notification, read) => {
|
|
18
|
-
const readNotification = this.notifications.find(_notification => _notification._id === notification._id);
|
|
19
|
-
if (!readNotification || !readNotification.persistent)
|
|
20
|
-
return;
|
|
21
|
-
readNotification.read = read;
|
|
22
|
-
this.readNotification(notification._id, read);
|
|
23
|
-
};
|
|
24
|
-
this.readNotification = (id, read) => {
|
|
25
|
-
const body = {
|
|
26
|
-
_id: id,
|
|
27
|
-
read
|
|
28
|
-
};
|
|
29
|
-
frontend_1.XhrHttpModule
|
|
30
|
-
.createRequest(thunderstorm_1.HttpMethod.POST, 'read-notification')
|
|
31
|
-
.setRelativeUrl("/v1/push/read")
|
|
32
|
-
.setJsonBody(body)
|
|
33
|
-
.setOnError('Something went wrong while reading your notification')
|
|
34
|
-
.setTimeout(ts_common_1.Minute)
|
|
35
|
-
.execute(() => {
|
|
36
|
-
exports.dispatch_NotificationsUpdated.dispatchUI();
|
|
37
|
-
});
|
|
38
|
-
};
|
|
39
|
-
}
|
|
40
|
-
getNotifications() {
|
|
41
|
-
return this.notifications;
|
|
42
|
-
}
|
|
43
|
-
addNotification(newNotification) {
|
|
44
|
-
this.notifications.push(newNotification);
|
|
45
|
-
exports.dispatch_NotificationsUpdated.dispatchUI();
|
|
46
|
-
}
|
|
47
|
-
removeNotification(notification) {
|
|
48
|
-
(0, ts_common_1.removeItemFromArray)(this.notifications, notification);
|
|
49
|
-
exports.dispatch_NotificationsUpdated.dispatchUI();
|
|
50
|
-
return notification._id;
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
exports.NotificationsModule_Class = NotificationsModule_Class;
|
|
54
|
-
exports.NotificationsModule = new NotificationsModule_Class();
|
|
55
|
-
//# sourceMappingURL=NotificationModule.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NotificationModule.js","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/NotificationModule.ts"],"names":[],"mappings":";;;AAAA,6GAAuG;AACvG,4DAIsC;AAKtC,uEAAuE;AACvE,kEAA2D;AAM9C,QAAA,6BAA6B,GAAG,IAAI,sCAAiB,CAAqD,0BAA0B,CAAC,CAAC;AAGnJ,MAAa,yBACZ,SAAQ,kBAAM;IAEd;QACC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QAGtB,kBAAa,GAAuB,EAAE,CAAC;QAM/C,wBAAmB,GAAG,CAAC,aAAiC,EAAE,EAAE;YAC3D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;YACnC,qCAA6B,CAAC,UAAU,EAAE,CAAC;QAC5C,CAAC,CAAC;QAaF,SAAI,GAAG,CAAC,YAA8B,EAAE,IAAa,EAAE,EAAE;YACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;YAC1G,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,UAAU;gBACpD,OAAO;YAER,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC;YAC7B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;QAC/C,CAAC,CAAC;QAEF,qBAAgB,GAAG,CAAC,EAAU,EAAE,IAAa,EAAE,EAAE;YAChD,MAAM,IAAI,GAAG;gBACZ,GAAG,EAAE,EAAE;gBACP,IAAI;aACJ,CAAC;YAEF,wBAAa;iBACX,aAAa,CAAyB,yBAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC;iBAC3E,cAAc,CAAC,eAAe,CAAC;iBAC/B,WAAW,CAAC,IAAI,CAAC;iBACjB,UAAU,CAAC,sDAAsD,CAAC;iBAClE,UAAU,CAAC,kBAAM,CAAC;iBAClB,OAAO,CAAC,GAAG,EAAE;gBACb,qCAA6B,CAAC,UAAU,EAAE,CAAC;YAC5C,CAAC,CAAC,CAAC;QACL,CAAC,CAAC;IAhDF,CAAC;IAID,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAOD,eAAe,CAAC,eAAiC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,qCAA6B,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,YAA8B;QAChD,IAAA,+BAAmB,EAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACtD,qCAA6B,CAAC,UAAU,EAAE,CAAC;QAC3C,OAAO,YAAY,CAAC,GAAG,CAAC;IACzB,CAAC;CA4BD;AAvDD,8DAuDC;AAEY,QAAA,mBAAmB,GAAG,IAAI,yBAAyB,EAAE,CAAC"}
|