@willhousecreative/common 1.0.0 → 1.0.8
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 +8 -0
- package/build/errors/custom-error.js.map +1 -0
- package/build/errors/database-connection-error.d.ts +10 -0
- package/build/errors/database-connection-error.d.ts.map +1 -0
- package/build/errors/database-connection-error.js +17 -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 +15 -0
- package/build/errors/request-validation-error.d.ts.map +1 -0
- package/build/errors/request-validation-error.js +21 -0
- package/build/errors/request-validation-error.js.map +1 -0
- package/build/index.d.ts +11 -0
- package/build/index.d.ts.map +1 -0
- package/build/index.js +90 -0
- package/build/index.js.map +1 -0
- package/build/middlewares/current-user.d.ts +15 -0
- package/build/middlewares/current-user.d.ts.map +1 -0
- package/build/middlewares/current-user.js +16 -0
- package/build/middlewares/current-user.js.map +1 -0
- package/build/middlewares/error-handler.d.ts +3 -0
- package/build/middlewares/error-handler.d.ts.map +1 -0
- package/build/middlewares/error-handler.js +12 -0
- package/build/middlewares/error-handler.js.map +1 -0
- package/build/middlewares/require-auth.d.ts +3 -0
- package/build/middlewares/require-auth.d.ts.map +1 -0
- package/build/middlewares/require-auth.js +9 -0
- package/build/middlewares/require-auth.js.map +1 -0
- package/build/middlewares/validate-request.d.ts +3 -0
- package/build/middlewares/validate-request.d.ts.map +1 -0
- package/build/middlewares/validate-request.js +11 -0
- package/build/middlewares/validate-request.js.map +1 -0
- package/package.json +24 -4
|
@@ -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
|
+
serializeError(): {
|
|
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;IAE3B,OAAO,EAAE,MAAM;IADlC,UAAU,SAAO;gBACE,OAAO,EAAE,MAAM;IAKlC,cAAc;;;CAGf"}
|
|
@@ -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
|
+
serializeError() {
|
|
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;IAE3B;IADnB,UAAU,GAAG,GAAG,CAAC;IACjB,YAAmB,OAAe;QAChC,KAAK,CAAC,OAAO,CAAC,CAAC;QADE,YAAO,GAAP,OAAO,CAAQ;QAEhC,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,eAAe,CAAC,SAAS,CAAC,CAAC;IACzD,CAAC;IAED,cAAc;QACZ,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;gBAEhB,OAAO,EAAE,MAAM;IAO3B,QAAQ,CAAC,cAAc,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE;CACjE"}
|
|
@@ -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;QAEf,iDAAiD;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,SAAS,CAAC,CAAC;IACrD,CAAC;CAGF"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export declare class DatabaseConnectionError extends CustomError {
|
|
3
|
+
statusCode: number;
|
|
4
|
+
reason: string;
|
|
5
|
+
constructor();
|
|
6
|
+
serializeError(): {
|
|
7
|
+
message: string;
|
|
8
|
+
}[];
|
|
9
|
+
}
|
|
10
|
+
//# 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;AAChD,qBAAa,uBAAwB,SAAQ,WAAW;IACtD,UAAU,SAAO;IACjB,MAAM,SAAkC;;IAMxC,cAAc;;;CAOf"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class DatabaseConnectionError extends CustomError {
|
|
3
|
+
statusCode = 500;
|
|
4
|
+
reason = 'Error connecting to database';
|
|
5
|
+
constructor() {
|
|
6
|
+
super('There is a database connection error');
|
|
7
|
+
Object.setPrototypeOf(this, DatabaseConnectionError.prototype);
|
|
8
|
+
}
|
|
9
|
+
serializeError() {
|
|
10
|
+
return [
|
|
11
|
+
{
|
|
12
|
+
message: this.reason,
|
|
13
|
+
},
|
|
14
|
+
];
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
//# 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;AAChD,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,UAAU,GAAG,GAAG,CAAC;IACjB,MAAM,GAAG,8BAA8B,CAAC;IACxC;QACE,KAAK,CAAC,sCAAsC,CAAC,CAAC;QAE9C,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC,SAAS,CAAC,CAAC;IACjE,CAAC;IACD,cAAc;QACZ,OAAO;YACL;gBACE,OAAO,EAAE,IAAI,CAAC,MAAM;aACrB;SACF,CAAC;IACJ,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;;IAMjB,cAAc;;;CAGf"}
|
|
@@ -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
|
+
serializeError() {
|
|
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;IACjB;QACE,KAAK,CAAC,gBAAgB,CAAC,CAAC;QACxB,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,kBAAkB,CAAC,SAAS,CAAC,CAAC;IAC5D,CAAC;IAED,cAAc;QACZ,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;;IAQjB,cAAc;;;CAGf"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { CustomError } from './custom-error.js';
|
|
2
|
+
export class NotFoundError extends CustomError {
|
|
3
|
+
statusCode = 404;
|
|
4
|
+
constructor() {
|
|
5
|
+
super('Resource not found');
|
|
6
|
+
Object.setPrototypeOf(this, NotFoundError.prototype);
|
|
7
|
+
}
|
|
8
|
+
serializeError() {
|
|
9
|
+
return [{ message: 'Resource 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,oBAAoB,CAAC,CAAC;QAE5B,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC,SAAS,CAAC,CAAC;IACvD,CAAC;IAED,cAAc;QACZ,OAAO,CAAC,EAAE,OAAO,EAAE,oBAAoB,EAAE,CAAC,CAAC;IAC7C,CAAC;CACF"}
|
|
@@ -0,0 +1,15 @@
|
|
|
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
|
+
serializeError(): ({
|
|
8
|
+
message: any;
|
|
9
|
+
field: string;
|
|
10
|
+
} | {
|
|
11
|
+
message: any;
|
|
12
|
+
field?: never;
|
|
13
|
+
})[];
|
|
14
|
+
}
|
|
15
|
+
//# 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;AAChD,qBAAa,sBAAuB,SAAQ,WAAW;IAElC,MAAM,EAAE,eAAe,EAAE;IAD5C,UAAU,SAAO;gBACE,MAAM,EAAE,eAAe,EAAE;IAM5C,cAAc;;;;;;;CAQf"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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
|
+
// Only because we are extending a built-in class
|
|
10
|
+
Object.setPrototypeOf(this, RequestValidationError.prototype);
|
|
11
|
+
}
|
|
12
|
+
serializeError() {
|
|
13
|
+
return this.errors.map((err) => {
|
|
14
|
+
if (err.type === 'field') {
|
|
15
|
+
return { message: err.msg, field: err.path };
|
|
16
|
+
}
|
|
17
|
+
return { message: err.msg };
|
|
18
|
+
});
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# 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;AAChD,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IAElC;IADnB,UAAU,GAAG,GAAG,CAAC;IACjB,YAAmB,MAAyB;QAC1C,KAAK,CAAC,4BAA4B,CAAC,CAAC;QADnB,WAAM,GAAN,MAAM,CAAmB;QAG1C,iDAAiD;QACjD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;IAChE,CAAC;IACD,cAAc;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;YAC7B,IAAI,GAAG,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBACzB,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;YAC/C,CAAC;YACD,OAAO,EAAE,OAAO,EAAE,GAAG,CAAC,GAAG,EAAE,CAAC;QAC9B,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/build/index.d.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export * from './errors/bad-request-error.js';
|
|
2
|
+
export * from './errors/custom-error.js';
|
|
3
|
+
export * from './errors/database-connection-error.js';
|
|
4
|
+
export * from './errors/not-authorized-error.js';
|
|
5
|
+
export * from './errors/not-found-error.js';
|
|
6
|
+
export * from './errors/request-validation-error.js';
|
|
7
|
+
export * from './middlewares/current-user.js';
|
|
8
|
+
export * from './middlewares/error-handler.js';
|
|
9
|
+
export * from './middlewares/require-auth.js';
|
|
10
|
+
export * from './middlewares/validate-request.js';
|
|
11
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
|
package/build/index.js
ADDED
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
export * from './errors/bad-request-error.js';
|
|
2
|
+
export * from './errors/custom-error.js';
|
|
3
|
+
export * from './errors/database-connection-error.js';
|
|
4
|
+
export * from './errors/not-authorized-error.js';
|
|
5
|
+
export * from './errors/not-found-error.js';
|
|
6
|
+
export * from './errors/request-validation-error.js';
|
|
7
|
+
export * from './middlewares/current-user.js';
|
|
8
|
+
export * from './middlewares/error-handler.js';
|
|
9
|
+
export * from './middlewares/require-auth.js';
|
|
10
|
+
export * from './middlewares/validate-request.js';
|
|
11
|
+
// export * from './events/base-listener.js';
|
|
12
|
+
// export * from './events/base-publisher.js';
|
|
13
|
+
// export * from './events/subjects.js';
|
|
14
|
+
// export * from './events/user-created-event.js';
|
|
15
|
+
// export * from './events/user-updated-event.js';
|
|
16
|
+
// export * from './events/types/user-role.js';
|
|
17
|
+
// export * from './utils/password.js';
|
|
18
|
+
// export * from './utils/jwt.js';
|
|
19
|
+
// export * from './types/user.js';
|
|
20
|
+
// export * from './types/express-custom.js';
|
|
21
|
+
// export * from './types/error-format.js';
|
|
22
|
+
// export * from './types/mongo-id.js';
|
|
23
|
+
// export * from './types/jwt-payload.js';
|
|
24
|
+
// export * from './types/request-with-user.js';
|
|
25
|
+
// export * from './types/user-role.js';
|
|
26
|
+
// export * from './types/environment.js';
|
|
27
|
+
// export * from './types/pagination-result.js';
|
|
28
|
+
// export * from './types/sort-order.js';
|
|
29
|
+
// export * from './types/pagination-params.js';
|
|
30
|
+
// export * from './types/date-range.js';
|
|
31
|
+
// export * from './types/file-metadata.js';
|
|
32
|
+
// export * from './utils/pagination.js';
|
|
33
|
+
// export * from './utils/file-upload.js';
|
|
34
|
+
// export * from './utils/date-range.js';
|
|
35
|
+
// export * from './utils/environment.js';
|
|
36
|
+
// export * from './utils/sort-order.js';
|
|
37
|
+
// export * from './utils/mongo-id.js';
|
|
38
|
+
// export * from './utils/logger.js';
|
|
39
|
+
// export * from './utils/email.js';
|
|
40
|
+
// export * from './utils/data-sanitization.js';
|
|
41
|
+
// export * from './utils/api-response.js';
|
|
42
|
+
// export * from './utils/error-formatter.js';
|
|
43
|
+
// export * from './utils/object-filter.js';
|
|
44
|
+
// export * from './utils/array-chunk.js';
|
|
45
|
+
// export * from './utils/string-utils.js';
|
|
46
|
+
// export * from './utils/rate-limiter.js';
|
|
47
|
+
// export * from './utils/cache.js';
|
|
48
|
+
// export * from './utils/geo-utils.js';
|
|
49
|
+
// export * from './utils/external-api-client.js';
|
|
50
|
+
// export * from './utils/scheduler.js';
|
|
51
|
+
// export * from './utils/feature-flags.js';
|
|
52
|
+
// export * from './config/index.js';
|
|
53
|
+
// export * from './services/index.js';
|
|
54
|
+
// export * from './services/cache-service.js';
|
|
55
|
+
// export * from './services/email-service.js';
|
|
56
|
+
// export * from './services/logger-service.js';
|
|
57
|
+
// export * from './services/rate-limiter-service.js';
|
|
58
|
+
// export * from './services/scheduler-service.js';
|
|
59
|
+
// export * from './services/feature-flags-service.js';
|
|
60
|
+
// export * from './services/external-api-client-service.js';
|
|
61
|
+
// export * from './services/file-storage-service.js';
|
|
62
|
+
// export * from './services/jwt-service.js';
|
|
63
|
+
// export * from './services/password-service.js';
|
|
64
|
+
// export * from './services/database-service.js';
|
|
65
|
+
// export * from './middlewares/rate-limiter.js';
|
|
66
|
+
// export * from './middlewares/request-logger.js';
|
|
67
|
+
// export * from './middlewares/cache-middleware.js';
|
|
68
|
+
// export * from './middlewares/feature-flags-middleware.js';
|
|
69
|
+
// export * from './errors/conflict-error.js';
|
|
70
|
+
// export * from './errors/unprocessable-entity-error.js';
|
|
71
|
+
// export * from './errors/forbidden-error.js';
|
|
72
|
+
// export * from './errors/internal-server-error.js';
|
|
73
|
+
// export * from './errors/service-unavailable-error.js';
|
|
74
|
+
// export * from './errors/gateway-timeout-error.js';
|
|
75
|
+
// export * from './utils/api-client.js';
|
|
76
|
+
// export * from './utils/response-time.js';
|
|
77
|
+
// export * from './utils/geo-distance.js';
|
|
78
|
+
// export * from './types/api-client-config.js';
|
|
79
|
+
// export * from './types/geo-coordinate.js';
|
|
80
|
+
// export * from './middlewares/response-time.js';
|
|
81
|
+
// export * from './services/api-client-service.js';
|
|
82
|
+
// export * from './services/geo-service.js';
|
|
83
|
+
// export * from './utils/geo-distance-matrix.js';
|
|
84
|
+
// export * from './types/geo-distance-matrix-result.js';
|
|
85
|
+
// export * from './types/geo-distance-matrix-params.js';
|
|
86
|
+
// export * from './errors/external-api-error.js';
|
|
87
|
+
// export * from './services/external-api-error-service.js';
|
|
88
|
+
// export * from './middlewares/geo-rate-limiter.js';
|
|
89
|
+
// export * from './services/geo-distance-matrix-service.js';
|
|
90
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,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,+BAA+B,CAAC;AAC9C,cAAc,gCAAgC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC;AAElD,6CAA6C;AAC7C,8CAA8C;AAC9C,wCAAwC;AAExC,kDAAkD;AAClD,kDAAkD;AAElD,+CAA+C;AAE/C,uCAAuC;AACvC,kCAAkC;AAElC,mCAAmC;AACnC,6CAA6C;AAC7C,2CAA2C;AAC3C,uCAAuC;AACvC,0CAA0C;AAC1C,gDAAgD;AAChD,wCAAwC;AACxC,0CAA0C;AAC1C,gDAAgD;AAChD,yCAAyC;AACzC,gDAAgD;AAChD,yCAAyC;AACzC,4CAA4C;AAE5C,yCAAyC;AACzC,0CAA0C;AAC1C,yCAAyC;AACzC,0CAA0C;AAC1C,yCAAyC;AACzC,uCAAuC;AACvC,qCAAqC;AACrC,oCAAoC;AACpC,gDAAgD;AAChD,2CAA2C;AAC3C,8CAA8C;AAC9C,4CAA4C;AAC5C,0CAA0C;AAC1C,2CAA2C;AAC3C,2CAA2C;AAC3C,oCAAoC;AACpC,wCAAwC;AACxC,kDAAkD;AAClD,wCAAwC;AACxC,4CAA4C;AAE5C,qCAAqC;AAErC,uCAAuC;AACvC,+CAA+C;AAC/C,+CAA+C;AAC/C,gDAAgD;AAChD,sDAAsD;AACtD,mDAAmD;AACnD,uDAAuD;AACvD,6DAA6D;AAC7D,sDAAsD;AACtD,6CAA6C;AAC7C,kDAAkD;AAClD,kDAAkD;AAElD,iDAAiD;AACjD,mDAAmD;AACnD,qDAAqD;AACrD,6DAA6D;AAE7D,8CAA8C;AAC9C,0DAA0D;AAC1D,+CAA+C;AAC/C,qDAAqD;AACrD,yDAAyD;AACzD,qDAAqD;AAErD,yCAAyC;AACzC,4CAA4C;AAC5C,2CAA2C;AAE3C,gDAAgD;AAChD,6CAA6C;AAE7C,kDAAkD;AAElD,oDAAoD;AAEpD,6CAA6C;AAC7C,kDAAkD;AAClD,yDAAyD;AACzD,yDAAyD;AACzD,kDAAkD;AAClD,4DAA4D;AAC5D,qDAAqD;AACrD,6DAA6D"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { type Request, type Response, type NextFunction } from 'express';
|
|
2
|
+
interface UserPayload {
|
|
3
|
+
id: string;
|
|
4
|
+
email: string;
|
|
5
|
+
}
|
|
6
|
+
declare global {
|
|
7
|
+
namespace Express {
|
|
8
|
+
interface Request {
|
|
9
|
+
currentUser?: UserPayload;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
export declare const currentUser: (req: Request, res: Response, next: NextFunction) => void;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=current-user.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-user.d.ts","sourceRoot":"","sources":["../../src/middlewares/current-user.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAEjB,UAAU,WAAW;IACnB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;CACf;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,OAAO,CAAC;QAChB,UAAU,OAAO;YACf,WAAW,CAAC,EAAE,WAAW,CAAC;SAC3B;KACF;CACF;AAED,eAAO,MAAM,WAAW,GACtB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,SAkBnB,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import express, {} from 'express';
|
|
2
|
+
import jwt from 'jsonwebtoken';
|
|
3
|
+
export const currentUser = (req, res, next) => {
|
|
4
|
+
if (!req.session?.jwt) {
|
|
5
|
+
return next();
|
|
6
|
+
}
|
|
7
|
+
try {
|
|
8
|
+
const payload = jwt.verify(req.session.jwt, process.env.JWT_KEY);
|
|
9
|
+
req.currentUser = payload;
|
|
10
|
+
}
|
|
11
|
+
catch (err) {
|
|
12
|
+
// If JWT verification fails, we simply don't set currentUser
|
|
13
|
+
}
|
|
14
|
+
next();
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=current-user.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"current-user.js","sourceRoot":"","sources":["../../src/middlewares/current-user.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAIf,MAAM,SAAS,CAAC;AACjB,OAAO,GAAG,MAAM,cAAc,CAAC;AAc/B,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,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,CACxB,GAAG,CAAC,OAAO,CAAC,GAAG,EACf,OAAO,CAAC,GAAG,CAAC,OAAQ,CACN,CAAC;QAEjB,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;IAC5B,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,6DAA6D;IAC/D,CAAC;IAED,IAAI,EAAE,CAAC;AACT,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.d.ts","sourceRoot":"","sources":["../../src/middlewares/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AAGzE,eAAO,MAAM,YAAY,GACvB,KAAK,KAAK,EACV,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,mDAUnB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import {} from 'express';
|
|
2
|
+
import { CustomError } from '../errors/custom-error.js';
|
|
3
|
+
export const errorHandler = (err, req, res, next) => {
|
|
4
|
+
if (err instanceof CustomError) {
|
|
5
|
+
return res.status(err.statusCode).send({ errors: err.serializeError() });
|
|
6
|
+
}
|
|
7
|
+
// console.error('Something went wrong', err);
|
|
8
|
+
res.status(400).send({
|
|
9
|
+
error: err.message || 'Something went wrong',
|
|
10
|
+
});
|
|
11
|
+
};
|
|
12
|
+
//# sourceMappingURL=error-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-handler.js","sourceRoot":"","sources":["../../src/middlewares/error-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,MAAM,SAAS,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAExD,MAAM,CAAC,MAAM,YAAY,GAAG,CAC1B,GAAU,EACV,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,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,cAAc,EAAE,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED,8CAA8C;IAC9C,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC;QACnB,KAAK,EAAE,GAAG,CAAC,OAAO,IAAI,sBAAsB;KAC7C,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.d.ts","sourceRoot":"","sources":["../../src/middlewares/require-auth.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,WAAW,GACtB,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,SAOnB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import express, {} from 'express';
|
|
2
|
+
import { NotAuthorizedError } from '../errors/not-authorized-error.js';
|
|
3
|
+
export const requireAuth = (req, res, next) => {
|
|
4
|
+
if (!req.currentUser) {
|
|
5
|
+
throw new NotAuthorizedError();
|
|
6
|
+
}
|
|
7
|
+
next();
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=require-auth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"require-auth.js","sourceRoot":"","sources":["../../src/middlewares/require-auth.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAIf,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,kBAAkB,EAAE,MAAM,mCAAmC,CAAC;AAEvE,MAAM,CAAC,MAAM,WAAW,GAAG,CACzB,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,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/middlewares/validate-request.ts"],"names":[],"mappings":"AAAA,OAAgB,EACd,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,KAAK,YAAY,EAClB,MAAM,SAAS,CAAC;AAIjB,eAAO,MAAM,eAAe,GAC1B,KAAK,OAAO,EACZ,KAAK,QAAQ,EACb,MAAM,YAAY,SASnB,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import express, {} from 'express';
|
|
2
|
+
import { validationResult } from 'express-validator';
|
|
3
|
+
import { RequestValidationError } from '../errors/request-validation-error.js';
|
|
4
|
+
export const validateRequest = (req, res, next) => {
|
|
5
|
+
const errors = validationResult(req);
|
|
6
|
+
if (!errors.isEmpty()) {
|
|
7
|
+
throw new RequestValidationError(errors.array());
|
|
8
|
+
}
|
|
9
|
+
next();
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=validate-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-request.js","sourceRoot":"","sources":["../../src/middlewares/validate-request.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,EAAE,EAIf,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EAAE,sBAAsB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,CAAC,MAAM,eAAe,GAAG,CAC7B,GAAY,EACZ,GAAa,EACb,IAAkB,EAClB,EAAE;IACF,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"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,32 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@willhousecreative/common",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.8",
|
|
4
4
|
"description": "",
|
|
5
|
-
"main": "index.js",
|
|
5
|
+
"main": "./build/index.js",
|
|
6
|
+
"types": "./build/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"build/**/*"
|
|
9
|
+
],
|
|
10
|
+
"type": "module",
|
|
6
11
|
"scripts": {
|
|
7
|
-
"
|
|
12
|
+
"clean": "del-cli ./build/*",
|
|
13
|
+
"build": "npm run clean && tsc",
|
|
14
|
+
"pub": "git add . && git commit -m \"Updates\" && npm version patch && npm run build && npm login && npm publish"
|
|
8
15
|
},
|
|
9
16
|
"keywords": [],
|
|
10
17
|
"author": "",
|
|
11
|
-
"license": "ISC"
|
|
18
|
+
"license": "ISC",
|
|
19
|
+
"devDependencies": {
|
|
20
|
+
"del-cli": "^7.0.0",
|
|
21
|
+
"typescript": "^5.9.3"
|
|
22
|
+
},
|
|
23
|
+
"dependencies": {
|
|
24
|
+
"@types/cookie-session": "^2.0.49",
|
|
25
|
+
"@types/express": "^5.0.6",
|
|
26
|
+
"@types/jsonwebtoken": "^9.0.10",
|
|
27
|
+
"cookie-session": "^2.1.1",
|
|
28
|
+
"express": "^4.22.1",
|
|
29
|
+
"express-validator": "^7.3.1",
|
|
30
|
+
"jsonwebtoken": "^9.0.3"
|
|
31
|
+
}
|
|
12
32
|
}
|