@lenne.tech/nest-server 11.24.3 → 11.25.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.
Files changed (60) hide show
  1. package/.claude/rules/configurable-features.md +2 -0
  2. package/CLAUDE.md +13 -0
  3. package/FRAMEWORK-API.md +14 -2
  4. package/README.md +15 -0
  5. package/dist/config.env.js +100 -81
  6. package/dist/config.env.js.map +1 -1
  7. package/dist/core/common/helpers/cookies.helper.d.ts +19 -0
  8. package/dist/core/common/helpers/cookies.helper.js +109 -0
  9. package/dist/core/common/helpers/cookies.helper.js.map +1 -0
  10. package/dist/core/common/interfaces/server-options.interface.d.ts +11 -1
  11. package/dist/core/modules/auth/core-auth.controller.js +4 -16
  12. package/dist/core/modules/auth/core-auth.controller.js.map +1 -1
  13. package/dist/core/modules/auth/core-auth.resolver.js +4 -16
  14. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  15. package/dist/core/modules/auth/tokens.decorator.d.ts +1 -1
  16. package/dist/core/modules/better-auth/better-auth.config.d.ts +24 -1
  17. package/dist/core/modules/better-auth/better-auth.config.js +22 -2
  18. package/dist/core/modules/better-auth/better-auth.config.js.map +1 -1
  19. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js +3 -0
  20. package/dist/core/modules/better-auth/core-better-auth-api.middleware.js.map +1 -1
  21. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.d.ts +3 -1
  22. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js +7 -3
  23. package/dist/core/modules/better-auth/core-better-auth-cookie.helper.js.map +1 -1
  24. package/dist/core/modules/better-auth/core-better-auth.controller.js +7 -3
  25. package/dist/core/modules/better-auth/core-better-auth.controller.js.map +1 -1
  26. package/dist/core/modules/better-auth/core-better-auth.module.d.ts +2 -1
  27. package/dist/core/modules/better-auth/core-better-auth.module.js +4 -1
  28. package/dist/core/modules/better-auth/core-better-auth.module.js.map +1 -1
  29. package/dist/core/modules/better-auth/core-better-auth.service.js +5 -4
  30. package/dist/core/modules/better-auth/core-better-auth.service.js.map +1 -1
  31. package/dist/core/modules/migrate/templates/migration-project.template.ts +16 -2
  32. package/dist/core.module.d.ts +3 -1
  33. package/dist/core.module.js +10 -7
  34. package/dist/core.module.js.map +1 -1
  35. package/dist/index.d.ts +1 -0
  36. package/dist/index.js +1 -0
  37. package/dist/index.js.map +1 -1
  38. package/dist/main.js +17 -3
  39. package/dist/main.js.map +1 -1
  40. package/dist/tsconfig.build.tsbuildinfo +1 -1
  41. package/docs/REQUEST-LIFECYCLE.md +78 -3
  42. package/migration-guides/11.24.x-to-11.25.0.md +438 -0
  43. package/package.json +26 -24
  44. package/src/config.env.ts +116 -111
  45. package/src/core/common/helpers/cookies.helper.ts +298 -0
  46. package/src/core/common/interfaces/server-options.interface.ts +141 -2
  47. package/src/core/modules/auth/core-auth.controller.ts +11 -23
  48. package/src/core/modules/auth/core-auth.resolver.ts +11 -23
  49. package/src/core/modules/better-auth/INTEGRATION-CHECKLIST.md +18 -0
  50. package/src/core/modules/better-auth/README.md +7 -0
  51. package/src/core/modules/better-auth/better-auth.config.ts +53 -15
  52. package/src/core/modules/better-auth/core-better-auth-api.middleware.ts +6 -3
  53. package/src/core/modules/better-auth/core-better-auth-cookie.helper.ts +33 -7
  54. package/src/core/modules/better-auth/core-better-auth.controller.ts +12 -3
  55. package/src/core/modules/better-auth/core-better-auth.module.ts +16 -1
  56. package/src/core/modules/better-auth/core-better-auth.service.ts +26 -10
  57. package/src/core/modules/migrate/templates/migration-project.template.ts +16 -2
  58. package/src/core.module.ts +40 -12
  59. package/src/index.ts +1 -0
  60. package/src/main.ts +32 -5
