@beautinique/be-middlewares 1.0.13 → 1.0.15

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.
@@ -1,4 +1,5 @@
1
1
  import { NextFunction, Request, Response } from 'express';
2
- import { TRequestCheckOptions } from '../types';
2
+ import { TRequestCheckOptions, type TServiceAccessOptions } from '../types';
3
3
  export declare const checkEmptyRequest: (options: TRequestCheckOptions) => (req: Request, _: Response, next: NextFunction) => void;
4
4
  export declare const setRequestId: (req: Request, res: Response, next: NextFunction) => void;
5
+ export declare const serviceAccess: ({ secret, headerName, }: TServiceAccessOptions) => (req: Request, _res: Response, next: NextFunction) => void;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setRequestId = exports.checkEmptyRequest = void 0;
3
+ exports.serviceAccess = exports.setRequestId = exports.checkEmptyRequest = void 0;
4
4
  const be_classes_1 = require("@beautinique/be-classes");
5
5
  const crypto_1 = require("crypto");
6
6
  const checkEmptyRequest = (options) => (req, _, next) => {
@@ -55,4 +55,20 @@ const setRequestId = (req, res, next) => {
55
55
  next();
56
56
  };
57
57
  exports.setRequestId = setRequestId;
58
+ const serviceAccess = ({ secret, headerName = 'X-Service-Secret', }) => {
59
+ if (!secret) {
60
+ throw new be_classes_1.AppError({ message: 'Service secret is not defined', code: 'INTERNAL_SERVER_ERROR' });
61
+ }
62
+ return (req, _res, next) => {
63
+ const internalSecret = req.get(headerName)?.trim();
64
+ if (!internalSecret || internalSecret !== secret) {
65
+ throw new be_classes_1.AppError({
66
+ message: 'You are not authorized to access this service',
67
+ code: 'AUTHORIZATION_ERROR',
68
+ });
69
+ }
70
+ next();
71
+ };
72
+ };
73
+ exports.serviceAccess = serviceAccess;
58
74
  //# sourceMappingURL=request.middleware.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"request.middleware.js","sourceRoot":"","sources":["../../src/middlewares/request.middleware.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"request.middleware.js","sourceRoot":"","sources":["../../src/middlewares/request.middleware.ts"],"names":[],"mappings":"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"}
@@ -36,4 +36,8 @@ export interface TLoggerConfig {
36
36
  logDir?: string;
37
37
  level?: 'error' | 'warn' | 'info' | 'http' | 'verbose' | 'debug' | 'silly';
38
38
  }
39
+ export type TServiceAccessOptions = {
40
+ headerName?: string;
41
+ secret: string;
42
+ };
39
43
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beautinique/be-middlewares",
3
- "version": "1.0.13",
3
+ "version": "1.0.15",
4
4
  "description": "Middlewares for the Beautinique backend project.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  "@beautinique/be-classes": "^1.0.5",
43
43
  "@beautinique/be-constants": "^1.0.6",
44
44
  "@beautinique/be-utils": "^1.0.3",
45
- "@beautinique/be-zod": "^1.0.16",
45
+ "@beautinique/be-zod": "^1.0.17",
46
46
  "multer": "^2.1.1",
47
47
  "winston": "^3.19.0"
48
48
  }