@better-auth/core 1.4.5 → 1.4.6-beta.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/.turbo/turbo-build.log +30 -29
  2. package/dist/api/index.d.mts +1 -2
  3. package/dist/api/index.mjs +3 -2
  4. package/dist/async_hooks/index.d.mts +1 -1
  5. package/dist/async_hooks/index.mjs +2 -1
  6. package/dist/async_hooks-CrTStdt6.mjs +45 -0
  7. package/dist/context/index.d.mts +2 -3
  8. package/dist/context/index.mjs +3 -2
  9. package/dist/{context-DgQ9XGBl.mjs → context-su4uu82y.mjs} +1 -1
  10. package/dist/db/adapter/index.d.mts +2 -3
  11. package/dist/db/adapter/index.mjs +951 -1
  12. package/dist/db/index.d.mts +2 -3
  13. package/dist/db/index.mjs +2 -1
  14. package/dist/env/index.d.mts +1 -1
  15. package/dist/env/index.mjs +1 -1
  16. package/dist/error/index.mjs +3 -2
  17. package/dist/{error-BhAKg8LX.mjs → error-CMXuwPsa.mjs} +1 -1
  18. package/dist/get-tables-BGfrxIVZ.mjs +252 -0
  19. package/dist/{index-D_XSRX55.d.mts → index-BfhTkcnW.d.mts} +273 -8
  20. package/dist/{index-DgwIISs7.d.mts → index-Da4Ujjef.d.mts} +0 -1
  21. package/dist/index.d.mts +2 -3
  22. package/dist/oauth2/index.d.mts +1 -2
  23. package/dist/oauth2/index.mjs +1 -1
  24. package/dist/social-providers/index.d.mts +1 -2
  25. package/dist/social-providers/index.mjs +4 -4
  26. package/dist/utils/index.d.mts +10 -1
  27. package/dist/utils/index.mjs +3 -2
  28. package/dist/utils-BqQC77zO.mjs +43 -0
  29. package/package.json +2 -2
  30. package/src/async_hooks/convex.spec.ts +12 -0
  31. package/src/async_hooks/index.ts +60 -25
  32. package/src/db/adapter/factory.ts +1362 -0
  33. package/src/db/adapter/get-default-field-name.ts +59 -0
  34. package/src/db/adapter/get-default-model-name.ts +51 -0
  35. package/src/db/adapter/get-field-attributes.ts +62 -0
  36. package/src/db/adapter/get-field-name.ts +43 -0
  37. package/src/db/adapter/get-id-field.ts +141 -0
  38. package/src/db/adapter/get-model-name.ts +36 -0
  39. package/src/db/adapter/index.ts +4 -0
  40. package/src/db/adapter/types.ts +161 -0
  41. package/src/db/adapter/utils.ts +61 -0
  42. package/src/db/get-tables.ts +276 -0
  43. package/src/db/index.ts +2 -0
  44. package/src/db/test/get-tables.test.ts +62 -0
  45. package/src/oauth2/oauth-provider.ts +1 -1
  46. package/src/types/context.ts +10 -0
  47. package/src/types/helper.ts +4 -0
  48. package/src/utils/id.ts +5 -0
  49. package/src/utils/index.ts +3 -0
  50. package/src/utils/json.ts +25 -0
  51. package/src/utils/string.ts +3 -0
  52. package/dist/async_hooks-BfRfbd1J.mjs +0 -18
  53. package/dist/utils-C5EN75oV.mjs +0 -7
  54. /package/dist/{env-8yWFh7b8.mjs → env-D6s-lvJz.mjs} +0 -0
  55. /package/dist/{index-X1Fs3IbM.d.mts → index-D4vfN5ui.d.mts} +0 -0
  56. /package/dist/{oauth2-B2XPHgx5.mjs → oauth2-7k48hhcV.mjs} +0 -0
@@ -1,42 +1,43 @@
1
1
 
2
- > @better-auth/core@1.4.5 build /home/runner/work/better-auth/better-auth/packages/core
2
+ > @better-auth/core@1.4.6-beta.3 build /home/runner/work/better-auth/better-auth/packages/core
3
3
  > tsdown
