@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.
Files changed (107) hide show
  1. package/LICENSE +3 -0
  2. package/dist/app-backend/api/_push.d.ts +4 -0
  3. package/dist/app-backend/api/_push.d.ts.map +1 -0
  4. package/dist/app-backend/api/_push.js +3 -0
  5. package/dist/app-backend/api/_push.js.map +1 -0
  6. package/dist/app-backend/api/v1/push/read.d.ts +9 -0
  7. package/dist/app-backend/api/v1/push/read.d.ts.map +1 -0
  8. package/dist/app-backend/api/v1/push/read.js +15 -0
  9. package/dist/app-backend/api/v1/push/read.js.map +1 -0
  10. package/dist/app-backend/api/v1/push/register.d.ts +9 -0
  11. package/dist/app-backend/api/v1/push/register.d.ts.map +1 -0
  12. package/dist/app-backend/api/v1/push/register.js +15 -0
  13. package/dist/app-backend/api/v1/push/register.js.map +1 -0
  14. package/dist/app-backend/core/module-pack.d.ts +5 -0
  15. package/dist/app-backend/core/module-pack.d.ts.map +1 -0
  16. package/dist/app-backend/core/module-pack.js +10 -0
  17. package/dist/app-backend/core/module-pack.js.map +1 -0
  18. package/{app-backend → dist/app-backend}/modules/PushKey.d.ts +3 -2
  19. package/dist/app-backend/modules/PushKey.d.ts.map +1 -0
  20. package/dist/app-backend/modules/PushKey.js +16 -0
  21. package/dist/app-backend/modules/PushKey.js.map +1 -0
  22. package/{app-backend → dist/app-backend}/modules/PushPubSubModule.d.ts +5 -4
  23. package/dist/app-backend/modules/PushPubSubModule.d.ts.map +1 -0
  24. package/dist/app-backend/modules/PushPubSubModule.js +185 -0
  25. package/dist/app-backend/modules/PushPubSubModule.js.map +1 -0
  26. package/{app-backend → dist/app-backend}/modules/ScheduledPushCleanup.d.ts +1 -0
  27. package/dist/app-backend/modules/ScheduledPushCleanup.d.ts.map +1 -0
  28. package/dist/app-backend/modules/ScheduledPushCleanup.js +13 -0
  29. package/dist/app-backend/modules/ScheduledPushCleanup.js.map +1 -0
  30. package/{app-backend → dist/app-backend}/modules/_imports.d.ts +2 -1
  31. package/dist/app-backend/modules/_imports.d.ts.map +1 -0
  32. package/dist/app-backend/modules/_imports.js +4 -0
  33. package/{app-backend → dist/app-backend}/modules/_imports.js.map +1 -1
  34. package/dist/app-frontend/core/module-pack.d.ts +4 -0
  35. package/dist/app-frontend/core/module-pack.d.ts.map +1 -0
  36. package/dist/app-frontend/core/module-pack.js +11 -0
  37. package/dist/app-frontend/core/module-pack.js.map +1 -0
  38. package/{app-frontend → dist/app-frontend}/modules/NotificationModule.d.ts +2 -1
  39. package/dist/app-frontend/modules/NotificationModule.d.ts.map +1 -0
  40. package/dist/app-frontend/modules/NotificationModule.js +52 -0
  41. package/dist/app-frontend/modules/NotificationModule.js.map +1 -0
  42. package/{app-frontend → dist/app-frontend}/modules/PushPubSubModule.d.ts +2 -1
  43. package/dist/app-frontend/modules/PushPubSubModule.d.ts.map +1 -0
  44. package/dist/app-frontend/modules/PushPubSubModule.js +175 -0
  45. package/dist/app-frontend/modules/PushPubSubModule.js.map +1 -0
  46. package/dist/backend.d.ts +2 -0
  47. package/dist/backend.d.ts.map +1 -0
  48. package/dist/backend.js +2 -0
  49. package/dist/backend.js.map +1 -0
  50. package/dist/frontend.d.ts +4 -0
  51. package/dist/frontend.d.ts.map +1 -0
  52. package/dist/frontend.js +7 -0
  53. package/dist/frontend.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +3 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/shared/api.d.ts +5 -0
  59. package/dist/shared/api.d.ts.map +1 -0
  60. package/dist/shared/api.js +3 -0
  61. package/dist/shared/api.js.map +1 -0
  62. package/{shared → dist/shared}/types.d.ts +3 -2
  63. package/dist/shared/types.d.ts.map +1 -0
  64. package/dist/shared/types.js +2 -0
  65. package/dist/shared/types.js.map +1 -0
  66. package/dist/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +66 -14
  68. package/app-backend/api/_push.d.ts +0 -1
  69. package/app-backend/api/_push.js +0 -5
  70. package/app-backend/api/_push.js.map +0 -1
  71. package/app-backend/api/v1/push/read.d.ts +0 -1
  72. package/app-backend/api/v1/push/read.js +0 -27
  73. package/app-backend/api/v1/push/read.js.map +0 -1
  74. package/app-backend/api/v1/push/register.d.ts +0 -1
  75. package/app-backend/api/v1/push/register.js +0 -27
  76. package/app-backend/api/v1/push/register.js.map +0 -1
  77. package/app-backend/core/module-pack.d.ts +0 -4
  78. package/app-backend/core/module-pack.js +0 -27
  79. package/app-backend/core/module-pack.js.map +0 -1
  80. package/app-backend/modules/PushKey.js +0 -27
  81. package/app-backend/modules/PushKey.js.map +0 -1
  82. package/app-backend/modules/PushPubSubModule.js +0 -203
  83. package/app-backend/modules/PushPubSubModule.js.map +0 -1
  84. package/app-backend/modules/ScheduledPushCleanup.js +0 -26
  85. package/app-backend/modules/ScheduledPushCleanup.js.map +0 -1
  86. package/app-backend/modules/_imports.js +0 -21
  87. package/app-frontend/core/module-pack.d.ts +0 -3
  88. package/app-frontend/core/module-pack.js +0 -28
  89. package/app-frontend/core/module-pack.js.map +0 -1
  90. package/app-frontend/modules/NotificationModule.js +0 -55
  91. package/app-frontend/modules/NotificationModule.js.map +0 -1
  92. package/app-frontend/modules/PushPubSubModule.js +0 -184
  93. package/app-frontend/modules/PushPubSubModule.js.map +0 -1
  94. package/backend.d.ts +0 -1
  95. package/backend.js +0 -18
  96. package/backend.js.map +0 -1
  97. package/frontend.d.ts +0 -3
  98. package/frontend.js +0 -20
  99. package/frontend.js.map +0 -1
  100. package/index.d.ts +0 -2
  101. package/index.js +0 -19
  102. package/index.js.map +0 -1
  103. package/shared/api.d.ts +0 -4
  104. package/shared/api.js +0 -3
  105. package/shared/api.js.map +0 -1
  106. package/shared/types.js +0 -3
  107. package/shared/types.js.map +0 -1
