@nauth-toolkit/nestjs 0.1.13 → 0.1.17

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 (63) hide show
  1. package/dist/auth.module.d.ts +48 -0
  2. package/dist/auth.module.d.ts.map +1 -1
  3. package/dist/auth.module.js +161 -19
  4. package/dist/auth.module.js.map +1 -1
  5. package/dist/decorators/client-info.decorator.d.ts +39 -0
  6. package/dist/decorators/client-info.decorator.d.ts.map +1 -1
  7. package/dist/decorators/client-info.decorator.js +41 -0
  8. package/dist/decorators/client-info.decorator.js.map +1 -1
  9. package/dist/decorators/current-user.decorator.d.ts +6 -0
  10. package/dist/decorators/current-user.decorator.d.ts.map +1 -1
  11. package/dist/decorators/current-user.decorator.js +6 -0
  12. package/dist/decorators/current-user.decorator.js.map +1 -1
  13. package/dist/decorators/public.decorator.d.ts +7 -0
  14. package/dist/decorators/public.decorator.d.ts.map +1 -1
  15. package/dist/decorators/public.decorator.js +7 -0
  16. package/dist/decorators/public.decorator.js.map +1 -1
  17. package/dist/decorators/token-delivery.decorator.d.ts +20 -0
  18. package/dist/decorators/token-delivery.decorator.d.ts.map +1 -1
  19. package/dist/dto/index.d.ts +9 -0
  20. package/dist/dto/index.d.ts.map +1 -1
  21. package/dist/dto/index.js +10 -0
  22. package/dist/dto/index.js.map +1 -1
  23. package/dist/factories/storage-adapter.factory.d.ts +107 -0
  24. package/dist/factories/storage-adapter.factory.d.ts.map +1 -1
  25. package/dist/factories/storage-adapter.factory.js +129 -0
  26. package/dist/factories/storage-adapter.factory.js.map +1 -1
  27. package/dist/filters/nauth-http-exception.filter.d.ts +80 -0
  28. package/dist/filters/nauth-http-exception.filter.d.ts.map +1 -1
  29. package/dist/filters/nauth-http-exception.filter.js +96 -0
  30. package/dist/filters/nauth-http-exception.filter.js.map +1 -1
  31. package/dist/guards/auth.guard.d.ts +26 -0
  32. package/dist/guards/auth.guard.d.ts.map +1 -1
  33. package/dist/guards/auth.guard.js +44 -0
  34. package/dist/guards/auth.guard.js.map +1 -1
  35. package/dist/guards/csrf.guard.d.ts +21 -0
  36. package/dist/guards/csrf.guard.d.ts.map +1 -1
  37. package/dist/guards/csrf.guard.js +30 -1
  38. package/dist/guards/csrf.guard.js.map +1 -1
  39. package/dist/index.d.ts +34 -0
  40. package/dist/index.d.ts.map +1 -1
  41. package/dist/index.js +46 -0
  42. package/dist/index.js.map +1 -1
  43. package/dist/interceptors/client-info.interceptor.d.ts +37 -0
  44. package/dist/interceptors/client-info.interceptor.d.ts.map +1 -1
  45. package/dist/interceptors/client-info.interceptor.js +89 -1
  46. package/dist/interceptors/client-info.interceptor.js.map +1 -1
  47. package/dist/interceptors/cookie-token.interceptor.d.ts +16 -0
  48. package/dist/interceptors/cookie-token.interceptor.d.ts.map +1 -1
  49. package/dist/interceptors/cookie-token.interceptor.js +80 -16
  50. package/dist/interceptors/cookie-token.interceptor.js.map +1 -1
  51. package/dist/providers/nestjs-logger.adapter.d.ts +96 -0
  52. package/dist/providers/nestjs-logger.adapter.d.ts.map +1 -1
  53. package/dist/providers/nestjs-logger.adapter.js +105 -1
  54. package/dist/providers/nestjs-logger.adapter.js.map +1 -1
  55. package/dist/services/csrf.service.d.ts +61 -0
  56. package/dist/services/csrf.service.d.ts.map +1 -1
  57. package/dist/services/csrf.service.js +62 -1
  58. package/dist/services/csrf.service.js.map +1 -1
  59. package/dist/services/migrations-bootstrap.service.d.ts +6 -0
  60. package/dist/services/migrations-bootstrap.service.d.ts.map +1 -1
  61. package/dist/services/migrations-bootstrap.service.js +6 -0
  62. package/dist/services/migrations-bootstrap.service.js.map +1 -1
  63. package/package.json +14 -2
