faire-auth 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +661 -0
- package/README.md +34 -0
- package/dist/access-B5bBI4uT.mjs +39 -0
- package/dist/access-Crt-IJ2P.cjs +51 -0
- package/dist/adapter-factory-BXei1QRX.mjs +881 -0
- package/dist/adapter-factory-DT-_2aHJ.cjs +893 -0
- package/dist/adapters/drizzle-adapter/index.cjs +208 -0
- package/dist/adapters/drizzle-adapter/index.d.cts +48 -0
- package/dist/adapters/drizzle-adapter/index.d.mts +48 -0
- package/dist/adapters/drizzle-adapter/index.mjs +207 -0
- package/dist/adapters/index.cjs +23 -0
- package/dist/adapters/index.d.cts +157 -0
- package/dist/adapters/index.d.mts +157 -0
- package/dist/adapters/index.mjs +17 -0
- package/dist/adapters/kysely-adapter/index.cjs +11 -0
- package/dist/adapters/kysely-adapter/index.d.cts +52 -0
- package/dist/adapters/kysely-adapter/index.d.mts +52 -0
- package/dist/adapters/kysely-adapter/index.mjs +9 -0
- package/dist/adapters/memory-adapter/index.cjs +9 -0
- package/dist/adapters/memory-adapter/index.d.cts +15 -0
- package/dist/adapters/memory-adapter/index.d.mts +15 -0
- package/dist/adapters/memory-adapter/index.mjs +9 -0
- package/dist/adapters/mongodb-adapter/index.cjs +9 -0
- package/dist/adapters/mongodb-adapter/index.d.cts +4 -0
- package/dist/adapters/mongodb-adapter/index.d.mts +4 -0
- package/dist/adapters/mongodb-adapter/index.mjs +9 -0
- package/dist/adapters/prisma-adapter/index.cjs +156 -0
- package/dist/adapters/prisma-adapter/index.d.cts +35 -0
- package/dist/adapters/prisma-adapter/index.d.mts +35 -0
- package/dist/adapters/prisma-adapter/index.mjs +155 -0
- package/dist/adapters/test.cjs +797 -0
- package/dist/adapters/test.d.cts +82 -0
- package/dist/adapters/test.d.mts +82 -0
- package/dist/adapters/test.mjs +793 -0
- package/dist/api/index.cjs +20 -0
- package/dist/api/index.d.cts +3 -0
- package/dist/api/index.d.mts +3 -0
- package/dist/api/index.mjs +20 -0
- package/dist/api/middleware/index.cjs +16 -0
- package/dist/api/middleware/index.d.cts +16 -0
- package/dist/api/middleware/index.d.mts +16 -0
- package/dist/api/middleware/index.mjs +11 -0
- package/dist/api-Bm89BLgN.cjs +1899 -0
- package/dist/api-_B7qO28y.mjs +1892 -0
- package/dist/auth-Bo9PDt5j.cjs +739 -0
- package/dist/auth-Ds4AG4h4.mjs +709 -0
- package/dist/bearer-0SeEmaS4.mjs +54 -0
- package/dist/bearer-CHeREcGT.cjs +60 -0
- package/dist/bun-sqlite-dialect-CfkBo2v5.mjs +155 -0
- package/dist/bun-sqlite-dialect-wuaC2-gh.cjs +156 -0
- package/dist/chunk-Ceigfy4P.mjs +39 -0
- package/dist/chunk-oakRccI5.cjs +60 -0
- package/dist/client/index.cjs +22 -0
- package/dist/client/index.d.cts +8 -0
- package/dist/client/index.d.mts +8 -0
- package/dist/client/index.mjs +19 -0
- package/dist/client/lynx/index.cjs +79 -0
- package/dist/client/lynx/index.d.cts +156 -0
- package/dist/client/lynx/index.d.mts +156 -0
- package/dist/client/lynx/index.mjs +76 -0
- package/dist/client/plugins/index.cjs +11 -0
- package/dist/client/plugins/index.d.cts +17 -0
- package/dist/client/plugins/index.d.mts +17 -0
- package/dist/client/plugins/index.mjs +10 -0
- package/dist/client/react/index.cjs +79 -0
- package/dist/client/react/index.d.cts +156 -0
- package/dist/client/react/index.d.mts +156 -0
- package/dist/client/react/index.mjs +76 -0
- package/dist/client/solid/index.cjs +51 -0
- package/dist/client/solid/index.d.cts +90 -0
- package/dist/client/solid/index.d.mts +90 -0
- package/dist/client/solid/index.mjs +50 -0
- package/dist/client/svelte/index.cjs +28 -0
- package/dist/client/svelte/index.d.cts +110 -0
- package/dist/client/svelte/index.d.mts +110 -0
- package/dist/client/svelte/index.mjs +28 -0
- package/dist/client/vue/index.cjs +68 -0
- package/dist/client/vue/index.d.cts +123 -0
- package/dist/client/vue/index.d.mts +123 -0
- package/dist/client/vue/index.mjs +67 -0
- package/dist/cookies-B5xeA6i8.cjs +456 -0
- package/dist/cookies-Ch1JfQIz.mjs +367 -0
- package/dist/crypto/index.cjs +11 -0
- package/dist/crypto/index.d.cts +22 -0
- package/dist/crypto/index.d.mts +22 -0
- package/dist/crypto/index.mjs +5 -0
- package/dist/crypto-CcTxYH82.cjs +57 -0
- package/dist/crypto-CyQRFtkq.mjs +41 -0
- package/dist/db/index.cjs +40 -0
- package/dist/db/index.d.cts +4 -0
- package/dist/db/index.d.mts +4 -0
- package/dist/db/index.mjs +16 -0
- package/dist/db-BTKyYu-_.cjs +1180 -0
- package/dist/db-xiJtoDgz.mjs +1119 -0
- package/dist/defu-B0Svx_x4.cjs +34 -0
- package/dist/defu-SZkpHhbR.mjs +28 -0
- package/dist/email-verification-C-AsfJsb.cjs +247 -0
- package/dist/email-verification-CWhj2qfb.mjs +228 -0
- package/dist/hono-BEq1NYVX.cjs +526 -0
- package/dist/hono-Cdukwu5K.cjs +13 -0
- package/dist/hono-CoKYWnXA.mjs +7 -0
- package/dist/hono-Covz10jU.mjs +508 -0
- package/dist/hono-DOM31WQz.d.cts +18 -0
- package/dist/hono-DuE14mmj.d.mts +18 -0
- package/dist/index-B-WeOMzg.d.cts +13350 -0
- package/dist/index-B09P9p5_.d.cts +33 -0
- package/dist/index-B5_0QTLg.d.mts +3 -0
- package/dist/index-B7SKyR_a.d.cts +3 -0
- package/dist/index-BVHscLQl.d.cts +992 -0
- package/dist/index-C2-2QDyS.d.cts +35 -0
- package/dist/index-CTwrVluH.d.mts +41 -0
- package/dist/index-CWAqWfoZ.d.cts +27 -0
- package/dist/index-CYSShrFx.d.mts +27 -0
- package/dist/index-Qu-iJGNr.d.mts +992 -0
- package/dist/index-cs4Sh0En.d.cts +41 -0
- package/dist/index-jlessPI0.d.mts +13350 -0
- package/dist/index-ppgcFe12.d.mts +33 -0
- package/dist/index-to0RO38U.d.mts +35 -0
- package/dist/index.cjs +85 -0
- package/dist/index.d.cts +5 -0
- package/dist/index.d.mts +5 -0
- package/dist/index.mjs +27 -0
- package/dist/integrations/next-js.cjs +50 -0
- package/dist/integrations/next-js.d.cts +23 -0
- package/dist/integrations/next-js.d.mts +23 -0
- package/dist/integrations/next-js.mjs +49 -0
- package/dist/integrations/node.cjs +139 -0
- package/dist/integrations/node.d.cts +22 -0
- package/dist/integrations/node.d.mts +22 -0
- package/dist/integrations/node.mjs +134 -0
- package/dist/integrations/react-start.cjs +37 -0
- package/dist/integrations/react-start.d.cts +17 -0
- package/dist/integrations/react-start.d.mts +17 -0
- package/dist/integrations/react-start.mjs +37 -0
- package/dist/integrations/solid-start.cjs +14 -0
- package/dist/integrations/solid-start.d.cts +13 -0
- package/dist/integrations/solid-start.d.mts +13 -0
- package/dist/integrations/solid-start.mjs +13 -0
- package/dist/integrations/svelte-kit.cjs +52 -0
- package/dist/integrations/svelte-kit.d.cts +42 -0
- package/dist/integrations/svelte-kit.d.mts +42 -0
- package/dist/integrations/svelte-kit.mjs +49 -0
- package/dist/ip-B5SwXaMB.cjs +54 -0
- package/dist/ip-BjNYspCH.mjs +36 -0
- package/dist/json-B1v2qRTQ.mjs +24 -0
- package/dist/json-CcJ2HjGo.cjs +30 -0
- package/dist/kysely-adapter-Bxi7sPdG.cjs +288 -0
- package/dist/kysely-adapter-DRuoT_X8.mjs +270 -0
- package/dist/logged-CyGfp8_H.mjs +187 -0
- package/dist/logged-DQK3C64b.cjs +193 -0
- package/dist/memory-adapter-BlnDIAAX.cjs +154 -0
- package/dist/memory-adapter-Db3tsJTn.mjs +148 -0
- package/dist/middleware-CE6OhDkq.mjs +29 -0
- package/dist/middleware-CWvRH4EW.cjs +47 -0
- package/dist/mongodb-adapter-C_qGQED5.mjs +291 -0
- package/dist/mongodb-adapter-C_qfK87x.cjs +297 -0
- package/dist/node-sqlite-dialect-BfBzyOAg.mjs +155 -0
- package/dist/node-sqlite-dialect-mJWC8LWQ.cjs +156 -0
- package/dist/oauth2/index.cjs +25 -0
- package/dist/oauth2/index.d.cts +42 -0
- package/dist/oauth2/index.d.mts +42 -0
- package/dist/oauth2/index.mjs +16 -0
- package/dist/oauth2-B8M0lW9l.mjs +159 -0
- package/dist/oauth2-BLeOEi7Y.cjs +177 -0
- package/dist/origin-check-8Gajklvh.mjs +228 -0
- package/dist/origin-check-id9lTnqZ.cjs +246 -0
- package/dist/parser-CdncAl9i.cjs +83 -0
- package/dist/parser-CeAer-RM.mjs +71 -0
- package/dist/passkey-B6N20LSS.cjs +512 -0
- package/dist/passkey-DJsR_GX3.mjs +505 -0
- package/dist/plugins/access/index.cjs +4 -0
- package/dist/plugins/access/index.d.cts +2 -0
- package/dist/plugins/access/index.d.mts +2 -0
- package/dist/plugins/access/index.mjs +3 -0
- package/dist/plugins/bearer/index.cjs +7 -0
- package/dist/plugins/bearer/index.d.cts +4 -0
- package/dist/plugins/bearer/index.d.mts +4 -0
- package/dist/plugins/bearer/index.mjs +7 -0
- package/dist/plugins/index.cjs +49 -0
- package/dist/plugins/index.d.cts +9326 -0
- package/dist/plugins/index.d.mts +9326 -0
- package/dist/plugins/index.mjs +26 -0
- package/dist/plugins/passkey/index.cjs +15 -0
- package/dist/plugins/passkey/index.d.cts +4 -0
- package/dist/plugins/passkey/index.d.mts +4 -0
- package/dist/plugins/passkey/index.mjs +15 -0
- package/dist/plugins-C1lm2Wj3.cjs +5254 -0
- package/dist/plugins-Dai1QkRU.mjs +5199 -0
- package/dist/request-1NL_1lyJ.mjs +58 -0
- package/dist/request-CPNlp-DK.cjs +100 -0
- package/dist/schema-D-qjygfE.cjs +179 -0
- package/dist/schema-DTIwLLmf.mjs +125 -0
- package/dist/session-De9POJTW.cjs +641 -0
- package/dist/session-rH8ougDl.mjs +538 -0
- package/dist/social-providers/index.cjs +10 -0
- package/dist/social-providers/index.d.cts +2 -0
- package/dist/social-providers/index.d.mts +2 -0
- package/dist/social-providers/index.mjs +5 -0
- package/dist/social-providers-DcFNUT0S.cjs +13 -0
- package/dist/social-providers-DoYJhBe3.mjs +9 -0
- package/dist/state--f7fwIGh.cjs +99 -0
- package/dist/state-CqJfCIl9.mjs +86 -0
- package/dist/test-utils/index.cjs +27492 -0
- package/dist/test-utils/index.d.cts +4584 -0
- package/dist/test-utils/index.d.mts +4584 -0
- package/dist/test-utils/index.mjs +27490 -0
- package/dist/types/index.cjs +0 -0
- package/dist/types/index.d.cts +3 -0
- package/dist/types/index.d.mts +3 -0
- package/dist/types/index.mjs +1 -0
- package/dist/url-BoUuoIwZ.mjs +88 -0
- package/dist/url-D2yvKaM7.cjs +118 -0
- package/dist/utils/cookies.cjs +51 -0
- package/dist/utils/cookies.d.cts +179 -0
- package/dist/utils/cookies.d.mts +179 -0
- package/dist/utils/cookies.mjs +7 -0
- package/dist/utils-44aDDP8f.cjs +2 -0
- package/dist/utils-D4vZd1-9.mjs +4 -0
- package/dist/vanilla-Bu2PmFzE.cjs +30 -0
- package/dist/vanilla-TfHqeiC7.mjs +25 -0
- package/package.json +470 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
const require_chunk = require('./chunk-oakRccI5.cjs');
|
|
2
|
+
const require_adapter_factory = require('./adapter-factory-DT-_2aHJ.cjs');
|
|
3
|
+
let __faire_auth_core_static = require("@faire-auth/core/static");
|
|
4
|
+
let kysely = require("kysely");
|
|
5
|
+
|
|
6
|
+
//#region src/adapters/kysely-adapter/dialect.ts
|
|
7
|
+
function getKyselyDatabaseType(db) {
|
|
8
|
+
if (!db) return null;
|
|
9
|
+
if ("dialect" in db) return getKyselyDatabaseType(db.dialect);
|
|
10
|
+
if ("createDriver" in db) {
|
|
11
|
+
if (db instanceof kysely.SqliteDialect) return "sqlite";
|
|
12
|
+
if (db instanceof kysely.MysqlDialect) return "mysql";
|
|
13
|
+
if (db instanceof kysely.PostgresDialect) return "postgres";
|
|
14
|
+
if (db instanceof kysely.MssqlDialect) return "mssql";
|
|
15
|
+
}
|
|
16
|
+
if ("aggregate" in db) return "sqlite";
|
|
17
|
+
if ("getConnection" in db) return "mysql";
|
|
18
|
+
if ("connect" in db) return "postgres";
|
|
19
|
+
if ("fileControl" in db) return "sqlite";
|
|
20
|
+
if ("open" in db && "close" in db && "prepare" in db) return "sqlite";
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
const createKyselyAdapter = (config) => {
|
|
24
|
+
const db = config.database;
|
|
25
|
+
if (!db) return {
|
|
26
|
+
kysely: null,
|
|
27
|
+
databaseType: null,
|
|
28
|
+
transaction: void 0
|
|
29
|
+
};
|
|
30
|
+
if ("db" in db) return {
|
|
31
|
+
kysely: db.db,
|
|
32
|
+
databaseType: db.type,
|
|
33
|
+
transaction: db.transaction
|
|
34
|
+
};
|
|
35
|
+
if ("dialect" in db) return {
|
|
36
|
+
kysely: new kysely.Kysely({ dialect: db.dialect }),
|
|
37
|
+
databaseType: db.type,
|
|
38
|
+
transaction: db.transaction
|
|
39
|
+
};
|
|
40
|
+
let dialect = void 0;
|
|
41
|
+
const databaseType = getKyselyDatabaseType(db);
|
|
42
|
+
if ("createDriver" in db) dialect = db;
|
|
43
|
+
if ("aggregate" in db && !("createSession" in db)) dialect = new kysely.SqliteDialect({ database: db });
|
|
44
|
+
if ("getConnection" in db) dialect = new kysely.MysqlDialect(db);
|
|
45
|
+
if ("connect" in db) dialect = new kysely.PostgresDialect({ pool: db });
|
|
46
|
+
const toReturn = {
|
|
47
|
+
kysely: dialect ? new kysely.Kysely({ dialect }) : null,
|
|
48
|
+
databaseType,
|
|
49
|
+
transaction: void 0,
|
|
50
|
+
async initialize() {
|
|
51
|
+
if (toReturn.kysely == null) {
|
|
52
|
+
if ("fileControl" in db) {
|
|
53
|
+
console.log("found file control");
|
|
54
|
+
const { BunSqliteDialect } = await Promise.resolve().then(() => require("./bun-sqlite-dialect-wuaC2-gh.cjs"));
|
|
55
|
+
dialect = new BunSqliteDialect({ database: db });
|
|
56
|
+
}
|
|
57
|
+
if ("createSession" in db && typeof window === "undefined") {
|
|
58
|
+
console.log("found create session");
|
|
59
|
+
let DatabaseSync = void 0;
|
|
60
|
+
try {
|
|
61
|
+
let nodeSqlite = "node:sqlite";
|
|
62
|
+
({DatabaseSync} = await import(
|
|
63
|
+
/* @vite-ignore */
|
|
64
|
+
/* webpackIgnore: true */
|
|
65
|
+
nodeSqlite
|
|
66
|
+
));
|
|
67
|
+
} catch (error) {
|
|
68
|
+
console.log("caught");
|
|
69
|
+
if (error !== null && typeof error === "object" && "code" in error && error.code !== "ERR_UNKNOWN_BUILTIN_MODULE") throw error;
|
|
70
|
+
}
|
|
71
|
+
console.log("import dialect");
|
|
72
|
+
if (DatabaseSync && db instanceof DatabaseSync) {
|
|
73
|
+
const { NodeSqliteDialect } = await Promise.resolve().then(() => require("./node-sqlite-dialect-mJWC8LWQ.cjs"));
|
|
74
|
+
dialect = new NodeSqliteDialect({ database: db });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
if (dialect) toReturn.kysely = new kysely.Kysely({ dialect });
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
return toReturn;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
//#endregion
|
|
85
|
+
//#region src/adapters/kysely-adapter/kysely-adapter.ts
|
|
86
|
+
const withDbInit = (db, work) => async (fn) => {
|
|
87
|
+
const rdb = (0, __faire_auth_core_static.isPromise)(db) ? await db : db;
|
|
88
|
+
if (work) work(rdb);
|
|
89
|
+
return fn(rdb);
|
|
90
|
+
};
|
|
91
|
+
const kyselyAdapter = (db, config) => {
|
|
92
|
+
let lazyOptions = null;
|
|
93
|
+
const withDb = withDbInit(db);
|
|
94
|
+
const createCustomAdapter = (db$1) => {
|
|
95
|
+
return ({ getFieldName }) => {
|
|
96
|
+
const withReturningInit = (db$2) => async (values, builder, model, where) => {
|
|
97
|
+
let res;
|
|
98
|
+
if (config?.type === "mysql") {
|
|
99
|
+
await builder.execute();
|
|
100
|
+
const field = values.id ? "id" : where.length > 0 && where[0]?.field ? where[0].field : "id";
|
|
101
|
+
if (!values.id && where.length === 0) {
|
|
102
|
+
res = await db$2.selectFrom(model).selectAll().orderBy(getFieldName({
|
|
103
|
+
model,
|
|
104
|
+
field
|
|
105
|
+
}), "desc").limit(1).executeTakeFirst();
|
|
106
|
+
return res;
|
|
107
|
+
}
|
|
108
|
+
const value = values[field] || where[0]?.value;
|
|
109
|
+
res = await db$2.selectFrom(model).selectAll().orderBy(getFieldName({
|
|
110
|
+
model,
|
|
111
|
+
field
|
|
112
|
+
}), "desc").where(getFieldName({
|
|
113
|
+
model,
|
|
114
|
+
field
|
|
115
|
+
}), "=", value).limit(1).executeTakeFirst();
|
|
116
|
+
return res;
|
|
117
|
+
}
|
|
118
|
+
if (config?.type === "mssql") {
|
|
119
|
+
res = await builder.outputAll("inserted").executeTakeFirst();
|
|
120
|
+
return res;
|
|
121
|
+
}
|
|
122
|
+
res = await builder.returningAll().executeTakeFirst();
|
|
123
|
+
return res;
|
|
124
|
+
};
|
|
125
|
+
let withReturning;
|
|
126
|
+
const withDb$1 = withDbInit(db$1, (db$2) => withReturning ??= withReturningInit(db$2));
|
|
127
|
+
function convertWhereClause(model, w) {
|
|
128
|
+
if (!w) return {
|
|
129
|
+
and: null,
|
|
130
|
+
or: null
|
|
131
|
+
};
|
|
132
|
+
const conditions = {
|
|
133
|
+
and: [],
|
|
134
|
+
or: []
|
|
135
|
+
};
|
|
136
|
+
w.forEach((condition) => {
|
|
137
|
+
let { field: _field, value: _value, operator = "=", connector = "AND" } = condition;
|
|
138
|
+
let value = _value;
|
|
139
|
+
let field = getFieldName({
|
|
140
|
+
model,
|
|
141
|
+
field: _field
|
|
142
|
+
});
|
|
143
|
+
const expr = (eb) => {
|
|
144
|
+
if (operator.toLowerCase() === "in") return eb(field, "in", Array.isArray(value) ? value : [value]);
|
|
145
|
+
if (operator.toLowerCase() === "not_in") return eb(field, "not in", Array.isArray(value) ? value : [value]);
|
|
146
|
+
if (operator === "contains") return eb(field, "like", `%${value}%`);
|
|
147
|
+
if (operator === "starts_with") return eb(field, "like", `${value}%`);
|
|
148
|
+
if (operator === "ends_with") return eb(field, "like", `%${value}`);
|
|
149
|
+
if (operator === "eq") return eb(field, "=", value);
|
|
150
|
+
if (operator === "ne") return eb(field, "<>", value);
|
|
151
|
+
if (operator === "gt") return eb(field, ">", value);
|
|
152
|
+
if (operator === "gte") return eb(field, ">=", value);
|
|
153
|
+
if (operator === "lt") return eb(field, "<", value);
|
|
154
|
+
if (operator === "lte") return eb(field, "<=", value);
|
|
155
|
+
return eb(field, operator, value);
|
|
156
|
+
};
|
|
157
|
+
if (connector === "OR") conditions.or.push(expr);
|
|
158
|
+
else conditions.and.push(expr);
|
|
159
|
+
});
|
|
160
|
+
return {
|
|
161
|
+
and: conditions.and.length ? conditions.and : null,
|
|
162
|
+
or: conditions.or.length ? conditions.or : null
|
|
163
|
+
};
|
|
164
|
+
}
|
|
165
|
+
return {
|
|
166
|
+
create: ({ data, model }) => withDb$1(async (db$2) => {
|
|
167
|
+
const builder = db$2.insertInto(model).values(data);
|
|
168
|
+
return await withReturning(data, builder, model, []);
|
|
169
|
+
}),
|
|
170
|
+
findOne: ({ model, where, select }) => withDb$1(async (db$2) => {
|
|
171
|
+
const { and, or } = convertWhereClause(model, where);
|
|
172
|
+
let query = db$2.selectFrom(model).selectAll();
|
|
173
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
174
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
175
|
+
const res = await query.executeTakeFirst();
|
|
176
|
+
if (!res) return null;
|
|
177
|
+
return res;
|
|
178
|
+
}),
|
|
179
|
+
findMany: ({ model, where, limit, offset, sortBy }) => withDb$1(async (db$2) => {
|
|
180
|
+
const { and, or } = convertWhereClause(model, where);
|
|
181
|
+
let query = db$2.selectFrom(model);
|
|
182
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
183
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
184
|
+
if (config?.type === "mssql") {
|
|
185
|
+
if (!offset) query = query.top(limit || 100);
|
|
186
|
+
} else query = query.limit(limit || 100);
|
|
187
|
+
if (sortBy) query = query.orderBy(getFieldName({
|
|
188
|
+
model,
|
|
189
|
+
field: sortBy.field
|
|
190
|
+
}), sortBy.direction);
|
|
191
|
+
if (offset) if (config?.type === "mssql") {
|
|
192
|
+
if (!sortBy) query = query.orderBy(getFieldName({
|
|
193
|
+
model,
|
|
194
|
+
field: "id"
|
|
195
|
+
}));
|
|
196
|
+
query = query.offset(offset).fetch(limit || 100);
|
|
197
|
+
} else query = query.offset(offset);
|
|
198
|
+
const res = await query.selectAll().execute();
|
|
199
|
+
if (!res) return [];
|
|
200
|
+
return res;
|
|
201
|
+
}),
|
|
202
|
+
update: ({ model, where, update: values }) => withDb$1(async (db$2) => {
|
|
203
|
+
const { and, or } = convertWhereClause(model, where);
|
|
204
|
+
let query = db$2.updateTable(model).set(values);
|
|
205
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
206
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
207
|
+
return await withReturning(values, query, model, where);
|
|
208
|
+
}),
|
|
209
|
+
updateMany: ({ model, where, update: values }) => withDb$1(async (db$2) => {
|
|
210
|
+
const { and, or } = convertWhereClause(model, where);
|
|
211
|
+
let query = db$2.updateTable(model).set(values);
|
|
212
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
213
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
214
|
+
return (await query.execute()).length;
|
|
215
|
+
}),
|
|
216
|
+
count: ({ model, where }) => withDb$1(async (db$2) => {
|
|
217
|
+
const { and, or } = convertWhereClause(model, where);
|
|
218
|
+
let query = db$2.selectFrom(model).select(db$2.fn.count("id").as("count"));
|
|
219
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
220
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
221
|
+
const res = await query.execute();
|
|
222
|
+
if (typeof res[0].count === "number") return res[0].count;
|
|
223
|
+
if (typeof res[0].count === "bigint") return Number(res[0].count);
|
|
224
|
+
return parseInt(res[0].count);
|
|
225
|
+
}),
|
|
226
|
+
delete: ({ model, where }) => withDb$1(async (db$2) => {
|
|
227
|
+
const { and, or } = convertWhereClause(model, where);
|
|
228
|
+
let query = db$2.deleteFrom(model);
|
|
229
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
230
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
231
|
+
await query.execute();
|
|
232
|
+
}),
|
|
233
|
+
deleteMany: ({ model, where }) => withDb$1(async (db$2) => {
|
|
234
|
+
const { and, or } = convertWhereClause(model, where);
|
|
235
|
+
let query = db$2.deleteFrom(model);
|
|
236
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
237
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
238
|
+
return (await query.execute()).length;
|
|
239
|
+
}),
|
|
240
|
+
options: config
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
};
|
|
244
|
+
let adapterOptions = null;
|
|
245
|
+
adapterOptions = {
|
|
246
|
+
config: {
|
|
247
|
+
adapterId: "kysely",
|
|
248
|
+
adapterName: "Kysely Adapter",
|
|
249
|
+
usePlural: config?.usePlural,
|
|
250
|
+
debugLogs: config?.debugLogs,
|
|
251
|
+
supportsBooleans: config?.type === "sqlite" || config?.type === "mssql" || config?.type === "mysql" || !config?.type ? false : true,
|
|
252
|
+
supportsDates: config?.type === "sqlite" || config?.type === "mssql" || !config?.type ? false : true,
|
|
253
|
+
supportsJSON: false,
|
|
254
|
+
transaction: config?.transaction ?? false ? (cb) => withDb((db$1) => db$1.transaction().execute(((trx) => {
|
|
255
|
+
return cb(require_adapter_factory.createAdapterFactory({
|
|
256
|
+
config: adapterOptions.config,
|
|
257
|
+
adapter: createCustomAdapter(trx)
|
|
258
|
+
})(lazyOptions));
|
|
259
|
+
}))) : false
|
|
260
|
+
},
|
|
261
|
+
adapter: createCustomAdapter(db)
|
|
262
|
+
};
|
|
263
|
+
const adapter = require_adapter_factory.createAdapterFactory(adapterOptions);
|
|
264
|
+
return (options) => {
|
|
265
|
+
lazyOptions = options;
|
|
266
|
+
return adapter(options);
|
|
267
|
+
};
|
|
268
|
+
};
|
|
269
|
+
|
|
270
|
+
//#endregion
|
|
271
|
+
Object.defineProperty(exports, 'createKyselyAdapter', {
|
|
272
|
+
enumerable: true,
|
|
273
|
+
get: function () {
|
|
274
|
+
return createKyselyAdapter;
|
|
275
|
+
}
|
|
276
|
+
});
|
|
277
|
+
Object.defineProperty(exports, 'getKyselyDatabaseType', {
|
|
278
|
+
enumerable: true,
|
|
279
|
+
get: function () {
|
|
280
|
+
return getKyselyDatabaseType;
|
|
281
|
+
}
|
|
282
|
+
});
|
|
283
|
+
Object.defineProperty(exports, 'kyselyAdapter', {
|
|
284
|
+
enumerable: true,
|
|
285
|
+
get: function () {
|
|
286
|
+
return kyselyAdapter;
|
|
287
|
+
}
|
|
288
|
+
});
|
|
@@ -0,0 +1,270 @@
|
|
|
1
|
+
import { t as createAdapterFactory } from "./adapter-factory-BXei1QRX.mjs";
|
|
2
|
+
import { isPromise } from "@faire-auth/core/static";
|
|
3
|
+
import { Kysely, MssqlDialect, MysqlDialect, PostgresDialect, SqliteDialect } from "kysely";
|
|
4
|
+
|
|
5
|
+
//#region src/adapters/kysely-adapter/dialect.ts
|
|
6
|
+
function getKyselyDatabaseType(db) {
|
|
7
|
+
if (!db) return null;
|
|
8
|
+
if ("dialect" in db) return getKyselyDatabaseType(db.dialect);
|
|
9
|
+
if ("createDriver" in db) {
|
|
10
|
+
if (db instanceof SqliteDialect) return "sqlite";
|
|
11
|
+
if (db instanceof MysqlDialect) return "mysql";
|
|
12
|
+
if (db instanceof PostgresDialect) return "postgres";
|
|
13
|
+
if (db instanceof MssqlDialect) return "mssql";
|
|
14
|
+
}
|
|
15
|
+
if ("aggregate" in db) return "sqlite";
|
|
16
|
+
if ("getConnection" in db) return "mysql";
|
|
17
|
+
if ("connect" in db) return "postgres";
|
|
18
|
+
if ("fileControl" in db) return "sqlite";
|
|
19
|
+
if ("open" in db && "close" in db && "prepare" in db) return "sqlite";
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const createKyselyAdapter = (config) => {
|
|
23
|
+
const db = config.database;
|
|
24
|
+
if (!db) return {
|
|
25
|
+
kysely: null,
|
|
26
|
+
databaseType: null,
|
|
27
|
+
transaction: void 0
|
|
28
|
+
};
|
|
29
|
+
if ("db" in db) return {
|
|
30
|
+
kysely: db.db,
|
|
31
|
+
databaseType: db.type,
|
|
32
|
+
transaction: db.transaction
|
|
33
|
+
};
|
|
34
|
+
if ("dialect" in db) return {
|
|
35
|
+
kysely: new Kysely({ dialect: db.dialect }),
|
|
36
|
+
databaseType: db.type,
|
|
37
|
+
transaction: db.transaction
|
|
38
|
+
};
|
|
39
|
+
let dialect = void 0;
|
|
40
|
+
const databaseType = getKyselyDatabaseType(db);
|
|
41
|
+
if ("createDriver" in db) dialect = db;
|
|
42
|
+
if ("aggregate" in db && !("createSession" in db)) dialect = new SqliteDialect({ database: db });
|
|
43
|
+
if ("getConnection" in db) dialect = new MysqlDialect(db);
|
|
44
|
+
if ("connect" in db) dialect = new PostgresDialect({ pool: db });
|
|
45
|
+
const toReturn = {
|
|
46
|
+
kysely: dialect ? new Kysely({ dialect }) : null,
|
|
47
|
+
databaseType,
|
|
48
|
+
transaction: void 0,
|
|
49
|
+
async initialize() {
|
|
50
|
+
if (toReturn.kysely == null) {
|
|
51
|
+
if ("fileControl" in db) {
|
|
52
|
+
console.log("found file control");
|
|
53
|
+
const { BunSqliteDialect } = await import("./bun-sqlite-dialect-CfkBo2v5.mjs");
|
|
54
|
+
dialect = new BunSqliteDialect({ database: db });
|
|
55
|
+
}
|
|
56
|
+
if ("createSession" in db && typeof window === "undefined") {
|
|
57
|
+
console.log("found create session");
|
|
58
|
+
let DatabaseSync = void 0;
|
|
59
|
+
try {
|
|
60
|
+
let nodeSqlite = "node:sqlite";
|
|
61
|
+
({DatabaseSync} = await import(
|
|
62
|
+
/* @vite-ignore */
|
|
63
|
+
/* webpackIgnore: true */
|
|
64
|
+
nodeSqlite
|
|
65
|
+
));
|
|
66
|
+
} catch (error) {
|
|
67
|
+
console.log("caught");
|
|
68
|
+
if (error !== null && typeof error === "object" && "code" in error && error.code !== "ERR_UNKNOWN_BUILTIN_MODULE") throw error;
|
|
69
|
+
}
|
|
70
|
+
console.log("import dialect");
|
|
71
|
+
if (DatabaseSync && db instanceof DatabaseSync) {
|
|
72
|
+
const { NodeSqliteDialect } = await import("./node-sqlite-dialect-BfBzyOAg.mjs");
|
|
73
|
+
dialect = new NodeSqliteDialect({ database: db });
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (dialect) toReturn.kysely = new Kysely({ dialect });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
return toReturn;
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
//#region src/adapters/kysely-adapter/kysely-adapter.ts
|
|
85
|
+
const withDbInit = (db, work) => async (fn) => {
|
|
86
|
+
const rdb = isPromise(db) ? await db : db;
|
|
87
|
+
if (work) work(rdb);
|
|
88
|
+
return fn(rdb);
|
|
89
|
+
};
|
|
90
|
+
const kyselyAdapter = (db, config) => {
|
|
91
|
+
let lazyOptions = null;
|
|
92
|
+
const withDb = withDbInit(db);
|
|
93
|
+
const createCustomAdapter = (db$1) => {
|
|
94
|
+
return ({ getFieldName }) => {
|
|
95
|
+
const withReturningInit = (db$2) => async (values, builder, model, where) => {
|
|
96
|
+
let res;
|
|
97
|
+
if (config?.type === "mysql") {
|
|
98
|
+
await builder.execute();
|
|
99
|
+
const field = values.id ? "id" : where.length > 0 && where[0]?.field ? where[0].field : "id";
|
|
100
|
+
if (!values.id && where.length === 0) {
|
|
101
|
+
res = await db$2.selectFrom(model).selectAll().orderBy(getFieldName({
|
|
102
|
+
model,
|
|
103
|
+
field
|
|
104
|
+
}), "desc").limit(1).executeTakeFirst();
|
|
105
|
+
return res;
|
|
106
|
+
}
|
|
107
|
+
const value = values[field] || where[0]?.value;
|
|
108
|
+
res = await db$2.selectFrom(model).selectAll().orderBy(getFieldName({
|
|
109
|
+
model,
|
|
110
|
+
field
|
|
111
|
+
}), "desc").where(getFieldName({
|
|
112
|
+
model,
|
|
113
|
+
field
|
|
114
|
+
}), "=", value).limit(1).executeTakeFirst();
|
|
115
|
+
return res;
|
|
116
|
+
}
|
|
117
|
+
if (config?.type === "mssql") {
|
|
118
|
+
res = await builder.outputAll("inserted").executeTakeFirst();
|
|
119
|
+
return res;
|
|
120
|
+
}
|
|
121
|
+
res = await builder.returningAll().executeTakeFirst();
|
|
122
|
+
return res;
|
|
123
|
+
};
|
|
124
|
+
let withReturning;
|
|
125
|
+
const withDb$1 = withDbInit(db$1, (db$2) => withReturning ??= withReturningInit(db$2));
|
|
126
|
+
function convertWhereClause(model, w) {
|
|
127
|
+
if (!w) return {
|
|
128
|
+
and: null,
|
|
129
|
+
or: null
|
|
130
|
+
};
|
|
131
|
+
const conditions = {
|
|
132
|
+
and: [],
|
|
133
|
+
or: []
|
|
134
|
+
};
|
|
135
|
+
w.forEach((condition) => {
|
|
136
|
+
let { field: _field, value: _value, operator = "=", connector = "AND" } = condition;
|
|
137
|
+
let value = _value;
|
|
138
|
+
let field = getFieldName({
|
|
139
|
+
model,
|
|
140
|
+
field: _field
|
|
141
|
+
});
|
|
142
|
+
const expr = (eb) => {
|
|
143
|
+
if (operator.toLowerCase() === "in") return eb(field, "in", Array.isArray(value) ? value : [value]);
|
|
144
|
+
if (operator.toLowerCase() === "not_in") return eb(field, "not in", Array.isArray(value) ? value : [value]);
|
|
145
|
+
if (operator === "contains") return eb(field, "like", `%${value}%`);
|
|
146
|
+
if (operator === "starts_with") return eb(field, "like", `${value}%`);
|
|
147
|
+
if (operator === "ends_with") return eb(field, "like", `%${value}`);
|
|
148
|
+
if (operator === "eq") return eb(field, "=", value);
|
|
149
|
+
if (operator === "ne") return eb(field, "<>", value);
|
|
150
|
+
if (operator === "gt") return eb(field, ">", value);
|
|
151
|
+
if (operator === "gte") return eb(field, ">=", value);
|
|
152
|
+
if (operator === "lt") return eb(field, "<", value);
|
|
153
|
+
if (operator === "lte") return eb(field, "<=", value);
|
|
154
|
+
return eb(field, operator, value);
|
|
155
|
+
};
|
|
156
|
+
if (connector === "OR") conditions.or.push(expr);
|
|
157
|
+
else conditions.and.push(expr);
|
|
158
|
+
});
|
|
159
|
+
return {
|
|
160
|
+
and: conditions.and.length ? conditions.and : null,
|
|
161
|
+
or: conditions.or.length ? conditions.or : null
|
|
162
|
+
};
|
|
163
|
+
}
|
|
164
|
+
return {
|
|
165
|
+
create: ({ data, model }) => withDb$1(async (db$2) => {
|
|
166
|
+
const builder = db$2.insertInto(model).values(data);
|
|
167
|
+
return await withReturning(data, builder, model, []);
|
|
168
|
+
}),
|
|
169
|
+
findOne: ({ model, where, select }) => withDb$1(async (db$2) => {
|
|
170
|
+
const { and, or } = convertWhereClause(model, where);
|
|
171
|
+
let query = db$2.selectFrom(model).selectAll();
|
|
172
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
173
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
174
|
+
const res = await query.executeTakeFirst();
|
|
175
|
+
if (!res) return null;
|
|
176
|
+
return res;
|
|
177
|
+
}),
|
|
178
|
+
findMany: ({ model, where, limit, offset, sortBy }) => withDb$1(async (db$2) => {
|
|
179
|
+
const { and, or } = convertWhereClause(model, where);
|
|
180
|
+
let query = db$2.selectFrom(model);
|
|
181
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
182
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
183
|
+
if (config?.type === "mssql") {
|
|
184
|
+
if (!offset) query = query.top(limit || 100);
|
|
185
|
+
} else query = query.limit(limit || 100);
|
|
186
|
+
if (sortBy) query = query.orderBy(getFieldName({
|
|
187
|
+
model,
|
|
188
|
+
field: sortBy.field
|
|
189
|
+
}), sortBy.direction);
|
|
190
|
+
if (offset) if (config?.type === "mssql") {
|
|
191
|
+
if (!sortBy) query = query.orderBy(getFieldName({
|
|
192
|
+
model,
|
|
193
|
+
field: "id"
|
|
194
|
+
}));
|
|
195
|
+
query = query.offset(offset).fetch(limit || 100);
|
|
196
|
+
} else query = query.offset(offset);
|
|
197
|
+
const res = await query.selectAll().execute();
|
|
198
|
+
if (!res) return [];
|
|
199
|
+
return res;
|
|
200
|
+
}),
|
|
201
|
+
update: ({ model, where, update: values }) => withDb$1(async (db$2) => {
|
|
202
|
+
const { and, or } = convertWhereClause(model, where);
|
|
203
|
+
let query = db$2.updateTable(model).set(values);
|
|
204
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
205
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
206
|
+
return await withReturning(values, query, model, where);
|
|
207
|
+
}),
|
|
208
|
+
updateMany: ({ model, where, update: values }) => withDb$1(async (db$2) => {
|
|
209
|
+
const { and, or } = convertWhereClause(model, where);
|
|
210
|
+
let query = db$2.updateTable(model).set(values);
|
|
211
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
212
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
213
|
+
return (await query.execute()).length;
|
|
214
|
+
}),
|
|
215
|
+
count: ({ model, where }) => withDb$1(async (db$2) => {
|
|
216
|
+
const { and, or } = convertWhereClause(model, where);
|
|
217
|
+
let query = db$2.selectFrom(model).select(db$2.fn.count("id").as("count"));
|
|
218
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
219
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
220
|
+
const res = await query.execute();
|
|
221
|
+
if (typeof res[0].count === "number") return res[0].count;
|
|
222
|
+
if (typeof res[0].count === "bigint") return Number(res[0].count);
|
|
223
|
+
return parseInt(res[0].count);
|
|
224
|
+
}),
|
|
225
|
+
delete: ({ model, where }) => withDb$1(async (db$2) => {
|
|
226
|
+
const { and, or } = convertWhereClause(model, where);
|
|
227
|
+
let query = db$2.deleteFrom(model);
|
|
228
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
229
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
230
|
+
await query.execute();
|
|
231
|
+
}),
|
|
232
|
+
deleteMany: ({ model, where }) => withDb$1(async (db$2) => {
|
|
233
|
+
const { and, or } = convertWhereClause(model, where);
|
|
234
|
+
let query = db$2.deleteFrom(model);
|
|
235
|
+
if (and) query = query.where((eb) => eb.and(and.map((expr) => expr(eb))));
|
|
236
|
+
if (or) query = query.where((eb) => eb.or(or.map((expr) => expr(eb))));
|
|
237
|
+
return (await query.execute()).length;
|
|
238
|
+
}),
|
|
239
|
+
options: config
|
|
240
|
+
};
|
|
241
|
+
};
|
|
242
|
+
};
|
|
243
|
+
let adapterOptions = null;
|
|
244
|
+
adapterOptions = {
|
|
245
|
+
config: {
|
|
246
|
+
adapterId: "kysely",
|
|
247
|
+
adapterName: "Kysely Adapter",
|
|
248
|
+
usePlural: config?.usePlural,
|
|
249
|
+
debugLogs: config?.debugLogs,
|
|
250
|
+
supportsBooleans: config?.type === "sqlite" || config?.type === "mssql" || config?.type === "mysql" || !config?.type ? false : true,
|
|
251
|
+
supportsDates: config?.type === "sqlite" || config?.type === "mssql" || !config?.type ? false : true,
|
|
252
|
+
supportsJSON: false,
|
|
253
|
+
transaction: config?.transaction ?? false ? (cb) => withDb((db$1) => db$1.transaction().execute(((trx) => {
|
|
254
|
+
return cb(createAdapterFactory({
|
|
255
|
+
config: adapterOptions.config,
|
|
256
|
+
adapter: createCustomAdapter(trx)
|
|
257
|
+
})(lazyOptions));
|
|
258
|
+
}))) : false
|
|
259
|
+
},
|
|
260
|
+
adapter: createCustomAdapter(db)
|
|
261
|
+
};
|
|
262
|
+
const adapter = createAdapterFactory(adapterOptions);
|
|
263
|
+
return (options) => {
|
|
264
|
+
lazyOptions = options;
|
|
265
|
+
return adapter(options);
|
|
266
|
+
};
|
|
267
|
+
};
|
|
268
|
+
|
|
269
|
+
//#endregion
|
|
270
|
+
export { createKyselyAdapter as n, getKyselyDatabaseType as r, kyselyAdapter as t };
|