@nest-boot/auth 7.9.2 → 7.9.4

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 (52) hide show
  1. package/dist/adapters/mikro-orm-adapter.d.ts +6 -1
  2. package/dist/adapters/mikro-orm-adapter.js +17 -1
  3. package/dist/adapters/mikro-orm-adapter.js.map +1 -1
  4. package/dist/adapters/mikro-orm-adapter.spec.d.ts +8 -0
  5. package/dist/adapters/mikro-orm-adapter.spec.js +165 -0
  6. package/dist/adapters/mikro-orm-adapter.spec.js.map +1 -0
  7. package/dist/auth-module-options.interface.d.ts +9 -0
  8. package/dist/auth.constants.d.ts +2 -0
  9. package/dist/auth.constants.js +2 -0
  10. package/dist/auth.constants.js.map +1 -1
  11. package/dist/auth.guard.d.ts +15 -0
  12. package/dist/auth.guard.js +15 -0
  13. package/dist/auth.guard.js.map +1 -1
  14. package/dist/auth.middleware.d.ts +21 -0
  15. package/dist/auth.middleware.js +21 -0
  16. package/dist/auth.middleware.js.map +1 -1
  17. package/dist/auth.module-definition.d.ts +1 -1
  18. package/dist/auth.module-definition.js +2 -2
  19. package/dist/auth.module-definition.js.map +1 -1
  20. package/dist/auth.module.d.ts +28 -1
  21. package/dist/auth.module.js +30 -0
  22. package/dist/auth.module.js.map +1 -1
  23. package/dist/auth.service.d.ts +7 -0
  24. package/dist/auth.service.js +6 -0
  25. package/dist/auth.service.js.map +1 -1
  26. package/dist/auth.transaction-context.d.ts +24 -5
  27. package/dist/auth.transaction-context.js +16 -0
  28. package/dist/auth.transaction-context.js.map +1 -1
  29. package/dist/decorators/current-session.decorator.d.ts +1 -0
  30. package/dist/decorators/current-session.decorator.js +1 -0
  31. package/dist/decorators/current-session.decorator.js.map +1 -1
  32. package/dist/decorators/current-user.decorator.d.ts +1 -0
  33. package/dist/decorators/current-user.decorator.js +1 -0
  34. package/dist/decorators/current-user.decorator.js.map +1 -1
  35. package/dist/decorators/public.decorator.d.ts +1 -0
  36. package/dist/decorators/public.decorator.js +1 -0
  37. package/dist/decorators/public.decorator.js.map +1 -1
  38. package/dist/entities/account.entity.d.ts +20 -0
  39. package/dist/entities/account.entity.js +10 -0
  40. package/dist/entities/account.entity.js.map +1 -1
  41. package/dist/entities/session.entity.d.ts +15 -0
  42. package/dist/entities/session.entity.js +10 -0
  43. package/dist/entities/session.entity.js.map +1 -1
  44. package/dist/entities/user.entity.d.ts +14 -0
  45. package/dist/entities/user.entity.js +10 -0
  46. package/dist/entities/user.entity.js.map +1 -1
  47. package/dist/entities/verification.entity.d.ts +13 -0
  48. package/dist/entities/verification.entity.js +10 -0
  49. package/dist/entities/verification.entity.js.map +1 -1
  50. package/dist/tsconfig.build.tsbuildinfo +1 -1
  51. package/package.json +10 -5
  52. package/dist/tsconfig.tsbuildinfo +0 -1
@@ -1,5 +1,5 @@
1
1
  import { EntityClass, MikroORM } from "@mikro-orm/core";
2
- import { type DBAdapterDebugLogOption } from "better-auth/adapters";
2
+ import { type DBAdapterDebugLogOption, Where } from "better-auth/adapters";
3
3
  import { BaseAccount, BaseSession, BaseUser, BaseVerification } from "../entities";
4
4
  export interface MikroOrmAdapterConfig {
5
5
  /**
@@ -10,9 +10,13 @@ export interface MikroOrmAdapterConfig {
10
10
  * The entities to use for the adapter.
11
11
  */
12
12
  entities: {
13
+ /** Account entity class. */
13
14
  account: EntityClass<BaseAccount>;
15
+ /** Session entity class. */
14
16
  session: EntityClass<BaseSession>;
17
+ /** User entity class. */
15
18
  user: EntityClass<BaseUser>;
19
+ /** Verification entity class. */
16
20
  verification: EntityClass<BaseVerification>;
17
21
  };
18
22
  /**
@@ -20,4 +24,5 @@ export interface MikroOrmAdapterConfig {
20
24
  */
21
25
  debugLogs?: DBAdapterDebugLogOption;
22
26
  }