4
4
 
5
- ℹ tsdown v0.16.6 powered by rolldown v1.0.0-beta.51
6
- ℹ Using tsdown config: /home/runner/work/better-auth/better-auth/packages/core/tsdown.config.ts
5
+ ℹ tsdown v0.17.0 powered by rolldown v1.0.0-beta.53
6
+ ℹ config file: /home/runner/work/better-auth/better-auth/packages/core/tsdown.config.ts
7
7
  ℹ entry: src/index.ts, src/db/index.ts, src/db/adapter/index.ts, src/async_hooks/index.ts, src/context/index.ts, src/env/index.ts, src/oauth2/index.ts, src/api/index.ts, src/social-providers/index.ts, src/utils/index.ts, src/error/index.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
10
  ℹ dist/social-providers/index.mjs  79.87 kB │ gzip: 10.31 kB
11
- ℹ dist/db/index.mjs  1.58 kB │ gzip: 0.49 kB
12
- ℹ dist/api/index.mjs  0.83 kB │ gzip: 0.40 kB
13
- ℹ dist/context/index.mjs  0.74 kB │ gzip: 0.27 kB
11
+ ℹ dist/db/adapter/index.mjs  37.94 kB │ gzip: 7.72 kB
12
+ ℹ dist/db/index.mjs  1.66 kB │ gzip: 0.54 kB
13
+ ℹ dist/api/index.mjs  0.86 kB │ gzip: 0.42 kB
14
+ ℹ dist/context/index.mjs  0.77 kB │ gzip: 0.28 kB
14
15
  ℹ dist/oauth2/index.mjs  0.61 kB │ gzip: 0.24 kB
15
16
  ℹ dist/env/index.mjs  0.44 kB │ gzip: 0.25 kB
16
- ℹ dist/error/index.mjs  0.16 kB │ gzip: 0.13 kB
17
- ℹ dist/async_hooks/index.mjs  0.11 kB │ gzip: 0.10 kB
18
- ℹ dist/utils/index.mjs  0.09 kB │ gzip: 0.09 kB
19
- ℹ dist/db/adapter/index.mjs  0.01 kB │ gzip: 0.03 kB
17
+ ℹ dist/utils/index.mjs  0.24 kB │ gzip: 0.17 kB
18
+ ℹ dist/error/index.mjs  0.19 kB │ gzip: 0.14 kB
19
+ ℹ dist/async_hooks/index.mjs  0.14 kB │ gzip: 0.12 kB
20
20
  ℹ dist/index.mjs  0.01 kB │ gzip: 0.03 kB
21
- ℹ dist/oauth2-B2XPHgx5.mjs  9.19 kB │ gzip: 2.13 kB
22
- ℹ dist/env-8yWFh7b8.mjs  7.67 kB │ gzip: 2.54 kB
23
- ℹ dist/context-DgQ9XGBl.mjs  3.89 kB │ gzip: 1.00 kB
24
- ℹ dist/error-BhAKg8LX.mjs  1.77 kB │ gzip: 0.79 kB
25
- ℹ dist/async_hooks-BfRfbd1J.mjs  0.87 kB │ gzip: 0.46 kB
26
- ℹ dist/utils-C5EN75oV.mjs  0.13 kB │ gzip: 0.12 kB
27
- ℹ dist/social-providers/index.d.mts  3.87 kB │ gzip: 1.19 kB
28
- ℹ dist/context/index.d.mts  3.05 kB │ gzip: 0.97 kB
21
+ ℹ dist/oauth2-7k48hhcV.mjs  9.19 kB │ gzip: 2.13 kB
22
+ ℹ dist/env-D6s-lvJz.mjs  7.67 kB │ gzip: 2.54 kB
23
+ ℹ dist/get-tables-BGfrxIVZ.mjs  6.67 kB │ gzip: 1.29 kB
24
+ ℹ dist/context-su4uu82y.mjs  3.89 kB │ gzip: 1.00 kB
25
+ ℹ dist/error-CMXuwPsa.mjs  1.77 kB │ gzip: 0.79 kB
26
+ ℹ dist/async_hooks-CrTStdt6.mjs  1.70 kB │ gzip: 0.85 kB
27
+ ℹ dist/utils-BqQC77zO.mjs  1.10 kB │ gzip: 0.55 kB
28
+ ℹ dist/social-providers/index.d.mts  3.84 kB │ gzip: 1.18 kB
29
+ ℹ dist/context/index.d.mts  3.02 kB │ gzip: 0.95 kB
29
30
  ℹ dist/error/index.d.mts  1.84 kB │ gzip: 0.72 kB
