minimonolith 0.27.0 → 0.27.1

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "minimonolith",
3
3
  "type": "module",
4
- "version": "0.27.0",
4
+ "version": "0.27.1",
5
5
  "main": "index.js",
6
6
  "license": "MIT",
7
7
  "scripts": {
@@ -13,24 +13,24 @@
13
13
  "sequelize"
14
14
  ],
15
15
  "dependencies": {
16
- "lambda-api": "^1.0.1",
17
- "sequelize": "^6.30.0"
16
+ "lambda-api": "^1.4.0",
17
+ "sequelize": "^6.37.8"
18
18
  },
19
19
  "devDependencies": {
20
20
  "@aws-sdk/client-dynamodb": "^3.1048.0",
21
21
  "@aws-sdk/client-s3": "^3.304.0",
22
22
  "@aws-sdk/lib-dynamodb": "^3.1048.0",
23
23
  "@aws-sdk/s3-request-presigner": "^3.304.0",
24
- "@jest/globals": "^30.2.0",
24
+ "@jest/globals": "^30.4.1",
25
25
  "cross-env": "^7.0.3",
26
- "cross-fetch": "^3.1.5",
27
- "dotenv": "^16.0.3",
26
+ "cross-fetch": "^3.1.8",
27
+ "dotenv": "^16.4.5",
28
28
  "dynalite": "^4.0.0",
29
- "electrodb": "^3.7.5",
30
- "jest": "^29.5.0",
31
- "mysql2": "^3.2.0",
32
- "nodemon": "^2.0.22",
33
- "sqlite3": "^5.1.6",
34
- "zod": "^3.21.4"
29
+ "electrodb": "^3.9.0",
30
+ "jest": "^29.7.0",
31
+ "mysql2": "^3.11.0",
32
+ "nodemon": "^3.1.4",
33
+ "sqlite3": "^5.1.7",
34
+ "zod": "^3.23.8"
35
35
  }
36
36
  }
@@ -45,7 +45,7 @@ export default async ({ DB_DIALECT, DB_HOST,
45
45
  SEQUELIZE_OPTIONS.dialectOptions = {
46
46
  ssl: {
47
47
  require: true,
48
- rejectUnauthorized: false
48
+ rejectUnauthorized: process.env.DB_SSL_REJECT_UNAUTHORIZED === 'true'
49
49
  }
50
50
  };
51
51
  }
@@ -1,7 +1,14 @@
1
1
  import LOG_MODULE from '../../log/index.js';
2
2
 
3
3
  export default (res, ROUTE_CODE, METHOD_ERROR) => {
4
- const MESSAGE = { ROUTE_CODE, METHOD_ERROR: METHOD_ERROR.stack.toString() };
5
- LOG_MODULE.postERROR(MESSAGE);
6
- res.status(500).json(MESSAGE);
4
+ const isProd = process.env.NODE_ENV === 'production';
5
+ const stackString = METHOD_ERROR.stack ? METHOD_ERROR.stack.toString() : METHOD_ERROR.toString();
6
+
7
+ LOG_MODULE.postERROR({ ROUTE_CODE, METHOD_ERROR: stackString });
8
+
9
+ const responseMessage = {
10
+ ROUTE_CODE,
11
+ METHOD_ERROR: isProd ? 'Internal Server Error' : stackString
12
+ };
13
+ res.status(500).json(responseMessage);
7
14
  }
@@ -29,23 +29,36 @@ const getLambdaEvent = (req, queryString, jwtClaims, body) => {
29
29
  authorizer: { jwt: { claims: jwtClaims }, },
30
30
  http: { method: req.method, path: req.url },
31
31
  },
32
- headers: {},
32
+ headers: {
33
+ ...req.headers
34
+ },
33
35
  body,
34
36
  };
35
37
 
36
- if (req.headers['origin']) event.headers['origin'] = req.headers['origin'];
37
- if (req.headers['content-type']) event.headers['Content-Type'] = req.headers['content-type'];
38
- if (req.headers['x-trigger-error']) event.headers['x-trigger-error'] = 'TRUE';
39
- if (req.headers.accept) event.headers.accept = req.headers.accept;
40
- if (req.headers['user-agent']) event.headers['User-Agent'] = req.headers['user-agent'];
41
- //console.log(event);
42
38
  return event;
43
39
  };
44
40
 
45
41
  export default lambdaHandler => async (req, res) => {
42
+ if (req.method === 'OPTIONS') {
43
+ const origin = req.headers.origin ? req.headers.origin : '*';
44
+ for (let k in CORS_HEADERS({ origin })) {
45
+ res.setHeader(k, CORS_HEADERS({ origin })[k]);
46
+ }
47
+ res.statusCode = 200;
48
+ res.end();
49
+ return;
50
+ }
51
+
46
52
  try {
47
53
  const authHeader = req.headers.authorization;
48
- const jwtClaims = authHeader?.startsWith('Bearer ') ? getJWTClaims(authHeader) : null;
54
+ let jwtClaims = null;
55
+ if (authHeader?.startsWith('Bearer ')) {
56
+ try {
57
+ jwtClaims = getJWTClaims(authHeader);
58
+ } catch (err) {
59
+ // Ignore parsing error to allow middlewares to process/validate the header
60
+ }
61
+ }
49
62
 
50
63
  //const tempQueryString = url.parse(req.url, true).query;
51
64
  const parsedUrl = new URL(req.url, `http://${req.headers.host}`);