27
+ export declare function convertWhereToMikroOrm(where: Required<Where>[]): Record<string, unknown>;
23
28
  export declare const mikroOrmAdapter: ({ orm, entities, ...config }: MikroOrmAdapterConfig) => import("better-auth/adapters").AdapterFactory;
@@ -1,9 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mikroOrmAdapter = void 0;
4
+ exports.convertWhereToMikroOrm = convertWhereToMikroOrm;
4
5
  const adapters_1 = require("better-auth/adapters");
5
6
  function convertWhereToMikroOrm(where) {
6
- return where.map(({ field, operator, value }) => {
7
+ const conditions = where.map(({ field, operator, value }) => {
7
8
  switch (operator) {
8
9
  case "eq":
9
10
  return {
@@ -80,8 +81,23 @@ function convertWhereToMikroOrm(where) {
80
81
  $like: `%${value}`,
81
82
  },
82
83
  };
84
+ default:
85
+ throw new Error(`Unsupported operator: ${String(operator)}`);
83
86
  }
84
87
  });
88
+ const hasOr = where.some((w) => w.connector === "OR");
89
+ if (!hasOr) {
90
+ return { $and: conditions };
91
+ }
92
+ const groups = [[]];
93
+ for (let i = 0; i < conditions.length; i++) {
94
+ if (i > 0 && where[i].connector === "OR") {
95
+ groups.push([]);
96
+ }
97
+ groups[groups.length - 1].push(conditions[i]);
98
+ }
99
+ const orBranches = groups.map((group) => group.length === 1 ? group[0] : { $and: group });
100
+ return orBranches.length === 1 ? orBranches[0] : { $or: orBranches };
85
101
  }
86
102
  const mikroOrmAdapter = ({ orm, entities, ...config }) => {
87
103
  const getEntityClass = (model) => {
@@ -1 +1 @@
1
- {"version":3,"file":"mikro-orm-adapter.js","sourceRoot":"","sources":["../../src/adapters/mikro-orm-adapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mikro-orm-adapter.js","sourceRoot":"","sources":["../../src/adapters/mikro-orm-adapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Unit tests for convertWhereToMikroOrm
3
+ *
4
+ * Locks down AND/OR connector semantics to prevent returning raw arrays
5
+ * that MikroORM interprets as OR (which caused an OIDC login identity
6
+ * collision bug in production).
7
+ */
8
+ export {};
@@ -0,0 +1,165 @@
1
+ "use strict";
2
+ /**
3
+ * Unit tests for convertWhereToMikroOrm
4
+ *
5
+ * Locks down AND/OR connector semantics to prevent returning raw arrays
6
+ * that MikroORM interprets as OR (which caused an OIDC login identity
7
+ * collision bug in production).
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ // Mock better-auth/adapters to avoid ESM compatibility issues (types only)
11
+ jest.mock("better-auth/adapters", () => ({}));
12
+ // Import the function under test
13
+ const mikro_orm_adapter_1 = require("./mikro-orm-adapter");
14
+ /** Helper to construct a Where condition */
15
+ function makeWhere(field, operator, value, connector = "AND") {
16
+ return { field, operator, value, connector };
17
+ }
18
+ describe("convertWhereToMikroOrm", () => {
19
+ describe("AND connector", () => {
20
+ it("should merge multiple AND conditions into a $and object (OIDC login reproduction)", () => {
21
+ const where = [
22
+ makeWhere("accountId", "eq", "w9mj34kow1sc", "AND"),
23
+ makeWhere("providerId", "eq", "oidc", "AND"),
24
+ ];
25
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
26
+ // Must be a $and object, not an array (arrays are interpreted as $or by MikroORM)
27
+ expect(result).toEqual({
28
+ $and: [
29
+ { accountId: { $eq: "w9mj34kow1sc" } },
30
+ { providerId: { $eq: "oidc" } },
31
+ ],
32
+ });
33
+ expect(Array.isArray(result)).toBe(false);
34
+ });
35
+ it("should default to AND when connector is omitted", () => {
36
+ const where = [
37
+ { field: "name", operator: "eq", value: "test" },
38
+ { field: "age", operator: "gt", value: 18 },
39
+ ];
40
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
41
+ expect(result).toEqual({
42
+ $and: [{ name: { $eq: "test" } }, { age: { $gt: 18 } }],
43
+ });
44
+ });
45
+ it("should handle duplicate fields correctly (range query, no key override)", () => {
46
+ const where = [
47
+ makeWhere("createdAt", "gte", "2024-01-01"),
48
+ makeWhere("createdAt", "lt", "2025-01-01"),
49
+ ];
50
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
51
+ expect(result).toEqual({
52
+ $and: [
53
+ { createdAt: { $gte: "2024-01-01" } },
54
+ { createdAt: { $lt: "2025-01-01" } },
55
+ ],
56
+ });
57
+ });
58
+ });
59
+ describe("OR connector", () => {
60
+ it("should wrap all OR conditions in a $or object", () => {
61
+ const where = [
62
+ makeWhere("email", "eq", "a@test.com", "OR"),
63
+ makeWhere("email", "eq", "b@test.com", "OR"),
64
+ ];
65
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
66
+ expect(result).toEqual({
67
+ $or: [
68
+ { email: { $eq: "a@test.com" } },
69
+ { email: { $eq: "b@test.com" } },
70
+ ],
71
+ });
72
+ });
73
+ });
74
+ describe("mixed AND/OR", () => {
75
+ it("A AND B OR C → (A AND B) OR C", () => {
76
+ const where = [
77
+ makeWhere("accountId", "eq", "xxx", "AND"),
78
+ makeWhere("providerId", "eq", "oidc", "AND"),
79
+ makeWhere("status", "eq", "active", "OR"),
80
+ ];
81
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
82
+ expect(result).toEqual({
83
+ $or: [
84
+ {
85
+ $and: [
86
+ { accountId: { $eq: "xxx" } },
87
+ { providerId: { $eq: "oidc" } },
88
+ ],
89
+ },
90
+ { status: { $eq: "active" } },
91
+ ],
92
+ });
93
+ });
94
+ it("A AND B OR C AND D → (A AND B) OR (C AND D)", () => {
95
+ const where = [
96
+ makeWhere("a", "eq", "1", "AND"),
97
+ makeWhere("b", "eq", "2", "AND"),
98
+ makeWhere("c", "eq", "3", "OR"),
99
+ makeWhere("d", "eq", "4", "AND"),
100
+ ];
101
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
102
+ expect(result).toEqual({
103
+ $or: [
104
+ { $and: [{ a: { $eq: "1" } }, { b: { $eq: "2" } }] },
105
+ { $and: [{ c: { $eq: "3" } }, { d: { $eq: "4" } }] },
106
+ ],
107
+ });
108
+ });
109
+ it("should flatten when only one branch exists", () => {
110
+ const where = [makeWhere("a", "eq", "1", "OR")];
111
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
112
+ expect(result).toEqual({ a: { $eq: "1" } });
113
+ });
114
+ });
115
+ describe("operator mapping", () => {
116
+ const testOperator = (operator, mikroOp, value = "test") => {
117
+ const where = [makeWhere("f", operator, value)];
118
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)(where);
119
+ expect(result).toEqual({ $and: [{ f: { [mikroOp]: value } }] });
120
+ };
121
+ it("eq → $eq", () => testOperator("eq", "$eq"));
122
+ it("ne → $ne", () => testOperator("ne", "$ne"));
123
+ it("lt → $lt", () => testOperator("lt", "$lt", 10));
124
+ it("lte → $lte", () => testOperator("lte", "$lte", 10));
125
+ it("gt → $gt", () => testOperator("gt", "$gt", 10));
126
+ it("gte → $gte", () => testOperator("gte", "$gte", 10));
127
+ it("in → $in", () => testOperator("in", "$in", [1, 2]));
128
+ it("not_in → $nin", () => testOperator("not_in", "$nin", [1, 2]));
129
+ it("contains → $like %value%", () => {
130
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
131
+ makeWhere("name", "contains", "test"),
132
+ ]);
133
+ expect(result).toEqual({ $and: [{ name: { $like: "%test%" } }] });
134
+ });
135
+ it("starts_with → $like value%", () => {
136
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
137
+ makeWhere("name", "starts_with", "test"),
138
+ ]);
139
+ expect(result).toEqual({ $and: [{ name: { $like: "test%" } }] });
140
+ });
141
+ it("ends_with → $like %value", () => {
142
+ const result = (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([
143
+ makeWhere("name", "ends_with", "test"),
144
+ ]);
145
+ expect(result).toEqual({ $and: [{ name: { $like: "%test" } }] });
146
+ });
147
+ });
148
+ describe("string type validation", () => {
149
+ it("should throw when contains receives a non-string value", () => {
150
+ expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "contains", 123)])).toThrow("Value must be a string");
151
+ });
152
+ it("should throw when starts_with receives a non-string value", () => {
153
+ expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "starts_with", 123)])).toThrow("Value must be a string");
154
+ });
155
+ it("should throw when ends_with receives a non-string value", () => {
156
+ expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "ends_with", 123)])).toThrow("Value must be a string");
157
+ });
158
+ });
159
+ describe("unsupported operator", () => {
160
+ it("should throw on unknown operator", () => {
161
+ expect(() => (0, mikro_orm_adapter_1.convertWhereToMikroOrm)([makeWhere("f", "unknown_op", "x")])).toThrow("Unsupported operator: unknown_op");
162
+ });
163
+ });
164
+ });
165
+ //# sourceMappingURL=mikro-orm-adapter.spec.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mikro-orm-adapter.spec.js","sourceRoot":"","sources":["../../src/adapters/mikro-orm-adapter.spec.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,23 @@
1
1
  import { RouteInfo, Type } from "@nestjs/common/interfaces";
