@nest-boot/auth 7.9.3 → 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.
- package/dist/adapters/mikro-orm-adapter.d.ts +2 -1
- package/dist/adapters/mikro-orm-adapter.js +17 -1
- package/dist/adapters/mikro-orm-adapter.js.map +1 -1
- package/dist/adapters/mikro-orm-adapter.spec.d.ts +8 -0
- package/dist/adapters/mikro-orm-adapter.spec.js +165 -0
- package/dist/adapters/mikro-orm-adapter.spec.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -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
|
/**
|
|
@@ -24,4 +24,5 @@ export interface MikroOrmAdapterConfig {
|
|
|
24
24
|
*/
|
|
25
25
|
debugLogs?: DBAdapterDebugLogOption;
|
|
26
26
|
}
|
|
27
|
+
export declare function convertWhereToMikroOrm(where: Required<Where>[]): Record<string, unknown>;
|
|
27
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
|
-
|
|
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":";;;
|
|
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,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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"}
|