akeyless-server-commons 1.0.144 → 1.0.145

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 { RequestHandler } from "express";
2
2
  import { LogRequests, MandatoryParams, MW } from "../types";
3
3
  export declare const mandatory: ({ body, headers }: MandatoryParams) => MW;
4
+ export declare const optional: ({ body, headers }: MandatoryParams) => MW;
4
5
  export declare const request_logger: (log_requests: LogRequests) => RequestHandler;
@@ -1,11 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.request_logger = exports.mandatory = void 0;
3
+ exports.request_logger = exports.optional = exports.mandatory = void 0;
4
4
  const helpers_1 = require("../helpers");
5
5
  const managers_1 = require("../managers");
6
- const validateParameter = (data, parameter) => {
6
+ const validateParameter = (data, parameter, is_mandatory) => {
7
7
  if (data[parameter.key] === undefined) {
8
- throw `missing mandatory parameter: ${parameter.key}`;
8
+ if (is_mandatory) {
9
+ throw `missing mandatory parameter: ${parameter.key}`;
10
+ }
11
+ else {
12
+ return;
13
+ }
9
14
  }
10
15
  if (parameter.type === "array" && !Array.isArray(data[parameter.key])) {
11
16
  throw `parameter ${parameter.key} must be of type: Array`;
@@ -13,9 +18,22 @@ const validateParameter = (data, parameter) => {
13
18
  if (typeof data[parameter.key] !== parameter.type && parameter.type !== "array") {
14
19
  throw `parameter ${parameter.key} must be of type: ${parameter.type}`;
15
20
  }
16
- if ((Array.isArray(data[parameter.key]) && parameter.length && data[parameter.key].length < parameter.length) ||
17
- (parameter.type === "string" && parameter.length && data[parameter.key].length < parameter.length)) {
18
- throw `parameter ${parameter.key} must have minimum length: ${parameter.length}`;
21
+ if (parameter.type === "string" && parameter.length && data[parameter.key].length < parameter.length) {
22
+ throw `parameter ${parameter.key} must be string must have minimum length of: ${parameter.length}`;
23
+ }
24
+ const is_array = Array.isArray(data[parameter.key]);
25
+ if (is_array) {
26
+ if (parameter.length && data[parameter.key].length < parameter.length) {
27
+ throw `parameter ${parameter.key} must be array and must have minimum length of: ${parameter.length}`;
28
+ }
29
+ if (Array.isArray(parameter.array_types) && parameter.array_types.length > 0) {
30
+ data[parameter.key].forEach((item, index) => {
31
+ const item_type = typeof item;
32
+ if (!parameter.array_types.includes(item_type)) {
33
+ throw `item at index ${index} in parameter ${parameter.key} must be of type: ${parameter.array_types.join(" | ")}`;
34
+ }
35
+ });
36
+ }
19
37
  }
20
38
  if (parameter.type === "object" && parameter.required_keys) {
21
39
  const missingKeys = parameter.required_keys.filter((key) => data[parameter.key][key] === undefined);
@@ -37,22 +55,45 @@ const mandatory = ({ body, headers }) => {
37
55
  const headers_data = req.headers;
38
56
  if (body) {
39
57
  body.forEach((parameter) => {
40
- validateParameter(body_data, parameter);
58
+ validateParameter(body_data, parameter, true);
41
59
  });
42
60
  }
43
61
  if (headers) {
44
62
  headers.forEach((parameter) => {
45
- validateParameter(headers_data, parameter);
63
+ validateParameter(headers_data, parameter, true);
46
64
  });
47
65
  }
48
66
  next();
49
67
  }
50
68
  catch (error) {
51
- return res.status(500).send((0, helpers_1.json_failed)(error));
69
+ return res.send((0, helpers_1.json_failed)(error));
52
70
  }
53
71
  };
54
72
  };
55
73
  exports.mandatory = mandatory;
74
+ const optional = ({ body, headers }) => {
75
+ return (req, res, next) => {
76
+ try {
77
+ const body_data = req.body;
78
+ const headers_data = req.headers;
79
+ if (body) {
80
+ body.forEach((parameter) => {
81
+ validateParameter(body_data, parameter, false);
82
+ });
83
+ }
84
+ if (headers) {
85
+ headers.forEach((parameter) => {
86
+ validateParameter(headers_data, parameter, false);
87
+ });
88
+ }
89
+ next();
90
+ }
91
+ catch (error) {
92
+ return res.send((0, helpers_1.json_failed)(error));
93
+ }
94
+ };
95
+ };
96
+ exports.optional = optional;
56
97
  const request_logger = (log_requests) => {
57
98
  return (req, res, next) => {
58
99
  if ((log_requests === null || log_requests === void 0 ? void 0 : log_requests.url) || (log_requests === null || log_requests === void 0 ? void 0 : log_requests.headers) || (log_requests === null || log_requests === void 0 ? void 0 : log_requests.query) || (log_requests === null || log_requests === void 0 ? void 0 : log_requests.body)) {
@@ -1 +1 @@
1
- {"version":3,"file":"global_mw.js","sourceRoot":"","sources":["../../../src/middlewares/global_mw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global_mw.js","sourceRoot":"","sources":["../../../src/middlewares/global_mw.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface MandatoryObject {
4
4
  type: "string" | "number" | "boolean" | "object" | "array";
5
5
  length?: number;
6
6
  required_keys?: string[];
7
+ array_types?: ("string" | "number" | "boolean" | "object")[];
7
8
  }
8
9
  export interface MandatoryParams {
9
10
  body?: MandatoryObject[];
@@ -1,4 +1,5 @@
1
1
  import { RequestHandler } from "express";
2
2
  import { LogRequests, MandatoryParams, MW } from "../types";
3
3
  export declare const mandatory: ({ body, headers }: MandatoryParams) => MW;
4
+ export declare const optional: ({ body, headers }: MandatoryParams) => MW;
4
5
  export declare const request_logger: (log_requests: LogRequests) => RequestHandler;
@@ -1,8 +1,13 @@
1
1
  import { json_failed } from "../helpers";
2
2
  import { logger } from "../managers";
3
- const validateParameter = (data, parameter) => {
3
+ const validateParameter = (data, parameter, is_mandatory) => {
4
4
  if (data[parameter.key] === undefined) {
5
- throw `missing mandatory parameter: ${parameter.key}`;
5
+ if (is_mandatory) {
6
+ throw `missing mandatory parameter: ${parameter.key}`;
7
+ }
8
+ else {
9
+ return;
10
+ }
6
11
  }
7
12
  if (parameter.type === "array" && !Array.isArray(data[parameter.key])) {
8
13
  throw `parameter ${parameter.key} must be of type: Array`;
@@ -10,9 +15,22 @@ const validateParameter = (data, parameter) => {
10
15
  if (typeof data[parameter.key] !== parameter.type && parameter.type !== "array") {
11
16
  throw `parameter ${parameter.key} must be of type: ${parameter.type}`;
12
17
  }
13
- if ((Array.isArray(data[parameter.key]) && parameter.length && data[parameter.key].length < parameter.length) ||
14
- (parameter.type === "string" && parameter.length && data[parameter.key].length < parameter.length)) {
15
- throw `parameter ${parameter.key} must have minimum length: ${parameter.length}`;
18
+ if (parameter.type === "string" && parameter.length && data[parameter.key].length < parameter.length) {
19
+ throw `parameter ${parameter.key} must be string must have minimum length of: ${parameter.length}`;
20
+ }
21
+ const is_array = Array.isArray(data[parameter.key]);
22
+ if (is_array) {
23
+ if (parameter.length && data[parameter.key].length < parameter.length) {
24
+ throw `parameter ${parameter.key} must be array and must have minimum length of: ${parameter.length}`;
25
+ }
26
+ if (Array.isArray(parameter.array_types) && parameter.array_types.length > 0) {
27
+ data[parameter.key].forEach((item, index) => {
28
+ const item_type = typeof item;
29
+ if (!parameter.array_types.includes(item_type)) {
30
+ throw `item at index ${index} in parameter ${parameter.key} must be of type: ${parameter.array_types.join(" | ")}`;
31
+ }
32
+ });
33
+ }
16
34
  }
17
35
  if (parameter.type === "object" && parameter.required_keys) {
18
36
  const missingKeys = parameter.required_keys.filter((key) => data[parameter.key][key] === undefined);
@@ -34,18 +52,40 @@ export const mandatory = ({ body, headers }) => {
34
52
  const headers_data = req.headers;
35
53
  if (body) {
36
54
  body.forEach((parameter) => {
37
- validateParameter(body_data, parameter);
55
+ validateParameter(body_data, parameter, true);
56
+ });
57
+ }
58
+ if (headers) {
59
+ headers.forEach((parameter) => {
60
+ validateParameter(headers_data, parameter, true);
61
+ });
62
+ }
63
+ next();
64
+ }
65
+ catch (error) {
66
+ return res.send(json_failed(error));
67
+ }
68
+ };
69
+ };
70
+ export const optional = ({ body, headers }) => {
71
+ return (req, res, next) => {
72
+ try {
73
+ const body_data = req.body;
74
+ const headers_data = req.headers;
75
+ if (body) {
76
+ body.forEach((parameter) => {
77
+ validateParameter(body_data, parameter, false);
38
78
  });
39
79
  }
40
80
  if (headers) {
41
81
  headers.forEach((parameter) => {
42
- validateParameter(headers_data, parameter);
82
+ validateParameter(headers_data, parameter, false);
43
83
  });
44
84
  }
45
85
  next();
46
86
  }
47
87
  catch (error) {
48
- return res.status(500).send(json_failed(error));
88
+ return res.send(json_failed(error));
49
89
  }
50
90
  };
51
91
  };
@@ -1 +1 @@
1
- {"version":3,"file":"global_mw.js","sourceRoot":"","sources":["../../../src/middlewares/global_mw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"global_mw.js","sourceRoot":"","sources":["../../../src/middlewares/global_mw.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,7 @@ export interface MandatoryObject {
4
4
  type: "string" | "number" | "boolean" | "object" | "array";
5
5
  length?: number;
6
6
  required_keys?: string[];
7
+ array_types?: ("string" | "number" | "boolean" | "object")[];
7
8
  }
8
9
  export interface MandatoryParams {
9
10
  body?: MandatoryObject[];
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "akeyless-server-commons",
3
- "version": "1.0.144",
3
+ "version": "1.0.145",
4
4
  "scripts": {
5
5
  "build:cjs": "tsc --project tsconfig.cjs.json",
6
6
  "build:esm": "tsc --project tsconfig.esm.json",