2
2
  import { BetterAuthOptions } from "better-auth";
3
3
  import { MikroOrmAdapterConfig } from "./adapters/mikro-orm-adapter";
4
+ /** Options for configuring auth middleware route registration. */
4
5
  export interface AuthModuleMiddlewareOptions {
6
+ /** Whether to register the auth middleware (defaults to true). */
5
7
  register?: boolean;
8
+ /** Routes to include in auth middleware processing. */
6
9
  includeRoutes?: (string | RouteInfo | Type)[];
10
+ /** Routes to exclude from auth middleware processing. */
7
11
  excludeRoutes?: (string | RouteInfo)[];
8
12
  }
13
+ /** Configuration options for the AuthModule. */
9
14
  export interface AuthModuleOptions extends Omit<BetterAuthOptions, "database"> {
15
+ /** Base path for the auth API endpoints. */
10
16
  basePath?: string;
17
+ /** Entity classes used for authentication. */
11
18
  entities: MikroOrmAdapterConfig["entities"];
19
+ /** Middleware registration options. */
12
20
  middleware?: AuthModuleMiddlewareOptions;
21
+ /** Callback invoked after successful authentication. */
13
22
  onAuthenticated?: () => void | Promise<void>;
14
23
  }
@@ -1,2 +1,4 @@
1
+ /** Injection token for the better-auth instance. */
1
2
  export declare const AUTH_TOKEN: unique symbol;
