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.
- package/dist/cjs/index.d.ts +1 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +3 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/managers/expo.manager.d.ts +7 -0
- package/dist/cjs/managers/expo.manager.d.ts.map +1 -0
- package/dist/cjs/managers/expo.manager.js +38 -0
- package/dist/cjs/managers/expo.manager.js.map +1 -0
- package/dist/cjs/managers/index.d.ts +3 -0
- package/dist/cjs/managers/index.d.ts.map +1 -0
- package/dist/cjs/managers/index.js +19 -0
- package/dist/cjs/managers/index.js.map +1 -0
- package/dist/cjs/managers/service-bus.manager.d.ts +11 -0
- package/dist/cjs/managers/service-bus.manager.d.ts.map +1 -0
- package/dist/cjs/managers/service-bus.manager.js +70 -0
- package/dist/cjs/managers/service-bus.manager.js.map +1 -0
- package/dist/cjs/models/notification.model.d.ts +11 -0
- package/dist/cjs/models/notification.model.d.ts.map +1 -1
- package/dist/cjs/models/notification.model.js +49 -1
- package/dist/cjs/models/notification.model.js.map +1 -1
- package/dist/esm/index.d.ts +1 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/managers/expo.manager.d.ts +7 -0
- package/dist/esm/managers/expo.manager.d.ts.map +1 -0
- package/dist/esm/managers/expo.manager.js +34 -0
- package/dist/esm/managers/expo.manager.js.map +1 -0
- package/dist/esm/managers/index.d.ts +3 -0
- package/dist/esm/managers/index.d.ts.map +1 -0
- package/dist/esm/managers/index.js +3 -0
- package/dist/esm/managers/index.js.map +1 -0
- package/dist/esm/managers/service-bus.manager.d.ts +11 -0
- package/dist/esm/managers/service-bus.manager.d.ts.map +1 -0
- package/dist/esm/managers/service-bus.manager.js +66 -0
- package/dist/esm/managers/service-bus.manager.js.map +1 -0
- package/dist/esm/models/notification.model.d.ts +11 -0
- package/dist/esm/models/notification.model.d.ts.map +1 -1
- package/dist/esm/models/notification.model.js +46 -0
- package/dist/esm/models/notification.model.js.map +1 -1
- package/package.json +11 -2
package/dist/cjs/index.d.ts
CHANGED
package/dist/cjs/index.d.ts.map
CHANGED
|
@@ -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
|
package/dist/cjs/index.js.map
CHANGED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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":"
|
|
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"}
|
package/dist/esm/index.d.ts
CHANGED
package/dist/esm/index.d.ts.map
CHANGED
|
@@ -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
package/dist/esm/index.js.map
CHANGED
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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 @@
|
|
|
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":"
|
|
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
|
+
"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": [
|
|
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
|
}
|