@@ -216,6 +216,8 @@ This pattern is currently applied to:
216
216
  | BetterAuth Tenant Skip | `betterAuth.skipTenantCheck` | Explicit Boolean | `true` (default). When `true` and no `X-Tenant-Id` header is sent, IAM endpoints (controller + resolver) skip `CoreTenantGuard` tenant validation. When header IS present, normal membership validation runs regardless. Set `false` for tenant-aware auth scenarios (subdomain-based, invite links, SSO per tenant) |
217
217
  | Debug Process Input | `debugProcessInput` | Explicit Boolean | `false` (default). When `true`, logs a debug message when `prepareInput()` changes the input type during `process()`. Has performance cost due to `JSON.stringify` on every `process()` call — enable only for debugging |
218
218
  | JSONTransport Production Guard | `email.smtp` with `jsonTransport` | Runtime Guard | Throws `Error` when `email.smtp` has a truthy `jsonTransport` property in `production` or `staging` environments (read from config `env` field). JSONTransport silently discards all outgoing mail — the guard prevents accidental misconfiguration that causes password-reset, 2FA, and verification emails to vanish. Use `{ jsonTransport: true }` only in CI/e2e/local environments |
219
+ | Cookies | `cookies` | Boolean Shorthand (default true) | `true` (enabled), `exposeTokenInBody: false`. When enabled: loads `cookie-parser`, sets CORS `credentials: true`, sets signed httpOnly session cookies. When `exposeTokenInBody: true`: token stays in response body alongside cookies (for hybrid JWT+Cookie auth). JWT via `Authorization: Bearer` always works independently |
220
+ | CORS | `cors` | Boolean Shorthand | `enabled: true`, `allowAll: false`, origins auto-derived from `appUrl`/`baseUrl`. Propagates to all three CORS layers (GraphQL, REST, BetterAuth `trustedOrigins`). `allowAll: true` mirrors request origin. `enabled: false` disables CORS on all layers including BetterAuth. Explicit `betterAuth.trustedOrigins` always takes precedence |
219
221
 
220
222
  ## Module Override Pattern (via `ICoreModuleOverrides`)
221
223
 
package/CLAUDE.md CHANGED
@@ -169,6 +169,19 @@ See `.claude/rules/role-system.md` for complete documentation.
169
169
 
170
170
  See `.claude/rules/versioning.md` for release process.
171
171
 
172
+ ## Docker Production Build
173
+
174
+ The starter includes a multi-stage `Dockerfile` that works standalone and in monorepos:
175
+
176
+ ```bash
177
+ docker build -t api . # Standalone
178
+ docker build --build-arg API_DIR=projects/api -t api . # Monorepo
179
+ ```
180
+
181
+ Key files: `Dockerfile`, `docker-entrypoint.sh` (migrations + server start), `.dockerignore`
182
+
183
+ The migration store uses `NSC__MONGOOSE__URI` env var (not `config.env.ts`) for Docker compatibility.
184
+
172
185
  ## Environment Configuration
173
186
 