3
+ /** Metadata key used by the {@link Public} decorator to mark public routes. */
2
4
  export declare const IS_PUBLIC_KEY: unique symbol;
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.IS_PUBLIC_KEY = exports.AUTH_TOKEN = void 0;
4
+ /** Injection token for the better-auth instance. */
4
5
  exports.AUTH_TOKEN = Symbol("AUTH");
6
+ /** Metadata key used by the {@link Public} decorator to mark public routes. */
5
7
  exports.IS_PUBLIC_KEY = Symbol("IS_PUBLIC_KEY");
6
8
  //# sourceMappingURL=auth.constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.constants.js","sourceRoot":"","sources":["../src/auth.constants.ts"],"names":[],"mappings":";;;AAAa,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAE5B,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC"}
1
+ {"version":3,"file":"auth.constants.js","sourceRoot":"","sources":["../src/auth.constants.ts"],"names":[],"mappings":";;;AAAA,oDAAoD;AACvC,QAAA,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC;AAEzC,+EAA+E;AAClE,QAAA,aAAa,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC"}
@@ -1,7 +1,22 @@
1
1
  import { CanActivate, ExecutionContext } from "@nestjs/common";
2
2
  import { Reflector } from "@nestjs/core";
3
+ /**
4
+ * Guard that enforces authentication on routes.
5
+ *
6
+ * @remarks
7
+ * Allows access if the route is marked with {@link Public}, otherwise
8
+ * requires a valid session in the request context.
9
+ */
3
10
  export declare class AuthGuard implements CanActivate {
4
11
  protected readonly reflector: Reflector;
12
+ /** Creates a new AuthGuard instance.
13
+ * @param reflector - NestJS reflector for reading route metadata
14
+ */
5
15
  constructor(reflector: Reflector);
16
+ /**
17
+ * Determines whether the current request is allowed to proceed.
18
+ * @param context - The execution context of the current request
19
+ * @returns `true` if the route is public or the user has a valid session
20
+ */
6
21
  canActivate(context: ExecutionContext): boolean;
7
22
  }
@@ -15,10 +15,25 @@ const common_1 = require("@nestjs/common");
15
15
  const core_1 = require("@nestjs/core");
16
16
  const auth_constants_1 = require("./auth.constants");
17
17
  const session_entity_1 = require("./entities/session.entity");