30
- ℹ dist/db/index.d.mts  1.03 kB │ gzip: 0.38 kB
31
- ℹ dist/index.d.mts  0.87 kB │ gzip: 0.34 kB
32
- ℹ dist/utils/index.d.mts  0.84 kB │ gzip: 0.43 kB
33
- ℹ dist/oauth2/index.d.mts  0.79 kB │ gzip: 0.30 kB
31
+ ℹ dist/db/adapter/index.d.mts  1.34 kB │ gzip: 0.42 kB
32
+ ℹ dist/utils/index.d.mts  1.19 kB │ gzip: 0.55 kB
33
+ ℹ dist/db/index.d.mts  1.04 kB │ gzip: 0.38 kB
34
+ ℹ dist/index.d.mts  0.86 kB │ gzip: 0.33 kB
35
+ ℹ dist/oauth2/index.d.mts  0.76 kB │ gzip: 0.29 kB
34
36
  ℹ dist/env/index.d.mts  0.59 kB │ gzip: 0.30 kB
35
- ℹ dist/db/adapter/index.d.mts  0.53 kB │ gzip: 0.25 kB
36
- ℹ dist/api/index.d.mts  0.29 kB │ gzip: 0.16 kB
37
+ ℹ dist/api/index.d.mts  0.26 kB │ gzip: 0.14 kB
37
38
  ℹ dist/async_hooks/index.d.mts  0.14 kB │ gzip: 0.10 kB
38
- ℹ dist/index-D_XSRX55.d.mts 208.73 kB │ gzip: 32.73 kB
39
- ℹ dist/index-X1Fs3IbM.d.mts  3.31 kB │ gzip: 1.11 kB
40
- ℹ dist/index-DgwIISs7.d.mts  0.24 kB │ gzip: 0.16 kB
41
- ℹ 31 files, total: 334.11 kB
42
- ✔ Build complete in 4687ms
39
+ ℹ dist/index-BfhTkcnW.d.mts 217.64 kB │ gzip: 34.32 kB
40
+ ℹ dist/index-D4vfN5ui.d.mts  3.31 kB │ gzip: 1.11 kB
41
+ ℹ dist/index-Da4Ujjef.d.mts  0.24 kB │ gzip: 0.16 kB
42
+ ℹ 32 files, total: 390.80 kB
43
+ ✔ Build complete in 4643ms
@@ -1,3 +1,2 @@
1
- import { a as optionsMiddleware, i as createAuthMiddleware, n as AuthMiddleware, r as createAuthEndpoint, t as AuthEndpoint } from "../index-D_XSRX55.mjs";
2
- import "../index-X1Fs3IbM.mjs";
1
+ import { a as optionsMiddleware, i as createAuthMiddleware, n as AuthMiddleware, r as createAuthEndpoint, t as AuthEndpoint } from "../index-BfhTkcnW.mjs";
3
2
  export { AuthEndpoint, AuthMiddleware, createAuthEndpoint, createAuthMiddleware, optionsMiddleware };
@@ -1,5 +1,6 @@
1
- import "../async_hooks-BfRfbd1J.mjs";
2
- import { f as runWithEndpointContext } from "../context-DgQ9XGBl.mjs";
1
+ import "../env-D6s-lvJz.mjs";
2
+ import "../async_hooks-CrTStdt6.mjs";
3
+ import { f as runWithEndpointContext } from "../context-su4uu82y.mjs";
3
4
  import { createEndpoint, createMiddleware } from "better-call";
4
5
 
5
6
  //#region src/api/index.ts
