@stefaninigo/core 0.9.0 → 1.0.0
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/README.md +339 -51
- package/dist/libs/stefaninigo/cache/local/loca.service.d.ts +2 -0
- package/dist/libs/stefaninigo/cache/local/loca.service.js +30 -1
- package/dist/libs/stefaninigo/cache/local/loca.service.js.map +1 -1
- package/dist/libs/stefaninigo/core/bootstrap/bootstrap.helpers.d.ts +16 -2
- package/dist/libs/stefaninigo/core/bootstrap/bootstrap.helpers.js +47 -7
- package/dist/libs/stefaninigo/core/bootstrap/bootstrap.helpers.js.map +1 -1
- package/dist/libs/stefaninigo/core/config/env.utils.d.ts +3 -0
- package/dist/libs/stefaninigo/core/config/env.utils.js +28 -0
- package/dist/libs/stefaninigo/core/config/env.utils.js.map +1 -0
- package/dist/libs/stefaninigo/core/config/index.d.ts +1 -0
- package/dist/libs/stefaninigo/core/config/index.js +18 -0
- package/dist/libs/stefaninigo/core/config/index.js.map +1 -0
- package/dist/libs/stefaninigo/core/context/index.d.ts +2 -0
- package/dist/libs/stefaninigo/core/context/index.js +19 -0
- package/dist/libs/stefaninigo/core/context/index.js.map +1 -0
- package/dist/libs/stefaninigo/core/context/request-context.d.ts +11 -0
- package/dist/libs/stefaninigo/core/context/request-context.js +14 -0
- package/dist/libs/stefaninigo/core/context/request-context.js.map +1 -0
- package/dist/libs/stefaninigo/core/context/request-context.middleware.d.ts +5 -0
- package/dist/libs/stefaninigo/core/context/request-context.middleware.js +27 -0
- package/dist/libs/stefaninigo/core/context/request-context.middleware.js.map +1 -0
- package/dist/libs/stefaninigo/core/dtos/index.d.ts +1 -0
- package/dist/libs/stefaninigo/core/dtos/index.js +1 -0
- package/dist/libs/stefaninigo/core/dtos/index.js.map +1 -1
- package/dist/libs/stefaninigo/core/dtos/paginated-result.dto.d.ts +11 -0
- package/dist/libs/stefaninigo/core/dtos/paginated-result.dto.js +56 -0
- package/dist/libs/stefaninigo/core/dtos/paginated-result.dto.js.map +1 -0
- package/dist/libs/stefaninigo/core/dtos/problem-details.dto.d.ts +1 -0
- package/dist/libs/stefaninigo/core/dtos/problem-details.dto.js +8 -0
- package/dist/libs/stefaninigo/core/dtos/problem-details.dto.js.map +1 -1
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.d.ts +12 -0
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.js +145 -0
- package/dist/libs/stefaninigo/core/filters/http-exception.filter.js.map +1 -0
- package/dist/libs/stefaninigo/core/filters/index.d.ts +1 -0
- package/dist/libs/stefaninigo/core/filters/index.js +18 -0
- package/dist/libs/stefaninigo/core/filters/index.js.map +1 -0
- package/dist/libs/stefaninigo/core/health/health.module.js +2 -1
- package/dist/libs/stefaninigo/core/health/health.module.js.map +1 -1
- package/dist/libs/stefaninigo/core/health/health.types.d.ts +1 -0
- package/dist/libs/stefaninigo/core/health/health.types.js.map +1 -1
- package/dist/libs/stefaninigo/core/index.d.ts +4 -0
- package/dist/libs/stefaninigo/core/index.js +4 -0
- package/dist/libs/stefaninigo/core/index.js.map +1 -1
- package/dist/libs/stefaninigo/core/interceptors/logging.interceptor.js +15 -10
- package/dist/libs/stefaninigo/core/interceptors/logging.interceptor.js.map +1 -1
- package/dist/libs/stefaninigo/core/interceptors/problem-details.interceptor.js +22 -13
- package/dist/libs/stefaninigo/core/interceptors/problem-details.interceptor.js.map +1 -1
- package/dist/libs/stefaninigo/core/interceptors/response.interceptor.js +2 -2
- package/dist/libs/stefaninigo/core/interceptors/response.interceptor.js.map +1 -1
- package/dist/libs/stefaninigo/core/logger/index.d.ts +1 -0
- package/dist/libs/stefaninigo/core/logger/index.js +18 -0
- package/dist/libs/stefaninigo/core/logger/index.js.map +1 -0
- package/dist/libs/stefaninigo/core/logger/traced-logger.d.ts +7 -0
- package/dist/libs/stefaninigo/core/logger/traced-logger.js +21 -0
- package/dist/libs/stefaninigo/core/logger/traced-logger.js.map +1 -0
- package/dist/libs/stefaninigo/database/database-service.interface.d.ts +1 -4
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.d.ts +2 -2
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.js +1 -4
- package/dist/libs/stefaninigo/database/dynamodb/dynamodb.service.js.map +1 -1
- package/dist/libs/stefaninigo/database/mongodb/mongodb.service.d.ts +5 -3
- package/dist/libs/stefaninigo/database/mongodb/mongodb.service.js +43 -21
- package/dist/libs/stefaninigo/database/mongodb/mongodb.service.js.map +1 -1
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.d.ts +3 -3
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.js +39 -27
- package/dist/libs/stefaninigo/database/postgresdb/postgresdb.services.js.map +1 -1
- package/dist/libs/stefaninigo/database/utils/index.d.ts +1 -0
- package/dist/libs/stefaninigo/database/utils/index.js +18 -0
- package/dist/libs/stefaninigo/database/utils/index.js.map +1 -0
- package/dist/libs/stefaninigo/database/utils/normalize-list.d.ts +6 -0
- package/dist/libs/stefaninigo/database/utils/normalize-list.js +13 -0
- package/dist/libs/stefaninigo/database/utils/normalize-list.js.map +1 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.module.d.ts +2 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.module.js +22 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.module.js.map +1 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.service.d.ts +21 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.service.js +130 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.service.js.map +1 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.types.d.ts +13 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.types.js +3 -0
- package/dist/libs/stefaninigo/events/event-bus/event-bus.types.js.map +1 -0
- package/dist/libs/stefaninigo/events/event-bus/index.d.ts +3 -0
- package/dist/libs/stefaninigo/events/event-bus/index.js +20 -0
- package/dist/libs/stefaninigo/events/event-bus/index.js.map +1 -0
- package/dist/libs/stefaninigo/events/index.d.ts +1 -0
- package/dist/libs/stefaninigo/events/index.js +1 -0
- package/dist/libs/stefaninigo/events/index.js.map +1 -1
- package/dist/libs/stefaninigo/events/types/domain-events.d.ts +3 -145
- package/dist/libs/stefaninigo/index.d.ts +2 -2
- package/dist/libs/stefaninigo/index.js +2 -2
- package/dist/libs/stefaninigo/index.js.map +1 -1
- package/dist/libs/stefaninigo/messaging/sns/sns.service.d.ts +1 -3
- package/dist/libs/stefaninigo/messaging/sns/sns.service.js +1 -25
- package/dist/libs/stefaninigo/messaging/sns/sns.service.js.map +1 -1
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.d.ts +2 -1
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.js +9 -1
- package/dist/libs/stefaninigo/messaging/sqs/sqs.service.js.map +1 -1
- package/dist/libs/stefaninigo/storage/s3/s3-services.d.ts +2 -0
- package/dist/libs/stefaninigo/storage/s3/s3-services.js +35 -7
- package/dist/libs/stefaninigo/storage/s3/s3-services.js.map +1 -1
- package/dist/libs/stefaninigo/storage/storage.interface.d.ts +1 -0
- package/dist/libs/stefaninigo/transport/trasnport.module.d.ts +6 -1
- package/dist/libs/stefaninigo/transport/trasnport.module.js +7 -11
- package/dist/libs/stefaninigo/transport/trasnport.module.js.map +1 -1
- package/dist/libs/stefaninigo/transport/web-socket/aws/aws-ws-transport.service.js +0 -4
- package/dist/libs/stefaninigo/transport/web-socket/aws/aws-ws-transport.service.js.map +1 -1
- package/package.json +2 -2
|
@@ -2,151 +2,9 @@ export interface BaseEvent {
|
|
|
2
2
|
eventId: string;
|
|
3
3
|
eventType: string;
|
|
4
4
|
timestamp: string;
|
|
5
|
-
providerId: string;
|
|
6
5
|
correlationId?: string;
|
|
7
6
|
source: string;
|
|
8
7
|
}
|
|
9
|
-
export
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
ticketId: string;
|
|
13
|
-
clientId: string;
|
|
14
|
-
locationId: string;
|
|
15
|
-
priority: string;
|
|
16
|
-
slaDeadline: string;
|
|
17
|
-
latitude?: number;
|
|
18
|
-
longitude?: number;
|
|
19
|
-
};
|
|
20
|
-
}
|
|
21
|
-
export interface TicketAssignedEvent extends BaseEvent {
|
|
22
|
-
eventType: 'ticket.assigned';
|
|
23
|
-
data: {
|
|
24
|
-
ticketId: string;
|
|
25
|
-
technicianId: string;
|
|
26
|
-
previousTechnicianId?: string;
|
|
27
|
-
dispatcherId: string;
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
export interface TicketReassignedEvent extends BaseEvent {
|
|
31
|
-
eventType: 'ticket.reassigned';
|
|
32
|
-
data: {
|
|
33
|
-
ticketId: string;
|
|
34
|
-
fromTechnicianId: string;
|
|
35
|
-
toTechnicianId: string;
|
|
36
|
-
reason: string;
|
|
37
|
-
};
|
|
38
|
-
}
|
|
39
|
-
export interface TicketCompletedEvent extends BaseEvent {
|
|
40
|
-
eventType: 'ticket.completed';
|
|
41
|
-
data: {
|
|
42
|
-
ticketId: string;
|
|
43
|
-
technicianId: string;
|
|
44
|
-
completedAt: string;
|
|
45
|
-
locationData?: {
|
|
46
|
-
latitude: number;
|
|
47
|
-
longitude: number;
|
|
48
|
-
};
|
|
49
|
-
};
|
|
50
|
-
}
|
|
51
|
-
export interface TicketStateChangedEvent extends BaseEvent {
|
|
52
|
-
eventType: 'ticket.state_changed';
|
|
53
|
-
data: {
|
|
54
|
-
ticketId: string;
|
|
55
|
-
fromState: string;
|
|
56
|
-
toState: string;
|
|
57
|
-
technicianId?: string;
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
|
-
export interface RouteCreatedEvent extends BaseEvent {
|
|
61
|
-
eventType: 'route.created';
|
|
62
|
-
data: {
|
|
63
|
-
routeId: string;
|
|
64
|
-
technicianId: string;
|
|
65
|
-
totalStops: number;
|
|
66
|
-
estimatedDurationMin: number;
|
|
67
|
-
strategy: string;
|
|
68
|
-
};
|
|
69
|
-
}
|
|
70
|
-
export interface RouteETAUpdatedEvent extends BaseEvent {
|
|
71
|
-
eventType: 'route.eta_updated';
|
|
72
|
-
data: {
|
|
73
|
-
routeId: string;
|
|
74
|
-
technicianId: string;
|
|
75
|
-
nextStopOrder: number;
|
|
76
|
-
nextStopETA: string;
|
|
77
|
-
remainingStops: number;
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
export interface RouteSLAAtRiskEvent extends BaseEvent {
|
|
81
|
-
eventType: 'route.sla_at_risk';
|
|
82
|
-
data: {
|
|
83
|
-
routeId: string;
|
|
84
|
-
technicianId: string;
|
|
85
|
-
technicianName: string;
|
|
86
|
-
ticketId: string;
|
|
87
|
-
slaDeadline: string;
|
|
88
|
-
minutesRemaining: number;
|
|
89
|
-
severity: 'warning' | 'critical';
|
|
90
|
-
};
|
|
91
|
-
}
|
|
92
|
-
export interface RouteCompletedEvent extends BaseEvent {
|
|
93
|
-
eventType: 'route.completed';
|
|
94
|
-
data: {
|
|
95
|
-
routeId: string;
|
|
96
|
-
technicianId: string;
|
|
97
|
-
totalDistanceKm: number;
|
|
98
|
-
totalDurationMin: number;
|
|
99
|
-
stopsCompleted: number;
|
|
100
|
-
stopsSkipped: number;
|
|
101
|
-
slaCompliancePercent: number;
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
export interface GeofenceTriggeredEvent extends BaseEvent {
|
|
105
|
-
eventType: 'geofence.entered' | 'geofence.exited';
|
|
106
|
-
data: {
|
|
107
|
-
userId: string;
|
|
108
|
-
zoneId: string;
|
|
109
|
-
zoneName: string;
|
|
110
|
-
latitude: number;
|
|
111
|
-
longitude: number;
|
|
112
|
-
ticketId?: string;
|
|
113
|
-
};
|
|
114
|
-
}
|
|
115
|
-
export interface TechnicianLocationUpdatedEvent extends BaseEvent {
|
|
116
|
-
eventType: 'technician.location_updated';
|
|
117
|
-
data: {
|
|
118
|
-
technicianId: string;
|
|
119
|
-
latitude: number;
|
|
120
|
-
longitude: number;
|
|
121
|
-
speed?: number;
|
|
122
|
-
heading?: number;
|
|
123
|
-
activeRouteId?: string;
|
|
124
|
-
currentStopOrder?: number;
|
|
125
|
-
};
|
|
126
|
-
}
|
|
127
|
-
export interface StockCriticalEvent extends BaseEvent {
|
|
128
|
-
eventType: 'inventory.stock_critical';
|
|
129
|
-
data: {
|
|
130
|
-
warehouseId: string;
|
|
131
|
-
warehouseName: string;
|
|
132
|
-
itemId: string;
|
|
133
|
-
itemName: string;
|
|
134
|
-
currentStock: number;
|
|
135
|
-
minimumStock: number;
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
export interface StockReservedEvent extends BaseEvent {
|
|
139
|
-
eventType: 'inventory.stock_reserved';
|
|
140
|
-
data: {
|
|
141
|
-
reservationId: string;
|
|
142
|
-
warehouseId: string;
|
|
143
|
-
items: Array<{
|
|
144
|
-
itemId: string;
|
|
145
|
-
quantity: number;
|
|
146
|
-
}>;
|
|
147
|
-
routePlanId: string;
|
|
148
|
-
expiresAt: string;
|
|
149
|
-
};
|
|
150
|
-
}
|
|
151
|
-
export type DomainEvent = TicketCreatedEvent | TicketAssignedEvent | TicketReassignedEvent | TicketCompletedEvent | TicketStateChangedEvent | RouteCreatedEvent | RouteETAUpdatedEvent | RouteSLAAtRiskEvent | RouteCompletedEvent | GeofenceTriggeredEvent | TechnicianLocationUpdatedEvent | StockCriticalEvent | StockReservedEvent;
|
|
152
|
-
export type DomainEventType = DomainEvent['eventType'];
|
|
8
|
+
export type PublishableEvent = BaseEvent & {
|
|
9
|
+
data?: unknown;
|
|
10
|
+
};
|
|
@@ -4,7 +4,7 @@ export * from './database';
|
|
|
4
4
|
export * from './messaging';
|
|
5
5
|
export * from './config';
|
|
6
6
|
export * from './transport';
|
|
7
|
-
export * from './geo';
|
|
8
|
-
export * from './events';
|
|
9
7
|
export * from './core';
|
|
8
|
+
export * from './events';
|
|
9
|
+
export * from './geo';
|
|
10
10
|
export type { DatabaseService } from './database/database-service.interface';
|
|
@@ -20,7 +20,7 @@ __exportStar(require("./database"), exports);
|
|
|
20
20
|
__exportStar(require("./messaging"), exports);
|
|
21
21
|
__exportStar(require("./config"), exports);
|
|
22
22
|
__exportStar(require("./transport"), exports);
|
|
23
|
-
__exportStar(require("./geo"), exports);
|
|
24
|
-
__exportStar(require("./events"), exports);
|
|
25
23
|
__exportStar(require("./core"), exports);
|
|
24
|
+
__exportStar(require("./events"), exports);
|
|
25
|
+
__exportStar(require("./geo"), exports);
|
|
26
26
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/stefaninigo/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../libs/stefaninigo/src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAA0B;AAC1B,0CAAwB;AACxB,6CAA2B;AAC3B,8CAA4B;AAC5B,2CAAyB;AACzB,8CAA4B;AAC5B,yCAAuB;AACvB,2CAAyB;AACzB,wCAAsB"}
|
|
@@ -5,12 +5,10 @@ interface SNSMessagingConfig {
|
|
|
5
5
|
secretAccessKey: string;
|
|
6
6
|
}
|
|
7
7
|
export declare class SNSMessagingService implements MessagingServiceSNS {
|
|
8
|
-
private readonly logger;
|
|
9
8
|
private snsClient;
|
|
9
|
+
private readonly logger;
|
|
10
10
|
constructor(config: SNSMessagingConfig);
|
|
11
11
|
publish(message: string, topicArn: string, options?: object): Promise<void>;
|
|
12
12
|
subscribe(topicArn: string, protocol: 'http' | 'https' | 'email' | 'sms', endpoint: string, options?: object, handler?: (message: string) => void): Promise<void>;
|
|
13
|
-
handleNotification(req: any, res: any): Promise<void>;
|
|
14
|
-
private confirmSubscription;
|
|
15
13
|
}
|
|
16
14
|
export {};
|
|
@@ -31,31 +31,7 @@ class SNSMessagingService {
|
|
|
31
31
|
};
|
|
32
32
|
const command = new client_sns_1.SubscribeCommand(params);
|
|
33
33
|
const subscription = await this.snsClient.send(command);
|
|
34
|
-
this.logger.log(`
|
|
35
|
-
}
|
|
36
|
-
async handleNotification(req, res) {
|
|
37
|
-
const messageType = req.headers['x-amz-sns-message-type'];
|
|
38
|
-
if (messageType === 'SubscriptionConfirmation') {
|
|
39
|
-
const confirmationUrl = req.body.SubscribeURL;
|
|
40
|
-
await this.confirmSubscription(confirmationUrl);
|
|
41
|
-
res.status(200).send('Subscription confirmed');
|
|
42
|
-
}
|
|
43
|
-
else if (messageType === 'Notification') {
|
|
44
|
-
const snsMessage = req.body.Message;
|
|
45
|
-
this.logger.log(`Received SNS message: ${snsMessage}`);
|
|
46
|
-
res.status(200).send('Message received');
|
|
47
|
-
}
|
|
48
|
-
else {
|
|
49
|
-
res.status(400).send('Invalid SNS message');
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
async confirmSubscription(confirmationUrl) {
|
|
53
|
-
const https = require('https');
|
|
54
|
-
https.get(confirmationUrl, (res) => {
|
|
55
|
-
this.logger.log(`Subscription confirmed: ${res.statusCode}`);
|
|
56
|
-
}).on('error', (err) => {
|
|
57
|
-
this.logger.error(`Error confirming subscription: ${err.message}`);
|
|
58
|
-
});
|
|
34
|
+
this.logger.log(`SNS subscription created: ${subscription.SubscriptionArn}`);
|
|
59
35
|
}
|
|
60
36
|
}
|
|
61
37
|
exports.SNSMessagingService = SNSMessagingService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/messaging/sns/sns.service.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,oDAAkF;AASlF,MAAa,mBAAmB;IAI9B,YAAY,MAA0B;
|
|
1
|
+
{"version":3,"file":"sns.service.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/messaging/sns/sns.service.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,oDAAkF;AASlF,MAAa,mBAAmB;IAI9B,YAAY,MAA0B;QAFrB,WAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;QAG7D,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC;YAC7B,MAAM,EAAE,MAAM,CAAC,MAAM;YACrB,WAAW,EAAE;gBACX,WAAW,EAAE,MAAM,CAAC,WAAW;gBAC/B,eAAe,EAAE,MAAM,CAAC,eAAe;aACxC;SACF,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAe,EAAE,QAAgB,EAAE,OAAgB;QAC/D,MAAM,MAAM,GAAG;YACb,OAAO,EAAE,OAAO;YAChB,QAAQ,EAAE,QAAQ;YAClB,GAAG,OAAO;SACX,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,2BAAc,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,QAAgB,EAAE,QAA4C,EAAE,QAAgB,EAAE,OAAe,EAAE,OAAmC;QACpJ,MAAM,MAAM,GAAG;YACb,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;YAClB,QAAQ,EAAE,QAAQ;SACnB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,6BAAgB,CAAC,MAAM,CAAC,CAAC;QAC7C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,6BAA6B,YAAY,CAAC,eAAe,EAAE,CAAC,CAAC;IAC/E,CAAC;CAEF;AArCD,kDAqCC"}
|
|
@@ -8,8 +8,8 @@ interface SQSMessagingConfig {
|
|
|
8
8
|
pollInterval: number;
|
|
9
9
|
}
|
|
10
10
|
export declare class SQSMessagingService implements MessagingServiceSQS {
|
|
11
|
-
private readonly logger;
|
|
12
11
|
private sqsClient;
|
|
12
|
+
private readonly logger;
|
|
13
13
|
private readonly pollInterval;
|
|
14
14
|
private readonly MaxNumberOfMessages;
|
|
15
15
|
private readonly WaitTimeSeconds;
|
|
@@ -18,6 +18,7 @@ export declare class SQSMessagingService implements MessagingServiceSQS {
|
|
|
18
18
|
publish(message: string, queueUrl: string, options?: object): Promise<void>;
|
|
19
19
|
subscribe(queueUrl: string, handler: (message: string) => void): Promise<void>;
|
|
20
20
|
stopPolling(): void;
|
|
21
|
+
destroy(): void;
|
|
21
22
|
private pollQueue;
|
|
22
23
|
}
|
|
23
24
|
export {};
|
|
@@ -6,6 +6,7 @@ const client_sqs_1 = require("@aws-sdk/client-sqs");
|
|
|
6
6
|
class SQSMessagingService {
|
|
7
7
|
constructor(config) {
|
|
8
8
|
this.logger = new common_1.Logger(SQSMessagingService.name);
|
|
9
|
+
this.intervalId = null;
|
|
9
10
|
this.sqsClient = new client_sqs_1.SQSClient({
|
|
10
11
|
region: config.region,
|
|
11
12
|
credentials: {
|
|
@@ -33,12 +34,19 @@ class SQSMessagingService {
|
|
|
33
34
|
WaitTimeSeconds: this.WaitTimeSeconds,
|
|
34
35
|
};
|
|
35
36
|
this.intervalId = setInterval(() => this.pollQueue(params, handler), this.pollInterval);
|
|
37
|
+
if (this.intervalId.unref) {
|
|
38
|
+
this.intervalId.unref();
|
|
39
|
+
}
|
|
36
40
|
}
|
|
37
41
|
stopPolling() {
|
|
38
42
|
if (this.intervalId) {
|
|
39
43
|
clearInterval(this.intervalId);
|
|
44
|
+
this.intervalId = null;
|
|
40
45
|
}
|
|
41
46
|
}
|
|
47
|
+
destroy() {
|
|
48
|
+
this.stopPolling();
|
|
49
|
+
}
|
|
42
50
|
async pollQueue(params, handler) {
|
|
43
51
|
try {
|
|
44
52
|
const command = new client_sqs_1.ReceiveMessageCommand(params);
|
|
@@ -56,7 +64,7 @@ class SQSMessagingService {
|
|
|
56
64
|
}
|
|
57
65
|
}
|
|
58
66
|
catch (error) {
|
|
59
|
-
this.logger.error('Error receiving message from SQS', error);
|
|
67
|
+
this.logger.error('Error receiving message from SQS', error instanceof Error ? error.stack : undefined);
|
|
60
68
|
}
|
|
61
69
|
}
|
|
62
70
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/messaging/sqs/sqs.service.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AACxC,oDAAiH;AAYjH,MAAa,mBAAmB;IAQ9B,YAAY,MAA0B;
|
|
1
|
+
{"version":3,"file":"sqs.service.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/messaging/sqs/sqs.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@ export declare class S3Service implements StorageService {
|
|
|
13
13
|
private readonly bucket;
|
|
14
14
|
private readonly containerPath;
|
|
15
15
|
private readonly expiresIn;
|
|
16
|
+
private readonly logger;
|
|
16
17
|
constructor(config: S3Config);
|
|
17
18
|
private validateConfig;
|
|
18
19
|
private buildFilePath;
|
|
@@ -21,5 +22,6 @@ export declare class S3Service implements StorageService {
|
|
|
21
22
|
listFiles(containerPath?: string): Promise<any>;
|
|
22
23
|
deleteFile(key: string, containerPath?: string): Promise<any>;
|
|
23
24
|
getFileUrl(key: string, containerPath?: string, expiresIn?: number, contentDisposition?: string, contentType?: string): Promise<string>;
|
|
25
|
+
getPresignedUploadUrl(key: string, containerPath?: string, expiresIn?: number, contentType?: string): Promise<string>;
|
|
24
26
|
}
|
|
25
27
|
export {};
|
|
@@ -8,15 +8,17 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
+
var S3Service_1;
|
|
11
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
13
|
exports.S3Service = void 0;
|
|
13
14
|
const common_1 = require("@nestjs/common");
|
|
14
15
|
const client_s3_1 = require("@aws-sdk/client-s3");
|
|
15
16
|
const s3_request_presigner_1 = require("@aws-sdk/s3-request-presigner");
|
|
16
17
|
const lib_storage_1 = require("@aws-sdk/lib-storage");
|
|
17
|
-
let S3Service = class S3Service {
|
|
18
|
+
let S3Service = S3Service_1 = class S3Service {
|
|
18
19
|
constructor(config) {
|
|
19
20
|
this.expiresIn = 3600;
|
|
21
|
+
this.logger = new common_1.Logger(S3Service_1.name);
|
|
20
22
|
this.validateConfig(config);
|
|
21
23
|
this.s3 = new client_s3_1.S3Client({
|
|
22
24
|
region: config.region,
|
|
@@ -63,7 +65,8 @@ let S3Service = class S3Service {
|
|
|
63
65
|
return await upload.done();
|
|
64
66
|
}
|
|
65
67
|
catch (error) {
|
|
66
|
-
|
|
68
|
+
this.logger.error(`Failed to upload file: ${filePath}`, error instanceof Error ? error.stack : undefined);
|
|
69
|
+
throw new Error(`Failed to upload file: ${filePath}`);
|
|
67
70
|
}
|
|
68
71
|
}
|
|
69
72
|
async downloadFile(key, containerPath) {
|
|
@@ -77,7 +80,8 @@ let S3Service = class S3Service {
|
|
|
77
80
|
return response.Body;
|
|
78
81
|
}
|
|
79
82
|
catch (error) {
|
|
80
|
-
|
|
83
|
+
this.logger.error(`Failed to download file: ${filePath}`, error instanceof Error ? error.stack : undefined);
|
|
84
|
+
throw new Error(`Failed to download file: ${filePath}`);
|
|
81
85
|
}
|
|
82
86
|
}
|
|
83
87
|
async listFiles(containerPath) {
|
|
@@ -91,6 +95,7 @@ let S3Service = class S3Service {
|
|
|
91
95
|
return response.Contents ? response.Contents.map(file => file.Key) : [];
|
|
92
96
|
}
|
|
93
97
|
catch (error) {
|
|
98
|
+
this.logger.error('Failed to list files', error instanceof Error ? error.stack : undefined);
|
|
94
99
|
throw new Error('Failed to list files');
|
|
95
100
|
}
|
|
96
101
|
}
|
|
@@ -104,7 +109,8 @@ let S3Service = class S3Service {
|
|
|
104
109
|
return await this.s3.send(command);
|
|
105
110
|
}
|
|
106
111
|
catch (error) {
|
|
107
|
-
|
|
112
|
+
this.logger.error(`Failed to delete file: ${filePath}`, error instanceof Error ? error.stack : undefined);
|
|
113
|
+
throw new Error(`Failed to delete file: ${filePath}`);
|
|
108
114
|
}
|
|
109
115
|
}
|
|
110
116
|
async getFileUrl(key, containerPath, expiresIn = 3600, contentDisposition, contentType) {
|
|
@@ -121,16 +127,38 @@ let S3Service = class S3Service {
|
|
|
121
127
|
commandInput.ResponseContentType = contentType;
|
|
122
128
|
}
|
|
123
129
|
const command = new client_s3_1.GetObjectCommand(commandInput);
|
|
124
|
-
const
|
|
130
|
+
const effectiveExpiry = this.expiresIn ?? expiresIn;
|
|
131
|
+
const url = await (0, s3_request_presigner_1.getSignedUrl)(this.s3, command, { expiresIn: effectiveExpiry });
|
|
125
132
|
return url;
|
|
126
133
|
}
|
|
127
134
|
catch (error) {
|
|
128
|
-
|
|
135
|
+
this.logger.error(`Failed to get file URL: ${key}`, error instanceof Error ? error.stack : undefined);
|
|
136
|
+
throw new Error(`Failed to get file URL: ${key}`);
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
async getPresignedUploadUrl(key, containerPath, expiresIn = 3600, contentType) {
|
|
140
|
+
try {
|
|
141
|
+
const objectKey = containerPath ? `${containerPath}/${key}` : key;
|
|
142
|
+
const commandInput = {
|
|
143
|
+
Bucket: this.bucket,
|
|
144
|
+
Key: objectKey,
|
|
145
|
+
};
|
|
146
|
+
if (contentType) {
|
|
147
|
+
commandInput.ContentType = contentType;
|
|
148
|
+
}
|
|
149
|
+
const command = new client_s3_1.PutObjectCommand(commandInput);
|
|
150
|
+
const effectiveExpiry = this.expiresIn ?? expiresIn;
|
|
151
|
+
const url = await (0, s3_request_presigner_1.getSignedUrl)(this.s3, command, { expiresIn: effectiveExpiry });
|
|
152
|
+
return url;
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
this.logger.error(`Failed to get presigned upload URL: ${key}`, error instanceof Error ? error.stack : undefined);
|
|
156
|
+
throw new Error(`Failed to get presigned upload URL: ${key}`);
|
|
129
157
|
}
|
|
130
158
|
}
|
|
131
159
|
};
|
|
132
160
|
exports.S3Service = S3Service;
|
|
133
|
-
exports.S3Service = S3Service = __decorate([
|
|
161
|
+
exports.S3Service = S3Service = S3Service_1 = __decorate([
|
|
134
162
|
(0, common_1.Injectable)(),
|
|
135
163
|
__metadata("design:paramtypes", [Object])
|
|
136
164
|
], S3Service);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"s3-services.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/storage/s3/s3-services.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"s3-services.js","sourceRoot":"","sources":["../../../../../libs/stefaninigo/src/storage/s3/s3-services.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,6 +2,7 @@ import { Readable } from 'stream';
|
|
|
2
2
|
export interface StorageService {
|
|
3
3
|
uploadFile(file: Express.Multer.File, key: string, containerPath?: string): Promise<any>;
|
|
4
4
|
getFileUrl(key: string, containerPath?: string, expiresIn?: number, contentDisposition?: string, contentType?: string): Promise<string>;
|
|
5
|
+
getPresignedUploadUrl(key: string, containerPath?: string, expiresIn?: number, contentType?: string): Promise<string>;
|
|
5
6
|
downloadFile(key: string, containerPath?: string): Promise<Readable>;
|
|
6
7
|
listFiles(containerPath?: string): Promise<any>;
|
|
7
8
|
deleteFile(key: string, containerPath?: string): Promise<any>;
|
|
@@ -14,11 +14,16 @@ export interface TransportProviderConfig {
|
|
|
14
14
|
name: string;
|
|
15
15
|
provider: keyof typeof transportStrategies;
|
|
16
16
|
}
|
|
17
|
+
export interface TransportModuleOptions {
|
|
18
|
+
providers: TransportProviderConfig[];
|
|
19
|
+
databaseProvider?: string;
|
|
20
|
+
databaseToken?: string;
|
|
21
|
+
}
|
|
17
22
|
export declare class TransportModule {
|
|
18
23
|
static PROVIDERS: {
|
|
19
24
|
HTTP: string;
|
|
20
25
|
AWS_WEBSOCKET: string;
|
|
21
26
|
};
|
|
22
|
-
static forRootAsync(
|
|
27
|
+
static forRootAsync(options: TransportModuleOptions): DynamicModule;
|
|
23
28
|
}
|
|
24
29
|
export {};
|
|
@@ -21,8 +21,10 @@ const transportStrategies = {
|
|
|
21
21
|
[exports.PROVIDERS.AWS_WEBSOCKET]: aws_ws_transport_service_1.AwsWsTransportService,
|
|
22
22
|
};
|
|
23
23
|
let TransportModule = TransportModule_1 = class TransportModule {
|
|
24
|
-
static forRootAsync(
|
|
25
|
-
const
|
|
24
|
+
static forRootAsync(options) {
|
|
25
|
+
const dbProvider = options.databaseProvider || database_module_1.DatabaseModule.PROVIDERS.MONGODB;
|
|
26
|
+
const dbToken = options.databaseToken || 'transport_db';
|
|
27
|
+
const asyncProviders = options.providers.map(({ name, provider }) => {
|
|
26
28
|
const TransportServiceClass = transportStrategies[provider];
|
|
27
29
|
if (!TransportServiceClass) {
|
|
28
30
|
throw new Error(`Unknown transport provider: ${provider}`);
|
|
@@ -30,14 +32,14 @@ let TransportModule = TransportModule_1 = class TransportModule {
|
|
|
30
32
|
return {
|
|
31
33
|
provide: name,
|
|
32
34
|
useFactory: async (configService, db) => new TransportServiceClass(configService?.transport?.getConfig(provider), db),
|
|
33
|
-
inject: [config_1.StefaniniGoConfigService,
|
|
35
|
+
inject: [config_1.StefaniniGoConfigService, dbToken],
|
|
34
36
|
};
|
|
35
37
|
});
|
|
36
38
|
return {
|
|
37
39
|
module: TransportModule_1,
|
|
38
40
|
imports: [
|
|
39
41
|
database_module_1.DatabaseModule.forRootAsync([
|
|
40
|
-
{ name:
|
|
42
|
+
{ name: dbToken, provider: dbProvider }
|
|
41
43
|
])
|
|
42
44
|
],
|
|
43
45
|
providers: asyncProviders,
|
|
@@ -50,13 +52,7 @@ TransportModule.PROVIDERS = exports.PROVIDERS;
|
|
|
50
52
|
exports.TransportModule = TransportModule = TransportModule_1 = __decorate([
|
|
51
53
|
(0, common_1.Module)({
|
|
52
54
|
providers: [config_1.StefaniniGoConfigService, config_2.ConfigService],
|
|
53
|
-
exports: [
|
|
54
|
-
config_1.StefaniniGoConfigService,
|
|
55
|
-
config_2.ConfigService,
|
|
56
|
-
database_module_1.DatabaseModule.forRootAsync([
|
|
57
|
-
{ name: 'db', provider: database_module_1.DatabaseModule.PROVIDERS.MONGODB }
|
|
58
|
-
]),
|
|
59
|
-
],
|
|
55
|
+
exports: [config_1.StefaniniGoConfigService, config_2.ConfigService],
|
|
60
56
|
})
|
|
61
57
|
], TransportModule);
|
|
62
58
|
//# sourceMappingURL=trasnport.module.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trasnport.module.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/transport/trasnport.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAiE;
|
|
1
|
+
{"version":3,"file":"trasnport.module.js","sourceRoot":"","sources":["../../../../libs/stefaninigo/src/transport/trasnport.module.ts"],"names":[],"mappings":";;;;;;;;;;AACA,2CAAiE;AACjE,wFAAkF;AAClF,sCAAqD;AACrD,2CAA+C;AAE/C,iEAA6D;AAGhD,QAAA,SAAS,GAAG;IACvB,IAAI,EAAE,MAAM;IACZ,aAAa,EAAE,QAAQ;CACxB,CAAC;AAEF,MAAM,mBAAmB,GAAwG;IAC/H,CAAC,iBAAS,CAAC,aAAa,CAAC,EAAE,gDAAqB;CACjD,CAAC;AAmBK,IAAM,eAAe,uBAArB,MAAM,eAAe;IAG1B,MAAM,CAAC,YAAY,CAAC,OAA+B;QACjD,MAAM,UAAU,GAAG,OAAO,CAAC,gBAAgB,IAAI,gCAAc,CAAC,SAAS,CAAC,OAAO,CAAC;QAChF,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,IAAI,cAAc,CAAC;QAExD,MAAM,cAAc,GAAe,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;YAC9E,MAAM,qBAAqB,GAAG,mBAAmB,CAAC,QAAQ,CAAC,CAAC;YAE5D,IAAI,CAAC,qBAAqB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CAAC,+BAA+B,QAAQ,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,UAAU,EAAE,KAAK,EACf,aAAuC,EACvC,EAAmB,EACnB,EAAE,CAAC,IAAI,qBAAqB,CAC5B,aAAa,EAAE,SAAS,EAAE,SAAS,CAAC,QAAQ,CAAC,EAC7C,EAAE,CACH;gBACD,MAAM,EAAE,CAAC,iCAAwB,EAAE,OAAO,CAAC;aAC5C,CAAC;QACJ,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,MAAM,EAAE,iBAAe;YACvB,OAAO,EAAE;gBACP,gCAAc,CAAC,YAAY,CAAC;oBAC1B,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE;iBACxC,CAAC;aACH;YACD,SAAS,EAAE,cAAc;YACzB,OAAO,EAAE,cAAc;SACxB,CAAC;IACJ,CAAC;;AArCU,0CAAe;AACnB,yBAAS,GAAG,iBAAS,AAAZ,CAAa;0BADlB,eAAe;IAJ3B,IAAA,eAAM,EAAC;QACN,SAAS,EAAE,CAAC,iCAAwB,EAAE,sBAAa,CAAC;QACpD,OAAO,EAAE,CAAC,iCAAwB,EAAE,sBAAa,CAAC;KACnD,CAAC;GACW,eAAe,CAsC3B"}
|
|
@@ -8,9 +8,6 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
8
8
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
9
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
10
|
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
11
|
var AwsWsTransportService_1;
|
|
15
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
16
13
|
exports.AwsWsTransportService = void 0;
|
|
@@ -172,7 +169,6 @@ let AwsWsTransportService = AwsWsTransportService_1 = class AwsWsTransportServic
|
|
|
172
169
|
exports.AwsWsTransportService = AwsWsTransportService;
|
|
173
170
|
exports.AwsWsTransportService = AwsWsTransportService = AwsWsTransportService_1 = __decorate([
|
|
174
171
|
(0, common_1.Injectable)(),
|
|
175
|
-
__param(1, (0, common_1.Inject)('mongodb')),
|
|
176
172
|
__metadata("design:paramtypes", [Object, Object])
|
|
177
173
|
], AwsWsTransportService);
|
|
178
174
|
//# sourceMappingURL=aws-ws-transport.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aws-ws-transport.service.js","sourceRoot":"","sources":["../../../../../../libs/stefaninigo/src/transport/web-socket/aws/aws-ws-transport.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"aws-ws-transport.service.js","sourceRoot":"","sources":["../../../../../../libs/stefaninigo/src/transport/web-socket/aws/aws-ws-transport.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED