@cwertlinks/common 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.
- package/build/errors/bad-request-error.d.ts +10 -0
- package/build/errors/bad-request-error.d.ts.map +1 -0
- package/build/errors/bad-request-error.js +14 -0
- package/build/errors/bad-request-error.js.map +1 -0
- package/build/errors/custom-error.d.ts +9 -0
- package/build/errors/custom-error.d.ts.map +1 -0
- package/build/errors/custom-error.js +7 -0
- package/build/errors/custom-error.js.map +1 -0
- package/build/errors/database-connection-error.d.ts +9 -0
- package/build/errors/database-connection-error.d.ts.map +1 -0
- package/build/errors/database-connection-error.js +12 -0
- package/build/errors/database-connection-error.js.map +1 -0
- package/build/errors/not-authorized-error.d.ts +9 -0
- package/build/errors/not-authorized-error.d.ts.map +1 -0
- package/build/errors/not-authorized-error.js +12 -0
- package/build/errors/not-authorized-error.js.map +1 -0
- package/build/errors/not-found-error.d.ts +9 -0
- package/build/errors/not-found-error.d.ts.map +1 -0
- package/build/errors/not-found-error.js +12 -0
- package/build/errors/not-found-error.js.map +1 -0
- package/build/errors/request-validation-error.d.ts +12 -0
- package/build/errors/request-validation-error.d.ts.map +1 -0
- package/build/errors/request-validation-error.js +22 -0
- package/build/errors/request-validation-error.js.map +1 -0
- package/build/events/base-listener.d.ts +14 -0
- package/build/events/base-listener.d.ts.map +1 -0
- package/build/events/base-listener.js +30 -0
- package/build/events/base-listener.js.map +1 -0
- package/build/events/base-publisher.d.ts +9 -0
- package/build/events/base-publisher.d.ts.map +1 -0
- package/build/events/base-publisher.js +19 -0
- package/build/events/base-publisher.js.map +1 -0
- package/build/events/index.d.ts +7 -0
- package/build/events/index.d.ts.map +1 -0
- package/build/events/index.js +7 -0
- package/build/events/index.js.map +1 -0
- package/build/events/services/ticket/listeners.d.ts +15 -0
- package/build/events/services/ticket/listeners.d.ts.map +1 -0
- package/build/events/services/ticket/listeners.js +19 -0
- package/build/events/services/ticket/listeners.js.map +1 -0
- package/build/events/services/ticket/publishers.d.ts +10 -0
- package/build/events/services/ticket/publishers.d.ts.map +1 -0
- package/build/events/services/ticket/publishers.js +9 -0
- package/build/events/services/ticket/publishers.js.map +1 -0
- package/build/events/services/ticket/types.d.ts +17 -0
- package/build/events/services/ticket/types.d.ts.map +1 -0
- package/build/events/services/ticket/types.js +3 -0
- package/build/events/services/ticket/types.js.map +1 -0
- package/build/events/utils.d.ts +9 -0
- package/build/events/utils.d.ts.map +1 -0
- package/build/events/utils.js +6 -0
- package/build/events/utils.js.map +1 -0
- package/build/index.d.ts +11 -15
- package/build/index.d.ts.map +1 -1
- package/build/index.js +11 -6
- package/build/index.js.map +1 -1
- package/build/middleware/current-user.d.ts +3 -0
- package/build/middleware/current-user.d.ts.map +1 -0
- package/build/middleware/current-user.js +15 -0
- package/build/middleware/current-user.js.map +1 -0
- package/build/middleware/error-handler.d.ts +3 -0
- package/build/middleware/error-handler.d.ts.map +1 -0
- package/build/middleware/error-handler.js +11 -0
- package/build/middleware/error-handler.js.map +1 -0
- package/build/middleware/require-auth.d.ts +3 -0
- package/build/middleware/require-auth.d.ts.map +1 -0
- package/build/middleware/require-auth.js +8 -0
- package/build/middleware/require-auth.js.map +1 -0
- package/build/middleware/validate-request.d.ts +3 -0
- package/build/middleware/validate-request.d.ts.map +1 -0
- package/build/middleware/validate-request.js +10 -0
- package/build/middleware/validate-request.js.map +1 -0
- package/build/types/user.d.ts +5 -0
- package/build/types/user.d.ts.map +1 -0
- package/build/types/user.js +2 -0
- package/build/types/user.js.map +1 -0
- package/package.json +37 -23
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export declare class BadRequestError extends CustomError {
|
|
3
|
+
message: string;
|
|
4
|
+
statusCode: number;
|
|
5
|
+
constructor(message: string);
|
|
6
|
+
serializeErrors(): {
|
|
7
|
+
message: string;
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=bad-request-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bad-request-error.d.ts","sourceRoot":"","sources":["../../src/errors/bad-request-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,eAAgB,SAAQ,WAAW;IAG3B,OAAO,EAAE,MAAM;IAFlC,UAAU,SAAO;IAEjB,YAAmB,OAAO,EAAE,MAAM,EAGjC;IAED,eAAe;;QAEd;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class BadRequestError extends CustomError {
|
|
3
|
+
message;
|
|
4
|
+
statusCode = 400;
|
|
5
|
+
constructor(message) {
|
|
6
|
+
super(message);
|
|
7
|
+
this.message = message;
|
|
8
|
+
Object.setPrototypeOf(this, BadRequestError.prototype);
|
|
9
|
+
}
|
|
10
|
+
serializeErrors() {
|
|
11
|
+
return [{ message: this.message }];
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=bad-request-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"bad-request-error.js","sourceRoot":"","sources":["../../src/errors/bad-request-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAG3B,OAAO;IAF1B,UAAU,GAAG,GAAG,CAAC;IAEjB,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;uBADE,OAAO;QAExB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;IACrC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-error.d.ts","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":"AAAA,8BAAsB,WAAY,SAAQ,KAAK;IAC7C,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAE5B,YAAY,OAAO,EAAE,MAAM,EAG1B;IAED,QAAQ,CAAC,eAAe,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;CACnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"custom-error.js","sourceRoot":"","sources":["../../src/errors/custom-error.ts"],"names":[],"mappings":"AAAA,MAAM,OAAgB,WAAY,SAAQ,KAAK;IAG7C,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CAGF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export declare class DatabaseConnectionError extends CustomError {
|
|
3
|
+
statusCode: number;
|
|
4
|
+
constructor();
|
|
5
|
+
serializeErrors(): {
|
|
6
|
+
message: string;
|
|
7
|
+
}[];
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=database-connection-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-connection-error.d.ts","sourceRoot":"","sources":["../../src/errors/database-connection-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,UAAU,SAAO;IAEjB,cAGC;IAED,eAAe;;QAEd;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class DatabaseConnectionError extends CustomError {
|
|
3
|
+
statusCode = 500;
|
|
4
|
+
constructor() {
|
|
5
|
+
super('Error connecting to database');
|
|
6
|
+
Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
|
|
7
|
+
}
|
|
8
|
+
serializeErrors() {
|
|
9
|
+
return [{ message: 'Error connecting to database' }];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=database-connection-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"database-connection-error.js","sourceRoot":"","sources":["../../src/errors/database-connection-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACtC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;IACvD,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-authorized-error.d.ts","sourceRoot":"","sources":["../../src/errors/not-authorized-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,kBAAmB,SAAQ,WAAW;IACjD,UAAU,SAAO;IAEjB,cAGC;IAED,eAAe;;QAEd;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class NotAuthorizedError extends CustomError {
|
|
3
|
+
statusCode = 401;
|
|
4
|
+
constructor() {
|
|
5
|
+
super('Not authorized');
|
|
6
|
+
Object.setPrototypeOf(this, NotAuthorizedError.prototype);
|
|
7
|
+
}
|
|
8
|
+
serializeErrors() {
|
|
9
|
+
return [{ message: 'Not authorized' }];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=not-authorized-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-authorized-error.js","sourceRoot":"","sources":["../../src/errors/not-authorized-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found-error.d.ts","sourceRoot":"","sources":["../../src/errors/not-found-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,aAAc,SAAQ,WAAW;IAC5C,UAAU,SAAO;IAEjB,cAGC;IAED,eAAe;;QAEd;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class NotFoundError extends CustomError {
|
|
3
|
+
statusCode = 404;
|
|
4
|
+
constructor() {
|
|
5
|
+
super('Route not found');
|
|
6
|
+
Object.setPrototypeOf(this, NotFoundError.prototype);
|
|
7
|
+
}
|
|
8
|
+
serializeErrors() {
|
|
9
|
+
return [{ message: 'Route not found' }];
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=not-found-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"not-found-error.js","sourceRoot":"","sources":["../../src/errors/not-found-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,UAAU,GAAG,GAAG,CAAC;IAEjB;QACE,KAAK,CAAC,iBAAiB,CAAC,CAAC;QACzB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,eAAe;QACb,OAAO,CAAC,EAAE,OAAO,EAAE,iBAAiB,EAAE,CAAC,CAAC;IAC1C,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ValidationError } from 'express-validator';
|
|
2
|
+
import { CustomError } from './custom-error.js';
|
|
3
|
+
export declare class RequestValidationError extends CustomError {
|
|
4
|
+
errors: ValidationError[];
|
|
5
|
+
statusCode: number;
|
|
6
|
+
constructor(errors: ValidationError[]);
|
|
7
|
+
serializeErrors(): {
|
|
8
|
+
message: any;
|
|
9
|
+
field: string;
|
|
10
|
+
}[];
|
|
11
|
+
}
|
|
12
|
+
//# sourceMappingURL=request-validation-error.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-validation-error.d.ts","sourceRoot":"","sources":["../../src/errors/request-validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,qBAAa,sBAAuB,SAAQ,WAAW;IAGlC,MAAM,EAAE,eAAe,EAAE;IAF5C,UAAU,SAAO;IAEjB,YAAmB,MAAM,EAAE,eAAe,EAAE,EAG3C;IAED,eAAe;;;QASd;CACF"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import {} from 'express-validator';
|
|
2
|
+
import { CustomError } from './custom-error.js';
|
|
3
|
+
export class RequestValidationError extends CustomError {
|
|
4
|
+
errors;
|
|
5
|
+
statusCode = 400;
|
|
6
|
+
constructor(errors) {
|
|
7
|
+
super('Invalid request parameters');
|
|
8
|
+
this.errors = errors;
|
|
9
|
+
Object.setPrototypeOf(this, RequestValidationError.prototype);
|
|
10
|
+
}
|
|
11
|
+
serializeErrors() {
|
|
12
|
+
return this.errors
|
|
13
|
+
.filter((err) => err.type === 'field')
|
|
14
|
+
.map((err) => {
|
|
15
|
+
return {
|
|
16
|
+
message: err.msg,
|
|
17
|
+
field: err.path,
|
|
18
|
+
};
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=request-validation-error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"request-validation-error.js","sourceRoot":"","sources":["../../src/errors/request-validation-error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAwB,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAGlC,MAAM;IAFzB,UAAU,GAAG,GAAG,CAAC;IAEjB,YAAmB,MAAyB;QAC1C,KAAK,CAAC,4BAA4B,CAAC,CAAC;sBADnB,MAAM;QAEvB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,MAAM;aACf,MAAM,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,OAAO,CAAC;aACrC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YACX,OAAO;gBACL,OAAO,EAAE,GAAG,CAAC,GAAG;gBAChB,KAAK,EAAE,GAAG,CAAC,IAAI;aAChB,CAAC;QACJ,CAAC,CAAC,CAAC;IACP,CAAC;CACF"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { Message, Stan } from "node-nats-streaming";
|
|
2
|
+
import type { Event } from "./utils.js";
|
|
3
|
+
export declare abstract class BaseListener<T extends Event> {
|
|
4
|
+
private client;
|
|
5
|
+
abstract subject: T["subject"];
|
|
6
|
+
abstract queryGroupName: string;
|
|
7
|
+
abstract onMessage(data: T["data"], msg: Message): void;
|
|
8
|
+
protected ackWait: number;
|
|
9
|
+
constructor(client: Stan);
|
|
10
|
+
subscriptionOptions(): import("node-nats-streaming").SubscriptionOptions;
|
|
11
|
+
listen(): void;
|
|
12
|
+
parseMessage(msg: Message): any;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=base-listener.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-listener.d.ts","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AACzD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,8BAAsB,YAAY,CAAC,CAAC,SAAS,KAAK;IAChD,OAAO,CAAC,MAAM,CAAO;IACrB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAC/B,QAAQ,CAAC,cAAc,EAAE,MAAM,CAAC;IAChC,QAAQ,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAAC;IACxD,SAAS,CAAC,OAAO,SAAQ;IAEzB,YAAY,MAAM,EAAE,IAAI,EAEvB;IAED,mBAAmB,sDAOlB;IAED,MAAM,SAiBL;IAED,YAAY,CAAC,GAAG,EAAE,OAAO,OAKxB;CACF"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export class BaseListener {
|
|
2
|
+
client;
|
|
3
|
+
ackWait = 5000;
|
|
4
|
+
constructor(client) {
|
|
5
|
+
this.client = client;
|
|
6
|
+
}
|
|
7
|
+
subscriptionOptions() {
|
|
8
|
+
return this.client
|
|
9
|
+
.subscriptionOptions()
|
|
10
|
+
.setDeliverAllAvailable()
|
|
11
|
+
.setDurableName(this.queryGroupName)
|
|
12
|
+
.setManualAckMode(true)
|
|
13
|
+
.setAckWait(this.ackWait);
|
|
14
|
+
}
|
|
15
|
+
listen() {
|
|
16
|
+
const subscription = this.client.subscribe(this.subject, this.queryGroupName, this.subscriptionOptions());
|
|
17
|
+
subscription.on("message", (msg) => {
|
|
18
|
+
const parsedData = this.parseMessage(msg);
|
|
19
|
+
console.log(`Message ${this.subject}/ ${this.queryGroupName}: `, parsedData);
|
|
20
|
+
this.onMessage(parsedData, msg);
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
parseMessage(msg) {
|
|
24
|
+
const data = msg.getData();
|
|
25
|
+
return typeof data === "string"
|
|
26
|
+
? JSON.parse(data)
|
|
27
|
+
: JSON.parse(data.toString("utf-8"));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=base-listener.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-listener.js","sourceRoot":"","sources":["../../src/events/base-listener.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,YAAY;IACxB,MAAM,CAAO;IAIX,OAAO,GAAG,IAAI,CAAC;IAEzB,YAAY,MAAY;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,mBAAmB;QACjB,OAAO,IAAI,CAAC,MAAM;aACf,mBAAmB,EAAE;aACrB,sBAAsB,EAAE;aACxB,cAAc,CAAC,IAAI,CAAC,cAAc,CAAC;aACnC,gBAAgB,CAAC,IAAI,CAAC;aACtB,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,MAAM;QACJ,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CACxC,IAAI,CAAC,OAAO,EACZ,IAAI,CAAC,cAAc,EACnB,IAAI,CAAC,mBAAmB,EAAE,CAC3B,CAAC;QAEF,YAAY,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,GAAY,EAAE,EAAE;YAC1C,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;YAE1C,OAAO,CAAC,GAAG,CACT,WAAW,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,cAAc,IAAI,EACnD,UAAU,CACX,CAAC;YAEF,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC;IACL,CAAC;IAED,YAAY,CAAC,GAAY;QACvB,MAAM,IAAI,GAAG,GAAG,CAAC,OAAO,EAAE,CAAC;QAC3B,OAAO,OAAO,IAAI,KAAK,QAAQ;YAC7B,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;YAClB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACzC,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { Stan } from "node-nats-streaming";
|
|
2
|
+
import type { Event } from "./utils.js";
|
|
3
|
+
export declare abstract class BasePublisher<T extends Event> {
|
|
4
|
+
private client;
|
|
5
|
+
abstract subject: T["subject"];
|
|
6
|
+
constructor(client: Stan);
|
|
7
|
+
publish(data: T["data"]): Promise<void>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=base-publisher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-publisher.d.ts","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAChD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAExC,8BAAsB,aAAa,CAAC,CAAC,SAAS,KAAK;IACjD,OAAO,CAAC,MAAM,CAAO;IACrB,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,SAAS,CAAC,CAAC;IAE/B,YAAY,MAAM,EAAE,IAAI,EAEvB;IAED,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAUtC;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export class BasePublisher {
|
|
2
|
+
client;
|
|
3
|
+
constructor(client) {
|
|
4
|
+
this.client = client;
|
|
5
|
+
}
|
|
6
|
+
publish(data) {
|
|
7
|
+
return new Promise((resolve, reject) => {
|
|
8
|
+
this.client.publish(this.subject, JSON.stringify(data), (err, guid) => {
|
|
9
|
+
if (err) {
|
|
10
|
+
reject(err);
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
resolve();
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
});
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=base-publisher.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"base-publisher.js","sourceRoot":"","sources":["../../src/events/base-publisher.ts"],"names":[],"mappings":"AAGA,MAAM,OAAgB,aAAa;IACzB,MAAM,CAAO;IAGrB,YAAY,MAAY;QACtB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,CAAC,IAAe;QACrB,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;gBACpE,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,EAAE,CAAC;gBACZ,CAAC;YACH,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './utils.js';
|
|
2
|
+
export * from './base-listener.js';
|
|
3
|
+
export * from './base-publisher.js';
|
|
4
|
+
export * from './services/ticket/types.js';
|
|
5
|
+
export * from './services/ticket/listeners.js';
|
|
6
|
+
export * from './services/ticket/publishers.js';
|
|
7
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export * from './utils.js';
|
|
2
|
+
export * from './base-listener.js';
|
|
3
|
+
export * from './base-publisher.js';
|
|
4
|
+
export * from './services/ticket/types.js';
|
|
5
|
+
export * from './services/ticket/listeners.js';
|
|
6
|
+
export * from './services/ticket/publishers.js';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/events/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,iCAAiC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Message } from "node-nats-streaming";
|
|
2
|
+
import { BaseListener } from "../../base-listener.js";
|
|
3
|
+
import { Subjects } from "../../utils.js";
|
|
4
|
+
import type { TicketCreatedEvent, TicketUpdatedEvent } from "./types.js";
|
|
5
|
+
export declare class TicketCreatedListener extends BaseListener<TicketCreatedEvent> {
|
|
6
|
+
readonly subject = Subjects.TicketCreated;
|
|
7
|
+
queryGroupName: string;
|
|
8
|
+
onMessage(data: TicketCreatedEvent["data"], msg: Message): void;
|
|
9
|
+
}
|
|
10
|
+
export declare class TicketUpdatedListener extends BaseListener<TicketUpdatedEvent> {
|
|
11
|
+
readonly subject = Subjects.TicketUpdated;
|
|
12
|
+
queryGroupName: string;
|
|
13
|
+
onMessage(data: TicketCreatedEvent["data"], msg: Message): void;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=listeners.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listeners.d.ts","sourceRoot":"","sources":["../../../../src/events/services/ticket/listeners.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEzE,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACzE,QAAQ,CAAC,OAAO,0BAA0B;IAC1C,cAAc,SAAqB;IAEnC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAI9D;CACF;AAED,qBAAa,qBAAsB,SAAQ,YAAY,CAAC,kBAAkB,CAAC;IACzE,QAAQ,CAAC,OAAO,0BAA0B;IAC1C,cAAc,SAAqB;IAEnC,SAAS,CAAC,IAAI,EAAE,kBAAkB,CAAC,MAAM,CAAC,EAAE,GAAG,EAAE,OAAO,GAAG,IAAI,CAI9D;CACF"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { BaseListener } from "../../base-listener.js";
|
|
2
|
+
import { Subjects } from "../../utils.js";
|
|
3
|
+
export class TicketCreatedListener extends BaseListener {
|
|
4
|
+
subject = Subjects.TicketCreated;
|
|
5
|
+
queryGroupName = "payment-service";
|
|
6
|
+
onMessage(data, msg) {
|
|
7
|
+
console.log("Event received: ", data);
|
|
8
|
+
msg.ack();
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class TicketUpdatedListener extends BaseListener {
|
|
12
|
+
subject = Subjects.TicketUpdated;
|
|
13
|
+
queryGroupName = "payment-service";
|
|
14
|
+
onMessage(data, msg) {
|
|
15
|
+
console.log("Event received: ", data);
|
|
16
|
+
msg.ack();
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=listeners.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"listeners.js","sourceRoot":"","sources":["../../../../src/events/services/ticket/listeners.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,qBAAsB,SAAQ,YAAgC;IAChE,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC1C,cAAc,GAAG,iBAAiB,CAAC;IAEnC,SAAS,CAAC,IAAgC,EAAE,GAAY;QACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAEtC,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,YAAgC;IAChE,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;IAC1C,cAAc,GAAG,iBAAiB,CAAC;IAEnC,SAAS,CAAC,IAAgC,EAAE,GAAY;QACtD,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAEtC,GAAG,CAAC,GAAG,EAAE,CAAC;IACZ,CAAC;CACF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BasePublisher } from "../../base-publisher.js";
|
|
2
|
+
import { Subjects } from "../../utils.js";
|
|
3
|
+
import type { TicketCreatedEvent, TicketUpdatedEvent } from "./types.js";
|
|
4
|
+
export declare class TicketCreatedPublisher extends BasePublisher<TicketCreatedEvent> {
|
|
5
|
+
readonly subject = Subjects.TicketCreated;
|
|
6
|
+
}
|
|
7
|
+
export declare class TicketUpdatedPublisher extends BasePublisher<TicketUpdatedEvent> {
|
|
8
|
+
readonly subject = Subjects.TicketUpdated;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=publishers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishers.d.ts","sourceRoot":"","sources":["../../../../src/events/services/ticket/publishers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,KAAK,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAEzE,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IAC3E,QAAQ,CAAC,OAAO,0BAA0B;CAC3C;AAED,qBAAa,sBAAuB,SAAQ,aAAa,CAAC,kBAAkB,CAAC;IAC3E,QAAQ,CAAC,OAAO,0BAA0B;CAC3C"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { BasePublisher } from "../../base-publisher.js";
|
|
2
|
+
import { Subjects } from "../../utils.js";
|
|
3
|
+
export class TicketCreatedPublisher extends BasePublisher {
|
|
4
|
+
subject = Subjects.TicketCreated;
|
|
5
|
+
}
|
|
6
|
+
export class TicketUpdatedPublisher extends BasePublisher {
|
|
7
|
+
subject = Subjects.TicketUpdated;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=publishers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"publishers.js","sourceRoot":"","sources":["../../../../src/events/services/ticket/publishers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAG1C,MAAM,OAAO,sBAAuB,SAAQ,aAAiC;IAClE,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;CAC3C;AAED,MAAM,OAAO,sBAAuB,SAAQ,aAAiC;IAClE,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC;CAC3C"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { Subjects, type Event } from "../../utils.js";
|
|
2
|
+
interface TicketEvent extends Event {
|
|
3
|
+
data: {
|
|
4
|
+
id: string;
|
|
5
|
+
title: string;
|
|
6
|
+
price: number;
|
|
7
|
+
userId: string;
|
|
8
|
+
};
|
|
9
|
+
}
|
|
10
|
+
export interface TicketCreatedEvent extends TicketEvent {
|
|
11
|
+
subject: Subjects.TicketCreated;
|
|
12
|
+
}
|
|
13
|
+
export interface TicketUpdatedEvent extends TicketEvent {
|
|
14
|
+
subject: Subjects.TicketUpdated;
|
|
15
|
+
}
|
|
16
|
+
export {};
|
|
17
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/events/services/ticket/types.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,KAAK,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEtD,UAAU,WAAY,SAAQ,KAAK;IACjC,IAAI,EAAE;QACJ,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;CACH;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;CACjC;AAED,MAAM,WAAW,kBAAmB,SAAQ,WAAW;IACrD,OAAO,EAAE,QAAQ,CAAC,aAAa,CAAC;CACjC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../src/events/services/ticket/types.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAc,MAAM,gBAAgB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/events/utils.ts"],"names":[],"mappings":"AAAA,oBAAY,QAAQ;IAClB,aAAa,mBAAmB;IAChC,aAAa,mBAAmB;CACjC;AAED,MAAM,WAAW,KAAK;IACpB,OAAO,EAAE,QAAQ,CAAC;IAClB,IAAI,EAAE,GAAG,CAAC;CACX"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/events/utils.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,4CAAgC,CAAA;IAChC,4CAAgC,CAAA;AAClC,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,16 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
points: Point[];
|
|
13
|
-
}
|
|
14
|
-
declare const shape: Shape;
|
|
15
|
-
export { shape };
|
|
1
|
+
export * from './middleware/current-user.js';
|
|
2
|
+
export * from './middleware/error-handler.js';
|
|
3
|
+
export * from './middleware/validate-request.js';
|
|
4
|
+
export * from './middleware/require-auth.js';
|
|
5
|
+
export * from './errors/bad-request-error.js';
|
|
6
|
+
export * from './errors/custom-error.js';
|
|
7
|
+
export * from './errors/database-connection-error.js';
|
|
8
|
+
export * from './errors/not-authorized-error.js';
|
|
9
|
+
export * from './errors/not-found-error.js';
|
|
10
|
+
export * from './errors/request-validation-error.js';
|
|
11
|
+
export * from './events/index.js';
|
|
16
12
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,mBAAmB,CAAC"}
|
package/build/index.js
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
export
|
|
1
|
+
export * from './middleware/current-user.js';
|
|
2
|
+
export * from './middleware/error-handler.js';
|
|
3
|
+
export * from './middleware/validate-request.js';
|
|
4
|
+
export * from './middleware/require-auth.js';
|
|
5
|
+
export * from './errors/bad-request-error.js';
|
|
6
|
+
export * from './errors/custom-error.js';
|
|
7
|
+
export * from './errors/database-connection-error.js';
|
|
8
|
+
export * from './errors/not-authorized-error.js';
|
|
9
|
+
export * from './errors/not-found-error.js';
|
|
10
|
+
export * from './errors/request-validation-error.js';
|
|
11
|
+
export * from './events/index.js';
|
|
7
12
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,8BAA8B,CAAC;AAC7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,kCAAkC,CAAC;AACjD,cAAc,8BAA8B,CAAC;AAE7C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,0BAA0B,CAAC;AACzC,cAAc,uCAAuC,CAAC;AACtD,cAAc,kCAAkC,CAAC;AACjD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sCAAsC,CAAC;AAErD,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-user.d.ts","sourceRoot":"","sources":["../../src/middleware/current-user.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,eAAO,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAa1E,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import jwt from 'jsonwebtoken';
|
|
2
|
+
export const currentUser = (req, res, next) => {
|
|
3
|
+
if (!req.session?.jwt) {
|
|
4
|
+
return next();
|
|
5
|
+
}
|
|
6
|
+
try {
|
|
7
|
+
const payload = jwt.verify(req.session.jwt, process.env.JWT_KEY);
|
|
8
|
+
req.currentUser = payload;
|
|
9
|
+
}
|
|
10
|
+
catch (err) {
|
|
11
|
+
//
|
|
12
|
+
}
|
|
13
|
+
next();
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=current-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-user.js","sourceRoot":"","sources":["../../src/middleware/current-user.ts"],"names":[],"mappings":"AACA,OAAO,GAAG,MAAM,cAAc,CAAC;AAG/B,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC7E,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,EAAE,CAAC;IAChB,CAAC;IAED,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,OAAQ,CAAgB,CAAC;QACjF,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,EAAE;IACJ,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE/D,eAAO,MAAM,YAAY,QAAS,KAAK,OAAO,OAAO,OAAO,QAAQ,QAAQ,YAAY,mDAUvF,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { CustomError } from '../errors/custom-error.js';
|
|
2
|
+
export const errorHandler = (err, req, res, next) => {
|
|
3
|
+
// console.error(err);
|
|
4
|
+
if (err instanceof CustomError) {
|
|
5
|
+
return res.status(err.statusCode).send({ errors: err.serializeErrors() });
|
|
6
|
+
}
|
|
7
|
+
res.status(400).send({
|
|
8
|
+
errors: [{ message: 'Something went wrong' }],
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middleware/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGxD,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,GAAU,EAAE,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC1F,sBAAsB;IAEtB,IAAI,GAAG,YAAY,WAAW,EAAE,CAAC;QAC/B,OAAO,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,eAAe,EAAE,EAAE,CAAC,CAAC;IAC5E,CAAC;IAED,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,MAAM,EAAE,CAAC,EAAE,OAAO,EAAE,sBAAsB,EAAE,CAAC;KAC9C,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.d.ts","sourceRoot":"","sources":["../../src/middleware/require-auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAG/D,eAAO,MAAM,WAAW,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAM1E,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../src/middleware/require-auth.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IAC7E,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC;QACrB,MAAM,IAAI,kBAAkB,EAAE,CAAC;IACjC,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-request.d.ts","sourceRoot":"","sources":["../../src/middleware/validate-request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAI/D,eAAO,MAAM,eAAe,QAAS,OAAO,OAAO,QAAQ,QAAQ,YAAY,SAQ9E,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { validationResult } from 'express-validator';
|
|
2
|
+
import { RequestValidationError } from '../errors/request-validation-error.js';
|
|
3
|
+
export const validateRequest = (req, res, next) => {
|
|
4
|
+
const errors = validationResult(req);
|
|
5
|
+
if (!errors.isEmpty()) {
|
|
6
|
+
throw new RequestValidationError(errors.array());
|
|
7
|
+
}
|
|
8
|
+
next();
|
|
9
|
+
};
|
|
10
|
+
//# sourceMappingURL=validate-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-request.js","sourceRoot":"","sources":["../../src/middleware/validate-request.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB,EAAE,EAAE;IACjF,MAAM,MAAM,GAAG,gBAAgB,CAAC,GAAG,CAAC,CAAC;IAErC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,EAAE,CAAC;QACtB,MAAM,IAAI,sBAAsB,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.d.ts","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../src/types/user.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,23 +1,37 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@cwertlinks/common",
|
|
3
|
-
"version": "1.0.
|
|
4
|
-
"description": "common utilities for the ticketing project",
|
|
5
|
-
"main": "./build/index.js",
|
|
6
|
-
"types": "./build/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"build"
|
|
9
|
-
],
|
|
10
|
-
"
|
|
11
|
-
"
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
"
|
|
19
|
-
"
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
1
|
+
{
|
|
2
|
+
"name": "@cwertlinks/common",
|
|
3
|
+
"version": "1.0.4",
|
|
4
|
+
"description": "common utilities for the ticketing project",
|
|
5
|
+
"main": "./build/index.js",
|
|
6
|
+
"types": "./build/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"build"
|
|
9
|
+
],
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"access": "public"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"clean": "del-cli build/**/*",
|
|
15
|
+
"build": "npm run clean && tsc",
|
|
16
|
+
"pub": "npm run build && git add . && git commit -m \"$npm_config_message\" && npm version patch && npm publish"
|
|
17
|
+
},
|
|
18
|
+
"keywords": [],
|
|
19
|
+
"author": "",
|
|
20
|
+
"license": "ISC",
|
|
21
|
+
"type": "module",
|
|
22
|
+
"devDependencies": {
|
|
23
|
+
"@types/node": "^26.1.1",
|
|
24
|
+
"del-cli": "^7.0.0",
|
|
25
|
+
"typescript": "^7.0.2"
|
|
26
|
+
},
|
|
27
|
+
"dependencies": {
|
|
28
|
+
"@types/cookie-session": "^2.0.49",
|
|
29
|
+
"@types/express": "^5.0.6",
|
|
30
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
31
|
+
"cookie-session": "^2.1.1",
|
|
32
|
+
"express": "^5.2.1",
|
|
33
|
+
"express-validator": "^7.3.2",
|
|
34
|
+
"jsonwebtoken": "^9.0.3",
|
|
35
|
+
"node-nats-streaming": "^0.3.2"
|
|
36
|
+
}
|
|
37
|
+
}
|