@fengsoft/auth-db 0.1.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.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,0BAA0B,EAC/B,KAAK,aAAa,EAElB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAGN,KAAK,qBAAqB,EAC1B,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAE,KAAK,QAAQ,EAAiB,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AACpE,MAAM,MAAM,yBAAyB,GAAG,IAAI,CAC3C,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC,CAAC,CAAC,EACpC,UAAU,CACV,CAAC;AACF,MAAM,MAAM,qBAAqB,GAAG;IACnC,cAAc,CAAC,EAAE,0BAA0B,GAAG,0BAA0B,EAAE,CAAC;IAC3E,OAAO,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AACF,MAAM,MAAM,iCAAiC,GAAG;IAC/C,gBAAgB,CAAC,EACd,OAAO,GACP,WAAW,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACtD,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC,OAAO,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,OAAO,GAAG,qBAAqB,CAAC;IAC1C,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;CAC7B,CAAC;AAEF,wBAAgB,qBAAqB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,QAAQ,CAM3E;AAED,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,iBAAiB,kIAEnE;AAED,wBAAgB,oCAAoC,CACnD,OAAO,GAAE,iCAAsC,kIAqC/C;AAED,wBAAgB,0BAA0B,CACzC,MAAM,EAAE,qBAAqB,EAC7B,OAAO,GAAE,yBAA8B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgBvC;AAED,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,54 @@
1
+ import { apiKey, } from "@better-auth/api-key";
2
+ import { createDrizzleDatabase, createPgPool, } from "@fengsoft/foundation-db";
3
+ import { getAuthTables } from "better-auth";
4
+ import { drizzleAdapter } from "better-auth/adapters/drizzle";
5
+ import { memoryAdapter } from "better-auth/adapters/memory";
6
+ import { organization } from "better-auth/plugins";
7
+ import { authSchema } from "./schema";
8
+ export function buildMemoryAuthTables(options) {
9
+ const tables = getAuthTables(options ?? {});
10
+ return Object.fromEntries(Object.keys(tables).map((tableName) => [tableName, []]));
11
+ }
12
+ export function createMemoryAuthDatabase(options) {
13
+ return memoryAdapter(buildMemoryAuthTables(options));
14
+ }
15
+ export function createFeatureAwareMemoryAuthDatabase(options = {}) {
16
+ const { emailAndPassword = true, organizations = true, apiKeys = false, plugins = [], } = options;
17
+ const organizationPlugins = organizations === false
18
+ ? []
19
+ : [
20
+ organization(organizations === true
21
+ ? { allowUserToCreateOrganization: true }
22
+ : organizations),
23
+ ];
24
+ const apiKeyPlugins = apiKeys === false
25
+ ? []
26
+ : [
27
+ apiKey(apiKeys === true ? undefined : apiKeys.configurations, apiKeys === true ? undefined : apiKeys.options),
28
+ ];
29
+ return createMemoryAuthDatabase({
30
+ emailAndPassword: emailAndPassword === false
31
+ ? undefined
32
+ : emailAndPassword === true
33
+ ? { enabled: true }
34
+ : emailAndPassword,
35
+ plugins: [...organizationPlugins, ...apiKeyPlugins, ...plugins],
36
+ });
37
+ }
38
+ export function createPostgresAuthDatabase(config, options = {}) {
39
+ const pool = createPgPool(config);
40
+ const db = createDrizzleDatabase(pool, authSchema);
41
+ const adapter = drizzleAdapter(db, {
42
+ provider: "pg",
43
+ schema: authSchema,
44
+ ...options,
45
+ });
46
+ return {
47
+ pool,
48
+ db,
49
+ adapter,
50
+ schema: authSchema,
51
+ };
52
+ }
53
+ export { authSchema };
54
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAGN,MAAM,GACN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EACN,qBAAqB,EACrB,YAAY,GAEZ,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAC9D,OAAO,EAAiB,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAEnD,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAoBtC,MAAM,UAAU,qBAAqB,CAAC,OAA2B;IAChE,MAAM,MAAM,GAAG,aAAa,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;IAE5C,OAAO,MAAM,CAAC,WAAW,CACxB,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CACvD,CAAC;AACH,CAAC;AAED,MAAM,UAAU,wBAAwB,CAAC,OAA2B;IACnE,OAAO,aAAa,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,UAAU,oCAAoC,CACnD,UAA6C,EAAE;IAE/C,MAAM,EACL,gBAAgB,GAAG,IAAI,EACvB,aAAa,GAAG,IAAI,EACpB,OAAO,GAAG,KAAK,EACf,OAAO,GAAG,EAAE,GACZ,GAAG,OAAO,CAAC;IACZ,MAAM,mBAAmB,GACxB,aAAa,KAAK,KAAK;QACtB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACA,YAAY,CACX,aAAa,KAAK,IAAI;gBACrB,CAAC,CAAC,EAAE,6BAA6B,EAAE,IAAI,EAAE;gBACzC,CAAC,CAAC,aAAa,CAChB;SACD,CAAC;IACL,MAAM,aAAa,GAClB,OAAO,KAAK,KAAK;QAChB,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACA,MAAM,CACL,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,cAAc,EACrD,OAAO,KAAK,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAC9C;SACD,CAAC;IAEL,OAAO,wBAAwB,CAAC;QAC/B,gBAAgB,EACf,gBAAgB,KAAK,KAAK;YACzB,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,gBAAgB,KAAK,IAAI;gBAC1B,CAAC,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE;gBACnB,CAAC,CAAC,gBAAgB;QACrB,OAAO,EAAE,CAAC,GAAG,mBAAmB,EAAE,GAAG,aAAa,EAAE,GAAG,OAAO,CAAC;KAC/D,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACzC,MAA6B,EAC7B,UAAqC,EAAE;IAEvC,MAAM,IAAI,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,EAAE,GAAG,qBAAqB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,cAAc,CAAC,EAAE,EAAE;QAClC,QAAQ,EAAE,IAAI;QACd,MAAM,EAAE,UAAU;QAClB,GAAG,OAAO;KACV,CAAC,CAAC;IAEH,OAAO;QACN,IAAI;QACJ,EAAE;QACF,OAAO;QACP,MAAM,EAAE,UAAU;KAClB,CAAC;AACH,CAAC;AAGD,OAAO,EAAE,UAAU,EAAE,CAAC"}