imm-shared 1.0.2 → 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 (45) 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/device.model.d.ts +1 -1
  18. package/dist/cjs/models/device.model.d.ts.map +1 -1
  19. package/dist/cjs/models/notification.model.d.ts +11 -0
  20. package/dist/cjs/models/notification.model.d.ts.map +1 -1
  21. package/dist/cjs/models/notification.model.js +49 -1
  22. package/dist/cjs/models/notification.model.js.map +1 -1
  23. package/dist/esm/index.d.ts +1 -0
  24. package/dist/esm/index.d.ts.map +1 -1
  25. package/dist/esm/index.js +3 -0
  26. package/dist/esm/index.js.map +1 -1
  27. package/dist/esm/managers/expo.manager.d.ts +7 -0
  28. package/dist/esm/managers/expo.manager.d.ts.map +1 -0
  29. package/dist/esm/managers/expo.manager.js +34 -0
  30. package/dist/esm/managers/expo.manager.js.map +1 -0
  31. package/dist/esm/managers/index.d.ts +3 -0
  32. package/dist/esm/managers/index.d.ts.map +1 -0
  33. package/dist/esm/managers/index.js +3 -0
  34. package/dist/esm/managers/index.js.map +1 -0
  35. package/dist/esm/managers/service-bus.manager.d.ts +11 -0
  36. package/dist/esm/managers/service-bus.manager.d.ts.map +1 -0
  37. package/dist/esm/managers/service-bus.manager.js +66 -0
  38. package/dist/esm/managers/service-bus.manager.js.map +1 -0
  39. package/dist/esm/models/device.model.d.ts +1 -1
  40. package/dist/esm/models/device.model.d.ts.map +1 -1
  41. package/dist/esm/models/notification.model.d.ts +11 -0
  42. package/dist/esm/models/notification.model.d.ts.map +1 -1
  43. package/dist/esm/models/notification.model.js +46 -0
  44. package/dist/esm/models/notification.model.js.map +1 -1
  45. 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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"}
@@ -12,7 +12,7 @@ export interface DeviceDetails {
12
12
  }
13
13
  export interface Device {
14
14
  _id?: string;
15
- uuid?: Account['_id'];
15
+ uuid?: Account['_id'] | Account;
16
16
  pushNotificationToken: string;
17
17
  pushNotifications: NotificationType[];
18
18
  createdAt: Date | string;
@@ -1 +1 @@
1
- {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB"}
1
+ {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB"}
@@ -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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"}
@@ -12,7 +12,7 @@ export interface DeviceDetails {
12
12
  }
13
13
  export interface Device {
14
14
  _id?: string;
15
- uuid?: Account['_id'];
15
+ uuid?: Account['_id'] | Account;
16
16
  pushNotificationToken: string;
17
17
  pushNotifications: NotificationType[];
18
18
  createdAt: Date | string;
@@ -1 +1 @@
1
- {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;IACtB,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB"}
1
+ {"version":3,"file":"device.model.d.ts","sourceRoot":"","sources":["../../../src/models/device.model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAExD,MAAM,WAAW,aAAa;IAC5B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,MAAM;IACrB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,GAAG,OAAO,CAAC;IAChC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,iBAAiB,EAAE,gBAAgB,EAAE,CAAC;IACtC,SAAS,EAAE,IAAI,GAAG,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,IAAI,GAAG,MAAM,CAAC;IAC1B,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,EAAE,QAAQ,CAAC;CAChB"}
@@ -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.2",
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
  }