174
187
  ```typescript
package/FRAMEWORK-API.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @lenne.tech/nest-server — Framework API Reference
2
2
 
3
- > Auto-generated from source code on 2026-04-12 (v11.24.3)
3
+ > Auto-generated from source code on 2026-04-17 (v11.25.0)
4
4
  > File: `FRAMEWORK-API.md` — compact, machine-readable API surface for Claude Code
5
5
 
6
6
  ## CoreModule.forRoot()
@@ -19,7 +19,8 @@
19
19
  - `betterAuth?`: `boolean | IBetterAuth` (default: `undefined (enabled with defaults)`) — Configuration for better-auth authentication framework.
20
20
  - `brevo?`: `{ apiKey: string; exclude?: RegExp; sender: { email: string; name: string; }; }` — Configuration for Brevo
21
21
  - `compression?`: `boolean | compression.CompressionOptions` — Whether to use the compression middleware package to enable gzip compression.
22
- - `cookies?`: `boolean` Whether to use cookies for authentication handling
22
+ - `cookies?`: `boolean | ICookiesConfig` (default: `true`) Cookie configuration for authentication handling.
23
+ - `cors?`: `boolean | ICorsConfig` (default: `undefined (enabled with auto-derived origins)`) — CORS (Cross-Origin Resource Sharing) configuration.
23
24
  - `cronJobs?`: `Record<string, string | false | 0 | CronJobConfigWithTimeZone<null, null> | C...` — Cron jobs configuration object with the name of the cron job function as key
24
25
  - `debugProcessInput?`: `boolean` (default: `false`) — When true, logs a debug message when prepareInput() changes the input type during process().
25
26
  - `email?`: `{ defaultSender?: { email?: string; name?: string; }; mailjet?: MailjetOption...` — SMTP and template configuration for sending emails
@@ -82,6 +83,17 @@ When `passkey` is enabled, `trustedOrigins` is required (compile-time enforcemen
82
83
  - `secretOrPrivateKey?`: `string` — Alias of secret (for backwards compatibility)
83
84
  - `signInOptions?`: `JwtSignOptions` — SignIn Options like expiresIn
84
85
 
86
+ ### ICookiesConfig
87
+
88
+ - `enabled?`: `boolean` (default: `true`) — Whether cookies are enabled.
89
+ - `exposeTokenInBody?`: `boolean` (default: `false`) — Whether to include the session token in the response body when cookies are enabled.
90
+
91
+ ### ICorsConfig
92
+
93
+ - `allowAll?`: `boolean` (default: `false`) — Allow all origins by mirroring the request Origin header back.
94
+ - `allowedOrigins?`: `string[]` — Additional allowed origins beyond `appUrl` and `baseUrl`.
95
+ - `enabled?`: `boolean` (default: `true`) — Whether CORS is enabled.
96
+
85
97
  ### ICoreModuleOverrides
86
98
 
87
99
  - `betterAuth?`: `{ controller?: Type<any>; resolver?: Type<any>; }` — Override BetterAuth controller and/or resolver.
package/README.md CHANGED
@@ -474,6 +474,21 @@ pnpm run build
474
474
  pnpm run docs
475
475
  ```
476
476
 
477
+ ### Docker Production Build
478
+
479
+ The [starter project](https://github.com/lenneTech/nest-server-starter) includes a production-ready multi-stage Dockerfile. It works both as a standalone project and inside a monorepo created with `lt fullstack init`:
480
+
481
+ ```bash
482
+ # Standalone
483
+ docker build -t api .
484
+ docker run -e NSC__MONGOOSE__URI=mongodb://host:27017/mydb -p 3000:3000 api
485
+
486
+ # Monorepo (build context = monorepo root)
487
+ docker build --build-arg API_DIR=projects/api -t api .
488
+ ```
489
+
490
+ The `docker-entrypoint.sh` runs database migrations before starting the server. The migration store reads `NSC__MONGOOSE__URI` for the MongoDB connection.
491
+
477
492
  ### Debugging as package
478
493
 
479
494
  Link into a consuming project for local development:
@@ -16,7 +16,7 @@ const config = {
16
16
  jwt: { enabled: true, expiresIn: '15m' },
17
17
  passkey: { enabled: true, origin: 'http://localhost:3001', rpId: 'localhost', rpName: 'Nest Server Local' },
18
18
  rateLimit: { enabled: true, max: 100, windowSeconds: 60 },
19
- secret: 'BETTER_AUTH_SECRET_LOCAL_32_CHARS_M',
19
+ secret: process.env.BETTER_AUTH_SECRET || 'BETTER_AUTH_SECRET_LOCAL_32_CHARS_M',
20
20
  socialProviders: {
21
21
  apple: { clientId: '', clientSecret: '', enabled: false },
22
22
  github: { clientId: '', clientSecret: '', enabled: false },
@@ -26,7 +26,8 @@ const config = {
26
26
  twoFactor: { appName: 'Nest Server Local', enabled: true },
27
27
  },
28
28
  compression: true,
29
- cookies: false,
29
+ cookies: { exposeTokenInBody: true },
30
+ cors: { allowAll: true },
30
31
  cronJobs: {
31
32
  sayHello: {
32
33
  cronTime: schedule_1.CronExpression.EVERY_10_SECONDS,
@@ -39,24 +40,19 @@ const config = {
39
40
  },
40
41
  email: {
41
42
  defaultSender: {
42
- email: 'oren.satterfield@ethereal.email',
43
- name: 'Nest Server Local',
44
- },
45
- mailjet: {
46
- api_key_private: 'MAILJET_API_KEY_PRIVATE',
47
- api_key_public: 'MAILJET_API_KEY_PUBLIC',
43
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
44
+ name: 'Nest Server CI',
48
45
  },
49
- passwordResetLink: 'http://localhost:4200/user/password-reset',
50
46
  smtp: {
51
47
  auth: {
52
- pass: 'K4DvD8U31VKseT7vQC',
53
- user: 'oren.satterfield@ethereal.email',
48
+ pass: process.env.SMTP_PASS || '',
49
+ user: process.env.SMTP_USER || '',
54
50
  },
55
- host: 'mailhog.lenne.tech',
56
- port: 1025,
51
+ host: process.env.SMTP_HOST || 'mailhog.lenne.tech',
52
+ jsonTransport: !process.env.SMTP_HOST || undefined,
53
+ port: parseInt(process.env.SMTP_PORT || '1025', 10),
57
54
  secure: false,
58
55
  },
59
- verificationLink: 'http://localhost:4200/user/verification',
60
56
  },
61
57
  env: 'ci',
62
58
  errorCode: {
@@ -85,13 +81,13 @@ const config = {
85
81
  jwt: {
86
82
  refresh: {
87
83
  renewal: true,
88
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
84
+ secret: process.env.JWT_REFRESH_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
89
85
  signInOptions: {
90
86
  expiresIn: '7d',
91
87
  },
92
88
  },
93
89
  sameTokenIdPeriod: 2000,
94
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL',
90
+ secret: process.env.JWT_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL',
95
91
  signInOptions: {
96
92
  expiresIn: '15m',
97
93
  },
@@ -103,7 +99,7 @@ const config = {
103
99
  locale: 'de',
104
100
  },
105
101
  modelDocumentation: false,
106
- uri: 'mongodb://127.0.0.1/nest-server-ci',
102
+ uri: process.env.MONGODB_URI || 'mongodb://127.0.0.1/nest-server-ci',
107
103
  },
108
104
  permissions: true,
109
105
  port: 3000,
@@ -134,29 +130,42 @@ const config = {
134
130
  legacyEndpoints: { enabled: true },
135
131
  },
136
132
  automaticObjectIdFiltering: true,
137
- baseUrl: 'http://localhost:3000',
133
+ baseUrl: process.env.BASE_URL || 'http://localhost:3000',
134
+ betterAuth: {
135
+ emailVerification: false,
136
+ jwt: { enabled: true, expiresIn: '15m' },
137
+ rateLimit: { enabled: true, max: 100, windowSeconds: 60 },
138
+ secret: process.env.BETTER_AUTH_SECRET || 'BETTER_AUTH_SECRET_LOCAL_32_CHARS_M',
139
+ twoFactor: { appName: 'Nest Server Dev', enabled: true },
140
+ },
141
+ ...(process.env.BREVO_API_KEY
142
+ ? {
143
+ brevo: {
144
+ apiKey: process.env.BREVO_API_KEY,
145
+ sender: {
146
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
147
+ name: process.env.EMAIL_DEFAULT_SENDER_NAME || 'Nest Server Development',
148
+ },
149
+ },
150
+ }
151
+ : {}),
138
152
  compression: true,
139
- cookies: false,
153
+ cors: { allowAll: true },
140
154
  email: {
141
155
  defaultSender: {
142
- email: 'oren.satterfield@ethereal.email',
156
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
143
157
  name: 'Nest Server Development',
144
158
  },
145
- mailjet: {
146
- api_key_private: 'MAILJET_API_KEY_PRIVATE',
147
- api_key_public: 'MAILJET_API_KEY_PUBLIC',
148
- },
149
- passwordResetLink: 'http://localhost:4200/user/password-reset',
150
159
  smtp: {
151
160
  auth: {
152
- pass: 'K4DvD8U31VKseT7vQC',
153
- user: 'oren.satterfield@ethereal.email',
161
+ pass: process.env.SMTP_PASS || '',
162
+ user: process.env.SMTP_USER || '',
154
163
  },
155
- host: 'mailhog.lenne.tech',
156
- port: 1025,
164
+ host: process.env.SMTP_HOST || 'mailhog.lenne.tech',
165
+ jsonTransport: !process.env.SMTP_HOST || undefined,
166
+ port: parseInt(process.env.SMTP_PORT || '1025', 10),
157
167
  secure: false,
158
168
  },
159
- verificationLink: 'http://localhost:4200/user/verification',
160
169
  },
161
170
  env: 'development',
162
171
  execAfterInit: 'pnpm run docs:bootstrap',
@@ -181,13 +190,13 @@ const config = {
181
190
  jwt: {
182
191
  refresh: {
183
192
  renewal: true,
184
- secret: 'SECRET_OR_PRIVATE_KEY_DEV_REFRESH',
193
+ secret: process.env.JWT_REFRESH_SECRET || 'SECRET_OR_PRIVATE_KEY_DEV_REFRESH',
185
194
  signInOptions: {
186
195
  expiresIn: '7d',
187
196
  },
188
197
  },
189
198
  sameTokenIdPeriod: 2000,
190
- secret: 'SECRET_OR_PRIVATE_KEY_DEV',
199
+ secret: process.env.JWT_SECRET || 'SECRET_OR_PRIVATE_KEY_DEV',
191
200
  signInOptions: {
192
201
  expiresIn: '15m',
193
202
  },
@@ -199,7 +208,7 @@ const config = {
199
208
  locale: 'de',
200
209
  },
201
210
  modelDocumentation: false,
202
- uri: 'mongodb://127.0.0.1/nest-server-dev',
211
+ uri: process.env.MONGODB_URI || 'mongodb://127.0.0.1/nest-server-dev',
203
212
  },
204
213
  permissions: true,
205
214
  port: 3000,
@@ -235,7 +244,7 @@ const config = {
235
244
  jwt: { enabled: true, expiresIn: '15m' },
236
245
  passkey: { enabled: true, origin: 'http://localhost:3001', rpId: 'localhost', rpName: 'Nest Server Local' },
237
246
  rateLimit: { enabled: true, max: 100, windowSeconds: 60 },
238
- secret: 'BETTER_AUTH_SECRET_LOCAL_32_CHARS_M',
247
+ secret: process.env.BETTER_AUTH_SECRET || 'BETTER_AUTH_SECRET_LOCAL_32_CHARS_M',
239
248
  socialProviders: {
240
249
  apple: { clientId: '', clientSecret: '', enabled: false },
241
250
  github: { clientId: '', clientSecret: '', enabled: false },
@@ -245,7 +254,8 @@ const config = {
245
254
  twoFactor: { appName: 'Nest Server Local', enabled: true },
246
255
  },
247
256
  compression: true,
248
- cookies: false,
257
+ cookies: { exposeTokenInBody: true },
258
+ cors: { allowAll: true },
249
259
  cronJobs: {
250
260
  sayHello: {
251
261
  cronTime: schedule_1.CronExpression.EVERY_10_SECONDS,
@@ -258,24 +268,19 @@ const config = {
258
268
  },
259
269
  email: {
260
270
  defaultSender: {
261
- email: 'oren.satterfield@ethereal.email',
262
- name: 'Nest Server Local',
263
- },
264
- mailjet: {
265
- api_key_private: 'MAILJET_API_KEY_PRIVATE',
266
- api_key_public: 'MAILJET_API_KEY_PUBLIC',
271
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
272
+ name: 'Nest Server E2E',
267
273
  },
268
- passwordResetLink: 'http://localhost:4200/user/password-reset',
269
274
  smtp: {
270
275
  auth: {
271
- pass: 'K4DvD8U31VKseT7vQC',
272
- user: 'oren.satterfield@ethereal.email',
276
+ pass: process.env.SMTP_PASS || '',
277
+ user: process.env.SMTP_USER || '',
273
278
  },
274
- host: 'mailhog.lenne.tech',
275
- port: 1025,
279
+ host: process.env.SMTP_HOST || 'mailhog.lenne.tech',
280
+ jsonTransport: !process.env.SMTP_HOST || undefined,
281
+ port: parseInt(process.env.SMTP_PORT || '1025', 10),
276
282
  secure: false,
277
283
  },
278
- verificationLink: 'http://localhost:4200/user/verification',
279
284
  },
280
285
  env: 'e2e',
281
286
  errorCode: {
@@ -304,13 +309,13 @@ const config = {
304
309
  jwt: {
305
310
  refresh: {
306
311
  renewal: true,
307
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
312
+ secret: process.env.JWT_REFRESH_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
308
313
  signInOptions: {
309
314
  expiresIn: '7d',
310
315
  },
311
316
  },
312
317
  sameTokenIdPeriod: 2000,
313
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL',
318
+ secret: process.env.JWT_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL',
314
319
  signInOptions: {
315
320
  expiresIn: '15m',
316
321
  },
@@ -322,7 +327,7 @@ const config = {
322
327
  locale: 'de',
323
328
  },
324
329
  modelDocumentation: false,
325
- uri: 'mongodb://127.0.0.1/nest-server-e2e',
330
+ uri: process.env.MONGODB_URI || 'mongodb://127.0.0.1/nest-server-e2e',
326
331
  },
327
332
  permissions: true,
328
333
  port: 3000,
@@ -353,7 +358,19 @@ const config = {
353
358
  legacyEndpoints: { enabled: true },
354
359
  },
355
360
  automaticObjectIdFiltering: true,
361
+ ...(process.env.BREVO_API_KEY
362
+ ? {
363
+ brevo: {
364
+ apiKey: process.env.BREVO_API_KEY,
365
+ sender: {
366
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
367
+ name: process.env.EMAIL_DEFAULT_SENDER_NAME || 'Nest Server Local',
368
+ },
369
+ },
370
+ }
371
+ : {}),
356
372
  compression: true,
373
+ cors: { allowAll: true },
357
374
  cronJobs: {
358
375
  sayHello: {
359
376
  cronTime: schedule_1.CronExpression.EVERY_10_SECONDS,
@@ -366,24 +383,19 @@ const config = {
366
383
  },
367
384
  email: {
368
385
  defaultSender: {
369
- email: 'oren.satterfield@ethereal.email',
386
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@test.local',
370
387
  name: 'Nest Server Local',
371
388
  },
372
- mailjet: {
373
- api_key_private: 'MAILJET_API_KEY_PRIVATE',
374
- api_key_public: 'MAILJET_API_KEY_PUBLIC',
375
- },
376
- passwordResetLink: 'http://localhost:4200/user/password-reset',
377
389
  smtp: {
378
390
  auth: {
379
- pass: 'K4DvD8U31VKseT7vQC',
380
- user: 'oren.satterfield@ethereal.email',
391
+ pass: process.env.SMTP_PASS || '',
392
+ user: process.env.SMTP_USER || '',
381
393
  },
382
- host: 'mailhog.lenne.tech',
383
- port: 1025,
394
+ host: process.env.SMTP_HOST || 'mailhog.lenne.tech',
395
+ jsonTransport: !process.env.SMTP_HOST || undefined,
396
+ port: parseInt(process.env.SMTP_PORT || '1025', 10),
384
397
  secure: false,
385
398
  },
386
- verificationLink: 'http://localhost:4200/user/verification',
387
399
  },
388
400
  env: 'local',
389
401
  errorCode: {
@@ -412,13 +424,13 @@ const config = {
412
424
  jwt: {
413
425
  refresh: {
414
426
  renewal: true,
415
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
427
+ secret: process.env.JWT_REFRESH_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL_REFRESH',
416
428
  signInOptions: {
417
429
  expiresIn: '7d',
418
430
  },
419
431
  },
420
432
  sameTokenIdPeriod: 2000,
421
- secret: 'SECRET_OR_PRIVATE_KEY_LOCAL',
433
+ secret: process.env.JWT_SECRET || 'SECRET_OR_PRIVATE_KEY_LOCAL',
422
434
  signInOptions: {
423
435
  expiresIn: '15m',
424
436
  },
@@ -430,7 +442,7 @@ const config = {
430
442
  locale: 'de',
431
443
  },
432
444
  modelDocumentation: true,
433
- uri: 'mongodb://127.0.0.1/nest-server-local',
445
+ uri: process.env.MONGODB_URI || 'mongodb://127.0.0.1/nest-server-local',
434
446
  },
435
447
  permissions: {
436
448
  role: false,
@@ -482,28 +494,35 @@ const config = {
482
494
  },
483
495
  twoFactor: { appName: process.env.TWO_FACTOR_APP_NAME || 'Nest Server' },
484
496
  },
497
+ ...(process.env.BREVO_API_KEY
498
+ ? {
499
+ brevo: {
500
+ apiKey: process.env.BREVO_API_KEY,
501
+ sender: {
502
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@example.com',
503
+ name: process.env.EMAIL_DEFAULT_SENDER_NAME || 'Nest Server',
504
+ },
505
+ },
506
+ }
507
+ : {}),
485
508
  compression: true,
486
- cookies: false,
509
+ cors: {
510
+ allowedOrigins: process.env.CORS_ALLOWED_ORIGINS?.split(',').filter(Boolean),
511
+ },
487
512
  email: {
488
513
  defaultSender: {
489
- email: 'oren.satterfield@ethereal.email',
490
- name: 'Nest Server Production',
514
+ email: process.env.EMAIL_DEFAULT_SENDER || 'noreply@example.com',
515
+ name: process.env.EMAIL_DEFAULT_SENDER_NAME || 'Nest Server',
491
516
  },
492
- mailjet: {
493
- api_key_private: 'MAILJET_API_KEY_PRIVATE',
494
- api_key_public: 'MAILJET_API_KEY_PUBLIC',
495
- },
496
- passwordResetLink: 'http://localhost:4200/user/password-reset',
497
517
  smtp: {
498
518
  auth: {
499
- pass: 'K4DvD8U31VKseT7vQC',
500
- user: 'oren.satterfield@ethereal.email',
519
+ pass: process.env.SMTP_PASS,
520
+ user: process.env.SMTP_USER,
501
521
  },
502
- host: 'mailhog.lenne.tech',
503
- port: 1025,
504
- secure: false,
522
+ host: process.env.SMTP_HOST,
523
+ port: parseInt(process.env.SMTP_PORT || '587', 10),
524
+ secure: process.env.SMTP_SECURE !== 'false',
505
525
  },
506
- verificationLink: 'http://localhost:4200/user/verification',
507
526
  },
508
527
  env: 'production',
509
528
  execAfterInit: 'pnpm run docs:bootstrap',
@@ -528,13 +547,13 @@ const config = {
528
547
  jwt: {
529
548
  refresh: {
530
549
  renewal: true,
531
- secret: 'SECRET_OR_PRIVATE_KEY_PROD_REFRESH',
550
+ secret: process.env.JWT_REFRESH_SECRET,
532
551
  signInOptions: {
533
552
  expiresIn: '7d',
534
553
  },
535
554
  },
536
555
  sameTokenIdPeriod: 2000,
537
- secret: 'SECRET_OR_PRIVATE_KEY_PROD',
556
+ secret: process.env.JWT_SECRET,
538
557
  signInOptions: {
539
558
  expiresIn: '15m',
540
559
  },
@@ -546,7 +565,7 @@ const config = {
546
565
  locale: 'de',
547
566
  },
548
567
  modelDocumentation: false,
549
- uri: 'mongodb://127.0.0.1/nest-server-prod',
568
+ uri: process.env.MONGODB_URI,
550
569
  },
551
570
  port: 3000,
552
571
  security: {
@@ -1 +1 @@
1
- {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"config.env.js","sourceRoot":"","sources":["../src/config.env.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { Response } from 'express';
2
+ import type { ICookiesConfig, ICorsConfig, IServerOptions } from '../interfaces/server-options.interface';
3
+ export declare function isProductionLikeEnv(env?: string): boolean;
4
+ export interface AuthCookieDefaultOptions {
5
+ httpOnly: true;
6
+ sameSite: 'lax';
7
+ secure: boolean;
8
+ }
9
+ export declare function getDefaultAuthCookieOptions(env?: string): AuthCookieDefaultOptions;
10
+ export declare function assertCookiesProductionSafe(cookies: boolean | ICookiesConfig | undefined, env: string | undefined): void;
11
+ export declare function setLegacyAuthCookies<T extends {
12
+ refreshToken?: string;
13
+ token?: string;
14
+ } | null | undefined>(res: Response, result: T, cookies: boolean | ICookiesConfig | undefined, env?: string): T;
15
+ export declare function isCookiesEnabled(cookies: boolean | ICookiesConfig | undefined): boolean;
16
+ export declare function isExposeTokenInBodyEnabled(cookies: boolean | ICookiesConfig | undefined): boolean;
17
+ export declare function shouldConvertSessionTokenToJwt(cookies: boolean | ICookiesConfig | undefined, jwtEnabled: boolean): boolean;
18
+ export declare function isCorsDisabled(cors: boolean | ICorsConfig | undefined): boolean;
19
+ export declare function buildCorsConfig(options: Partial<IServerOptions>): Record<string, unknown>;
@@ -0,0 +1,109 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.isProductionLikeEnv = isProductionLikeEnv;
4
+ exports.getDefaultAuthCookieOptions = getDefaultAuthCookieOptions;
5
+ exports.assertCookiesProductionSafe = assertCookiesProductionSafe;
6
+ exports.setLegacyAuthCookies = setLegacyAuthCookies;
7
+ exports.isCookiesEnabled = isCookiesEnabled;
8
+ exports.isExposeTokenInBodyEnabled = isExposeTokenInBodyEnabled;
9
+ exports.shouldConvertSessionTokenToJwt = shouldConvertSessionTokenToJwt;
10
+ exports.isCorsDisabled = isCorsDisabled;
11
+ exports.buildCorsConfig = buildCorsConfig;
12
+ const IS_PRODUCTION_NODE_ENV = process.env.NODE_ENV === 'production';
13
+ function isProductionLikeEnv(env) {
14
+ if (env === 'production' || env === 'staging')
15
+ return true;
16
+ return IS_PRODUCTION_NODE_ENV;
17
+ }
18
+ function getDefaultAuthCookieOptions(env) {
19
+ return {
20
+ httpOnly: true,
21
+ sameSite: 'lax',
22
+ secure: isProductionLikeEnv(env),
23
+ };
24
+ }
25
+ function assertCookiesProductionSafe(cookies, env) {
26
+ if (isProductionLikeEnv(env) && isExposeTokenInBodyEnabled(cookies)) {
27
+ throw new Error('SECURITY: cookies.exposeTokenInBody must not be true in production or staging. ' +
28
+ 'Exposing the session token in the response body negates the XSS protection of ' +
29
+ 'the httpOnly session cookie. If hybrid JWT+Cookie auth is required, handle the ' +
30
+ 'token at the client layer (e.g., via getToken endpoint) instead of exposing it in ' +
31
+ 'the login response body.');
32
+ }
33
+ }
34
+ function setLegacyAuthCookies(res, result, cookies, env) {
35
+ if (!isCookiesEnabled(cookies)) {
36
+ return result;
37
+ }
38
+ const cookieOptions = getDefaultAuthCookieOptions(env);
39
+ if (!result || typeof result !== 'object') {
40
+ res.cookie('token', '', cookieOptions);
41
+ res.cookie('refreshToken', '', cookieOptions);
42
+ return result;
43
+ }
44
+ res.cookie('token', result.token || '', cookieOptions);
45
+ res.cookie('refreshToken', result.refreshToken || '', cookieOptions);
46
+ if (!isExposeTokenInBodyEnabled(cookies)) {
47
+ if (result.token) {
48
+ delete result.token;
49
+ }
50
+ if (result.refreshToken) {
51
+ delete result.refreshToken;
52
+ }
53
+ }
54
+ return result;
55
+ }
56
+ function isCookiesEnabled(cookies) {
57
+ if (cookies === false)
58
+ return false;
59
+ if (typeof cookies === 'object' && cookies !== null)
60
+ return cookies.enabled !== false;
61
+ return true;
62
+ }
63
+ function isExposeTokenInBodyEnabled(cookies) {
64
+ if (typeof cookies === 'object' && cookies !== null)
65
+ return cookies.exposeTokenInBody === true;
66
+ return false;
67
+ }
68
+ function shouldConvertSessionTokenToJwt(cookies, jwtEnabled) {
69
+ if (!jwtEnabled)
70
+ return false;
71
+ const cookiesEnabled = isCookiesEnabled(cookies);
72
+ const exposeTokenInBody = isExposeTokenInBodyEnabled(cookies);
73
+ if (cookiesEnabled && !exposeTokenInBody)
74
+ return false;
75
+ return true;
76
+ }
77
+ function isCorsDisabled(cors) {
78
+ if (cors === false)
79
+ return true;
80
+ if (typeof cors === 'object' && cors !== null)
81
+ return cors.enabled === false;
82
+ return false;
83
+ }
84
+ function buildCorsConfig(options) {
85
+ if (isCorsDisabled(options?.cors)) {
86
+ return {};
87
+ }
88
+ if (!isCookiesEnabled(options?.cookies)) {
89
+ return {};
90
+ }
91
+ const corsObj = typeof options?.cors === 'object' ? options.cors : {};
92
+ if (corsObj.allowAll) {
93
+ return { credentials: true, origin: true };
94
+ }
95
+ const origins = [];
96
+ if (options?.appUrl)
97
+ origins.push(options.appUrl);
98
+ if (options?.baseUrl)
99
+ origins.push(options.baseUrl);
100
+ if (corsObj.allowedOrigins?.length) {
101
+ origins.push(...corsObj.allowedOrigins);
102
+ }
103
+ const uniqueOrigins = [...new Set(origins)];
104
+ if (uniqueOrigins.length > 0) {
105
+ return { credentials: true, origin: uniqueOrigins };
106
+ }
107
+ return {};
108
+ }
109
+ //# sourceMappingURL=cookies.helper.js.map