imm-shared 1.0.3 → 1.0.4

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 (41) hide show
  1. package/dist/cjs/index.d.ts +1 -0
  2. package/dist/cjs/index.d.ts.map +1 -1
  3. package/dist/cjs/index.js +3 -0
  4. package/dist/cjs/index.js.map +1 -1
  5. package/dist/cjs/managers/expo.manager.d.ts +7 -0
  6. package/dist/cjs/managers/expo.manager.d.ts.map +1 -0
  7. package/dist/cjs/managers/expo.manager.js +38 -0
  8. package/dist/cjs/managers/expo.manager.js.map +1 -0
  9. package/dist/cjs/managers/index.d.ts +3 -0
  10. package/dist/cjs/managers/index.d.ts.map +1 -0
  11. package/dist/cjs/managers/index.js +19 -0
  12. package/dist/cjs/managers/index.js.map +1 -0
  13. package/dist/cjs/managers/service-bus.manager.d.ts +11 -0
  14. package/dist/cjs/managers/service-bus.manager.d.ts.map +1 -0
  15. package/dist/cjs/managers/service-bus.manager.js +70 -0
  16. package/dist/cjs/managers/service-bus.manager.js.map +1 -0
  17. package/dist/cjs/models/notification.model.d.ts +11 -0
  18. package/dist/cjs/models/notification.model.d.ts.map +1 -1
  19. package/dist/cjs/models/notification.model.js +49 -1
  20. package/dist/cjs/models/notification.model.js.map +1 -1
  21. package/dist/esm/index.d.ts +1 -0
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/index.js +3 -0
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/managers/expo.manager.d.ts +7 -0
  26. package/dist/esm/managers/expo.manager.d.ts.map +1 -0
  27. package/dist/esm/managers/expo.manager.js +34 -0
  28. package/dist/esm/managers/expo.manager.js.map +1 -0
  29. package/dist/esm/managers/index.d.ts +3 -0
  30. package/dist/esm/managers/index.d.ts.map +1 -0
  31. package/dist/esm/managers/index.js +3 -0
  32. package/dist/esm/managers/index.js.map +1 -0
  33. package/dist/esm/managers/service-bus.manager.d.ts +11 -0
  34. package/dist/esm/managers/service-bus.manager.d.ts.map +1 -0
  35. package/dist/esm/managers/service-bus.manager.js +66 -0
  36. package/dist/esm/managers/service-bus.manager.js.map +1 -0
  37. package/dist/esm/models/notification.model.d.ts +11 -0
  38. package/dist/esm/models/notification.model.d.ts.map +1 -1
  39. package/dist/esm/models/notification.model.js +46 -0
  40. package/dist/esm/models/notification.model.js.map +1 -1
  41. package/package.json +11 -2
@@ -1,5 +1,6 @@
1
1
  export * from './enums';
2
2
  export * from './models';