@@ -1,2 +1,2 @@
1
- import { n as getAsyncLocalStorage, t as AsyncLocalStorage } from "../index-DgwIISs7.mjs";
1
+ import { n as getAsyncLocalStorage, t as AsyncLocalStorage } from "../index-Da4Ujjef.mjs";
2
2
  export { AsyncLocalStorage, getAsyncLocalStorage };
@@ -1,3 +1,4 @@
1
- import { t as getAsyncLocalStorage } from "../async_hooks-BfRfbd1J.mjs";
1
+ import "../env-D6s-lvJz.mjs";
2
+ import { t as getAsyncLocalStorage } from "../async_hooks-CrTStdt6.mjs";
2
3
 
3
4
  export { getAsyncLocalStorage };
@@ -0,0 +1,45 @@
1
+ import { c as env } from "./env-D6s-lvJz.mjs";
2
+
3
+ //#region src/async_hooks/index.ts
4
+ /**
5
+ * Due to the lack of AsyncLocalStorage in some environments (like Convex),
6
+ *
7
+ * We assume serverless functions are short-lived and single-threaded, so we can use a simple polyfill.
8
+ */
9
+ var AsyncLocalStoragePolyfill = class {
10
+ #current = void 0;
11
+ run(store, fn) {
12
+ const prev = this.#current;
13
+ this.#current = store;
14
+ const result = fn();
15
+ if (result instanceof Promise) return result.finally(() => {
16
+ this.#current = prev;
17
+ });
18
+ this.#current = prev;
19
+ return result;
20
+ }
21
+ getStore() {
22
+ return this.#current;
23
+ }
24
+ };
25
+ const AsyncLocalStoragePromise = import(
26
+ /* @vite-ignore */
27
+ /* webpackIgnore: true */
28
+ "node:async_hooks"
29
+ ).then((mod) => mod.AsyncLocalStorage).catch((err) => {
30
+ if ("AsyncLocalStorage" in globalThis) return globalThis.AsyncLocalStorage;
31
+ if (typeof window !== "undefined") return null;
32
+ if (env["CONVEX_CLOUD_URL"] || env["CONVEX_SITE_URL"]) return AsyncLocalStoragePolyfill;
33
+ console.warn("[better-auth] Warning: AsyncLocalStorage is not available in this environment. Some features may not work as expected.");
34
+ console.warn("[better-auth] Please read more about this warning at https://better-auth.com/docs/installation#mount-handler");
35
+ console.warn("[better-auth] If you are using Cloudflare Workers, please see: https://developers.cloudflare.com/workers/configuration/compatibility-flags/#nodejs-compatibility-flag");
36
+ throw err;
37
+ });
38
+ async function getAsyncLocalStorage() {
39
+ const mod = await AsyncLocalStoragePromise;
40
+ if (mod === null) throw new Error("getAsyncLocalStorage is only available in server code");
41
+ else return mod;
42
+ }
43
+
44
+ //#endregion
45
+ export { getAsyncLocalStorage as t };
@@ -1,6 +1,5 @@
1
- import { Qn as DBTransactionAdapter, f as AuthContext, qn as DBAdapter } from "../index-D_XSRX55.mjs";
2
- import "../index-X1Fs3IbM.mjs";
3
- import { t as AsyncLocalStorage } from "../index-DgwIISs7.mjs";
1
+ import { Gn as DBAdapter, Xn as DBTransactionAdapter, f as AuthContext } from "../index-BfhTkcnW.mjs";
2
+ import { t as AsyncLocalStorage } from "../index-Da4Ujjef.mjs";
4
3
  import { EndpointContext, InputContext } from "better-call";
5
4
 
6
5
  //#region src/context/endpoint-context.d.ts