18
+ /**
19
+ * Guard that enforces authentication on routes.
20
+ *
21
+ * @remarks
22
+ * Allows access if the route is marked with {@link Public}, otherwise
23
+ * requires a valid session in the request context.
24
+ */
18
25
  let AuthGuard = class AuthGuard {
26
+ /** Creates a new AuthGuard instance.
27
+ * @param reflector - NestJS reflector for reading route metadata
28
+ */
19
29
  constructor(reflector) {
20
30
  this.reflector = reflector;
21
31
  }
32
+ /**
33
+ * Determines whether the current request is allowed to proceed.
34
+ * @param context - The execution context of the current request
35
+ * @returns `true` if the route is public or the user has a valid session
36
+ */
22
37
  canActivate(context) {
23
38
  if (this.reflector.getAllAndOverride(auth_constants_1.IS_PUBLIC_KEY, [
24
39
  context.getHandler(),
@@ -1 +1 @@
1
- {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,2CAA2E;AAC3E,uCAAyC;AAEzC,qDAAiD;AACjD,8DAAwD;AAGjD,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB,YAA+B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvD,WAAW,CAAC,OAAyB;QACnC,IACE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,8BAAa,EAAE;YACvD,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,EACF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,CAAC,gCAAc,CAAC,GAAG,CAAC,4BAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAfY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAE+B,gBAAS;GADxC,SAAS,CAerB"}
1
+ {"version":3,"file":"auth.guard.js","sourceRoot":"","sources":["../src/auth.guard.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,gEAA4D;AAC5D,2CAA2E;AAC3E,uCAAyC;AAEzC,qDAAiD;AACjD,8DAAwD;AAExD;;;;;;GAMG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAS;IACpB;;OAEG;IACH,YAA+B,SAAoB;QAApB,cAAS,GAAT,SAAS,CAAW;IAAG,CAAC;IAEvD;;;;OAIG;IACH,WAAW,CAAC,OAAyB;QACnC,IACE,IAAI,CAAC,SAAS,CAAC,iBAAiB,CAAU,8BAAa,EAAE;YACvD,OAAO,CAAC,UAAU,EAAE;YACpB,OAAO,CAAC,QAAQ,EAAE;SACnB,CAAC,EACF,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,CAAC,CAAC,gCAAc,CAAC,GAAG,CAAC,4BAAW,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAvBY,8BAAS;oBAAT,SAAS;IADrB,IAAA,mBAAU,GAAE;qCAK+B,gBAAS;GAJxC,SAAS,CAuBrB"}
@@ -3,11 +3,32 @@ import { NestMiddleware } from "@nestjs/common";
3
3
  import { NextFunction, Request, Response } from "express";
4
4
  import { AuthService } from "./auth.service";
5
5
  import { AuthModuleOptions } from "./auth-module-options.interface";
6
+ /**
7
+ * Middleware that resolves the current user and session from the request.
8
+ *
9
+ * @remarks
10
+ * Extracts the session token from headers via the better-auth API,
11
+ * loads the corresponding user and session entities, and stores
12
+ * them in the {@link RequestContext}.
13
+ */
6
14
  export declare class AuthMiddleware implements NestMiddleware {
7
15
  private readonly options;
8
16
  private readonly authService;
9
17
  private readonly em;
18
+ /**
19
+ * Creates a new AuthMiddleware instance.
20
+ * @param options - Auth module configuration options
21
+ * @param authService - Service exposing the better-auth API
22
+ * @param em - MikroORM entity manager for loading user/session entities
23
+ */
10
24
  constructor(options: AuthModuleOptions, authService: AuthService, em: EntityManager);
25
+ /** Retrieves the session from the request headers via the better-auth API. */
11
26
  private getSession;
27
+ /**
28
+ * Resolves authentication state and attaches user/session to the request context.
29
+ * @param req - Express request object
30
+ * @param res - Express response object
31
+ * @param next - Express next function
32
+ */
12
33
  use(req: Request, res: Response, next: NextFunction): Promise<void>;
13
34
  }
@@ -19,12 +19,27 @@ const common_1 = require("@nestjs/common");
19
19
  const auth_module_definition_1 = require("./auth.module-definition");
20
20
  const auth_service_1 = require("./auth.service");
21
21
  const entities_1 = require("./entities");
22
+ /**
23
+ * Middleware that resolves the current user and session from the request.
24
+ *
25
+ * @remarks
26
+ * Extracts the session token from headers via the better-auth API,
27
+ * loads the corresponding user and session entities, and stores
28
+ * them in the {@link RequestContext}.
29
+ */
22
30
  let AuthMiddleware = class AuthMiddleware {
31
+ /**
32
+ * Creates a new AuthMiddleware instance.
33
+ * @param options - Auth module configuration options
34
+ * @param authService - Service exposing the better-auth API
35
+ * @param em - MikroORM entity manager for loading user/session entities
36
+ */
23
37
  constructor(options, authService, em) {
24
38
  this.options = options;
25
39
  this.authService = authService;
26
40
  this.em = em;
27
41
  }
42
+ /** Retrieves the session from the request headers via the better-auth API. */
28
43
  async getSession(req) {
29
44
  return await this.authService.api.getSession({
30
45
  headers: Object.entries(req.headers).reduce((headers, [key, value]) => {
@@ -42,6 +57,12 @@ let AuthMiddleware = class AuthMiddleware {
42
57
  }, new Headers()),
43
58
  });
44
59
  }
60
+ /**
61
+ * Resolves authentication state and attaches user/session to the request context.
62
+ * @param req - Express request object
63
+ * @param res - Express response object
64
+ * @param next - Express next function
65
+ */
45
66
  async use(req, res, next) {
46
67
  const data = await this.getSession(req);
47
68
  if (!data) {
@@ -1 +1 @@
1
- {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../src/auth.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0CAAgD;AAChD,gEAA4D;AAC5D,2CAA0E;AAG1E,qEAAgE;AAChE,iDAA6C;AAE7C,yCAAmD;AAG5C,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB,YAEmB,OAA0B,EAC1B,WAAwB,EACxB,EAAiB;QAFjB,YAAO,GAAP,OAAO,CAAmB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,OAAE,GAAF,EAAE,CAAe;IACjC,CAAC;IACI,KAAK,CAAC,UAAU,CAAC,GAAY;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpE,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC1C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC7C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;aAC1B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,gCAAc,CAAC,GAAG,CAAC,mBAAQ,EAAE,IAAI,CAAC,CAAC;YACnC,gCAAc,CAAC,GAAG,CAAC,sBAAW,EAAE,OAAO,CAAC,CAAC;YAEzC,gCAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAsB,EAAE,IAAI,CAAC,CAAC;YACvE,gCAAc,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAA4B,EAClD,OAAO,CACR,CAAC;YAEF,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AAxDY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAGR,WAAA,IAAA,eAAM,EAAC,6CAAoB,CAAC,CAAA;6CAEC,0BAAW;QACpB,oBAAa;GALzB,cAAc,CAwD1B"}
1
+ {"version":3,"file":"auth.middleware.js","sourceRoot":"","sources":["../src/auth.middleware.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,0CAAgD;AAChD,gEAA4D;AAC5D,2CAA0E;AAG1E,qEAAgE;AAChE,iDAA6C;AAE7C,yCAAmD;AAEnD;;;;;;;GAOG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IACzB;;;;;OAKG;IACH,YAEmB,OAA0B,EAC1B,WAAwB,EACxB,EAAiB;QAFjB,YAAO,GAAP,OAAO,CAAmB;QAC1B,gBAAW,GAAX,WAAW,CAAa;QACxB,OAAE,GAAF,EAAE,CAAe;IACjC,CAAC;IACJ,8EAA8E;IACtE,KAAK,CAAC,UAAU,CAAC,GAAY;QACnC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,UAAU,CAAC;YAC3C,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE;gBACpE,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;wBACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;4BACzB,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBAC5B,CAAC;oBACH,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,OAAO,OAAO,CAAC;YACjB,CAAC,EAAE,IAAI,OAAO,EAAE,CAAC;SAClB,CAAC,CAAC;IACL,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,GAAG,CAAC,GAAY,EAAE,GAAa,EAAE,IAAkB;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;QAExC,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,IAAI,EAAE,CAAC;YACP,OAAO;QACT,CAAC;QAED,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YACxC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC1C,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,EAAE;aACjB,CAAC;YACF,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE;gBAC7C,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK;aAC1B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,IAAI,IAAI,OAAO,EAAE,CAAC;YACpB,gCAAc,CAAC,GAAG,CAAC,mBAAQ,EAAE,IAAI,CAAC,CAAC;YACnC,gCAAc,CAAC,GAAG,CAAC,sBAAW,EAAE,OAAO,CAAC,CAAC;YAEzC,gCAAc,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAsB,EAAE,IAAI,CAAC,CAAC;YACvE,gCAAc,CAAC,GAAG,CAChB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,OAA4B,EAClD,OAAO,CACR,CAAC;YAEF,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,EAAE,CAAC;QACzC,CAAC;QAED,IAAI,EAAE,CAAC;IACT,CAAC;CACF,CAAA;AArEY,wCAAc;yBAAd,cAAc;IAD1B,IAAA,mBAAU,GAAE;IASR,WAAA,IAAA,eAAM,EAAC,6CAAoB,CAAC,CAAA;6CAEC,0BAAW;QACpB,oBAAa;GAXzB,cAAc,CAqE1B"}
@@ -1,2 +1,2 @@
1
1
  import { type AuthModuleOptions } from "./auth-module-options.interface";
2
- export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<AuthModuleOptions, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol;
2
+ export declare const ConfigurableModuleClass: import("@nestjs/common").ConfigurableModuleCls<AuthModuleOptions, "forRoot", "create", {}>, MODULE_OPTIONS_TOKEN: string | symbol, OPTIONS_TYPE: AuthModuleOptions & Partial<{}>, ASYNC_OPTIONS_TYPE: import("@nestjs/common").ConfigurableModuleAsyncOptions<AuthModuleOptions, "create"> & Partial<{}>;
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  var _a;
3
3
  Object.defineProperty(exports, "__esModule", { value: true });
4
- exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
4
+ exports.ASYNC_OPTIONS_TYPE = exports.OPTIONS_TYPE = exports.MODULE_OPTIONS_TOKEN = exports.ConfigurableModuleClass = void 0;
5
5
  const common_1 = require("@nestjs/common");
6
6
  _a = new common_1.ConfigurableModuleBuilder()
7
7
  .setClassMethodName("forRoot")
8
- .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN;
8
+ .build(), exports.ConfigurableModuleClass = _a.ConfigurableModuleClass, exports.MODULE_OPTIONS_TOKEN = _a.MODULE_OPTIONS_TOKEN, exports.OPTIONS_TYPE = _a.OPTIONS_TYPE, exports.ASYNC_OPTIONS_TYPE = _a.ASYNC_OPTIONS_TYPE;
9
9
  //# sourceMappingURL=auth.module-definition.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module-definition.js","sourceRoot":"","sources":["../src/auth.module-definition.ts"],"names":[],"mappings":";;;;AAAA,2CAA2D;AAI9C,KACX,IAAI,kCAAyB,EAAqB;KAC/C,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EAHG,+BAAuB,+BAAE,4BAAoB,2BAG/C"}
1
+ {"version":3,"file":"auth.module-definition.js","sourceRoot":"","sources":["../src/auth.module-definition.ts"],"names":[],"mappings":";;;;AAAA,2CAA2D;AAI9C,KAKT,IAAI,kCAAyB,EAAqB;KACnD,kBAAkB,CAAC,SAAS,CAAC;KAC7B,KAAK,EAAE,EANR,+BAAuB,+BACvB,4BAAoB,4BACpB,oBAAY,oBACZ,0BAAkB,yBAGT"}
@@ -1,12 +1,39 @@
1
1
  import { MiddlewareManager } from "@nest-boot/middleware";
2
+ import { type DynamicModule } from "@nestjs/common";
2
3
  import { Auth } from "better-auth";
3
4
  import { AuthMiddleware } from "./auth.middleware";
4
- import { ConfigurableModuleClass } from "./auth.module-definition";
5
+ import { ASYNC_OPTIONS_TYPE, ConfigurableModuleClass, OPTIONS_TYPE } from "./auth.module-definition";
5
6
  import { AuthModuleOptions } from "./auth-module-options.interface";
7
+ /**
8
+ * Authentication module based on better-auth.
9
+ *
10
+ * @remarks
11
+ * Provides authentication services including session management, middleware registration,
12
+ * and MikroORM-based persistence via the better-auth adapter.
13
+ */
6
14
  export declare class AuthModule extends ConfigurableModuleClass {
7
15
  private readonly auth;
8
16
  private readonly options;
9
17
  private readonly middlewareManager;
10
18
  private readonly authMiddleware;
19
+ /**
20
+ * Registers the AuthModule with the given options.
21
+ * @param options - Configuration options including secret and middleware settings
22
+ * @returns Dynamic module configuration
23
+ */
24
+ static forRoot(options: typeof OPTIONS_TYPE): DynamicModule;
25
+ /**
26
+ * Registers the AuthModule asynchronously with factory functions.
27
+ * @param options - Async configuration options
28
+ * @returns Dynamic module configuration
29
+ */
30
+ static forRootAsync(options: typeof ASYNC_OPTIONS_TYPE): DynamicModule;
31
+ /**
32
+ * Creates a new AuthModule instance.
33
+ * @param auth - The better-auth instance
34
+ * @param options - Auth module configuration options
35
+ * @param middlewareManager - Middleware manager for registering auth middleware
36
+ * @param authMiddleware - The auth middleware instance
37
+ */
11
38
  constructor(auth: Auth, options: AuthModuleOptions, middlewareManager: MiddlewareManager, authMiddleware: AuthMiddleware);
12
39
  }
@@ -25,7 +25,37 @@ const auth_middleware_1 = require("./auth.middleware");
25
25
  const auth_module_definition_1 = require("./auth.module-definition");
26
26
  const auth_service_1 = require("./auth.service");
27
27
  const estimate_entropy_1 = require("./utils/estimate-entropy");
28
+ /**
29
+ * Authentication module based on better-auth.
30
+ *
31
+ * @remarks
32
+ * Provides authentication services including session management, middleware registration,
33
+ * and MikroORM-based persistence via the better-auth adapter.
34
+ */
28
35
  let AuthModule = class AuthModule extends auth_module_definition_1.ConfigurableModuleClass {
36
+ /**
37
+ * Registers the AuthModule with the given options.
38
+ * @param options - Configuration options including secret and middleware settings
39
+ * @returns Dynamic module configuration
40
+ */
41
+ static forRoot(options) {
42
+ return super.forRoot(options);
43
+ }
44
+ /**
45
+ * Registers the AuthModule asynchronously with factory functions.
46
+ * @param options - Async configuration options
47
+ * @returns Dynamic module configuration
48
+ */
49
+ static forRootAsync(options) {
50
+ return super.forRootAsync(options);
51
+ }
52
+ /**
53
+ * Creates a new AuthModule instance.
54
+ * @param auth - The better-auth instance
55
+ * @param options - Auth module configuration options
56
+ * @param middlewareManager - Middleware manager for registering auth middleware
57
+ * @param authMiddleware - The auth middleware instance
58
+ */
29
59
  constructor(auth, options, middlewareManager, authMiddleware) {
30
60
  super();
31
61
  this.auth = auth;
@@ -1 +1 @@
1
- {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"auth.module.js","sourceRoot":"","sources":["../src/auth.module.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,14 @@
1
1
  import { Auth } from "better-auth";
2
+ /** Service exposing the better-auth API to the application. */
2
3
  export declare class AuthService {
4
+ /** @internal */
3
5
  private readonly auth;
6
+ /**
7
+ * Creates a new AuthService instance.
8
+ * @param auth - The better-auth instance
9
+ */
4
10
  constructor(auth: Auth);
11
+ /** The better-auth API interface for session and user management. */
5
12
  get api(): import("better-auth/*").InferAPI<{
6
13
  readonly ok: import("better-auth/*").StrictEndpoint<"/ok", {
7
14
  method: "GET";
@@ -15,10 +15,16 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.AuthService = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const auth_constants_1 = require("./auth.constants");
18
+ /** Service exposing the better-auth API to the application. */
18
19
  let AuthService = class AuthService {
20
+ /**
21
+ * Creates a new AuthService instance.
22
+ * @param auth - The better-auth instance
23
+ */
19
24
  constructor(auth) {
20
25
  this.auth = auth;
21
26
  }
27
+ /** The better-auth API interface for session and user management. */
22
28
  get api() {
23
29
  return this.auth.api;
24
30
  }
@@ -1 +1 @@
1
- {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../src/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwC;AAGxC,qDAA8C;AAE9C,IAAa,WAAW,GAAxB,MAAa,WAAW;IACtB,YAEmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAC1B,CAAC;IAEJ,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;CACF,CAAA;AATY,kCAAW;sBAAX,WAAW;IAEnB,WAAA,IAAA,eAAM,EAAC,2BAAU,CAAC,CAAA;;GAFV,WAAW,CASvB"}
1
+ {"version":3,"file":"auth.service.js","sourceRoot":"","sources":["../src/auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAwC;AAGxC,qDAA8C;AAE9C,+DAA+D;AAC/D,IAAa,WAAW,GAAxB,MAAa,WAAW;IACtB;;;OAGG;IACH,YAGmB,IAAU;QAAV,SAAI,GAAJ,IAAI,CAAM;IAC1B,CAAC;IAEJ,qEAAqE;IACrE,IAAI,GAAG;QACL,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACvB,CAAC;CACF,CAAA;AAfY,kCAAW;sBAAX,WAAW;IAMnB,WAAA,IAAA,eAAM,EAAC,2BAAU,CAAC,CAAA;;GANV,WAAW,CAevB"}