wcz-test 6.28.0 → 7.0.1

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.
@@ -0,0 +1,159 @@
1
+ import { c as S, l as I } from "./GraphQueries-BOAnio_H.js";
2
+ const D = (f, R) => {
3
+ let w = null, j = S({
4
+ config: {
5
+ adapterId: "memory",
6
+ adapterName: "Memory Adapter",
7
+ usePlural: !1,
8
+ debugLogs: R?.debugLogs || !1,
9
+ customTransformInput(y) {
10
+ return (y.options.advanced?.database?.useNumberId || y.options.advanced?.database?.generateId === "serial") && y.field === "id" && y.action === "create" ? f[y.model].length + 1 : y.data;
11
+ },
12
+ transaction: async (y) => {
13
+ let M = structuredClone(f);
14
+ try {
15
+ return await y(j(w));
16
+ } catch (A) {
17
+ throw Object.keys(f).forEach((v) => {
18
+ f[v] = M[v];
19
+ }), A;
20
+ }
21
+ }
22
+ },
23
+ adapter: ({ getFieldName: y, options: M, getModelName: A }) => {
24
+ const v = (e, n, c) => n ? e.sort((a, l) => {
25
+ const g = y({
26
+ model: c,
27
+ field: n.field
28
+ }), u = a[g], t = l[g];
29
+ let r = 0;
30
+ return u == null && t == null ? r = 0 : u == null ? r = -1 : t == null ? r = 1 : typeof u == "string" && typeof t == "string" ? r = u.localeCompare(t) : u instanceof Date && t instanceof Date ? r = u.getTime() - t.getTime() : typeof u == "number" && typeof t == "number" ? r = u - t : typeof u == "boolean" && typeof t == "boolean" ? r = u === t ? 0 : u ? 1 : -1 : r = String(u).localeCompare(String(t)), n.direction === "asc" ? r : -r;
31
+ }) : e;
32
+ function m(e, n, c) {
33
+ const a = (t, r) => {
34
+ const h = f[r];
35
+ if (!h)
36
+ throw I.error(`[MemoryAdapter] Model ${r} not found in the DB`, Object.keys(f)), new Error(`Model ${r} not found`);
37
+ const p = (o, d) => {
38
+ const { field: i, value: s, operator: b } = d;
39
+ switch (b) {
40
+ case "in":
41
+ if (!Array.isArray(s)) throw new Error("Value must be an array");
42
+ return s.includes(o[i]);
43
+ case "not_in":
44
+ if (!Array.isArray(s)) throw new Error("Value must be an array");
45
+ return !s.includes(o[i]);
46
+ case "contains":
47
+ return o[i].includes(s);
48
+ case "starts_with":
49
+ return o[i].startsWith(s);
50
+ case "ends_with":
51
+ return o[i].endsWith(s);
52
+ case "ne":
53
+ return o[i] !== s;
54
+ case "gt":
55
+ return s != null && o[i] > s;
56
+ case "gte":
57
+ return s != null && o[i] >= s;
58
+ case "lt":
59
+ return s != null && o[i] < s;
60
+ case "lte":
61
+ return s != null && o[i] <= s;
62
+ default:
63
+ return o[i] === s;
64
+ }
65
+ };
66
+ return h.filter((o) => {
67
+ if (!t.length || t.length === 0) return !0;
68
+ let d = p(o, t[0]);
69
+ for (const i of t) {
70
+ const s = p(o, i);
71
+ i.connector === "OR" ? d = d || s : d = d && s;
72
+ }
73
+ return d;
74
+ });
75
+ };
76
+ if (!c) return a(e, n);
77
+ const l = a(e, n), g = /* @__PURE__ */ new Map(), u = /* @__PURE__ */ new Map();
78
+ for (const t of l) {
79
+ const r = String(t.id);
80
+ if (!g.has(r)) {
81
+ const p = { ...t };
82
+ for (const [o, d] of Object.entries(c)) {
83
+ const i = A(o);
84
+ d.relation === "one-to-one" ? p[i] = null : (p[i] = [], u.set(`${r}-${o}`, /* @__PURE__ */ new Set()));
85
+ }
86
+ g.set(r, p);
87
+ }
88
+ const h = g.get(r);
89
+ for (const [p, o] of Object.entries(c)) {
90
+ const d = A(p), i = f[d];
91
+ if (!i)
92
+ throw I.error(`[MemoryAdapter] JoinOption model ${d} not found in the DB`, Object.keys(f)), new Error(`JoinOption model ${d} not found`);
93
+ const s = i.filter((b) => b[o.on.to] === t[o.on.from]);
94
+ if (o.relation === "one-to-one") h[d] = s[0] || null;
95
+ else {
96
+ const b = u.get(`${r}-${p}`), C = o.limit ?? 100;
97
+ let E = 0;
98
+ for (const O of s) {
99
+ if (E >= C) break;
100
+ b.has(O.id) || (h[d].push(O), b.add(O.id), E++);
101
+ }
102
+ }
103
+ }
104
+ }
105
+ return Array.from(g.values());
106
+ }
107
+ return {
108
+ create: async ({ model: e, data: n }) => ((M.advanced?.database?.useNumberId || M.advanced?.database?.generateId === "serial") && (n.id = f[A(e)].length + 1), f[e] || (f[e] = []), f[e].push(n), n),
109
+ findOne: async ({ model: e, where: n, join: c }) => {
110
+ const a = m(n, e, c);
111
+ if (c) {
112
+ const l = a;
113
+ return l.length ? l[0] : null;
114
+ }
115
+ return a[0] || null;
116
+ },
117
+ findMany: async ({ model: e, where: n, sortBy: c, limit: a, offset: l, join: g }) => {
118
+ let u = m(n || [], e, g);
119
+ if (g) {
120
+ const r = u;
121
+ if (!r.length) return [];
122
+ v(r, c, e);
123
+ let h = r;
124
+ return l !== void 0 && (h = h.slice(l)), a !== void 0 && (h = h.slice(0, a)), h;
125
+ }
126
+ let t = v(u, c, e);
127
+ return l !== void 0 && (t = t.slice(l)), a !== void 0 && (t = t.slice(0, a)), t || [];
128
+ },
129
+ count: async ({ model: e, where: n }) => n ? m(n, e).length : f[e].length,
130
+ update: async ({ model: e, where: n, update: c }) => {
131
+ const a = m(n, e);
132
+ return a.forEach((l) => {
133
+ Object.assign(l, c);
134
+ }), a[0] || null;
135
+ },
136
+ delete: async ({ model: e, where: n }) => {
137
+ const c = f[e], a = m(n, e);
138
+ f[e] = c.filter((l) => !a.includes(l));
139
+ },
140
+ deleteMany: async ({ model: e, where: n }) => {
141
+ const c = f[e], a = m(n, e);
142
+ let l = 0;
143
+ return f[e] = c.filter((g) => a.includes(g) ? (l++, !1) : !a.includes(g)), l;
144
+ },
145
+ updateMany({ model: e, where: n, update: c }) {
146
+ const a = m(n, e);
147
+ return a.forEach((l) => {
148
+ Object.assign(l, c);
149
+ }), a[0] || null;
150
+ }
151
+ };
152
+ }
153
+ });
154
+ return (y) => (w = y, j(y));
155
+ };
156
+ export {
157
+ D as memoryAdapter
158
+ };
159
+ //# sourceMappingURL=index-C8xwvJpf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-C8xwvJpf.js","sources":["../node_modules/better-auth/dist/adapters/memory-adapter/memory-adapter.mjs"],"sourcesContent":["import { logger } from \"@better-auth/core/env\";\nimport { createAdapterFactory } from \"@better-auth/core/db/adapter\";\n\n//#region src/adapters/memory-adapter/memory-adapter.ts\nconst memoryAdapter = (db, config) => {\n\tlet lazyOptions = null;\n\tlet adapterCreator = createAdapterFactory({\n\t\tconfig: {\n\t\t\tadapterId: \"memory\",\n\t\t\tadapterName: \"Memory Adapter\",\n\t\t\tusePlural: false,\n\t\t\tdebugLogs: config?.debugLogs || false,\n\t\t\tcustomTransformInput(props) {\n\t\t\t\tif ((props.options.advanced?.database?.useNumberId || props.options.advanced?.database?.generateId === \"serial\") && props.field === \"id\" && props.action === \"create\") return db[props.model].length + 1;\n\t\t\t\treturn props.data;\n\t\t\t},\n\t\t\ttransaction: async (cb) => {\n\t\t\t\tlet clone = structuredClone(db);\n\t\t\t\ttry {\n\t\t\t\t\treturn await cb(adapterCreator(lazyOptions));\n\t\t\t\t} catch (error) {\n\t\t\t\t\tObject.keys(db).forEach((key) => {\n\t\t\t\t\t\tdb[key] = clone[key];\n\t\t\t\t\t});\n\t\t\t\t\tthrow error;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tadapter: ({ getFieldName, options, getModelName }) => {\n\t\t\tconst applySortToRecords = (records, sortBy, model) => {\n\t\t\t\tif (!sortBy) return records;\n\t\t\t\treturn records.sort((a, b) => {\n\t\t\t\t\tconst field = getFieldName({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tfield: sortBy.field\n\t\t\t\t\t});\n\t\t\t\t\tconst aValue = a[field];\n\t\t\t\t\tconst bValue = b[field];\n\t\t\t\t\tlet comparison = 0;\n\t\t\t\t\tif (aValue == null && bValue == null) comparison = 0;\n\t\t\t\t\telse if (aValue == null) comparison = -1;\n\t\t\t\t\telse if (bValue == null) comparison = 1;\n\t\t\t\t\telse if (typeof aValue === \"string\" && typeof bValue === \"string\") comparison = aValue.localeCompare(bValue);\n\t\t\t\t\telse if (aValue instanceof Date && bValue instanceof Date) comparison = aValue.getTime() - bValue.getTime();\n\t\t\t\t\telse if (typeof aValue === \"number\" && typeof bValue === \"number\") comparison = aValue - bValue;\n\t\t\t\t\telse if (typeof aValue === \"boolean\" && typeof bValue === \"boolean\") comparison = aValue === bValue ? 0 : aValue ? 1 : -1;\n\t\t\t\t\telse comparison = String(aValue).localeCompare(String(bValue));\n\t\t\t\t\treturn sortBy.direction === \"asc\" ? comparison : -comparison;\n\t\t\t\t});\n\t\t\t};\n\t\t\tfunction convertWhereClause(where, model, join) {\n\t\t\t\tconst execute = (where$1, model$1) => {\n\t\t\t\t\tconst table = db[model$1];\n\t\t\t\t\tif (!table) {\n\t\t\t\t\t\tlogger.error(`[MemoryAdapter] Model ${model$1} not found in the DB`, Object.keys(db));\n\t\t\t\t\t\tthrow new Error(`Model ${model$1} not found`);\n\t\t\t\t\t}\n\t\t\t\t\tconst evalClause = (record, clause) => {\n\t\t\t\t\t\tconst { field, value, operator } = clause;\n\t\t\t\t\t\tswitch (operator) {\n\t\t\t\t\t\t\tcase \"in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\treturn value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"not_in\":\n\t\t\t\t\t\t\t\tif (!Array.isArray(value)) throw new Error(\"Value must be an array\");\n\t\t\t\t\t\t\t\treturn !value.includes(record[field]);\n\t\t\t\t\t\t\tcase \"contains\": return record[field].includes(value);\n\t\t\t\t\t\t\tcase \"starts_with\": return record[field].startsWith(value);\n\t\t\t\t\t\t\tcase \"ends_with\": return record[field].endsWith(value);\n\t\t\t\t\t\t\tcase \"ne\": return record[field] !== value;\n\t\t\t\t\t\t\tcase \"gt\": return value != null && Boolean(record[field] > value);\n\t\t\t\t\t\t\tcase \"gte\": return value != null && Boolean(record[field] >= value);\n\t\t\t\t\t\t\tcase \"lt\": return value != null && Boolean(record[field] < value);\n\t\t\t\t\t\t\tcase \"lte\": return value != null && Boolean(record[field] <= value);\n\t\t\t\t\t\t\tdefault: return record[field] === value;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\treturn table.filter((record) => {\n\t\t\t\t\t\tif (!where$1.length || where$1.length === 0) return true;\n\t\t\t\t\t\tlet result = evalClause(record, where$1[0]);\n\t\t\t\t\t\tfor (const clause of where$1) {\n\t\t\t\t\t\t\tconst clauseResult = evalClause(record, clause);\n\t\t\t\t\t\t\tif (clause.connector === \"OR\") result = result || clauseResult;\n\t\t\t\t\t\t\telse result = result && clauseResult;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t\tif (!join) return execute(where, model);\n\t\t\t\tconst baseRecords = execute(where, model);\n\t\t\t\tconst grouped = /* @__PURE__ */ new Map();\n\t\t\t\tconst seenIds = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const baseRecord of baseRecords) {\n\t\t\t\t\tconst baseId = String(baseRecord.id);\n\t\t\t\t\tif (!grouped.has(baseId)) {\n\t\t\t\t\t\tconst nested = { ...baseRecord };\n\t\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\t\tconst joinModelName = getModelName(joinModel);\n\t\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nested[joinModelName] = null;\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tnested[joinModelName] = [];\n\t\t\t\t\t\t\t\tseenIds.set(`${baseId}-${joinModel}`, /* @__PURE__ */ new Set());\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tgrouped.set(baseId, nested);\n\t\t\t\t\t}\n\t\t\t\t\tconst nestedEntry = grouped.get(baseId);\n\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\tconst joinModelName = getModelName(joinModel);\n\t\t\t\t\t\tconst joinTable = db[joinModelName];\n\t\t\t\t\t\tif (!joinTable) {\n\t\t\t\t\t\t\tlogger.error(`[MemoryAdapter] JoinOption model ${joinModelName} not found in the DB`, Object.keys(db));\n\t\t\t\t\t\t\tthrow new Error(`JoinOption model ${joinModelName} not found`);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst matchingRecords = joinTable.filter((joinRecord) => joinRecord[joinAttr.on.to] === baseRecord[joinAttr.on.from]);\n\t\t\t\t\t\tif (joinAttr.relation === \"one-to-one\") nestedEntry[joinModelName] = matchingRecords[0] || null;\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst seenSet = seenIds.get(`${baseId}-${joinModel}`);\n\t\t\t\t\t\t\tconst limit = joinAttr.limit ?? 100;\n\t\t\t\t\t\t\tlet count = 0;\n\t\t\t\t\t\t\tfor (const matchingRecord of matchingRecords) {\n\t\t\t\t\t\t\t\tif (count >= limit) break;\n\t\t\t\t\t\t\t\tif (!seenSet.has(matchingRecord.id)) {\n\t\t\t\t\t\t\t\t\tnestedEntry[joinModelName].push(matchingRecord);\n\t\t\t\t\t\t\t\t\tseenSet.add(matchingRecord.id);\n\t\t\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn Array.from(grouped.values());\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tcreate: async ({ model, data }) => {\n\t\t\t\t\tif (options.advanced?.database?.useNumberId || options.advanced?.database?.generateId === \"serial\") data.id = db[getModelName(model)].length + 1;\n\t\t\t\t\tif (!db[model]) db[model] = [];\n\t\t\t\t\tdb[model].push(data);\n\t\t\t\t\treturn data;\n\t\t\t\t},\n\t\t\t\tfindOne: async ({ model, where, join }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model, join);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return null;\n\t\t\t\t\t\treturn resArray[0];\n\t\t\t\t\t}\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tfindMany: async ({ model, where, sortBy, limit, offset, join }) => {\n\t\t\t\t\tlet res = convertWhereClause(where || [], model, join);\n\t\t\t\t\tif (join) {\n\t\t\t\t\t\tconst resArray = res;\n\t\t\t\t\t\tif (!resArray.length) return [];\n\t\t\t\t\t\tapplySortToRecords(resArray, sortBy, model);\n\t\t\t\t\t\tlet paginatedRecords = resArray;\n\t\t\t\t\t\tif (offset !== void 0) paginatedRecords = paginatedRecords.slice(offset);\n\t\t\t\t\t\tif (limit !== void 0) paginatedRecords = paginatedRecords.slice(0, limit);\n\t\t\t\t\t\treturn paginatedRecords;\n\t\t\t\t\t}\n\t\t\t\t\tlet table = applySortToRecords(res, sortBy, model);\n\t\t\t\t\tif (offset !== void 0) table = table.slice(offset);\n\t\t\t\t\tif (limit !== void 0) table = table.slice(0, limit);\n\t\t\t\t\treturn table || [];\n\t\t\t\t},\n\t\t\t\tcount: async ({ model, where }) => {\n\t\t\t\t\tif (where) return convertWhereClause(where, model).length;\n\t\t\t\t\treturn db[model].length;\n\t\t\t\t},\n\t\t\t\tupdate: async ({ model, where, update }) => {\n\t\t\t\t\tconst res = convertWhereClause(where, model);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t},\n\t\t\t\tdelete: async ({ model, where }) => {\n\t\t\t\t\tconst table = db[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model);\n\t\t\t\t\tdb[model] = table.filter((record) => !res.includes(record));\n\t\t\t\t},\n\t\t\t\tdeleteMany: async ({ model, where }) => {\n\t\t\t\t\tconst table = db[model];\n\t\t\t\t\tconst res = convertWhereClause(where, model);\n\t\t\t\t\tlet count = 0;\n\t\t\t\t\tdb[model] = table.filter((record) => {\n\t\t\t\t\t\tif (res.includes(record)) {\n\t\t\t\t\t\t\tcount++;\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn !res.includes(record);\n\t\t\t\t\t});\n\t\t\t\t\treturn count;\n\t\t\t\t},\n\t\t\t\tupdateMany({ model, where, update }) {\n\t\t\t\t\tconst res = convertWhereClause(where, model);\n\t\t\t\t\tres.forEach((record) => {\n\t\t\t\t\t\tObject.assign(record, update);\n\t\t\t\t\t});\n\t\t\t\t\treturn res[0] || null;\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t});\n\treturn (options) => {\n\t\tlazyOptions = options;\n\t\treturn adapterCreator(options);\n\t};\n};\n\n//#endregion\nexport { memoryAdapter };\n//# sourceMappingURL=memory-adapter.mjs.map"],"names":["memoryAdapter","db","config","lazyOptions","adapterCreator","createAdapterFactory","props","cb","clone","error","key","getFieldName","options","getModelName","applySortToRecords","records","sortBy","model","b","field","aValue","bValue","comparison","convertWhereClause","where","join","execute","where$1","model$1","table","logger","evalClause","record","clause","value","operator","result","clauseResult","baseRecords","grouped","seenIds","baseRecord","baseId","nested","joinModel","joinAttr","joinModelName","nestedEntry","joinTable","matchingRecords","joinRecord","seenSet","limit","count","matchingRecord","data","res","resArray","offset","paginatedRecords","update"],"mappings":"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","x_google_ignoreList":[0]}
@@ -0,0 +1,227 @@
1
+ import { c as N, s as S } from "./GraphQueries-BOAnio_H.js";
2
+ import { d as z, e as B } from "./GraphQueries-BOAnio_H.js";
3
+ const X = (F, m) => {
4
+ let O = null;
5
+ const k = (A) => ({ getFieldName: w, schema: I, getDefaultFieldName: G, getDefaultModelName: D, getFieldAttributes: L, getModelName: _ }) => {
6
+ const x = (o) => {
7
+ const u = [], i = [];
8
+ if (o) for (const [n, r] of Object.entries(o)) {
9
+ const t = I[D(n)]?.fields, [e, a] = n.includes(".") ? n.split(".") : [void 0, n];
10
+ if (t) {
11
+ t.id = { type: "string" };
12
+ for (const [s, d] of Object.entries(t))
13
+ u.push(S`${S.ref(`join_${a}`)}.${S.ref(d.fieldName || s)} as ${S.ref(`_joined_${a}_${d.fieldName || s}`)}`), i.push({
14
+ joinModel: n,
15
+ joinModelRef: a,
16
+ fieldName: d.fieldName || s
17
+ });
18
+ }
19
+ }
20
+ return {
21
+ allSelectsStr: i,
22
+ allSelects: u
23
+ };
24
+ }, v = async (o, u, i, n) => {
25
+ let r;
26
+ if (m?.type === "mysql") {
27
+ await u.execute();
28
+ const t = o.id ? "id" : n.length > 0 && n[0]?.field ? n[0].field : "id";
29
+ if (!o.id && n.length === 0)
30
+ return r = await A.selectFrom(i).selectAll().orderBy(w({
31
+ model: i,
32
+ field: t
33
+ }), "desc").limit(1).executeTakeFirst(), r;
34
+ const e = o[t] || n[0]?.value;
35
+ return r = await A.selectFrom(i).selectAll().orderBy(w({
36
+ model: i,
37
+ field: t
38
+ }), "desc").where(w({
39
+ model: i,
40
+ field: t
41
+ }), "=", e).limit(1).executeTakeFirst(), r;
42
+ }
43
+ return m?.type === "mssql" ? (r = await u.outputAll("inserted").executeTakeFirst(), r) : (r = await u.returningAll().executeTakeFirst(), r);
44
+ };
45
+ function M(o, u) {
46
+ if (!u) return {
47
+ and: null,
48
+ or: null
49
+ };
50
+ const i = {
51
+ and: [],
52
+ or: []
53
+ };
54
+ return u.forEach((n) => {
55
+ let { field: r, value: t, operator: e = "=", connector: a = "AND" } = n, s = t, d = w({
56
+ model: o,
57
+ field: r
58
+ });
59
+ const y = (f) => {
60
+ const l = `${o}.${d}`;
61
+ return e.toLowerCase() === "in" ? f(l, "in", Array.isArray(s) ? s : [s]) : e.toLowerCase() === "not_in" ? f(l, "not in", Array.isArray(s) ? s : [s]) : e === "contains" ? f(l, "like", `%${s}%`) : e === "starts_with" ? f(l, "like", `${s}%`) : e === "ends_with" ? f(l, "like", `%${s}`) : e === "eq" ? f(l, "=", s) : e === "ne" ? f(l, "<>", s) : e === "gt" ? f(l, ">", s) : e === "gte" ? f(l, ">=", s) : e === "lt" ? f(l, "<", s) : e === "lte" ? f(l, "<=", s) : f(l, e, s);
62
+ };
63
+ a === "OR" ? i.or.push(y) : i.and.push(y);
64
+ }), {
65
+ and: i.and.length ? i.and : null,
66
+ or: i.or.length ? i.or : null
67
+ };
68
+ }
69
+ function R(o, u, i) {
70
+ if (!u || !o.length) return o;
71
+ const n = /* @__PURE__ */ new Map();
72
+ for (const t of o) {
73
+ const e = {}, a = {};
74
+ for (const [y] of Object.entries(u)) a[_(y)] = {};
75
+ for (const [y, f] of Object.entries(t)) {
76
+ const l = String(y);
77
+ let c = !1;
78
+ for (const { joinModel: p, fieldName: h, joinModelRef: j } of i) if (l === `_joined_${j}_${h}`) {
79
+ a[_(p)][w({
80
+ model: p,
81
+ field: h
82
+ })] = f, c = !0;
83
+ break;
84
+ }
85
+ c || (e[y] = f);
86
+ }
87
+ const s = e.id;
88
+ if (!s) continue;
89
+ if (!n.has(s)) {
90
+ const y = { ...e };
91
+ for (const [f, l] of Object.entries(u)) y[_(f)] = l.relation === "one-to-one" ? null : [];
92
+ n.set(s, y);
93
+ }
94
+ const d = n.get(s);
95
+ for (const [y, f] of Object.entries(u)) {
96
+ const l = f.relation === "one-to-one", c = f.limit ?? 100, p = a[_(y)], h = p && Object.keys(p).length > 0 && Object.values(p).some((j) => j != null);
97
+ if (l) d[_(y)] = h ? p : null;
98
+ else {
99
+ const j = _(y);
100
+ if (Array.isArray(d[j]) && h) {
101
+ if (d[j].length >= c) continue;
102
+ const E = w({
103
+ model: y,
104
+ field: "id"
105
+ }), T = p[E];
106
+ T ? !d[j].some((J) => J[E] === T) && d[j].length < c && d[j].push(p) : d[j].length < c && d[j].push(p);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ let r = Array.from(n.values());
112
+ for (const t of r) for (const [e, a] of Object.entries(u)) if (a.relation !== "one-to-one") {
113
+ const s = _(e);
114
+ if (Array.isArray(t[s])) {
115
+ const d = a.limit ?? 100;
116
+ t[s].length > d && (t[s] = t[s].slice(0, d));
117
+ }
118
+ }
119
+ return r;
120
+ }
121
+ return {
122
+ async create({ data: o, model: u }) {
123
+ return await v(o, A.insertInto(u).values(o), u, []);
124
+ },
125
+ async findOne({ model: o, where: u, select: i, join: n }) {
126
+ const { and: r, or: t } = M(o, u);
127
+ let e = A.selectFrom((f) => {
128
+ let l = f.selectFrom(o);
129
+ return r && (l = l.where((c) => c.and(r.map((p) => p(c))))), t && (l = l.where((c) => c.or(t.map((p) => p(c))))), l.selectAll().as("primary");
130
+ }).selectAll("primary");
131
+ if (n) for (const [f, l] of Object.entries(n)) {
132
+ const [c, p] = f.includes(".") ? f.split(".") : [void 0, f];
133
+ e = e.leftJoin(`${f} as join_${p}`, (h) => h.onRef(`join_${p}.${l.on.to}`, "=", `primary.${l.on.from}`));
134
+ }
135
+ const { allSelectsStr: a, allSelects: s } = x(n);
136
+ e = e.select(s);
137
+ const d = await e.execute();
138
+ if (!d || !Array.isArray(d) || d.length === 0) return null;
139
+ const y = d[0];
140
+ return n ? R(d, n, a)[0] : y;
141
+ },
142
+ async findMany({ model: o, where: u, limit: i, offset: n, sortBy: r, join: t }) {
143
+ const { and: e, or: a } = M(o, u);
144
+ let s = A.selectFrom((l) => {
145
+ let c = l.selectFrom(o);
146
+ return m?.type === "mssql" ? n !== void 0 ? (r || (c = c.orderBy(w({
147
+ model: o,
148
+ field: "id"
149
+ }))), c = c.offset(n).fetch(i || 100)) : i !== void 0 && (c = c.top(i)) : (i !== void 0 && (c = c.limit(i)), n !== void 0 && (c = c.offset(n))), r?.field && (c = c.orderBy(`${w({
150
+ model: o,
151
+ field: r.field
152
+ })}`, r.direction)), e && (c = c.where((p) => p.and(e.map((h) => h(p))))), a && (c = c.where((p) => p.or(a.map((h) => h(p))))), c.selectAll().as("primary");
153
+ }).selectAll("primary");
154
+ if (t) for (const [l, c] of Object.entries(t)) {
155
+ const [p, h] = l.includes(".") ? l.split(".") : [void 0, l];
156
+ s = s.leftJoin(`${l} as join_${h}`, (j) => j.onRef(`join_${h}.${c.on.to}`, "=", `primary.${c.on.from}`));
157
+ }
158
+ const { allSelectsStr: d, allSelects: y } = x(t);
159
+ s = s.select(y), r?.field && (s = s.orderBy(`${w({
160
+ model: o,
161
+ field: r.field
162
+ })}`, r.direction));
163
+ const f = await s.execute();
164
+ return f ? t ? R(f, t, d) : f : [];
165
+ },
166
+ async update({ model: o, where: u, update: i }) {
167
+ const { and: n, or: r } = M(o, u);
168
+ let t = A.updateTable(o).set(i);
169
+ return n && (t = t.where((e) => e.and(n.map((a) => a(e))))), r && (t = t.where((e) => e.or(r.map((a) => a(e))))), await v(i, t, o, u);
170
+ },
171
+ async updateMany({ model: o, where: u, update: i }) {
172
+ const { and: n, or: r } = M(o, u);
173
+ let t = A.updateTable(o).set(i);
174
+ n && (t = t.where((a) => a.and(n.map((s) => s(a))))), r && (t = t.where((a) => a.or(r.map((s) => s(a)))));
175
+ const e = (await t.executeTakeFirst()).numUpdatedRows;
176
+ return e > Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : Number(e);
177
+ },
178
+ async count({ model: o, where: u }) {
179
+ const { and: i, or: n } = M(o, u);
180
+ let r = A.selectFrom(o).select(A.fn.count("id").as("count"));
181
+ i && (r = r.where((e) => e.and(i.map((a) => a(e))))), n && (r = r.where((e) => e.or(n.map((a) => a(e)))));
182
+ const t = await r.execute();
183
+ return typeof t[0].count == "number" ? t[0].count : typeof t[0].count == "bigint" ? Number(t[0].count) : parseInt(t[0].count);
184
+ },
185
+ async delete({ model: o, where: u }) {
186
+ const { and: i, or: n } = M(o, u);
187
+ let r = A.deleteFrom(o);
188
+ i && (r = r.where((t) => t.and(i.map((e) => e(t))))), n && (r = r.where((t) => t.or(n.map((e) => e(t))))), await r.execute();
189
+ },
190
+ async deleteMany({ model: o, where: u }) {
191
+ const { and: i, or: n } = M(o, u);
192
+ let r = A.deleteFrom(o);
193
+ i && (r = r.where((e) => e.and(i.map((a) => a(e))))), n && (r = r.where((e) => e.or(n.map((a) => a(e)))));
194
+ const t = (await r.executeTakeFirst()).numDeletedRows;
195
+ return t > Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : Number(t);
196
+ },
197
+ options: m
198
+ };
199
+ };
200
+ let q = null;
201
+ q = {
202
+ config: {
203
+ adapterId: "kysely",
204
+ adapterName: "Kysely Adapter",
205
+ usePlural: m?.usePlural,
206
+ debugLogs: m?.debugLogs,
207
+ supportsBooleans: !(m?.type === "sqlite" || m?.type === "mssql" || m?.type === "mysql" || !m?.type),
208
+ supportsDates: !(m?.type === "sqlite" || m?.type === "mssql" || !m?.type),
209
+ supportsJSON: m?.type === "postgres",
210
+ supportsArrays: !1,
211
+ supportsUUIDs: m?.type === "postgres",
212
+ transaction: m?.transaction ? (A) => F.transaction().execute((w) => A(N({
213
+ config: q.config,
214
+ adapter: k(w)
215
+ })(O))) : !1
216
+ },
217
+ adapter: k(F)
218
+ };
219
+ const $ = N(q);
220
+ return (A) => (O = A, $(A));
221
+ };
222
+ export {
223
+ z as createKyselyAdapter,
224
+ B as getKyselyDatabaseType,
225
+ X as kyselyAdapter
226
+ };
227
+ //# sourceMappingURL=index-CbycwLQM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-CbycwLQM.js","sources":["../node_modules/better-auth/dist/adapters/kysely-adapter/kysely-adapter.mjs"],"sourcesContent":["import { sql } from \"kysely\";\nimport { createAdapterFactory } from \"@better-auth/core/db/adapter\";\n\n//#region src/adapters/kysely-adapter/kysely-adapter.ts\nconst kyselyAdapter = (db, config) => {\n\tlet lazyOptions = null;\n\tconst createCustomAdapter = (db$1) => {\n\t\treturn ({ getFieldName, schema, getDefaultFieldName, getDefaultModelName, getFieldAttributes, getModelName }) => {\n\t\t\tconst selectAllJoins = (join) => {\n\t\t\t\tconst allSelects = [];\n\t\t\t\tconst allSelectsStr = [];\n\t\t\t\tif (join) for (const [joinModel, _] of Object.entries(join)) {\n\t\t\t\t\tconst fields = schema[getDefaultModelName(joinModel)]?.fields;\n\t\t\t\t\tconst [_joinModelSchema, joinModelName] = joinModel.includes(\".\") ? joinModel.split(\".\") : [void 0, joinModel];\n\t\t\t\t\tif (!fields) continue;\n\t\t\t\t\tfields.id = { type: \"string\" };\n\t\t\t\t\tfor (const [field, fieldAttr] of Object.entries(fields)) {\n\t\t\t\t\t\tallSelects.push(sql`${sql.ref(`join_${joinModelName}`)}.${sql.ref(fieldAttr.fieldName || field)} as ${sql.ref(`_joined_${joinModelName}_${fieldAttr.fieldName || field}`)}`);\n\t\t\t\t\t\tallSelectsStr.push({\n\t\t\t\t\t\t\tjoinModel,\n\t\t\t\t\t\t\tjoinModelRef: joinModelName,\n\t\t\t\t\t\t\tfieldName: fieldAttr.fieldName || field\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn {\n\t\t\t\t\tallSelectsStr,\n\t\t\t\t\tallSelects\n\t\t\t\t};\n\t\t\t};\n\t\t\tconst withReturning = async (values, builder, model, where) => {\n\t\t\t\tlet res;\n\t\t\t\tif (config?.type === \"mysql\") {\n\t\t\t\t\tawait builder.execute();\n\t\t\t\t\tconst field = values.id ? \"id\" : where.length > 0 && where[0]?.field ? where[0].field : \"id\";\n\t\t\t\t\tif (!values.id && where.length === 0) {\n\t\t\t\t\t\tres = await db$1.selectFrom(model).selectAll().orderBy(getFieldName({\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tfield\n\t\t\t\t\t\t}), \"desc\").limit(1).executeTakeFirst();\n\t\t\t\t\t\treturn res;\n\t\t\t\t\t}\n\t\t\t\t\tconst value = values[field] || where[0]?.value;\n\t\t\t\t\tres = await db$1.selectFrom(model).selectAll().orderBy(getFieldName({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tfield\n\t\t\t\t\t}), \"desc\").where(getFieldName({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tfield\n\t\t\t\t\t}), \"=\", value).limit(1).executeTakeFirst();\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tif (config?.type === \"mssql\") {\n\t\t\t\t\tres = await builder.outputAll(\"inserted\").executeTakeFirst();\n\t\t\t\t\treturn res;\n\t\t\t\t}\n\t\t\t\tres = await builder.returningAll().executeTakeFirst();\n\t\t\t\treturn res;\n\t\t\t};\n\t\t\tfunction convertWhereClause(model, w) {\n\t\t\t\tif (!w) return {\n\t\t\t\t\tand: null,\n\t\t\t\t\tor: null\n\t\t\t\t};\n\t\t\t\tconst conditions = {\n\t\t\t\t\tand: [],\n\t\t\t\t\tor: []\n\t\t\t\t};\n\t\t\t\tw.forEach((condition) => {\n\t\t\t\t\tlet { field: _field, value: _value, operator = \"=\", connector = \"AND\" } = condition;\n\t\t\t\t\tlet value = _value;\n\t\t\t\t\tlet field = getFieldName({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tfield: _field\n\t\t\t\t\t});\n\t\t\t\t\tconst expr = (eb) => {\n\t\t\t\t\t\tconst f = `${model}.${field}`;\n\t\t\t\t\t\tif (operator.toLowerCase() === \"in\") return eb(f, \"in\", Array.isArray(value) ? value : [value]);\n\t\t\t\t\t\tif (operator.toLowerCase() === \"not_in\") return eb(f, \"not in\", Array.isArray(value) ? value : [value]);\n\t\t\t\t\t\tif (operator === \"contains\") return eb(f, \"like\", `%${value}%`);\n\t\t\t\t\t\tif (operator === \"starts_with\") return eb(f, \"like\", `${value}%`);\n\t\t\t\t\t\tif (operator === \"ends_with\") return eb(f, \"like\", `%${value}`);\n\t\t\t\t\t\tif (operator === \"eq\") return eb(f, \"=\", value);\n\t\t\t\t\t\tif (operator === \"ne\") return eb(f, \"<>\", value);\n\t\t\t\t\t\tif (operator === \"gt\") return eb(f, \">\", value);\n\t\t\t\t\t\tif (operator === \"gte\") return eb(f, \">=\", value);\n\t\t\t\t\t\tif (operator === \"lt\") return eb(f, \"<\", value);\n\t\t\t\t\t\tif (operator === \"lte\") return eb(f, \"<=\", value);\n\t\t\t\t\t\treturn eb(f, operator, value);\n\t\t\t\t\t};\n\t\t\t\t\tif (connector === \"OR\") conditions.or.push(expr);\n\t\t\t\t\telse conditions.and.push(expr);\n\t\t\t\t});\n\t\t\t\treturn {\n\t\t\t\t\tand: conditions.and.length ? conditions.and : null,\n\t\t\t\t\tor: conditions.or.length ? conditions.or : null\n\t\t\t\t};\n\t\t\t}\n\t\t\tfunction processJoinedResults(rows, joinConfig, allSelectsStr) {\n\t\t\t\tif (!joinConfig || !rows.length) return rows;\n\t\t\t\tconst groupedByMainId = /* @__PURE__ */ new Map();\n\t\t\t\tfor (const currentRow of rows) {\n\t\t\t\t\tconst mainModelFields = {};\n\t\t\t\t\tconst joinedModelFields = {};\n\t\t\t\t\tfor (const [joinModel] of Object.entries(joinConfig)) joinedModelFields[getModelName(joinModel)] = {};\n\t\t\t\t\tfor (const [key, value] of Object.entries(currentRow)) {\n\t\t\t\t\t\tconst keyStr = String(key);\n\t\t\t\t\t\tlet assigned = false;\n\t\t\t\t\t\tfor (const { joinModel, fieldName, joinModelRef } of allSelectsStr) if (keyStr === `_joined_${joinModelRef}_${fieldName}`) {\n\t\t\t\t\t\t\tjoinedModelFields[getModelName(joinModel)][getFieldName({\n\t\t\t\t\t\t\t\tmodel: joinModel,\n\t\t\t\t\t\t\t\tfield: fieldName\n\t\t\t\t\t\t\t})] = value;\n\t\t\t\t\t\t\tassigned = true;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!assigned) mainModelFields[key] = value;\n\t\t\t\t\t}\n\t\t\t\t\tconst mainId = mainModelFields.id;\n\t\t\t\t\tif (!mainId) continue;\n\t\t\t\t\tif (!groupedByMainId.has(mainId)) {\n\t\t\t\t\t\tconst entry$1 = { ...mainModelFields };\n\t\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(joinConfig)) entry$1[getModelName(joinModel)] = joinAttr.relation === \"one-to-one\" ? null : [];\n\t\t\t\t\t\tgroupedByMainId.set(mainId, entry$1);\n\t\t\t\t\t}\n\t\t\t\t\tconst entry = groupedByMainId.get(mainId);\n\t\t\t\t\tfor (const [joinModel, joinAttr] of Object.entries(joinConfig)) {\n\t\t\t\t\t\tconst isUnique = joinAttr.relation === \"one-to-one\";\n\t\t\t\t\t\tconst limit = joinAttr.limit ?? 100;\n\t\t\t\t\t\tconst joinedObj = joinedModelFields[getModelName(joinModel)];\n\t\t\t\t\t\tconst hasData = joinedObj && Object.keys(joinedObj).length > 0 && Object.values(joinedObj).some((value) => value !== null && value !== void 0);\n\t\t\t\t\t\tif (isUnique) entry[getModelName(joinModel)] = hasData ? joinedObj : null;\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tconst joinModelName = getModelName(joinModel);\n\t\t\t\t\t\t\tif (Array.isArray(entry[joinModelName]) && hasData) {\n\t\t\t\t\t\t\t\tif (entry[joinModelName].length >= limit) continue;\n\t\t\t\t\t\t\t\tconst idFieldName = getFieldName({\n\t\t\t\t\t\t\t\t\tmodel: joinModel,\n\t\t\t\t\t\t\t\t\tfield: \"id\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tconst joinedId = joinedObj[idFieldName];\n\t\t\t\t\t\t\t\tif (joinedId) {\n\t\t\t\t\t\t\t\t\tif (!entry[joinModelName].some((item) => item[idFieldName] === joinedId) && entry[joinModelName].length < limit) entry[joinModelName].push(joinedObj);\n\t\t\t\t\t\t\t\t} else if (entry[joinModelName].length < limit) entry[joinModelName].push(joinedObj);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tlet result = Array.from(groupedByMainId.values());\n\t\t\t\tfor (const entry of result) for (const [joinModel, joinAttr] of Object.entries(joinConfig)) if (joinAttr.relation !== \"one-to-one\") {\n\t\t\t\t\tconst joinModelName = getModelName(joinModel);\n\t\t\t\t\tif (Array.isArray(entry[joinModelName])) {\n\t\t\t\t\t\tconst limit = joinAttr.limit ?? 100;\n\t\t\t\t\t\tif (entry[joinModelName].length > limit) entry[joinModelName] = entry[joinModelName].slice(0, limit);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn {\n\t\t\t\tasync create({ data, model }) {\n\t\t\t\t\treturn await withReturning(data, db$1.insertInto(model).values(data), model, []);\n\t\t\t\t},\n\t\t\t\tasync findOne({ model, where, select, join }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.selectFrom((eb) => {\n\t\t\t\t\t\tlet b = eb.selectFrom(model);\n\t\t\t\t\t\tif (and) b = b.where((eb$1) => eb$1.and(and.map((expr) => expr(eb$1))));\n\t\t\t\t\t\tif (or) b = b.where((eb$1) => eb$1.or(or.map((expr) => expr(eb$1))));\n\t\t\t\t\t\treturn b.selectAll().as(\"primary\");\n\t\t\t\t\t}).selectAll(\"primary\");\n\t\t\t\t\tif (join) for (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\tconst [_joinModelSchema, joinModelName] = joinModel.includes(\".\") ? joinModel.split(\".\") : [void 0, joinModel];\n\t\t\t\t\t\tquery = query.leftJoin(`${joinModel} as join_${joinModelName}`, (join$1) => join$1.onRef(`join_${joinModelName}.${joinAttr.on.to}`, \"=\", `primary.${joinAttr.on.from}`));\n\t\t\t\t\t}\n\t\t\t\t\tconst { allSelectsStr, allSelects } = selectAllJoins(join);\n\t\t\t\t\tquery = query.select(allSelects);\n\t\t\t\t\tconst res = await query.execute();\n\t\t\t\t\tif (!res || !Array.isArray(res) || res.length === 0) return null;\n\t\t\t\t\tconst row = res[0];\n\t\t\t\t\tif (join) return processJoinedResults(res, join, allSelectsStr)[0];\n\t\t\t\t\treturn row;\n\t\t\t\t},\n\t\t\t\tasync findMany({ model, where, limit, offset, sortBy, join }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.selectFrom((eb) => {\n\t\t\t\t\t\tlet b = eb.selectFrom(model);\n\t\t\t\t\t\tif (config?.type === \"mssql\") {\n\t\t\t\t\t\t\tif (offset !== void 0) {\n\t\t\t\t\t\t\t\tif (!sortBy) b = b.orderBy(getFieldName({\n\t\t\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\t\t\tfield: \"id\"\n\t\t\t\t\t\t\t\t}));\n\t\t\t\t\t\t\t\tb = b.offset(offset).fetch(limit || 100);\n\t\t\t\t\t\t\t} else if (limit !== void 0) b = b.top(limit);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tif (limit !== void 0) b = b.limit(limit);\n\t\t\t\t\t\t\tif (offset !== void 0) b = b.offset(offset);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (sortBy?.field) b = b.orderBy(`${getFieldName({\n\t\t\t\t\t\t\tmodel,\n\t\t\t\t\t\t\tfield: sortBy.field\n\t\t\t\t\t\t})}`, sortBy.direction);\n\t\t\t\t\t\tif (and) b = b.where((eb$1) => eb$1.and(and.map((expr) => expr(eb$1))));\n\t\t\t\t\t\tif (or) b = b.where((eb$1) => eb$1.or(or.map((expr) => expr(eb$1))));\n\t\t\t\t\t\treturn b.selectAll().as(\"primary\");\n\t\t\t\t\t}).selectAll(\"primary\");\n\t\t\t\t\tif (join) for (const [joinModel, joinAttr] of Object.entries(join)) {\n\t\t\t\t\t\tconst [_joinModelSchema, joinModelName] = joinModel.includes(\".\") ? joinModel.split(\".\") : [void 0, joinModel];\n\t\t\t\t\t\tquery = query.leftJoin(`${joinModel} as join_${joinModelName}`, (join$1) => join$1.onRef(`join_${joinModelName}.${joinAttr.on.to}`, \"=\", `primary.${joinAttr.on.from}`));\n\t\t\t\t\t}\n\t\t\t\t\tconst { allSelectsStr, allSelects } = selectAllJoins(join);\n\t\t\t\t\tquery = query.select(allSelects);\n\t\t\t\t\tif (sortBy?.field) query = query.orderBy(`${getFieldName({\n\t\t\t\t\t\tmodel,\n\t\t\t\t\t\tfield: sortBy.field\n\t\t\t\t\t})}`, sortBy.direction);\n\t\t\t\t\tconst res = await query.execute();\n\t\t\t\t\tif (!res) return [];\n\t\t\t\t\tif (join) return processJoinedResults(res, join, allSelectsStr);\n\t\t\t\t\treturn res;\n\t\t\t\t},\n\t\t\t\tasync update({ model, where, update: values }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.updateTable(model).set(values);\n\t\t\t\t\tif (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));\n\t\t\t\t\tif (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));\n\t\t\t\t\treturn await withReturning(values, query, model, where);\n\t\t\t\t},\n\t\t\t\tasync updateMany({ model, where, update: values }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.updateTable(model).set(values);\n\t\t\t\t\tif (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));\n\t\t\t\t\tif (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));\n\t\t\t\t\tconst res = (await query.executeTakeFirst()).numUpdatedRows;\n\t\t\t\t\treturn res > Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : Number(res);\n\t\t\t\t},\n\t\t\t\tasync count({ model, where }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.selectFrom(model).select(db$1.fn.count(\"id\").as(\"count\"));\n\t\t\t\t\tif (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));\n\t\t\t\t\tif (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));\n\t\t\t\t\tconst res = await query.execute();\n\t\t\t\t\tif (typeof res[0].count === \"number\") return res[0].count;\n\t\t\t\t\tif (typeof res[0].count === \"bigint\") return Number(res[0].count);\n\t\t\t\t\treturn parseInt(res[0].count);\n\t\t\t\t},\n\t\t\t\tasync delete({ model, where }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.deleteFrom(model);\n\t\t\t\t\tif (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));\n\t\t\t\t\tif (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));\n\t\t\t\t\tawait query.execute();\n\t\t\t\t},\n\t\t\t\tasync deleteMany({ model, where }) {\n\t\t\t\t\tconst { and, or } = convertWhereClause(model, where);\n\t\t\t\t\tlet query = db$1.deleteFrom(model);\n\t\t\t\t\tif (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));\n\t\t\t\t\tif (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));\n\t\t\t\t\tconst res = (await query.executeTakeFirst()).numDeletedRows;\n\t\t\t\t\treturn res > Number.MAX_SAFE_INTEGER ? Number.MAX_SAFE_INTEGER : Number(res);\n\t\t\t\t},\n\t\t\t\toptions: config\n\t\t\t};\n\t\t};\n\t};\n\tlet adapterOptions = null;\n\tadapterOptions = {\n\t\tconfig: {\n\t\t\tadapterId: \"kysely\",\n\t\t\tadapterName: \"Kysely Adapter\",\n\t\t\tusePlural: config?.usePlural,\n\t\t\tdebugLogs: config?.debugLogs,\n\t\t\tsupportsBooleans: config?.type === \"sqlite\" || config?.type === \"mssql\" || config?.type === \"mysql\" || !config?.type ? false : true,\n\t\t\tsupportsDates: config?.type === \"sqlite\" || config?.type === \"mssql\" || !config?.type ? false : true,\n\t\t\tsupportsJSON: config?.type === \"postgres\" ? true : false,\n\t\t\tsupportsArrays: false,\n\t\t\tsupportsUUIDs: config?.type === \"postgres\" ? true : false,\n\t\t\ttransaction: config?.transaction ? (cb) => db.transaction().execute((trx) => {\n\t\t\t\treturn cb(createAdapterFactory({\n\t\t\t\t\tconfig: adapterOptions.config,\n\t\t\t\t\tadapter: createCustomAdapter(trx)\n\t\t\t\t})(lazyOptions));\n\t\t\t}) : false\n\t\t},\n\t\tadapter: createCustomAdapter(db)\n\t};\n\tconst adapter = createAdapterFactory(adapterOptions);\n\treturn (options) => {\n\t\tlazyOptions = options;\n\t\treturn adapter(options);\n\t};\n};\n\n//#endregion\nexport { kyselyAdapter };\n//# sourceMappingURL=kysely-adapter.mjs.map"],"names":["kyselyAdapter","db","config","lazyOptions","createCustomAdapter","db$1","getFieldName","schema","getDefaultFieldName","getDefaultModelName","getFieldAttributes","getModelName","selectAllJoins","join","allSelects","allSelectsStr","joinModel","_","fields","_joinModelSchema","joinModelName","field","fieldAttr","sql","withReturning","values","builder","model","where","res","value","convertWhereClause","w","conditions","condition","_field","_value","operator","connector","expr","eb","f","processJoinedResults","rows","joinConfig","groupedByMainId","currentRow","mainModelFields","joinedModelFields","key","keyStr","assigned","fieldName","joinModelRef","mainId","entry$1","joinAttr","entry","isUnique","limit","joinedObj","hasData","idFieldName","joinedId","item","result","data","select","and","or","query","b","eb$1","join$1","row","offset","sortBy","adapterOptions","cb","trx","createAdapterFactory","adapter","options"],"mappings":"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","x_google_ignoreList":[0]}