@@ -16,28 +16,89 @@ exports.CsrfService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const crypto_1 = require("crypto");
18
18
  const core_1 = require("@nauth-toolkit/core");
19
+ /**
20
+ * CSRF Service
21
+ *
22
+ * Generates and manages CSRF tokens for cookie-based token delivery.
23
+ * CSRF protection prevents Cross-Site Request Forgery attacks when tokens
24
+ * are stored in httpOnly cookies.
25
+ *
26
+ * @example
27
+ * ```typescript
28
+ * const csrfService = new CsrfService(config);
29
+ * const token = csrfService.generateToken();
30
+ * const cookieOptions = csrfService.getCookieOptions();
31
+ * ```
32
+ */
19
33
  let CsrfService = class CsrfService {
20
34
  config;
21
35
  constructor(config) {
22
36
  this.config = config;
23
37
  }
38
+ /**
39
+ * Generate a cryptographically secure CSRF token
40
+ *
41
+ * @returns CSRF token as hexadecimal string
42
+ *
43
+ * @example
44
+ * ```typescript
45
+ * const token = csrfService.generateToken();
46
+ * // Returns: 'a1b2c3d4e5f6...' (length depends on config.security.csrf.tokenLength)
47
+ * ```
48
+ */
24
49
  generateToken() {
25
50
  const tokenLength = this.config.security?.csrf?.tokenLength || 32;
26
51
  return (0, crypto_1.randomBytes)(tokenLength).toString('hex');
27
52
  }
53
+ /**
54
+ * Get CSRF cookie options from configuration
55
+ *
56
+ * @returns Cookie options object with defaults
57
+ *
58
+ * @example
59
+ * ```typescript
60
+ * const options = csrfService.getCookieOptions();
61
+ * res.cookie(csrfService.getCookieName(), token, options);
62
+ * ```
63
+ */
28
64
  getCookieOptions() {
29
65
  const config = this.config.security?.csrf?.cookieOptions;
30
66
  return {
31
- httpOnly: false,
67
+ httpOnly: false, // Fixed: CSRF token must be readable by JavaScript to send in header
32
68
  secure: config?.secure ?? true,
33
69
  sameSite: config?.sameSite ?? 'strict',
34
70
  domain: config?.domain,
35
71
  path: config?.path ?? '/',
36
72
  };
37
73
  }
74
+ /**
75
+ * Get CSRF cookie name from configuration
76
+ *
77
+ * If explicitly configured via security.csrf.cookieName, uses that value.
78
+ * Otherwise, uses the prefix: `${prefix}csrf_token` (default: 'nauth_csrf_token')
79
+ *
80
+ * @returns Cookie name (default: 'nauth_csrf_token' with default prefix)
81
+ *
82
+ * @example
83
+ * ```typescript
84
+ * const cookieName = csrfService.getCookieName();
85
+ * // Returns: 'nauth_csrf_token' (or configured value)
86
+ * ```
87
+ */
38
88
  getCookieName() {
39
89
  return (0, core_1.getCsrfTokenCookieName)(this.config);
40
90
  }
91
+ /**
92
+ * Get CSRF header name from configuration
93
+ *
94
+ * @returns Header name (default: 'x-csrf-token')
95
+ *
96
+ * @example
97
+ * ```typescript
98
+ * const headerName = csrfService.getHeaderName();
99
+ * // Returns: 'x-csrf-token' (or configured value)
100
+ * ```
101
+ */
41
102
  getHeaderName() {
42
103
  return this.config.security?.csrf?.headerName || 'x-csrf-token';
43
104
  }
@@ -1 +1 @@
1
- {"version":3,"file":"csrf.service.js","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAAqC;AACrC,8CAA0E;AAiBnE,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGH;IAFnB,YAEmB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IACnC,CAAC;IAaJ,aAAa;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;QAClE,OAAO,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAaD,gBAAgB;QAOd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,KAAK;YACf,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;YAC9B,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ;YACtC,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,GAAG;SAC1B,CAAC;IACJ,CAAC;IAgBD,aAAa;QACX,OAAO,IAAA,6BAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAaD,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IAClE,CAAC;CACF,CAAA;AAlFY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,cAAc,CAAC,CAAA;;GAFd,WAAW,CAkFvB"}
1
+ {"version":3,"file":"csrf.service.js","sourceRoot":"","sources":["../../src/services/csrf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,mCAAqC;AACrC,8CAA0E;AAE1E;;;;;;;;;;;;;GAaG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGH;IAFnB,YAEmB,MAAmB;QAAnB,WAAM,GAAN,MAAM,CAAa;IACnC,CAAC;IAEJ;;;;;;;;;;OAUG;IACH,aAAa;QACX,MAAM,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,WAAW,IAAI,EAAE,CAAC;QAClE,OAAO,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAClD,CAAC;IAED;;;;;;;;;;OAUG;IACH,gBAAgB;QAOd,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,aAAa,CAAC;QACzD,OAAO;YACL,QAAQ,EAAE,KAAK,EAAE,qEAAqE;YACtF,MAAM,EAAE,MAAM,EAAE,MAAM,IAAI,IAAI;YAC9B,QAAQ,EAAE,MAAM,EAAE,QAAQ,IAAI,QAAQ;YACtC,MAAM,EAAE,MAAM,EAAE,MAAM;YACtB,IAAI,EAAE,MAAM,EAAE,IAAI,IAAI,GAAG;SAC1B,CAAC;IACJ,CAAC;IAED;;;;;;;;;;;;;OAaG;IACH,aAAa;QACX,OAAO,IAAA,6BAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;OAUG;IACH,aAAa;QACX,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,IAAI,EAAE,UAAU,IAAI,cAAc,CAAC;IAClE,CAAC;CACF,CAAA;AAlFY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,cAAc,CAAC,CAAA;;GAFd,WAAW,CAkFvB"}
@@ -1,4 +1,10 @@
1
1
  import type { Provider } from '@nestjs/common';
2
2
  export declare const NAUTH_MIGRATIONS_BOOTSTRAP = "NAUTH_MIGRATIONS_BOOTSTRAP";
3
+ /**
4
+ * NestJS provider that auto-runs nauth-toolkit migrations on module init.
5
+ *
6
+ * @remarks
7
+ * This ensures NestJS apps get the same "zero bootstrap burden" migration behavior as `NAuth.create()`.
8
+ */
3
9
  export declare const nauthMigrationsBootstrapProvider: Provider;
4
10
  //# sourceMappingURL=migrations-bootstrap.service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-bootstrap.service.d.ts","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAqBvE,eAAO,MAAM,gCAAgC,EAAE,QAkC9C,CAAC"}
1
+ {"version":3,"file":"migrations-bootstrap.service.d.ts","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAI/C,eAAO,MAAM,0BAA0B,+BAA+B,CAAC;AAevE;;;;;GAKG;AACH,eAAO,MAAM,gCAAgC,EAAE,QAkC9C,CAAC"}
@@ -44,6 +44,12 @@ function getAdapterPackageName(dataSource) {
44
44
  return '@nauth-toolkit/database-typeorm-mysql';
45
45
  return null;
46
46
  }
47
+ /**
48
+ * NestJS provider that auto-runs nauth-toolkit migrations on module init.
49
+ *
50
+ * @remarks
51
+ * This ensures NestJS apps get the same "zero bootstrap burden" migration behavior as `NAuth.create()`.
52
+ */
47
53
  exports.nauthMigrationsBootstrapProvider = {
48
54
  provide: exports.NAUTH_MIGRATIONS_BOOTSTRAP,
49
55
  useFactory: async (config, logger, dataSource) => {
@@ -1 +1 @@
1
- {"version":3,"file":"migrations-bootstrap.service.js","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAqC;AAExB,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAMvE,SAAS,qBAAqB,CAC5B,UAAsB;IAEtB,MAAM,IAAI,GAAI,UAAU,CAAC,OAA0C,EAAE,IAAI,CAAC;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,0CAA0C,CAAC;IAC3E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,uCAAuC,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAQY,QAAA,gCAAgC,GAAa;IACxD,OAAO,EAAE,kCAA0B;IACnC,UAAU,EAAE,KAAK,EAAE,MAAmB,EAAE,MAAmB,EAAE,UAAsB,EAAE,EAAE;QACrF,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,CAAC,iEAAiE,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,CACb,6EAA6E,MAAM,CAChF,UAAU,CAAC,OAA0C,EAAE,IAAI,CAC7D,EAAE,CACJ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,yBAAa,kBAAkB,uCAAC,CAAqC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,KAAK,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,kBAAkB,uCAAuC,CAAC,CAAC;QAClH,CAAC;QAED,MAAM,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,oBAAU,CAAC;CACrD,CAAC"}
1
+ {"version":3,"file":"migrations-bootstrap.service.js","sourceRoot":"","sources":["../../src/services/migrations-bootstrap.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,qCAAqC;AAExB,QAAA,0BAA0B,GAAG,4BAA4B,CAAC;AAMvE,SAAS,qBAAqB,CAC5B,UAAsB;IAEtB,MAAM,IAAI,GAAI,UAAU,CAAC,OAA0C,EAAE,IAAI,CAAC;IAC1E,IAAI,IAAI,KAAK,UAAU;QAAE,OAAO,0CAA0C,CAAC;IAC3E,IAAI,IAAI,KAAK,OAAO,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,uCAAuC,CAAC;IAC3F,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACU,QAAA,gCAAgC,GAAa;IACxD,OAAO,EAAE,kCAA0B;IACnC,UAAU,EAAE,KAAK,EAAE,MAAmB,EAAE,MAAmB,EAAE,UAAsB,EAAE,EAAE;QACrF,IAAI,CAAC,UAAU,EAAE,aAAa,EAAE,CAAC;YAC/B,MAAM,EAAE,IAAI,EAAE,CAAC,iEAAiE,CAAC,CAAC;YAClF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,MAAM,kBAAkB,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;QAC7D,IAAI,CAAC,kBAAkB,EAAE,CAAC;YACxB,MAAM,EAAE,KAAK,EAAE,CACb,6EAA6E,MAAM,CAChF,UAAU,CAAC,OAA0C,EAAE,IAAI,CAC7D,EAAE,CACJ,CAAC;YACF,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,QAA+B,CAAC;QACpC,IAAI,CAAC;YACH,QAAQ,GAAG,CAAC,yBAAa,kBAAkB,uCAAC,CAAqC,CAAC;QACpF,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,OAAO,GAAG,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YACjE,MAAM,IAAI,KAAK,CAAC,oDAAoD,kBAAkB,KAAK,OAAO,EAAE,CAAC,CAAC;QACxG,CAAC;QAED,IAAI,OAAO,QAAQ,CAAC,kBAAkB,KAAK,UAAU,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,qCAAqC,kBAAkB,uCAAuC,CAAC,CAAC;QAClH,CAAC;QAED,MAAM,QAAQ,CAAC,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;QAC9D,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,oBAAU,CAAC;CACrD,CAAC"}
package/package.json CHANGED
@@ -1,9 +1,16 @@
1
1
  {
2
2
  "name": "@nauth-toolkit/nestjs",
3
- "version": "0.1.13",
3
+ "version": "0.1.17",
4
4
  "description": "NestJS adapter for nauth-toolkit - Platform-specific integrations",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
7
+ "exports": {
8
+ ".": {
9
+ "types": "./dist/index.d.ts",
10
+ "require": "./dist/index.js",
11
+ "default": "./dist/index.js"
12
+ }
13
+ },
7
14
  "scripts": {
8
15
  "build": "tsc -b",
9
16
  "test": "jest",
@@ -32,7 +39,7 @@
32
39
  "typeorm": "^0.3.0"
33
40
  },
34
41
  "dependencies": {
35
- "@nauth-toolkit/core": "0.1.13"
42
+ "@nauth-toolkit/core": "0.1.17"
36
43
  },
37
44
  "devDependencies": {
38
45
  "@nestjs/common": "^11.1.8",
@@ -59,5 +66,10 @@
59
66
  ],
60
67
  "engines": {
61
68
  "node": ">=22.0.0"
69
+ },
70
+ "sideEffects": false,
71
+ "repository": {
72
+ "type": "git",
73
+ "url": "https://github.com/noorix/nauth-toolkit"
62
74
  }
63
75
  }