package/LICENSE ADDED
@@ -0,0 +1,3 @@
1
+ Apache License
2
+ Version 2.0, January 2004
3
+ Full license here: http://www.apache.org/licenses/LICENSE-2.0
@@ -0,0 +1,4 @@
1
+ import { RouteResolver } from "@intuitionrobotics/thunderstorm/backend";
2
+ declare const _default: RouteResolver;
3
+ export default _default;
4
+ //# sourceMappingURL=_push.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_push.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/api/_push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;;AAEtE,wBAAkD"}
@@ -0,0 +1,3 @@
1
+ import { RouteResolver } from "@intuitionrobotics/thunderstorm/backend";
2
+ export default new RouteResolver(import.meta.url);
3
+ //# sourceMappingURL=_push.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_push.js","sourceRoot":"","sources":["../../../src/main/app-backend/api/_push.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,yCAAyC,CAAC;AAEtE,eAAe,IAAI,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ApiResponse, type ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { type PubSubReadNotification, type Request_ReadPush } from "../../../../index.js";
3
+ declare class ServerApi_PushRead extends ServerApi<PubSubReadNotification> {
4
+ constructor();
5
+ protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_ReadPush): Promise<void>;
6
+ }
7
+ declare const _default: ServerApi_PushRead;
8
+ export default _default;
9
+ //# sourceMappingURL=read.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.d.ts","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/read.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,KAAK,cAAc,EACnB,SAAS,EACT,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EACN,KAAK,sBAAsB,EAC3B,KAAK,gBAAgB,EACrB,MAAM,sBAAsB,CAAC;AAE9B,cAAM,kBACL,SAAQ,SAAS,CAAC,sBAAsB,CAAC;;cAMzB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB;CAI/G;;AAED,wBAAwC"}
@@ -0,0 +1,15 @@
1
+ import { ApiResponse, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { HttpMethod } from "@intuitionrobotics/thunderstorm";
3
+ import { PushPubSubModule } from "../../../modules/PushPubSubModule.js";
4
+ import {} from "../../../../index.js";
5
+ class ServerApi_PushRead extends ServerApi {
6
+ constructor() {
7
+ super(HttpMethod.POST, "read");
8
+ }
9
+ async process(request, response, queryParams, body) {
10
+ // const user = await KasperoProxy.validateSession(request);
11
+ return await PushPubSubModule.readNotification(body._id, body.read);
12
+ }
13
+ }
14
+ export default new ServerApi_PushRead();
15
+ //# sourceMappingURL=read.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"read.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/read.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EAEX,SAAS,EACT,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAGN,MAAM,sBAAsB,CAAC;AAE9B,MAAM,kBACL,SAAQ,SAAiC;IAEzC;QACC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAAsB;QAC9G,4DAA4D;QAC5D,OAAO,MAAM,gBAAgB,CAAC,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACrE,CAAC;CACD;AAED,eAAe,IAAI,kBAAkB,EAAE,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ApiResponse, type ExpressRequest, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { type PubSubRegisterClient, type Request_PushRegister } from "../../../../index.js";
3
+ declare class ServerApi_PushRegister extends ServerApi<PubSubRegisterClient> {
4
+ constructor();
5
+ protected process(request: ExpressRequest, response: ApiResponse, queryParams: {}, body: Request_PushRegister): Promise<import("../../../../index.js").DB_Notifications[]>;
6
+ }
7
+ declare const _default: ServerApi_PushRegister;
8
+ export default _default;
9
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/register.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EACX,KAAK,cAAc,EACnB,SAAS,EACT,MAAM,yCAAyC,CAAC;AAKjD,OAAO,EACN,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,MAAM,sBAAsB,CAAC;AAE9B,cAAM,sBACL,SAAQ,SAAS,CAAC,oBAAoB,CAAC;;cAMvB,OAAO,CAAC,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB;CAInH;;AAED,wBAA4C"}
@@ -0,0 +1,15 @@
1
+ import { ApiResponse, ServerApi } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { HttpMethod } from "@intuitionrobotics/thunderstorm";
3
+ import { PushPubSubModule } from "../../../modules/PushPubSubModule.js";
4
+ import {} from "../../../../index.js";
5
+ class ServerApi_PushRegister extends ServerApi {
6
+ constructor() {
7
+ super(HttpMethod.POST, "register");
8
+ }
9
+ async process(request, response, queryParams, body) {
10
+ // const user = await KasperoProxy.validateSession(request);
11
+ return await PushPubSubModule.register(body, request);
12
+ }
13
+ }
14
+ export default new ServerApi_PushRegister();
15
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../../../../src/main/app-backend/api/v1/push/register.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,WAAW,EAEX,SAAS,EACT,MAAM,yCAAyC,CAAC;AAGjD,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAGN,MAAM,sBAAsB,CAAC;AAE9B,MAAM,sBACL,SAAQ,SAA+B;IAEvC;QACC,KAAK,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACpC,CAAC;IAES,KAAK,CAAC,OAAO,CAAC,OAAuB,EAAE,QAAqB,EAAE,WAAe,EAAE,IAA0B;QAClH,4DAA4D;QAC5D,OAAO,MAAM,gBAAgB,CAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvD,CAAC;CACD;AAED,eAAe,IAAI,sBAAsB,EAAE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export declare const Backend_ModulePack_PushPubSub: (import("../modules/PushPubSubModule.js").PushPubSubModule_Class | import("../modules/ScheduledPushCleanup.js").ScheduledCleanup_Class)[];
2
+ export * from "../modules/PushPubSubModule.js";
3
+ export * from "../modules/ScheduledPushCleanup.js";
4
+ export * from "../modules/PushKey.js";
5
+ //# sourceMappingURL=module-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,6BAA6B,2IAGzC,CAAC;AAEF,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oCAAoC,CAAA;AAClD,cAAc,uBAAuB,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { PushPubSubModule } from "../modules/PushPubSubModule.js";
2
+ import { ScheduledCleanup } from "../modules/ScheduledPushCleanup.js";
3
+ export const Backend_ModulePack_PushPubSub = [
4
+ PushPubSubModule,
5
+ ScheduledCleanup
6
+ ];
7
+ export * from "../modules/PushPubSubModule.js";
8
+ export * from "../modules/ScheduledPushCleanup.js";
9
+ export * from "../modules/PushKey.js";
10
+ //# sourceMappingURL=module-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-backend/core/module-pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,gBAAgB,EAAC,MAAM,oCAAoC,CAAC;AAEpE,MAAM,CAAC,MAAM,6BAA6B,GAAG;IAC5C,gBAAgB;IAChB,gBAAgB;CAChB,CAAC;AAEF,cAAc,gCAAgC,CAAA;AAC9C,cAAc,oCAAoC,CAAA;AAClD,cAAc,uBAAuB,CAAA"}
@@ -1,8 +1,9 @@
1
- import { ObjectTS } from "@intuitionrobotics/ts-common";
2
- import { SubscribeProps } from "./_imports";
1
+ import { type ObjectTS } from "@intuitionrobotics/ts-common";
2
+ import { type SubscribeProps } from "./_imports.js";
3
3
  export declare class PushKey<K extends string, P extends SubscribeProps, D extends ObjectTS> {
4
4
  private readonly key;
5
5
  private readonly persist;
6
6
  constructor(key: K, persist?: boolean);
7
7
  push(data: D, props?: P): Promise<void>;
8
8
  }
9
+ //# sourceMappingURL=PushKey.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushKey.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,KAAK,QAAQ,EAAC,MAAM,8BAA8B,CAAC;AAE3D,OAAO,EAAC,KAAK,cAAc,EAAC,MAAM,eAAe,CAAC;AAElD,qBAAa,OAAO,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC,SAAS,cAAc,EAAE,CAAC,SAAS,QAAQ;IAElF,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAI;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAU;gBAEtB,GAAG,EAAE,CAAC,EAAE,OAAO,UAAQ;IAK7B,IAAI,CAAC,IAAI,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;CAG7B"}
@@ -0,0 +1,16 @@
1
+ import {} from "@intuitionrobotics/ts-common";
2
+ import { PushPubSubModule } from "./PushPubSubModule.js";
3
+ import {} from "./_imports.js";
4
+ export class PushKey {
5
+ key;
6
+ persist;
7
+ constructor(key, persist = false) {
8
+ this.key = key;
9
+ this.persist = persist;
10
+ }
11
+ async push(data, props) {
12
+ return PushPubSubModule.pushToKey(this.key, props, data, this.persist);
13
+ }
14
+ ;
15
+ }
16
+ //# sourceMappingURL=PushKey.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushKey.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAqB,MAAM,eAAe,CAAC;AAElD,MAAM,OAAO,OAAO;IAEF,GAAG,CAAI;IACP,OAAO,CAAU;IAElC,YAAY,GAAM,EAAE,OAAO,GAAG,KAAK;QAClC,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;QACf,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,IAAO,EAAE,KAAS;QAC5B,OAAO,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IACxE,CAAC;IAAA,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
- import { FirebaseType_BatchResponse, FirebaseType_Message, FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
3
- import { DB_Notifications, IFP, ISP, ITP, MessageType, Request_PushRegister, SubscribeProps } from "../../index";
4
- import { ExpressRequest } from "@intuitionrobotics/thunderstorm/backend";
2
+ import { type FirebaseType_BatchResponse, type FirebaseType_Message, FirestoreTransaction } from "@intuitionrobotics/firebase/backend";
3
+ import { type DB_Notifications, type IFP, type ISP, type ITP, type MessageType, type Request_PushRegister, type SubscribeProps } from "../../index.js";
4
+ import { type ExpressRequest } from "@intuitionrobotics/thunderstorm/backend";
5
5
  type Config = {
6
6
  notificationsCleanupTime?: number;
7
7
  sessionsCleanupTime?: number;
@@ -18,7 +18,7 @@ export declare class PushPubSubModule_Class extends Module<Config> {
18
18
  protected init(): void;
19
19
  register(body: Request_PushRegister, request: ExpressRequest): Promise<DB_Notifications[]>;
20
20
  pushToKey<M extends MessageType<any, any, any> = never, S extends string = IFP<M>, P extends SubscribeProps = ISP<M>, D = ITP<M>>(key: S, props?: P, data?: D, persistent?: boolean, transaction?: FirestoreTransaction): Promise<void>;
21
- pushToUser<M extends MessageType<any, any, any> = never, S extends string = IFP<M>, P extends SubscribeProps = ISP<M>, D = ITP<M>>(user: string, key: string, props?: P, data?: D, persistent?: boolean): Promise<void>;
21
+ pushToUser<M extends MessageType<any, any, any> = never, _S extends string = IFP<M>, P extends SubscribeProps = ISP<M>, D = ITP<M>>(user: string, key: string, props?: P, data?: D, persistent?: boolean): Promise<void>;
22
22
  private buildNotification;
23
23
  sendMessage: (persistent: boolean, _messages: TempMessages) => Promise<{
24
24
  response: FirebaseType_BatchResponse;
@@ -31,3 +31,4 @@ export declare class PushPubSubModule_Class extends Module<Config> {
31
31
  }
32
32
  export declare const PushPubSubModule: PushPubSubModule_Class;
33
33
  export {};
34
+ //# sourceMappingURL=PushPubSubModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushPubSubModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushPubSubModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAUH,MAAM,EAET,MAAM,8BAA8B,CAAC;AAEtC,OAAO,EAEH,KAAK,0BAA0B,EAC/B,KAAK,oBAAoB,EAEzB,oBAAoB,EAEvB,MAAM,qCAAqC,CAAC;AAE7C,OAAO,EACH,KAAK,gBAAgB,EAGrB,KAAK,GAAG,EACR,KAAK,GAAG,EACR,KAAK,GAAG,EACR,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACtB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAA4B,KAAK,cAAc,EAAC,MAAM,yCAAyC,CAAC;AAEvG,KAAK,MAAM,GAAG;IACV,wBAAwB,CAAC,EAAE,MAAM,CAAA;IACjC,mBAAmB,CAAC,EAAE,MAAM,CAAA;CAC/B,CAAC;AAEF,KAAK,YAAY,GAAG;IAChB,CAAC,KAAK,EAAE,MAAM,GAAG,gBAAgB,EAAE,CAAA;CACtC,CAAC;AAEF,qBAAa,sBACT,SAAQ,MAAM,CAAC,MAAM,CAAC;;IAMtB,OAAO,CAAC,YAAY,CAAuC;IAC3D,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,SAAS,CAAuB;IAExC,SAAS,CAAC,IAAI,IAAI,IAAI;IAUhB,QAAQ,CAAC,IAAI,EAAE,oBAAoB,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAoD1F,SAAS,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EACxD,CAAC,SAAS,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EACzB,CAAC,SAAS,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,EACjC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,GAAE,OAAe,EAAE,WAAW,CAAC,EAAE,oBAAoB;IA0CtG,UAAU,CAAC,CAAC,SAAS,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,KAAK,EACzD,EAAE,SAAS,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,EAC1B,CAAC,SAAS,cAAc,GAAG,GAAG,CAAC,CAAC,CAAC,EACjC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC,EAAE,UAAU,GAAE,OAAe;IA+B3F,OAAO,CAAC,iBAAiB,CAmBvB;IAEF,WAAW,GAAU,YAAY,OAAO,EAAE,WAAW,YAAY,KAAG,OAAO,CAAC;QACxE,QAAQ,EAAE,0BAA0B,CAAC;QACrC,QAAQ,EAAE,oBAAoB,EAAE,CAAA;KACnC,GAAG,SAAS,CAAC,CAYZ;IAEF,gBAAgB,GAAU,IAAI,MAAM,EAAE,MAAM,OAAO,mBAEjD;IAEF,gBAAgB,sBAUd;IAEF,OAAO,GAAU,UAAU,0BAA0B,EAAE,UAAU,oBAAoB,EAAE,mBAerF;YAEY,WAAW;CAc5B;AAED,eAAO,MAAM,gBAAgB,wBAA+B,CAAC"}
@@ -0,0 +1,185 @@
1
+ import { __stringify, batchAction, batchActionParallel, compare, currentTimeMillies, Day, filterDuplicates, generateHex, Hour, Module } from "@intuitionrobotics/ts-common";
2
+ import { FirebaseModule, FirestoreCollection, FirestoreTransaction, PushMessagesWrapper } from "@intuitionrobotics/firebase/backend";
3
+ // noinspection TypeScriptPreferShortImport
4
+ import {} from "../../index.js";
5
+ import { dispatch_queryRequestInfo } from "@intuitionrobotics/thunderstorm/backend";
6
+ export class PushPubSubModule_Class extends Module {
7
+ constructor() {
8
+ super("PushPubSubModule");
9
+ }
10
+ pushSessions;
11
+ pushKeys;
12
+ notifications;
13
+ messaging;
14
+ init() {
15
+ const session = FirebaseModule.createAdminSession();
16
+ const firestore = session.getFirestore();
17
+ this.pushSessions = firestore.getCollection("push-sessions", ["pushSessionId"]);
18
+ this.pushKeys = firestore.getCollection("push-keys");
19
+ this.notifications = firestore.getCollection("notifications", ["_id"]);
20
+ this.messaging = session.getMessaging();
21
+ }
22
+ async register(body, request) {
23
+ const resp = await dispatch_queryRequestInfo.dispatchModuleAsync(request);
24
+ const userId = resp.find(e => e.key === "AccountsModule")?.data?._id || resp.find(e => e.key === "RemoteProxy")?.data;
25
+ // if (!userId)
26
+ // throw new ImplementationMissingException("Missing user from accounts Module");
27
+ const session = {
28
+ firebaseToken: body.firebaseToken,
29
+ pushSessionId: body.pushSessionId,
30
+ timestamp: currentTimeMillies()
31
+ };
32
+ if (body.language)
33
+ session.language = body.language;
34
+ if (userId)
35
+ session.userId = userId;
36
+ const subscriptions = body.subscriptions.map((s) => {
37
+ const sub = {
38
+ pushSessionId: body.pushSessionId,
39
+ pushKey: s.pushKey
40
+ };
41
+ if (s.props)
42
+ sub.props = s.props;
43
+ return sub;
44
+ });
45
+ return this.pushSessions.runInTransaction(async (transaction) => {
46
+ const pushKeys = subscriptions.map(_sub => _sub.pushKey);
47
+ let subscriptionNotifications = pushKeys.length !== 0 ?
48
+ await batchAction(pushKeys, 10, async (elements) => transaction.query(this.notifications, { where: { pushKey: { $in: elements } } })) : [];
49
+ if (subscriptionNotifications.length > 0)
50
+ subscriptionNotifications = subscriptionNotifications.filter(_notification => {
51
+ const x = subscriptions.find(_sub => _sub.pushKey === _notification.pushKey)?.props;
52
+ return compare(x, _notification.props) || _notification.userId;
53
+ });
54
+ const userNotifications = userId ? await transaction.query(this.notifications, { where: { userId } }) : [];
55
+ const notifications = userNotifications.concat(subscriptionNotifications);
56
+ const writePush = await transaction.upsert_Read(this.pushSessions, session);
57
+ const write = await transaction.delete_Read(this.pushKeys, { where: { pushSessionId: body.pushSessionId } });
58
+ await transaction.insertAll(this.pushKeys, subscriptions);
59
+ await Promise.all([write(), writePush()]);
60
+ return filterDuplicates(notifications);
61
+ });
62
+ }
63
+ async pushToKey(key, props, data, persistent = false, transaction) {
64
+ const processor = async (_transaction) => {
65
+ console.log("i am pushing to key...", key, props, data);
66
+ let docs = await _transaction.query(this.pushKeys, { where: { pushKey: key } });
67
+ if (props)
68
+ docs = docs.filter(doc => !doc.props || compare(doc.props, props));
69
+ const notification = this.buildNotification(key, persistent, data, props);
70
+ // If we need to do read and write for a transaction move this to a callback and rename to pushToKey_Read
71
+ if (persistent) {
72
+ await this.notifications.insertAll([notification]);
73
+ }
74
+ if (docs.length === 0)
75
+ return;
76
+ const sessionsIds = docs.map(d => d.pushSessionId);
77
+ // I get the tokens relative to those sessions (query)
78
+ const sessions = await batchAction(sessionsIds, 10, async (elements) => _transaction.query(this.pushSessions, { where: { pushSessionId: { $in: elements } } }));
79
+ const _messages = docs.reduce((carry, db_pushKey) => {
80
+ const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
81
+ if (!session)
82
+ return carry;
83
+ carry[session.firebaseToken] = [notification];
84
+ return carry;
85
+ }, {});
86
+ const resp = await this.sendMessage(persistent, _messages);
87
+ if (!resp)
88
+ return this.logInfo('No messages to send. Empty subscriptions');
89
+ const { response, messages } = resp;
90
+ this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`, "messages", messages);
91
+ // return this.cleanUp(response, messages);
92
+ };
93
+ if (transaction)
94
+ return processor(transaction);
95
+ return this.pushKeys.runInTransaction(processor);
96
+ }
97
+ async pushToUser(user, key, props, data, persistent = false) {
98
+ console.log("i am pushing to user...", user, props);
99
+ const notification = this.buildNotification(key, persistent, data, props, user);
100
+ const notifications = [];
101
+ if (persistent) {
102
+ notifications.push(notification);
103
+ await this.notifications.insertAll(notifications);
104
+ }
105
+ const docs = await this.pushSessions.query({ where: { userId: user } });
106
+ if (docs.length === 0)
107
+ return;
108
+ const sessionsIds = docs.map(d => d.pushSessionId);
109
+ const sessions = await batchAction(sessionsIds, 10, async (elements) => this.pushSessions.query({ where: { pushSessionId: { $in: elements } } }));
110
+ const _messages = docs.reduce((carry, db_pushKey) => {
111
+ const session = sessions.find(s => s.pushSessionId === db_pushKey.pushSessionId);
112
+ if (!session)
113
+ return carry;
114
+ carry[session.firebaseToken] = [notification];
115
+ return carry;
116
+ }, {});
117
+ await this.sendMessage(persistent, _messages);
118
+ }
119
+ buildNotification = (pushkey, persistent, data, props, user) => {
120
+ const notification = {
121
+ _id: generateHex(16),
122
+ timestamp: currentTimeMillies(),
123
+ read: false,
124
+ pushKey: pushkey,
125
+ persistent
126
+ };
127
+ if (data)
128
+ notification.data = data;
129
+ if (props)
130
+ notification.props = props;
131
+ if (user)
132
+ notification.userId = user;
133
+ return notification;
134
+ };
135
+ sendMessage = async (persistent, _messages) => {
136
+ const messages = Object.keys(_messages).map(token => ({
137
+ token,
138
+ data: { messages: __stringify(_messages[token]) }
139
+ }));
140
+ if (messages.length === 0)
141
+ return;
142
+ console.log("sending a message to \n" + Object.keys(_messages).join("\n"));
143
+ const response = await this.messaging.sendAll(messages);
144
+ console.log("and this is the response: " + response.responses.map(_response => _response.success));
145
+ return { response, messages };
146
+ };
147
+ readNotification = async (id, read) => {
148
+ await this.notifications.patch({ _id: id, read });
149
+ };
150
+ scheduledCleanup = async () => {
151
+ const sessionsCleanupTime = this.config?.sessionsCleanupTime || Hour;
152
+ const notificationsCleanupTime = this.config?.notificationsCleanupTime || 7 * Day;
153
+ const docs = await this.pushSessions.query({ where: { timestamp: { $lt: currentTimeMillies() - sessionsCleanupTime } } });
154
+ await Promise.all([
155
+ this.notifications.delete({ where: { timestamp: { $lt: currentTimeMillies() - notificationsCleanupTime } } }),
156
+ this.cleanUpImpl(docs.map(d => d.firebaseToken))
157
+ ]);
158
+ };
159
+ cleanUp = async (response, messages) => {
160
+ this.logInfo(`${response.successCount} sent, ${response.failureCount} failed`);
161
+ if (response.failureCount > 0)
162
+ this.logWarning(response.responses.filter(r => r.error));
163
+ const toDelete = response.responses.reduce((carry, resp, i) => {
164
+ if (!resp.success && messages[i])
165
+ carry.push(messages[i].token);
166
+ return carry;
167
+ }, []);
168
+ //TODO: delete notifications for the user that are older than X
169
+ return this.cleanUpImpl(toDelete);
170
+ };
171
+ async cleanUpImpl(_toDelete) {
172
+ if (_toDelete.length === 0)
173
+ return;
174
+ const toDelete = filterDuplicates(_toDelete);
175
+ const _sessions = await batchActionParallel(toDelete, 10, async (elements) => this.pushSessions.query({ where: { firebaseToken: { $in: elements } } }));
176
+ const sessions = filterDuplicates(_sessions.map(s => s.pushSessionId));
177
+ const async = [
178
+ batchActionParallel(toDelete, 10, async (elements) => this.pushSessions.delete({ where: { firebaseToken: { $in: elements } } })),
179
+ batchActionParallel(sessions, 10, async (elements) => this.pushKeys.delete({ where: { pushSessionId: { $in: elements } } }))
180
+ ];
181
+ await Promise.all(async);
182
+ }
183
+ }
184
+ export const PushPubSubModule = new PushPubSubModule_Class();
185
+ //# sourceMappingURL=PushPubSubModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushPubSubModule.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/PushPubSubModule.ts"],"names":[],"mappings":"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"}
@@ -4,3 +4,4 @@ export declare class ScheduledCleanup_Class extends FirebaseScheduledFunction {
4
4
  onScheduledEvent: () => Promise<any>;
5
5
  }
6
6
  export declare const ScheduledCleanup: ScheduledCleanup_Class;
7
+ //# sourceMappingURL=ScheduledPushCleanup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledPushCleanup.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ScheduledPushCleanup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AAGxF,qBAAa,sBACZ,SAAQ,yBAAyB;;IAOjC,gBAAgB,QAAa,OAAO,CAAC,GAAG,CAAC,CAEvC;CACF;AAED,eAAO,MAAM,gBAAgB,wBAA+B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { FirebaseScheduledFunction } from "@intuitionrobotics/firebase/backend-functions";
2
+ import { PushPubSubModule } from "./PushPubSubModule.js";
3
+ export class ScheduledCleanup_Class extends FirebaseScheduledFunction {
4
+ constructor() {
5
+ super("ScheduledCleanup");
6
+ this.setSchedule('every 1 hours');
7
+ }
8
+ onScheduledEvent = async () => {
9
+ return PushPubSubModule.scheduledCleanup();
10
+ };
11
+ }
12
+ export const ScheduledCleanup = new ScheduledCleanup_Class();
13
+ //# sourceMappingURL=ScheduledPushCleanup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScheduledPushCleanup.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/ScheduledPushCleanup.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAC,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAC,gBAAgB,EAAC,MAAM,uBAAuB,CAAC;AAEvD,MAAM,OAAO,sBACZ,SAAQ,yBAAyB;IAEjC;QACC,KAAK,CAAC,kBAAkB,CAAC,CAAC;QAC1B,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;IACnC,CAAC;IAED,gBAAgB,GAAG,KAAK,IAAkB,EAAE;QAC3C,OAAO,gBAAgB,CAAC,gBAAgB,EAAE,CAAA;IAC3C,CAAC,CAAC;CACF;AAED,MAAM,CAAC,MAAM,gBAAgB,GAAG,IAAI,sBAAsB,EAAE,CAAC"}
@@ -1,3 +1,4 @@
1
- export * from "../../shared/types";
1
+ export * from "../../shared/types.js";
2
2
  export declare const CollectionName_PushSubscribers = "push-pub-sub--subscribers";
3
3
  export declare const CollectionName_Tabs = "push-pub-sub--tabs";
4
+ //# sourceMappingURL=_imports.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_imports.d.ts","sourceRoot":"","sources":["../../../src/main/app-backend/modules/_imports.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,eAAO,MAAM,8BAA8B,8BAA8B,CAAC;AAC1E,eAAO,MAAM,mBAAmB,uBAAuB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "../../shared/types.js";
2
+ export const CollectionName_PushSubscribers = "push-pub-sub--subscribers";
3
+ export const CollectionName_Tabs = "push-pub-sub--tabs";
4
+ //# sourceMappingURL=_imports.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"_imports.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/_imports.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;AAAA,qDAAmC;AAEtB,QAAA,8BAA8B,GAAG,2BAA2B,CAAC;AAC7D,QAAA,mBAAmB,GAAG,oBAAoB,CAAC"}
1
+ {"version":3,"file":"_imports.js","sourceRoot":"","sources":["../../../src/main/app-backend/modules/_imports.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AAEtC,MAAM,CAAC,MAAM,8BAA8B,GAAG,2BAA2B,CAAC;AAC1E,MAAM,CAAC,MAAM,mBAAmB,GAAG,oBAAoB,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare const Frontend_ModulePack_PushPubSub: (import("../modules/NotificationModule.js").NotificationsModule_Class | import("../modules/PushPubSubModule.js").PushPubSubModule_Class | import("@intuitionrobotics/firebase/app-frontend/FirebaseModule").FirebaseModule_Class)[];
2
+ export * from "../modules/PushPubSubModule.js";
3
+ export * from "../modules/NotificationModule.js";
4
+ //# sourceMappingURL=module-pack.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.d.ts","sourceRoot":"","sources":["../../../src/main/app-frontend/core/module-pack.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,8BAA8B,qOAI1C,CAAC;AAEF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
@@ -0,0 +1,11 @@
1
+ import { PushPubSubModule } from "../modules/PushPubSubModule.js";
2
+ import { FirebaseModule } from "@intuitionrobotics/firebase/app-frontend/FirebaseModule";
3
+ import { NotificationsModule } from "../modules/NotificationModule.js";
4
+ export const Frontend_ModulePack_PushPubSub = [
5
+ FirebaseModule,
6
+ PushPubSubModule,
7
+ NotificationsModule
8
+ ];
9
+ export * from "../modules/PushPubSubModule.js";
10
+ export * from "../modules/NotificationModule.js";
11
+ //# sourceMappingURL=module-pack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-pack.js","sourceRoot":"","sources":["../../../src/main/app-frontend/core/module-pack.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,gBAAgB,EAAC,MAAM,gCAAgC,CAAC;AAChE,OAAO,EAAC,cAAc,EAAC,MAAM,yDAAyD,CAAC;AACvF,OAAO,EAAC,mBAAmB,EAAC,MAAM,kCAAkC,CAAC;AAErE,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC7C,cAAc;IACd,gBAAgB;IAChB,mBAAmB;CACnB,CAAC;AAEF,cAAc,gCAAgC,CAAC;AAC/C,cAAc,kCAAkC,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { ThunderDispatcher } from "@intuitionrobotics/thunderstorm/app-frontend/core/thunder-dispatcher";
2
2
  import { Module } from "@intuitionrobotics/ts-common";
3
- import { DB_Notifications } from "../..";
3
+ import { type DB_Notifications } from "../../index.js";
4
4
  export interface OnNotificationsUpdated {
5
5
  __onNotificationsUpdated(): void;
6
6
  }
@@ -16,3 +16,4 @@ export declare class NotificationsModule_Class extends Module {
16
16
  readNotification: (id: string, read: boolean) => void;
17
17
  }
18
18
  export declare const NotificationsModule: NotificationsModule_Class;
19
+ //# sourceMappingURL=NotificationModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/NotificationModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,sEAAsE,CAAC;AACvG,OAAO,EAEN,MAAM,EAEN,MAAM,8BAA8B,CAAC;AACtC,OAAO,EACN,KAAK,gBAAgB,EAErB,MAAM,gBAAgB,CAAC;AAIxB,MAAM,WAAW,sBAAsB;IACtC,wBAAwB,IAAI,IAAI,CAAA;CAChC;AAED,eAAO,MAAM,6BAA6B,iFAAwG,CAAC;AAGnJ,qBAAa,yBACZ,SAAQ,MAAM;;IAMd,OAAO,CAAC,aAAa,CAA0B;IAE/C,gBAAgB;IAIhB,mBAAmB,GAAI,eAAe,gBAAgB,EAAE,UAGtD;IAEF,eAAe,CAAC,eAAe,EAAE,gBAAgB;IAKjD,kBAAkB,CAAC,YAAY,EAAE,gBAAgB;IAMjD,IAAI,GAAI,cAAc,gBAAgB,EAAE,MAAM,OAAO,UAOnD;IAEF,gBAAgB,GAAI,IAAI,MAAM,EAAE,MAAM,OAAO,UAe3C;CAEF;AAED,eAAO,MAAM,mBAAmB,2BAAkC,CAAC"}
@@ -0,0 +1,52 @@
1
+ import { ThunderDispatcher } from "@intuitionrobotics/thunderstorm/app-frontend/core/thunder-dispatcher";
2
+ import { Minute, Module, removeItemFromArray } from "@intuitionrobotics/ts-common";
3
+ import {} from "../../index.js";
4
+ import { XhrHttpModule } from "@intuitionrobotics/thunderstorm/frontend";
5
+ import { HttpMethod } from "@intuitionrobotics/thunderstorm";
6
+ export const dispatch_NotificationsUpdated = new ThunderDispatcher('__onNotificationsUpdated');
7
+ export class NotificationsModule_Class extends Module {
8
+ constructor() {
9
+ super("NotificationsModule");
10
+ }
11
+ notifications = [];
12
+ getNotifications() {
13
+ return this.notifications;
14
+ }
15
+ setNotificationList = (notifications) => {
16
+ this.notifications = notifications;
17
+ dispatch_NotificationsUpdated.dispatchUI();
18
+ };
19
+ addNotification(newNotification) {
20
+ this.notifications.push(newNotification);
21
+ dispatch_NotificationsUpdated.dispatchUI();
22
+ }
23
+ removeNotification(notification) {
24
+ removeItemFromArray(this.notifications, notification);
25
+ dispatch_NotificationsUpdated.dispatchUI();
26
+ return notification._id;
27
+ }
28
+ read = (notification, read) => {
29
+ const readNotification = this.notifications.find(_notification => _notification._id === notification._id);
30
+ if (!readNotification || !readNotification.persistent)
31
+ return;
32
+ readNotification.read = read;
33
+ this.readNotification(notification._id, read);
34
+ };
35
+ readNotification = (id, read) => {
36
+ const body = {
37
+ _id: id,
38
+ read
39
+ };
40
+ XhrHttpModule
41
+ .createRequest(HttpMethod.POST, 'read-notification')
42
+ .setRelativeUrl("/v1/push/read")
43
+ .setJsonBody(body)
44
+ .setOnError('Something went wrong while reading your notification')
45
+ .setTimeout(Minute)
46
+ .execute(() => {
47
+ dispatch_NotificationsUpdated.dispatchUI();
48
+ });
49
+ };
50
+ }
51
+ export const NotificationsModule = new NotificationsModule_Class();
52
+ //# sourceMappingURL=NotificationModule.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NotificationModule.js","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/NotificationModule.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,iBAAiB,EAAC,MAAM,sEAAsE,CAAC;AACvG,OAAO,EACN,MAAM,EACN,MAAM,EACN,mBAAmB,EACnB,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAGN,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAC,aAAa,EAAC,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAC,UAAU,EAAC,MAAM,iCAAiC,CAAC;AAM3D,MAAM,CAAC,MAAM,6BAA6B,GAAG,IAAI,iBAAiB,CAAqD,0BAA0B,CAAC,CAAC;AAGnJ,MAAM,OAAO,yBACZ,SAAQ,MAAM;IAEd;QACC,KAAK,CAAC,qBAAqB,CAAC,CAAC;IAC9B,CAAC;IAEO,aAAa,GAAuB,EAAE,CAAC;IAE/C,gBAAgB;QACf,OAAO,IAAI,CAAC,aAAa,CAAC;IAC3B,CAAC;IAED,mBAAmB,GAAG,CAAC,aAAiC,EAAE,EAAE;QAC3D,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;QACnC,6BAA6B,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC,CAAC;IAEF,eAAe,CAAC,eAAiC;QAChD,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;QACzC,6BAA6B,CAAC,UAAU,EAAE,CAAC;IAC5C,CAAC;IAED,kBAAkB,CAAC,YAA8B;QAChD,mBAAmB,CAAC,IAAI,CAAC,aAAa,EAAE,YAAY,CAAC,CAAC;QACtD,6BAA6B,CAAC,UAAU,EAAE,CAAC;QAC3C,OAAO,YAAY,CAAC,GAAG,CAAC;IACzB,CAAC;IAED,IAAI,GAAG,CAAC,YAA8B,EAAE,IAAa,EAAE,EAAE;QACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,EAAE,CAAC,aAAa,CAAC,GAAG,KAAK,YAAY,CAAC,GAAG,CAAC,CAAC;QAC1G,IAAI,CAAC,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,UAAU;YACpD,OAAO;QAER,gBAAgB,CAAC,IAAI,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAC/C,CAAC,CAAC;IAEF,gBAAgB,GAAG,CAAC,EAAU,EAAE,IAAa,EAAE,EAAE;QAChD,MAAM,IAAI,GAAG;YACZ,GAAG,EAAE,EAAE;YACP,IAAI;SACJ,CAAC;QAEF,aAAa;aACX,aAAa,CAAyB,UAAU,CAAC,IAAI,EAAE,mBAAmB,CAAC;aAC3E,cAAc,CAAC,eAAe,CAAC;aAC/B,WAAW,CAAC,IAAI,CAAC;aACjB,UAAU,CAAC,sDAAsD,CAAC;aAClE,UAAU,CAAC,MAAM,CAAC;aAClB,OAAO,CAAC,GAAG,EAAE;YACb,6BAA6B,CAAC,UAAU,EAAE,CAAC;QAC5C,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;CAEF;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,yBAAyB,EAAE,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { Module } from "@intuitionrobotics/ts-common";
2
- import { BaseSubscriptionData, SubscriptionDataRegistration } from "../../index";
2
+ import { type BaseSubscriptionData, type SubscriptionDataRegistration } from "../../index.js";
3
3
  export declare const Command_SwToApp = "SwToApp";
4
4
  type FirebaseConfig = {
5
5
  apiKey: string;
@@ -40,3 +40,4 @@ export declare class PushPubSubModule_Class extends Module<PushPubSubConfig> {
40
40
  }
41
41
  export declare const PushPubSubModule: PushPubSubModule_Class;
42
42
  export {};
43
+ //# sourceMappingURL=PushPubSubModule.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PushPubSubModule.d.ts","sourceRoot":"","sources":["../../../src/main/app-frontend/modules/PushPubSubModule.ts"],"names":[],"mappings":"AAkBA,OAAO,EAMH,MAAM,EAET,MAAM,8BAA8B,CAAC;AAItC,OAAO,EACH,KAAK,oBAAoB,EAIzB,KAAK,4BAA4B,EACpC,MAAM,gBAAgB,CAAC;AAOxB,eAAO,MAAM,eAAe,YAAY,CAAC;AAEzC,KAAK,cAAc,GAAG;IAClB,MAAM,EAAE,MAAM,CAAA;IACd,UAAU,EAAE,MAAM,CAAA;IAClB,SAAS,EAAE,MAAM,CAAA;IACjB,iBAAiB,EAAE,MAAM,CAAA;IACzB,WAAW,CAAC,EAAE,MAAM,CAAA;CACvB,CAAA;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,MAAM,CAAC,EAAE,cAAc,CAAA;IACvB,eAAe,EAAE,MAAM,CAAA;IACvB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,cAAc,CAAC,EAAE,OAAO,CAAA;CAC3B,CAAA;AAED,eAAO,MAAM,gBAAgB,sBAAsB,CAAC;AAGpD,qBAAa,sBACT,SAAQ,MAAM,CAAC,gBAAgB,CAAC;IAEhC,OAAO,CAAC,aAAa,CAAsC;IAC3D,OAAO,CAAC,aAAa,CAAC,CAAS;IAC/B,OAAO,CAAC,SAAS,CAAC,CAAmB;IAErC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,SAAS,CAAC,OAAO,EAAE,MAAM,CAAO;;IAQhC,IAAI;IAOJ,gBAAgB;IAIhB,OAAO,CAAC,qBAAqB,CAG3B;IAEF,OAAO,aA6BL;IAIK,QAAQ,GAAU,UAAU;QAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,yBAAyB,CAAC,EAAE,yBAAyB,CAAC;KACzD,mBAkCC;IAEF,OAAO,CAAC,oBAAoB,CAM1B;IAEF,OAAO,CAAC,cAAc,CASpB;IAEF,SAAS,GAAI,cAAc,4BAA4B,UAGrD;IAEF,OAAO,CAAC,aAAa,CAQnB;IAEF,cAAc,GAAI,eAAe,4BAA4B,EAAE,UAG7D;IAEF,WAAW,GAAI,cAAc,oBAAoB,UAO/C;IAEF,OAAO,CAAC,QAAQ,CA6Bd;CACL;AAED,eAAO,MAAM,gBAAgB,wBAA+B,CAAC"}