@naturalcycles/backend-lib 9.44.2 → 9.45.0

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.
@@ -35,7 +35,6 @@ export class BaseAdminService {
35
35
  if (!email)
36
36
  return;
37
37
  console.log(`getEmailPermissions (${dimGrey(email)}) returning undefined (please override the implementation)`);
38
- return;
39
38
  }
40
39
  /**
41
40
  * To be extended.
@@ -62,7 +61,6 @@ export class BaseAdminService {
62
61
  return; // skip logging, expected error
63
62
  }
64
63
  req.error(`getEmailByToken error:`, err);
65
- return;
66
64
  }
67
65
  }
68
66
  /**
@@ -5,6 +5,7 @@ import { methodOverrideMiddleware } from '../server/methodOverrideMiddleware.js'
5
5
  import { notFoundMiddleware } from '../server/notFoundMiddleware.js';
6
6
  import { requestTimeoutMiddleware } from '../server/requestTimeoutMiddleware.js';
7
7
  import { simpleRequestLoggerMiddleware } from '../server/simpleRequestLoggerMiddleware.js';
8
+ import { isGAE } from '../util.js';
8
9
  const isTest = process.env['APP_ENV'] === 'test';
9
10
  const isDev = process.env['APP_ENV'] === 'dev';
10
11
  export async function createDefaultApp(cfg) {
@@ -29,6 +30,25 @@ export async function createDefaultApp(cfg) {
29
30
  if (isDev) {
30
31
  app.use(simpleRequestLoggerMiddleware());
31
32
  }
33
+ if (!isTest) {
34
+ // leaks, load lazily
35
+ const { default: helmet } = await import('helmet');
36
+ app.use(helmet({
37
+ contentSecurityPolicy: false, // to allow "admin 401 auto-redirect"
38
+ }));
39
+ }
40
+ app.use(cors({
41
+ origin: true,
42
+ credentials: true,
43
+ // methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // default
44
+ maxAge: 86400,
45
+ ...cfg.corsOptions,
46
+ }));
47
+ if (!isGAE() && isTest) {
48
+ // compression is not used in AppEngine, because AppEngine provides it by default
49
+ const { default: compression } = await import('compression');
50
+ app.use(compression());
51
+ }
32
52
  // app.use(safeJsonMiddleware()) // optional
33
53
  // accepts application/json
34
54
  app.use(express.json({
@@ -55,20 +75,6 @@ export async function createDefaultApp(cfg) {
55
75
  ...cfg.bodyParserRawOptions,
56
76
  }));
57
77
  app.use(cookieParser());
58
- if (!isTest) {
59
- // leaks, load lazily
60
- const { default: helmet } = await import('helmet');
61
- app.use(helmet({
62
- contentSecurityPolicy: false, // to allow "admin 401 auto-redirect"
63
- }));
64
- }
65
- app.use(cors({
66
- origin: true,
67
- credentials: true,
68
- // methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // default
69
- maxAge: 86400,
70
- ...cfg.corsOptions,
71
- }));
72
78
  // app.use(clearBodyParserTimeout()) // removed by default
73
79
  // Static is now disabled by default due to performance
74
80
  // Without: 6500 rpsAvg
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@naturalcycles/backend-lib",
3
3
  "type": "module",
4
- "version": "9.44.2",
4
+ "version": "9.45.0",
5
5
  "peerDependencies": {
6
6
  "@sentry/node": "^10"
7
7
  },
@@ -10,10 +10,12 @@
10
10
  "@naturalcycles/js-lib": "^15",
11
11
  "@naturalcycles/nodejs-lib": "^15",
12
12
  "@types/body-parser": "^1",
13
+ "@types/compression": "^1",
13
14
  "@types/cookie-parser": "^1",
14
15
  "@types/cors": "^2",
15
16
  "@types/express": "^5",
16
17
  "@types/on-finished": "^2",
18
+ "compression": "^1",
17
19
  "cookie-parser": "^1",
18
20
  "cors": "^2",
19
21
  "dotenv": "^17",
@@ -29,7 +31,7 @@
29
31
  "@sentry/node": "^10",
30
32
  "@types/ejs": "^3",
31
33
  "fastify": "^5",
32
- "@naturalcycles/dev-lib": "18.4.2"
34
+ "@naturalcycles/dev-lib": "20.15.0"
33
35
  },
34
36
  "exports": {
35
37
  ".": "./dist/index.js",
@@ -65,7 +65,6 @@ export class BaseAdminService {
65
65
  email,
66
66
  )}) returning undefined (please override the implementation)`,
67
67
  )
68
- return
69
68
  }
70
69
 
71
70
  /**
@@ -107,7 +106,6 @@ export class BaseAdminService {
107
106
  }
108
107
 
109
108
  req.error(`getEmailByToken error:`, err)
110
- return
111
109
  }
112
110
  }
113
111
 
@@ -16,6 +16,7 @@ import type {
16
16
  BackendRequestHandler,
17
17
  } from '../server/server.model.js'
18
18
  import { simpleRequestLoggerMiddleware } from '../server/simpleRequestLoggerMiddleware.js'
19
+ import { isGAE } from '../util.js'
19
20
 
20
21
  const isTest = process.env['APP_ENV'] === 'test'
21
22
  const isDev = process.env['APP_ENV'] === 'dev'
@@ -51,6 +52,32 @@ export async function createDefaultApp(cfg: DefaultAppCfg): Promise<BackendAppli
51
52
  app.use(simpleRequestLoggerMiddleware())
52
53
  }
53
54
 
55
+ if (!isTest) {
56
+ // leaks, load lazily
57
+ const { default: helmet } = await import('helmet')
58
+ app.use(
59
+ helmet({
60
+ contentSecurityPolicy: false, // to allow "admin 401 auto-redirect"
61
+ }),
62
+ )
63
+ }
64
+
65
+ app.use(
66
+ cors({
67
+ origin: true,
68
+ credentials: true,
69
+ // methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // default
70
+ maxAge: 86400,
71
+ ...cfg.corsOptions,
72
+ }),
73
+ )
74
+
75
+ if (!isGAE() && isTest) {
76
+ // compression is not used in AppEngine, because AppEngine provides it by default
77
+ const { default: compression } = await import('compression')
78
+ app.use(compression())
79
+ }
80
+
54
81
  // app.use(safeJsonMiddleware()) // optional
55
82
 
56
83
  // accepts application/json
@@ -88,26 +115,6 @@ export async function createDefaultApp(cfg: DefaultAppCfg): Promise<BackendAppli
88
115
 
89
116
  app.use(cookieParser())
90
117
 
91
- if (!isTest) {
92
- // leaks, load lazily
93
- const { default: helmet } = await import('helmet')
94
- app.use(
95
- helmet({
96
- contentSecurityPolicy: false, // to allow "admin 401 auto-redirect"
97
- }),
98
- )
99
- }
100
-
101
- app.use(
102
- cors({
103
- origin: true,
104
- credentials: true,
105
- // methods: 'GET,HEAD,PUT,PATCH,POST,DELETE', // default
106
- maxAge: 86400,
107
- ...cfg.corsOptions,
108
- }),
109
- )
110
-
111
118
  // app.use(clearBodyParserTimeout()) // removed by default
112
119
 
113
120
  // Static is now disabled by default due to performance