@@ -1,4 +1,5 @@
1
- import "../async_hooks-BfRfbd1J.mjs";
2
- import { a as defineRequestState, c as hasRequestState, d as getCurrentAuthContextAsyncLocalStorage, f as runWithEndpointContext, i as runWithTransaction, l as runWithRequestState, n as getCurrentDBAdapterAsyncLocalStorage, o as getCurrentRequestState, r as runWithAdapter, s as getRequestStateAsyncLocalStorage, t as getCurrentAdapter, u as getCurrentAuthContext } from "../context-DgQ9XGBl.mjs";
1
+ import "../env-D6s-lvJz.mjs";
2
+ import "../async_hooks-CrTStdt6.mjs";
3
+ import { a as defineRequestState, c as hasRequestState, d as getCurrentAuthContextAsyncLocalStorage, f as runWithEndpointContext, i as runWithTransaction, l as runWithRequestState, n as getCurrentDBAdapterAsyncLocalStorage, o as getCurrentRequestState, r as runWithAdapter, s as getRequestStateAsyncLocalStorage, t as getCurrentAdapter, u as getCurrentAuthContext } from "../context-su4uu82y.mjs";
3
4
 
4
5
  export { defineRequestState, getCurrentAdapter, getCurrentAuthContext, getCurrentAuthContextAsyncLocalStorage, getCurrentDBAdapterAsyncLocalStorage, getCurrentRequestState, getRequestStateAsyncLocalStorage, hasRequestState, runWithAdapter, runWithEndpointContext, runWithRequestState, runWithTransaction };
@@ -1,4 +1,4 @@
1
- import { t as getAsyncLocalStorage } from "./async_hooks-BfRfbd1J.mjs";
1
+ import { t as getAsyncLocalStorage } from "./async_hooks-CrTStdt6.mjs";
2
2
 
3
3
  //#region src/context/endpoint-context.ts
4
4
  let currentContextAsyncStorage = null;
@@ -1,3 +1,2 @@
1
- import { $n as JoinConfig, Gn as CleanedWhere, Jn as DBAdapterDebugLogOption, Kn as CustomAdapter, Qn as DBTransactionAdapter, Xn as DBAdapterInstance, Yn as DBAdapterFactoryConfig, Zn as DBAdapterSchemaCreation, er as JoinOption, qn as DBAdapter, tr as Where } from "../../index-D_XSRX55.mjs";
2
- import "../../index-X1Fs3IbM.mjs";
3
- export { CleanedWhere, CustomAdapter, DBAdapter, DBAdapterDebugLogOption, DBAdapterFactoryConfig, DBAdapterInstance, DBAdapterSchemaCreation, DBTransactionAdapter, JoinConfig, JoinOption, Where };
1
+ import { $n as Where, Gn as DBAdapter, Jn as DBAdapterInstance, Kn as DBAdapterDebugLogOption, Qn as JoinOption, Un as CleanedWhere, Wn as CustomAdapter, Xn as DBTransactionAdapter, Yn as DBAdapterSchemaCreation, Zn as JoinConfig, _r as initGetFieldName, ar as AdapterConfig, br as initGetDefaultFieldName, cr as AdapterFactoryOptions, dr as CreateCustomAdapter, er as deepmerge, gr as initGetIdField, hr as initGetModelName, ir as createAdapterFactory, lr as AdapterTestDebugLogs, nr as AdapterFactory, or as AdapterFactoryConfig, qn as DBAdapterFactoryConfig, rr as createAdapter, sr as AdapterFactoryCustomizeAdapterCreator, tr as withApplyDefault, ur as CreateAdapterOptions, vr as initGetFieldAttributes, yr as initGetDefaultModelName } from "../../index-BfhTkcnW.mjs";
2
+ export { AdapterConfig, AdapterFactory, AdapterFactoryConfig, AdapterFactoryCustomizeAdapterCreator, AdapterFactoryOptions, AdapterTestDebugLogs, CleanedWhere, CreateAdapterOptions, CreateCustomAdapter, CustomAdapter, DBAdapter, DBAdapterDebugLogOption, DBAdapterFactoryConfig, DBAdapterInstance, DBAdapterSchemaCreation, DBTransactionAdapter, JoinConfig, JoinOption, Where, createAdapter, createAdapterFactory, deepmerge, initGetDefaultFieldName, initGetDefaultModelName, initGetFieldAttributes, initGetFieldName, initGetIdField, initGetModelName, withApplyDefault };