3
+ export * from './managers';
3
4
  export interface ApiResponse<T = any> {
4
5
  success: boolean;
5
6
  data?: T;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAIzB,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC;IAC5D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAIzB,cAAc,YAAY,CAAC;AAG3B,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC;IAC5D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/dist/cjs/index.js CHANGED
@@ -17,4 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  // Models and DTOs
18
18
  __exportStar(require("./enums"), exports);
19
19
  __exportStar(require("./models"), exports);
20
+ // export * from './schemas';
21
+ // Managers
22
+ __exportStar(require("./managers"), exports);
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,0CAAwB;AACxB,2CAAyB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,kBAAkB;AAClB,0CAAwB;AACxB,2CAAyB;AACzB,6BAA6B;AAE7B,WAAW;AACX,6CAA2B"}
@@ -0,0 +1,7 @@
1
+ import { ExpoPushMessage } from 'expo-server-sdk';
2
+ export declare class ExpoManager {
3
+ private expo;
4
+ constructor();
5
+ sendPushNotifications(tokens: string[], payload: ExpoPushMessage): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=expo.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo.manager.d.ts","sourceRoot":"","sources":["../../../src/managers/expo.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAO;;IAMb,qBAAqB,CACzB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe;CA8B3B"}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ExpoManager = void 0;
4
+ const expo_server_sdk_1 = require("expo-server-sdk");
5
+ class ExpoManager {
6
+ expo;
7
+ constructor() {
8
+ this.expo = new expo_server_sdk_1.Expo();
9
+ }
10
+ async sendPushNotifications(tokens, payload) {
11
+ try {
12
+ // Create the messages that will be sent to clients
13
+ const messages = [];
14
+ for (const pushToken of tokens) {
15
+ // Each push token looks like ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]
16
+ // Check that all your push tokens appear to be valid Expo push tokens
17
+ if (!expo_server_sdk_1.Expo.isExpoPushToken(pushToken)) {
18
+ console.error(`ExpoManager :: sendPushNotifications :: Push token ${pushToken} is not a valid Expo push token`);
19
+ continue;
20
+ }
21
+ // Construct a message (see https://docs.expo.io/push-notifications/sending-notifications/)
22
+ messages.push({
23
+ ...payload,
24
+ to: pushToken,
25
+ });
26
+ }
27
+ // const chunks = this.expo.chunkPushNotifications(messages);
28
+ // console.log('ExpoManager :: Sending messages: ', chunks.length);
29
+ const response = await this.expo.sendPushNotificationsAsync(messages);
30
+ console.log('ExpoManager :: sendPushNotifications :: Successfully sent message:', response);
31
+ }
32
+ catch (error) {
33
+ console.error('ExpoManager :: sendPushNotifications :: Error sending messages:', error);
34
+ }
35
+ }
36
+ }
37
+ exports.ExpoManager = ExpoManager;
38
+ //# sourceMappingURL=expo.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo.manager.js","sourceRoot":"","sources":["../../../src/managers/expo.manager.ts"],"names":[],"mappings":";;;AAAA,qDAAwD;AAExD,MAAa,WAAW;IACd,IAAI,CAAO;IAEnB;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,sBAAI,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,MAAgB,EAChB,OAAwB;QAExB,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,QAAQ,GAAG,EAAuB,CAAC;YACzC,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,uEAAuE;gBACvE,sEAAsE;gBACtE,IAAI,CAAC,sBAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CACX,sDAAsD,SAAS,iCAAiC,CACjG,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,2FAA2F;gBAC3F,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,OAAO;oBACV,EAAE,EAAE,SAAS;iBACd,CAAC,CAAC;YACL,CAAC;YAED,6DAA6D;YAC7D,mEAAmE;YACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,oEAAoE,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;CACF;AAvCD,kCAuCC"}
@@ -0,0 +1,3 @@
1
+ export * from './service-bus.manager';
2
+ export * from './expo.manager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,19 @@
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
+ __exportStar(require("./service-bus.manager"), exports);
18
+ __exportStar(require("./expo.manager"), exports);
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/managers/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,wDAAsC;AACtC,iDAA+B"}
@@ -0,0 +1,11 @@
1
+ export declare class ServiceBusManager {
2
+ private sbClient;
3
+ private sender;
4
+ private receiver;
5
+ constructor(connectionString: string);
6
+ sendMessagesToServiceBus<T>(topicName: string, messages: T[]): Promise<void>;
7
+ listenMessagesFromServiceBus<T>(topicName: string, subscriptionName: string, count?: number): Promise<T[] | undefined>;
8
+ peekMessagesFromServiceBus<T>(): Promise<T | undefined>;
9
+ closeSBClient(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=service-bus.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bus.manager.d.ts","sourceRoot":"","sources":["../../../src/managers/service-bus.manager.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAqB;gBAGnC,gBAAgB,EAAE,MAAM;IAMpB,wBAAwB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5E,4BAA4B,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAsCzH,0BAA0B,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkBvD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAMrC"}
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ServiceBusManager = void 0;
4
+ const service_bus_1 = require("@azure/service-bus");
5
+ class ServiceBusManager {
6
+ sbClient;
7
+ sender;
8
+ receiver;
9
+ constructor(connectionString) {
10
+ this.sbClient = new service_bus_1.ServiceBusClient(connectionString);
11
+ console.log('ServiceBusManager :: init :: Service Bus initialized');
12
+ }
13
+ async sendMessagesToServiceBus(topicName, messages) {
14
+ try {
15
+ this.sender = this.sbClient.createSender(topicName);
16
+ console.log('ServiceBusManager :: sendMessagesToServiceBus :: Preparing to send message to service bus');
17
+ await this.sender.sendMessages({
18
+ body: messages,
19
+ });
20
+ console.log('ServiceBusManager :: sendMessagesToServiceBus :: Message sent to service bus');
21
+ }
22
+ catch (error) {
23
+ console.error('ServiceBusManager :: sendMessagesToServiceBus :: Could not send message to service bus', error instanceof Error ? error.message : String(error));
24
+ throw error;
25
+ }
26
+ finally {
27
+ await this.sender.close();
28
+ }
29
+ }
30
+ async listenMessagesFromServiceBus(topicName, subscriptionName, count = 1) {
31
+ try {
32
+ this.receiver = this.sbClient.createReceiver(topicName, subscriptionName);
33
+ console.log('ServiceBusManager :: listenMessagesFromServiceBus :: Repairing to listen for messages from service bus');
34
+ const messages = await this.receiver.receiveMessages(count, {
35
+ maxWaitTimeInMs: 5000,
36
+ });
37
+ const messageBodies = await Promise.all(messages.map(async (message) => {
38
+ console.log(`ServiceBusManager :: listenMessagesFromServiceBus :: Processing message: ${message.body}`);
39
+ await this.receiver.completeMessage(message);
40
+ return message.body;
41
+ }));
42
+ console.log('ServiceBusManager :: listenMessagesFromServiceBus :: Message completed and removed from queue');
43
+ return messageBodies;
44
+ }
45
+ catch (error) {
46
+ console.error('ServiceBusManager :: listenMessagesFromServiceBus :: Could not listen for messages from service bus', error instanceof Error ? error.message : String(error));
47
+ throw error;
48
+ }
49
+ finally {
50
+ await this.receiver.close();
51
+ }
52
+ }
53
+ async peekMessagesFromServiceBus() {
54
+ try {
55
+ console.log('ServiceBusManager :: watchMessagesFromServiceBus :: Watching for messages from service bus');
56
+ const messages = await this.receiver.peekMessages(1);
57
+ return messages[0]?.body;
58
+ }
59
+ catch (error) {
60
+ console.error('ServiceBusManager :: watchMessagesFromServiceBus :: Could not watch for messages from service bus', error instanceof Error ? error.message : String(error));
61
+ throw error;
62
+ }
63
+ }
64
+ async closeSBClient() {
65
+ await this.sbClient.close();
66
+ console.log('ServiceBusManager :: closeSBClient :: Service Bus client closed');
67
+ }
68
+ }
69
+ exports.ServiceBusManager = ServiceBusManager;
70
+ //# sourceMappingURL=service-bus.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bus.manager.js","sourceRoot":"","sources":["../../../src/managers/service-bus.manager.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,16 @@ export interface Notification {
11
11
  deviceId: string;
12
12
  isOpened: boolean;
13
13
  createdAt: Date;
14
+ updatedAt?: Date;
15
+ }
16
+ export declare class CreateNotificationDto implements Partial<Notification> {
17
+ title: string;
18
+ message?: string;
19
+ itemId?: string;
20
+ type: NotificationType;
21
+ isOpened: boolean;
22
+ }
23
+ export declare class UpdateNotificationStatusDto {
24
+ isOpened: boolean;
14
25
  }
15
26
  //# sourceMappingURL=notification.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.model.d.ts","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,QAAQ,QAAQ;IAChB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"notification.model.d.ts","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":"AAEA,oBAAY,gBAAgB;IAC1B,QAAQ,QAAQ;IAChB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,qBAAsB,YAAW,OAAO,CAAC,YAAY,CAAC;IAEjE,KAAK,EAAE,MAAM,CAAC;IAId,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,IAAI,EAAE,gBAAgB,CAAC;IAGvB,QAAQ,EAAE,OAAO,CAAS;CAC3B;AAED,qBAAa,2BAA2B;IAEtC,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -1,9 +1,57 @@
1
1
  "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
2
11
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotificationType = void 0;
12
+ exports.UpdateNotificationStatusDto = exports.CreateNotificationDto = exports.NotificationType = void 0;
13
+ const class_validator_1 = require("class-validator");
4
14
  var NotificationType;
5
15
  (function (NotificationType) {
6
16
  NotificationType["CRS_DRAW"] = "crs";
7
17
  NotificationType["NEWS"] = "news";
8
18
  })(NotificationType || (exports.NotificationType = NotificationType = {}));
19
+ class CreateNotificationDto {
20
+ title;
21
+ message;
22
+ itemId;
23
+ type;
24
+ isOpened = false;
25
+ }
26
+ exports.CreateNotificationDto = CreateNotificationDto;
27
+ __decorate([
28
+ (0, class_validator_1.IsString)(),
29
+ __metadata("design:type", String)
30
+ ], CreateNotificationDto.prototype, "title", void 0);
31
+ __decorate([
32
+ (0, class_validator_1.IsString)(),
33
+ (0, class_validator_1.IsOptional)(),
34
+ __metadata("design:type", String)
35
+ ], CreateNotificationDto.prototype, "message", void 0);
36
+ __decorate([
37
+ (0, class_validator_1.IsString)(),
38
+ (0, class_validator_1.IsOptional)(),
39
+ __metadata("design:type", String)
40
+ ], CreateNotificationDto.prototype, "itemId", void 0);
41
+ __decorate([
42
+ (0, class_validator_1.IsEnum)(NotificationType),
43
+ __metadata("design:type", String)
44
+ ], CreateNotificationDto.prototype, "type", void 0);
45
+ __decorate([
46
+ (0, class_validator_1.IsBoolean)(),
47
+ __metadata("design:type", Boolean)
48
+ ], CreateNotificationDto.prototype, "isOpened", void 0);
49
+ class UpdateNotificationStatusDto {
50
+ isOpened;
51
+ }
52
+ exports.UpdateNotificationStatusDto = UpdateNotificationStatusDto;
53
+ __decorate([
54
+ (0, class_validator_1.IsBoolean)(),
55
+ __metadata("design:type", Boolean)
56
+ ], UpdateNotificationStatusDto.prototype, "isOpened", void 0);
9
57
  //# sourceMappingURL=notification.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":";;;AAAA,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,oCAAgB,CAAA;IAChB,iCAAa,CAAA;AACf,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B"}
1
+ {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAA0E;AAE1E,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,oCAAgB,CAAA;IAChB,iCAAa,CAAA;AACf,CAAC,EAHW,gBAAgB,gCAAhB,gBAAgB,QAG3B;AAcD,MAAa,qBAAqB;IAEhC,KAAK,CAAS;IAId,OAAO,CAAU;IAIjB,MAAM,CAAU;IAGhB,IAAI,CAAmB;IAGvB,QAAQ,GAAY,KAAK,CAAC;CAC3B;AAjBD,sDAiBC;AAfC;IADC,IAAA,0BAAQ,GAAE;;oDACG;AAId;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;sDACI;AAIjB;IAFC,IAAA,0BAAQ,GAAE;IACV,IAAA,4BAAU,GAAE;;qDACG;AAGhB;IADC,IAAA,wBAAM,EAAC,gBAAgB,CAAC;;mDACF;AAGvB;IADC,IAAA,2BAAS,GAAE;;uDACc;AAG5B,MAAa,2BAA2B;IAEtC,QAAQ,CAAU;CACnB;AAHD,kEAGC;AADC;IADC,IAAA,2BAAS,GAAE;;6DACM"}
@@ -1,5 +1,6 @@
1
1
  export * from './enums';
2
2
  export * from './models';
3
+ export * from './managers';
3
4
  export interface ApiResponse<T = any> {
4
5
  success: boolean;
5
6
  data?: T;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAIzB,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC;IAC5D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AAIzB,cAAc,YAAY,CAAC;AAG3B,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,GAAG;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,CAAC,CAAC;IACT,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;CAC5B;AAED,MAAM,WAAW,iBAAiB,CAAC,CAAC,CAAE,SAAQ,WAAW,CAAC,CAAC,EAAE,CAAC;IAC5D,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,OAAO,CAAC;QACjB,OAAO,EAAE,OAAO,CAAC;KAClB,CAAC;CACH;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
package/dist/esm/index.js CHANGED
@@ -1,4 +1,7 @@
1
1
  // Models and DTOs
2
2
  export * from './enums';
3
3
  export * from './models';
4
+ // export * from './schemas';
5
+ // Managers
6
+ export * from './managers';
4
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,kBAAkB;AAClB,cAAc,SAAS,CAAC;AACxB,cAAc,UAAU,CAAC;AACzB,6BAA6B;AAE7B,WAAW;AACX,cAAc,YAAY,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ExpoPushMessage } from 'expo-server-sdk';
2
+ export declare class ExpoManager {
3
+ private expo;
4
+ constructor();
5
+ sendPushNotifications(tokens: string[], payload: ExpoPushMessage): Promise<void>;
6
+ }
7
+ //# sourceMappingURL=expo.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo.manager.d.ts","sourceRoot":"","sources":["../../../src/managers/expo.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAExD,qBAAa,WAAW;IACtB,OAAO,CAAC,IAAI,CAAO;;IAMb,qBAAqB,CACzB,MAAM,EAAE,MAAM,EAAE,EAChB,OAAO,EAAE,eAAe;CA8B3B"}
@@ -0,0 +1,34 @@
1
+ import { Expo } from 'expo-server-sdk';
2
+ export class ExpoManager {
3
+ expo;
4
+ constructor() {
5
+ this.expo = new Expo();
6
+ }
7
+ async sendPushNotifications(tokens, payload) {
8
+ try {
9
+ // Create the messages that will be sent to clients
10
+ const messages = [];
11
+ for (const pushToken of tokens) {
12
+ // Each push token looks like ExponentPushToken[xxxxxxxxxxxxxxxxxxxxxx]
13
+ // Check that all your push tokens appear to be valid Expo push tokens
14
+ if (!Expo.isExpoPushToken(pushToken)) {
15
+ console.error(`ExpoManager :: sendPushNotifications :: Push token ${pushToken} is not a valid Expo push token`);
16
+ continue;
17
+ }
18
+ // Construct a message (see https://docs.expo.io/push-notifications/sending-notifications/)
19
+ messages.push({
20
+ ...payload,
21
+ to: pushToken,
22
+ });
23
+ }
24
+ // const chunks = this.expo.chunkPushNotifications(messages);
25
+ // console.log('ExpoManager :: Sending messages: ', chunks.length);
26
+ const response = await this.expo.sendPushNotificationsAsync(messages);
27
+ console.log('ExpoManager :: sendPushNotifications :: Successfully sent message:', response);
28
+ }
29
+ catch (error) {
30
+ console.error('ExpoManager :: sendPushNotifications :: Error sending messages:', error);
31
+ }
32
+ }
33
+ }
34
+ //# sourceMappingURL=expo.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"expo.manager.js","sourceRoot":"","sources":["../../../src/managers/expo.manager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAmB,MAAM,iBAAiB,CAAC;AAExD,MAAM,OAAO,WAAW;IACd,IAAI,CAAO;IAEnB;QACE,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,qBAAqB,CACzB,MAAgB,EAChB,OAAwB;QAExB,IAAI,CAAC;YACH,mDAAmD;YACnD,MAAM,QAAQ,GAAG,EAAuB,CAAC;YACzC,KAAK,MAAM,SAAS,IAAI,MAAM,EAAE,CAAC;gBAC/B,uEAAuE;gBACvE,sEAAsE;gBACtE,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,CAAC;oBACrC,OAAO,CAAC,KAAK,CACX,sDAAsD,SAAS,iCAAiC,CACjG,CAAC;oBACF,SAAS;gBACX,CAAC;gBAED,2FAA2F;gBAC3F,QAAQ,CAAC,IAAI,CAAC;oBACZ,GAAG,OAAO;oBACV,EAAE,EAAE,SAAS;iBACd,CAAC,CAAC;YACL,CAAC;YAED,6DAA6D;YAC7D,mEAAmE;YACnE,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;YACtE,OAAO,CAAC,GAAG,CAAC,oEAAoE,EAAE,QAAQ,CAAC,CAAC;QAC9F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,iEAAiE,EAAE,KAAK,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,3 @@
1
+ export * from './service-bus.manager';
2
+ export * from './expo.manager';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './service-bus.manager';
2
+ export * from './expo.manager';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/managers/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAC;AACtC,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,11 @@
1
+ export declare class ServiceBusManager {
2
+ private sbClient;
3
+ private sender;
4
+ private receiver;
5
+ constructor(connectionString: string);
6
+ sendMessagesToServiceBus<T>(topicName: string, messages: T[]): Promise<void>;
7
+ listenMessagesFromServiceBus<T>(topicName: string, subscriptionName: string, count?: number): Promise<T[] | undefined>;
8
+ peekMessagesFromServiceBus<T>(): Promise<T | undefined>;
9
+ closeSBClient(): Promise<void>;
10
+ }
11
+ //# sourceMappingURL=service-bus.manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bus.manager.d.ts","sourceRoot":"","sources":["../../../src/managers/service-bus.manager.ts"],"names":[],"mappings":"AAMA,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,QAAQ,CAAqB;gBAGnC,gBAAgB,EAAE,MAAM;IAMpB,wBAAwB,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B5E,4BAA4B,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,OAAO,CAAC,CAAC,EAAE,GAAG,SAAS,CAAC;IAsCzH,0BAA0B,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAkBvD,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;CAMrC"}
@@ -0,0 +1,66 @@
1
+ import { ServiceBusClient, } from '@azure/service-bus';
2
+ export class ServiceBusManager {
3
+ sbClient;
4
+ sender;
5
+ receiver;
6
+ constructor(connectionString) {
7
+ this.sbClient = new ServiceBusClient(connectionString);
8
+ console.log('ServiceBusManager :: init :: Service Bus initialized');
9
+ }
10
+ async sendMessagesToServiceBus(topicName, messages) {
11
+ try {
12
+ this.sender = this.sbClient.createSender(topicName);
13
+ console.log('ServiceBusManager :: sendMessagesToServiceBus :: Preparing to send message to service bus');
14
+ await this.sender.sendMessages({
15
+ body: messages,
16
+ });
17
+ console.log('ServiceBusManager :: sendMessagesToServiceBus :: Message sent to service bus');
18
+ }
19
+ catch (error) {
20
+ console.error('ServiceBusManager :: sendMessagesToServiceBus :: Could not send message to service bus', error instanceof Error ? error.message : String(error));
21
+ throw error;
22
+ }
23
+ finally {
24
+ await this.sender.close();
25
+ }
26
+ }
27
+ async listenMessagesFromServiceBus(topicName, subscriptionName, count = 1) {
28
+ try {
29
+ this.receiver = this.sbClient.createReceiver(topicName, subscriptionName);
30
+ console.log('ServiceBusManager :: listenMessagesFromServiceBus :: Repairing to listen for messages from service bus');
31
+ const messages = await this.receiver.receiveMessages(count, {
32
+ maxWaitTimeInMs: 5000,
33
+ });
34
+ const messageBodies = await Promise.all(messages.map(async (message) => {
35
+ console.log(`ServiceBusManager :: listenMessagesFromServiceBus :: Processing message: ${message.body}`);
36
+ await this.receiver.completeMessage(message);
37
+ return message.body;
38
+ }));
39
+ console.log('ServiceBusManager :: listenMessagesFromServiceBus :: Message completed and removed from queue');
40
+ return messageBodies;
41
+ }
42
+ catch (error) {
43
+ console.error('ServiceBusManager :: listenMessagesFromServiceBus :: Could not listen for messages from service bus', error instanceof Error ? error.message : String(error));
44
+ throw error;
45
+ }
46
+ finally {
47
+ await this.receiver.close();
48
+ }
49
+ }
50
+ async peekMessagesFromServiceBus() {
51
+ try {
52
+ console.log('ServiceBusManager :: watchMessagesFromServiceBus :: Watching for messages from service bus');
53
+ const messages = await this.receiver.peekMessages(1);
54
+ return messages[0]?.body;
55
+ }
56
+ catch (error) {
57
+ console.error('ServiceBusManager :: watchMessagesFromServiceBus :: Could not watch for messages from service bus', error instanceof Error ? error.message : String(error));
58
+ throw error;
59
+ }
60
+ }
61
+ async closeSBClient() {
62
+ await this.sbClient.close();
63
+ console.log('ServiceBusManager :: closeSBClient :: Service Bus client closed');
64
+ }
65
+ }
66
+ //# sourceMappingURL=service-bus.manager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"service-bus.manager.js","sourceRoot":"","sources":["../../../src/managers/service-bus.manager.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,16 @@ export interface Notification {
11
11
  deviceId: string;
12
12
  isOpened: boolean;
13
13
  createdAt: Date;
14
+ updatedAt?: Date;
15
+ }
16
+ export declare class CreateNotificationDto implements Partial<Notification> {
17
+ title: string;
18
+ message?: string;
19
+ itemId?: string;
20
+ type: NotificationType;
21
+ isOpened: boolean;
22
+ }
23
+ export declare class UpdateNotificationStatusDto {
24
+ isOpened: boolean;
14
25
  }
15
26
  //# sourceMappingURL=notification.model.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.model.d.ts","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":"AAAA,oBAAY,gBAAgB;IAC1B,QAAQ,QAAQ;IAChB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;CACjB"}
1
+ {"version":3,"file":"notification.model.d.ts","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":"AAEA,oBAAY,gBAAgB;IAC1B,QAAQ,QAAQ;IAChB,IAAI,SAAS;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,gBAAgB,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,IAAI,CAAC;IAChB,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,qBAAa,qBAAsB,YAAW,OAAO,CAAC,YAAY,CAAC;IAEjE,KAAK,EAAE,MAAM,CAAC;IAId,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAGhB,IAAI,EAAE,gBAAgB,CAAC;IAGvB,QAAQ,EAAE,OAAO,CAAS;CAC3B;AAED,qBAAa,2BAA2B;IAEtC,QAAQ,EAAE,OAAO,CAAC;CACnB"}
@@ -1,6 +1,52 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { IsBoolean, IsEnum, IsOptional, IsString } from "class-validator";
1
11
  export var NotificationType;
2
12
  (function (NotificationType) {
3
13
  NotificationType["CRS_DRAW"] = "crs";
4
14
  NotificationType["NEWS"] = "news";
5
15
  })(NotificationType || (NotificationType = {}));
16
+ export class CreateNotificationDto {
17
+ title;
18
+ message;
19
+ itemId;
20
+ type;
21
+ isOpened = false;
22
+ }
23
+ __decorate([
24
+ IsString(),
25
+ __metadata("design:type", String)
26
+ ], CreateNotificationDto.prototype, "title", void 0);
27
+ __decorate([
28
+ IsString(),
29
+ IsOptional(),
30
+ __metadata("design:type", String)
31
+ ], CreateNotificationDto.prototype, "message", void 0);
32
+ __decorate([
33
+ IsString(),
34
+ IsOptional(),
35
+ __metadata("design:type", String)
36
+ ], CreateNotificationDto.prototype, "itemId", void 0);
37
+ __decorate([
38
+ IsEnum(NotificationType),
39
+ __metadata("design:type", String)
40
+ ], CreateNotificationDto.prototype, "type", void 0);
41
+ __decorate([
42
+ IsBoolean(),
43
+ __metadata("design:type", Boolean)
44
+ ], CreateNotificationDto.prototype, "isOpened", void 0);
45
+ export class UpdateNotificationStatusDto {
46
+ isOpened;
47
+ }
48
+ __decorate([
49
+ IsBoolean(),
50
+ __metadata("design:type", Boolean)
51
+ ], UpdateNotificationStatusDto.prototype, "isOpened", void 0);
6
52
  //# sourceMappingURL=notification.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,oCAAgB,CAAA;IAChB,iCAAa,CAAA;AACf,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
1
+ {"version":3,"file":"notification.model.js","sourceRoot":"","sources":["../../../src/models/notification.model.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1E,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,oCAAgB,CAAA;IAChB,iCAAa,CAAA;AACf,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B;AAcD,MAAM,OAAO,qBAAqB;IAEhC,KAAK,CAAS;IAId,OAAO,CAAU;IAIjB,MAAM,CAAU;IAGhB,IAAI,CAAmB;IAGvB,QAAQ,GAAY,KAAK,CAAC;CAC3B;AAfC;IADC,QAAQ,EAAE;;oDACG;AAId;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;sDACI;AAIjB;IAFC,QAAQ,EAAE;IACV,UAAU,EAAE;;qDACG;AAGhB;IADC,MAAM,CAAC,gBAAgB,CAAC;;mDACF;AAGvB;IADC,SAAS,EAAE;;uDACc;AAG5B,MAAM,OAAO,2BAA2B;IAEtC,QAAQ,CAAU;CACnB;AADC;IADC,SAAS,EAAE;;6DACM"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "imm-shared",
3
- "version": "1.0.3",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -28,7 +28,14 @@
28
28
  "prepublishOnly": "npm run build",
29
29
  "test": "echo \"Error: no test specified\" && exit 1"
30
30
  },
31
- "keywords": ["shared", "models", "types", "typescript", "mongoose", "class-validator"],
31
+ "keywords": [
32
+ "shared",
33
+ "models",
34
+ "types",
35
+ "typescript",
36
+ "mongoose",
37
+ "class-validator"
38
+ ],
32
39
  "author": "Nvi <contact@nvimai.com>",
33
40
  "license": "ISC",
34
41
  "description": "Shared models, types, and utilities for IMM applications",
@@ -37,7 +44,9 @@
37
44
  "typescript": "^5.9.2"
38
45
  },
39
46
  "dependencies": {
47
+ "@azure/service-bus": "^7.9.5",
40
48
  "class-validator": "^0.14.2",
49
+ "expo-server-sdk": "^3.15.0",
41
50
  "mongoose": "^8.17.1"
42
51
  }
43
52
  }