@better-auth/core 1.5.0-beta.11 → 1.5.0-beta.12
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/.turbo/turbo-build.log +38 -38
- package/dist/api/index.d.mts +6 -6
- package/dist/context/global.mjs +1 -1
- package/dist/db/get-tables.mjs +6 -6
- package/dist/db/get-tables.mjs.map +1 -1
- package/dist/db/schema/user.d.mts +1 -1
- package/dist/db/schema/user.mjs +1 -1
- package/dist/db/schema/user.mjs.map +1 -1
- package/dist/index.d.mts +2 -2
- package/dist/oauth2/client-credentials-token.d.mts +24 -3
- package/dist/oauth2/client-credentials-token.mjs +14 -2
- package/dist/oauth2/client-credentials-token.mjs.map +1 -1
- package/dist/oauth2/create-authorization-url.d.mts +3 -1
- package/dist/oauth2/create-authorization-url.mjs +1 -0
- package/dist/oauth2/create-authorization-url.mjs.map +1 -1
- package/dist/oauth2/index.d.mts +4 -4
- package/dist/oauth2/index.mjs +4 -4
- package/dist/oauth2/refresh-access-token.d.mts +23 -2
- package/dist/oauth2/refresh-access-token.mjs +15 -2
- package/dist/oauth2/refresh-access-token.mjs.map +1 -1
- package/dist/oauth2/validate-authorization-code.d.mts +35 -3
- package/dist/oauth2/validate-authorization-code.mjs +24 -13
- package/dist/oauth2/validate-authorization-code.mjs.map +1 -1
- package/dist/social-providers/apple.d.mts +3 -3
- package/dist/social-providers/apple.mjs +3 -7
- package/dist/social-providers/apple.mjs.map +1 -1
- package/dist/social-providers/discord.mjs +1 -1
- package/dist/social-providers/discord.mjs.map +1 -1
- package/dist/social-providers/index.d.mts +7 -4
- package/dist/social-providers/index.mjs +2 -2
- package/dist/social-providers/index.mjs.map +1 -1
- package/dist/social-providers/microsoft-entra-id.d.mts +3 -1
- package/dist/social-providers/microsoft-entra-id.mjs +35 -2
- package/dist/social-providers/microsoft-entra-id.mjs.map +1 -1
- package/dist/social-providers/roblox.mjs +1 -1
- package/dist/social-providers/roblox.mjs.map +1 -1
- package/dist/social-providers/slack.mjs +1 -1
- package/dist/social-providers/slack.mjs.map +1 -1
- package/dist/types/helper.d.mts +2 -1
- package/dist/types/index.d.mts +1 -1
- package/package.json +3 -3
- package/src/db/get-tables.ts +6 -6
- package/src/db/schema/user.ts +1 -1
- package/src/oauth2/client-credentials-token.ts +26 -2
- package/src/oauth2/create-authorization-url.ts +3 -1
- package/src/oauth2/index.ts +3 -0
- package/src/oauth2/refresh-access-token.ts +29 -2
- package/src/oauth2/validate-authorization-code.ts +55 -24
- package/src/oauth2/validate-token.test.ts +117 -50
- package/src/social-providers/apple.ts +8 -11
- package/src/social-providers/discord.ts +1 -1
- package/src/social-providers/index.ts +6 -5
- package/src/social-providers/microsoft-entra-id.ts +84 -1
- package/src/social-providers/roblox.ts +1 -1
- package/src/social-providers/slack.ts +1 -1
- package/src/types/context.ts +8 -7
- package/src/types/helper.ts +1 -0
package/.turbo/turbo-build.log
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
|
|
2
|
-
> @better-auth/core@1.5.0-beta.
|
|
2
|
+
> @better-auth/core@1.5.0-beta.12 build /home/runner/work/better-auth/better-auth/packages/core
|
|
3
3
|
> tsdown
|
|
4
4
|
|
|
5
5
|
[34mℹ[39m tsdown [2mv0.20.1[22m powered by rolldown [2mv1.0.0-rc.1[22m
|
|
@@ -8,12 +8,12 @@
|
|
|
8
8
|
[34mℹ[39m tsconfig: [34mtsconfig.json[39m
|
|
9
9
|
[34mℹ[39m Build start
|
|
10
10
|
[34mℹ[39m [2mdist/[22m[1mutils/ip.mjs[22m [2m 3.84 kB[22m [2m│ gzip: 1.31 kB[22m
|
|
11
|
-
[34mℹ[39m [2mdist/[22m[1msocial-providers/index.mjs[22m [2m 2.
|
|
11
|
+
[34mℹ[39m [2mdist/[22m[1msocial-providers/index.mjs[22m [2m 2.40 kB[22m [2m│ gzip: 0.76 kB[22m
|
|
12
12
|
[34mℹ[39m [2mdist/[22m[1mapi/index.mjs[22m [2m 1.30 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
13
13
|
[34mℹ[39m [2mdist/[22m[1mutils/url.mjs[22m [2m 1.18 kB[22m [2m│ gzip: 0.54 kB[22m
|
|
14
14
|
[34mℹ[39m [2mdist/[22m[1masync_hooks/index.mjs[22m [2m 1.07 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
15
|
+
[34mℹ[39m [2mdist/[22m[1moauth2/index.mjs[22m [2m 1.04 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
15
16
|
[34mℹ[39m [2mdist/[22m[1masync_hooks/pure.index.mjs[22m [2m 1.03 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
16
|
-
[34mℹ[39m [2mdist/[22m[1moauth2/index.mjs[22m [2m 0.87 kB[22m [2m│ gzip: 0.27 kB[22m
|
|
17
17
|
[34mℹ[39m [2mdist/[22m[1mcontext/index.mjs[22m [2m 0.85 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
18
18
|
[34mℹ[39m [2mdist/[22m[1merror/index.mjs[22m [2m 0.72 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
19
19
|
[34mℹ[39m [2mdist/[22m[1mdb/adapter/index.mjs[22m [2m 0.68 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
@@ -28,11 +28,11 @@
|
|
|
28
28
|
[34mℹ[39m [2mdist/[22m[1mindex.mjs[22m [2m 0.01 kB[22m [2m│ gzip: 0.03 kB[22m
|
|
29
29
|
[34mℹ[39m [2mdist/[22mdb/adapter/factory.mjs.map [2m63.56 kB[22m [2m│ gzip: 12.81 kB[22m
|
|
30
30
|
[34mℹ[39m [2mdist/[22mdb/adapter/factory.mjs [2m29.06 kB[22m [2m│ gzip: 5.70 kB[22m
|
|
31
|
+
[34mℹ[39m [2mdist/[22msocial-providers/microsoft-entra-id.mjs.map [2m14.07 kB[22m [2m│ gzip: 4.62 kB[22m
|
|
31
32
|
[34mℹ[39m [2mdist/[22mdb/get-tables.mjs.map [2m13.13 kB[22m [2m│ gzip: 2.40 kB[22m
|
|
32
33
|
[34mℹ[39m [2mdist/[22msocial-providers/cognito.mjs.map [2m11.61 kB[22m [2m│ gzip: 3.68 kB[22m
|
|
33
|
-
[34mℹ[39m [2mdist/[22msocial-providers/microsoft-entra-id.mjs.map [2m10.94 kB[22m [2m│ gzip: 3.64 kB[22m
|
|
34
34
|
[34mℹ[39m [2mdist/[22msocial-providers/paypal.mjs.map [2m10.55 kB[22m [2m│ gzip: 3.07 kB[22m
|
|
35
|
-
[34mℹ[39m [2mdist/[22msocial-providers/apple.mjs.map [2m 9.
|
|
35
|
+
[34mℹ[39m [2mdist/[22msocial-providers/apple.mjs.map [2m 9.37 kB[22m [2m│ gzip: 3.34 kB[22m
|
|
36
36
|
[34mℹ[39m [2mdist/[22msocial-providers/zoom.mjs.map [2m 9.36 kB[22m [2m│ gzip: 3.22 kB[22m
|
|
37
37
|
[34mℹ[39m [2mdist/[22moauth2/verify.mjs.map [2m 8.91 kB[22m [2m│ gzip: 2.97 kB[22m
|
|
38
38
|
[34mℹ[39m [2mdist/[22msocial-providers/twitter.mjs.map [2m 8.44 kB[22m [2m│ gzip: 2.57 kB[22m
|
|
@@ -45,16 +45,18 @@
|
|
|
45
45
|
[34mℹ[39m [2mdist/[22mdb/get-tables.mjs [2m 7.13 kB[22m [2m│ gzip: 1.36 kB[22m
|
|
46
46
|
[34mℹ[39m [2mdist/[22msocial-providers/line.mjs.map [2m 6.99 kB[22m [2m│ gzip: 2.26 kB[22m
|
|
47
47
|
[34mℹ[39m [2mdist/[22msocial-providers/github.mjs.map [2m 6.79 kB[22m [2m│ gzip: 2.17 kB[22m
|
|
48
|
+
[34mℹ[39m [2mdist/[22moauth2/validate-authorization-code.mjs.map [2m 6.75 kB[22m [2m│ gzip: 1.99 kB[22m
|
|
48
49
|
[34mℹ[39m [2mdist/[22msocial-providers/salesforce.mjs.map [2m 6.52 kB[22m [2m│ gzip: 2.16 kB[22m
|
|
49
50
|
[34mℹ[39m [2mdist/[22mdb/adapter/get-id-field.mjs.map [2m 6.45 kB[22m [2m│ gzip: 2.14 kB[22m
|
|
50
51
|
[34mℹ[39m [2mdist/[22menv/color-depth.mjs.map [2m 6.21 kB[22m [2m│ gzip: 2.31 kB[22m
|
|
51
|
-
[34mℹ[39m [2mdist/[22moauth2/validate-authorization-code.mjs.map [2m 6.03 kB[22m [2m│ gzip: 1.99 kB[22m
|
|
52
52
|
[34mℹ[39m [2mdist/[22msocial-providers/gitlab.mjs.map [2m 6.00 kB[22m [2m│ gzip: 2.11 kB[22m
|
|
53
53
|
[34mℹ[39m [2mdist/[22msocial-providers/cognito.mjs [2m 5.94 kB[22m [2m│ gzip: 1.95 kB[22m
|
|
54
|
+
[34mℹ[39m [2mdist/[22moauth2/refresh-access-token.mjs.map [2m 5.61 kB[22m [2m│ gzip: 1.83 kB[22m
|
|
54
55
|
[34mℹ[39m [2mdist/[22menv/logger.mjs.map [2m 5.39 kB[22m [2m│ gzip: 1.90 kB[22m
|
|
55
56
|
[34mℹ[39m [2mdist/[22mcontext/transaction.mjs.map [2m 5.24 kB[22m [2m│ gzip: 1.59 kB[22m
|
|
56
57
|
[34mℹ[39m [2mdist/[22msocial-providers/atlassian.mjs.map [2m 5.16 kB[22m [2m│ gzip: 1.76 kB[22m
|
|
57
|
-
[34mℹ[39m [2mdist/[22msocial-providers/
|
|
58
|
+
[34mℹ[39m [2mdist/[22msocial-providers/microsoft-entra-id.mjs [2m 5.10 kB[22m [2m│ gzip: 1.84 kB[22m
|
|
59
|
+
[34mℹ[39m [2mdist/[22msocial-providers/slack.mjs.map [2m 5.10 kB[22m [2m│ gzip: 1.62 kB[22m
|
|
58
60
|
[34mℹ[39m [2mdist/[22msocial-providers/paypal.mjs [2m 5.06 kB[22m [2m│ gzip: 1.50 kB[22m
|
|
59
61
|
[34mℹ[39m [2mdist/[22msocial-providers/paybin.mjs.map [2m 4.94 kB[22m [2m│ gzip: 1.75 kB[22m
|
|
60
62
|
[34mℹ[39m [2mdist/[22msocial-providers/vk.mjs.map [2m 4.94 kB[22m [2m│ gzip: 1.70 kB[22m
|
|
@@ -62,7 +64,7 @@
|
|
|
62
64
|
[34mℹ[39m [2mdist/[22msocial-providers/reddit.mjs.map [2m 4.86 kB[22m [2m│ gzip: 1.75 kB[22m
|
|
63
65
|
[34mℹ[39m [2mdist/[22msocial-providers/roblox.mjs.map [2m 4.84 kB[22m [2m│ gzip: 1.75 kB[22m
|
|
64
66
|
[34mℹ[39m [2mdist/[22msocial-providers/figma.mjs.map [2m 4.78 kB[22m [2m│ gzip: 1.68 kB[22m
|
|
65
|
-
[34mℹ[39m [2mdist/[22moauth2/
|
|
67
|
+
[34mℹ[39m [2mdist/[22moauth2/client-credentials-token.mjs.map [2m 4.73 kB[22m [2m│ gzip: 1.59 kB[22m
|
|
66
68
|
[34mℹ[39m [2mdist/[22msocial-providers/polar.mjs.map [2m 4.64 kB[22m [2m│ gzip: 1.57 kB[22m
|
|
67
69
|
[34mℹ[39m [2mdist/[22msocial-providers/huggingface.mjs.map [2m 4.62 kB[22m [2m│ gzip: 1.55 kB[22m
|
|
68
70
|
[34mℹ[39m [2mdist/[22msocial-providers/linear.mjs.map [2m 4.60 kB[22m [2m│ gzip: 1.60 kB[22m
|
|
@@ -70,25 +72,23 @@
|
|
|
70
72
|
[34mℹ[39m [2mdist/[22msocial-providers/naver.mjs.map [2m 4.35 kB[22m [2m│ gzip: 1.56 kB[22m
|
|
71
73
|
[34mℹ[39m [2mdist/[22msocial-providers/notion.mjs.map [2m 4.29 kB[22m [2m│ gzip: 1.53 kB[22m
|
|
72
74
|
[34mℹ[39m [2mdist/[22msocial-providers/twitch.mjs.map [2m 4.20 kB[22m [2m│ gzip: 1.48 kB[22m
|
|
75
|
+
[34mℹ[39m [2mdist/[22moauth2/create-authorization-url.mjs.map [2m 4.16 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
73
76
|
[34mℹ[39m [2mdist/[22merror/codes.mjs.map [2m 4.06 kB[22m [2m│ gzip: 1.62 kB[22m
|
|
74
77
|
[34mℹ[39m [2mdist/[22msocial-providers/linkedin.mjs.map [2m 4.05 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
75
78
|
[34mℹ[39m [2mdist/[22msocial-providers/kick.mjs.map [2m 3.98 kB[22m [2m│ gzip: 1.42 kB[22m
|
|
76
|
-
[34mℹ[39m [2mdist/[
|
|
77
|
-
[34mℹ[39m [2mdist/[22moauth2/client-credentials-token.mjs.map [2m 3.91 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
79
|
+
[34mℹ[39m [2mdist/[22msocial-providers/index.mjs.map [2m 3.87 kB[22m [2m│ gzip: 1.07 kB[22m
|
|
78
80
|
[34mℹ[39m [2mdist/[22mcontext/request-state.mjs.map [2m 3.86 kB[22m [2m│ gzip: 1.46 kB[22m
|
|
79
|
-
[34mℹ[39m [2mdist/[22msocial-providers/apple.mjs [2m 3.81 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
80
|
-
[34mℹ[39m [2mdist/[22msocial-providers/index.mjs.map [2m 3.79 kB[22m [2m│ gzip: 1.04 kB[22m
|
|
81
81
|
[34mℹ[39m [2mdist/[22msocial-providers/spotify.mjs.map [2m 3.79 kB[22m [2m│ gzip: 1.34 kB[22m
|
|
82
82
|
[34mℹ[39m [2mdist/[22msocial-providers/google.mjs [2m 3.79 kB[22m [2m│ gzip: 1.41 kB[22m
|
|
83
83
|
[34mℹ[39m [2mdist/[22moauth2/verify.mjs [2m 3.78 kB[22m [2m│ gzip: 1.34 kB[22m
|
|
84
|
+
[34mℹ[39m [2mdist/[22msocial-providers/apple.mjs [2m 3.68 kB[22m [2m│ gzip: 1.35 kB[22m
|
|
84
85
|
[34mℹ[39m [2mdist/[22mapi/index.mjs.map [2m 3.61 kB[22m [2m│ gzip: 1.14 kB[22m
|
|
85
86
|
[34mℹ[39m [2mdist/[22msocial-providers/line.mjs [2m 3.60 kB[22m [2m│ gzip: 1.23 kB[22m
|
|
86
87
|
[34mℹ[39m [2mdist/[22msocial-providers/facebook.mjs [2m 3.60 kB[22m [2m│ gzip: 1.27 kB[22m
|
|
87
88
|
[34mℹ[39m [2mdist/[22msocial-providers/salesforce.mjs [2m 3.54 kB[22m [2m│ gzip: 1.14 kB[22m
|
|
88
89
|
[34mℹ[39m [2mdist/[22msocial-providers/vercel.mjs.map [2m 3.52 kB[22m [2m│ gzip: 1.31 kB[22m
|
|
89
|
-
[34mℹ[39m [2mdist/[22msocial-providers/microsoft-entra-id.mjs [2m 3.51 kB[22m [2m│ gzip: 1.25 kB[22m
|
|
90
90
|
[34mℹ[39m [2mdist/[22msocial-providers/github.mjs [2m 3.17 kB[22m [2m│ gzip: 1.07 kB[22m
|
|
91
|
-
[34mℹ[39m [2mdist/[22moauth2/validate-authorization-code.mjs [2m
|
|
91
|
+
[34mℹ[39m [2mdist/[22moauth2/validate-authorization-code.mjs [2m 3.10 kB[22m [2m│ gzip: 1.06 kB[22m
|
|
92
92
|
[34mℹ[39m [2mdist/[22merror/codes.mjs [2m 2.82 kB[22m [2m│ gzip: 1.17 kB[22m
|
|
93
93
|
[34mℹ[39m [2mdist/[22msocial-providers/figma.mjs [2m 2.81 kB[22m [2m│ gzip: 1.02 kB[22m
|
|
94
94
|
[34mℹ[39m [2mdist/[22msocial-providers/atlassian.mjs [2m 2.79 kB[22m [2m│ gzip: 1.01 kB[22m
|
|
@@ -99,10 +99,11 @@
|
|
|
99
99
|
[34mℹ[39m [2mdist/[22msocial-providers/paybin.mjs [2m 2.68 kB[22m [2m│ gzip: 0.99 kB[22m
|
|
100
100
|
[34mℹ[39m [2mdist/[22msocial-providers/gitlab.mjs [2m 2.68 kB[22m [2m│ gzip: 0.99 kB[22m
|
|
101
101
|
[34mℹ[39m [2mdist/[22msocial-providers/reddit.mjs [2m 2.67 kB[22m [2m│ gzip: 1.03 kB[22m
|
|
102
|
-
[34mℹ[39m [2mdist/[22msocial-providers/discord.mjs [2m 2.
|
|
102
|
+
[34mℹ[39m [2mdist/[22msocial-providers/discord.mjs [2m 2.65 kB[22m [2m│ gzip: 1.07 kB[22m
|
|
103
103
|
[34mℹ[39m [2mdist/[22mdb/adapter/get-id-field.mjs [2m 2.63 kB[22m [2m│ gzip: 0.99 kB[22m
|
|
104
104
|
[34mℹ[39m [2mdist/[22mcontext/transaction.mjs [2m 2.63 kB[22m [2m│ gzip: 0.85 kB[22m
|
|
105
105
|
[34mℹ[39m [2mdist/[22msocial-providers/vk.mjs [2m 2.62 kB[22m [2m│ gzip: 0.96 kB[22m
|
|
106
|
+
[34mℹ[39m [2mdist/[22moauth2/refresh-access-token.mjs [2m 2.60 kB[22m [2m│ gzip: 0.95 kB[22m
|
|
106
107
|
[34mℹ[39m [2mdist/[22menv/env-impl.mjs [2m 2.56 kB[22m [2m│ gzip: 0.89 kB[22m
|
|
107
108
|
[34mℹ[39m [2mdist/[22menv/logger.mjs [2m 2.46 kB[22m [2m│ gzip: 0.96 kB[22m
|
|
108
109
|
[34mℹ[39m [2mdist/[22msocial-providers/linear.mjs [2m 2.45 kB[22m [2m│ gzip: 0.92 kB[22m
|
|
@@ -116,19 +117,18 @@
|
|
|
116
117
|
[34mℹ[39m [2mdist/[22msocial-providers/tiktok.mjs [2m 2.30 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
117
118
|
[34mℹ[39m [2mdist/[22msocial-providers/slack.mjs [2m 2.29 kB[22m [2m│ gzip: 0.86 kB[22m
|
|
118
119
|
[34mℹ[39m [2mdist/[22msocial-providers/huggingface.mjs [2m 2.27 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
120
|
+
[34mℹ[39m [2mdist/[22moauth2/client-credentials-token.mjs [2m 2.25 kB[22m [2m│ gzip: 0.87 kB[22m
|
|
119
121
|
[34mℹ[39m [2mdist/[22msocial-providers/twitch.mjs [2m 2.24 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
120
122
|
[34mℹ[39m [2mdist/[22msocial-providers/linkedin.mjs [2m 2.23 kB[22m [2m│ gzip: 0.82 kB[22m
|
|
121
123
|
[34mℹ[39m [2mdist/[22msocial-providers/polar.mjs [2m 2.22 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
122
124
|
[34mℹ[39m [2mdist/[22msocial-providers/roblox.mjs [2m 2.21 kB[22m [2m│ gzip: 0.89 kB[22m
|
|
123
|
-
[34mℹ[39m [2mdist/[22moauth2/refresh-access-token.mjs [2m 2.20 kB[22m [2m│ gzip: 0.87 kB[22m
|
|
124
125
|
[34mℹ[39m [2mdist/[22mcontext/global.mjs.map [2m 2.19 kB[22m [2m│ gzip: 0.96 kB[22m
|
|
125
126
|
[34mℹ[39m [2mdist/[22msocial-providers/spotify.mjs [2m 2.17 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
126
127
|
[34mℹ[39m [2mdist/[22msocial-providers/naver.mjs [2m 2.14 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
127
128
|
[34mℹ[39m [2mdist/[22msocial-providers/kick.mjs [2m 2.11 kB[22m [2m│ gzip: 0.79 kB[22m
|
|
129
|
+
[34mℹ[39m [2mdist/[22moauth2/create-authorization-url.mjs [2m 1.99 kB[22m [2m│ gzip: 0.78 kB[22m
|
|
128
130
|
[34mℹ[39m [2mdist/[22msocial-providers/vercel.mjs [2m 1.94 kB[22m [2m│ gzip: 0.76 kB[22m
|
|
129
|
-
[34mℹ[39m [2mdist/[22moauth2/create-authorization-url.mjs [2m 1.92 kB[22m [2m│ gzip: 0.75 kB[22m
|
|
130
131
|
[34mℹ[39m [2mdist/[22moauth2/utils.mjs.map [2m 1.91 kB[22m [2m│ gzip: 0.91 kB[22m
|
|
131
|
-
[34mℹ[39m [2mdist/[22moauth2/client-credentials-token.mjs [2m 1.89 kB[22m [2m│ gzip: 0.79 kB[22m
|
|
132
132
|
[34mℹ[39m [2mdist/[22mdb/schema/account.mjs.map [2m 1.88 kB[22m [2m│ gzip: 0.72 kB[22m
|
|
133
133
|
[34mℹ[39m [2mdist/[22masync_hooks/pure.index.mjs.map [2m 1.83 kB[22m [2m│ gzip: 0.88 kB[22m
|
|
134
134
|
[34mℹ[39m [2mdist/[22mutils/url.mjs.map [2m 1.82 kB[22m [2m│ gzip: 0.80 kB[22m
|
|
@@ -143,7 +143,7 @@
|
|
|
143
143
|
[34mℹ[39m [2mdist/[22mcontext/endpoint-context.mjs [2m 1.35 kB[22m [2m│ gzip: 0.55 kB[22m
|
|
144
144
|
[34mℹ[39m [2mdist/[22mdb/adapter/get-field-attributes.mjs [2m 1.31 kB[22m [2m│ gzip: 0.49 kB[22m
|
|
145
145
|
[34mℹ[39m [2mdist/[22mdb/schema/session.mjs.map [2m 1.26 kB[22m [2m│ gzip: 0.56 kB[22m
|
|
146
|
-
[34mℹ[39m [2mdist/[22mdb/schema/user.mjs.map [2m 1.
|
|
146
|
+
[34mℹ[39m [2mdist/[22mdb/schema/user.mjs.map [2m 1.23 kB[22m [2m│ gzip: 0.59 kB[22m
|
|
147
147
|
[34mℹ[39m [2mdist/[22mutils/db.mjs.map [2m 1.19 kB[22m [2m│ gzip: 0.66 kB[22m
|
|
148
148
|
[34mℹ[39m [2mdist/[22mdb/adapter/utils.mjs [2m 1.19 kB[22m [2m│ gzip: 0.48 kB[22m
|
|
149
149
|
[34mℹ[39m [2mdist/[22mdb/schema/rate-limit.mjs.map [2m 1.19 kB[22m [2m│ gzip: 0.54 kB[22m
|
|
@@ -157,19 +157,19 @@
|
|
|
157
157
|
[34mℹ[39m [2mdist/[22mdb/schema/account.mjs [2m 0.56 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
158
158
|
[34mℹ[39m [2mdist/[22mdb/schema/shared.mjs.map [2m 0.47 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
159
159
|
[34mℹ[39m [2mdist/[22mutils/id.mjs.map [2m 0.39 kB[22m [2m│ gzip: 0.29 kB[22m
|
|
160
|
-
[34mℹ[39m [2mdist/[22mdb/schema/user.mjs [2m 0.
|
|
160
|
+
[34mℹ[39m [2mdist/[22mdb/schema/user.mjs [2m 0.36 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
161
161
|
[34mℹ[39m [2mdist/[22mdb/schema/session.mjs [2m 0.36 kB[22m [2m│ gzip: 0.23 kB[22m
|
|
162
162
|
[34mℹ[39m [2mdist/[22mdb/schema/verification.mjs [2m 0.31 kB[22m [2m│ gzip: 0.21 kB[22m
|
|
163
163
|
[34mℹ[39m [2mdist/[22mdb/schema/shared.mjs [2m 0.31 kB[22m [2m│ gzip: 0.21 kB[22m
|
|
164
164
|
[34mℹ[39m [2mdist/[22mutils/string.mjs.map [2m 0.31 kB[22m [2m│ gzip: 0.25 kB[22m
|
|
165
165
|
[34mℹ[39m [2mdist/[22mdb/schema/rate-limit.mjs [2m 0.25 kB[22m [2m│ gzip: 0.19 kB[22m
|
|
166
|
-
[34mℹ[39m [2mdist/[22m[32m[1msocial-providers/index.d.mts[22m[39m [2m45.
|
|
166
|
+
[34mℹ[39m [2mdist/[22m[32m[1msocial-providers/index.d.mts[22m[39m [2m45.86 kB[22m [2m│ gzip: 3.16 kB[22m
|
|
167
167
|
[34mℹ[39m [2mdist/[22m[32m[1mdb/adapter/index.d.mts[22m[39m [2m15.14 kB[22m [2m│ gzip: 3.61 kB[22m
|
|
168
|
-
[34mℹ[39m [2mdist/[22m[32m[1mapi/index.d.mts[22m[39m [2m10.
|
|
168
|
+
[34mℹ[39m [2mdist/[22m[32m[1mapi/index.d.mts[22m[39m [2m10.37 kB[22m [2m│ gzip: 1.56 kB[22m
|
|
169
169
|
[34mℹ[39m [2mdist/[22m[32m[1mdb/index.d.mts[22m[39m [2m 1.68 kB[22m [2m│ gzip: 0.45 kB[22m
|
|
170
170
|
[34mℹ[39m [2mdist/[22m[32m[1mutils/ip.d.mts[22m[39m [2m 1.61 kB[22m [2m│ gzip: 0.71 kB[22m
|
|
171
|
-
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.mts[22m[39m [2m 1.
|
|
172
|
-
[34mℹ[39m [2mdist/[22m[32m[1moauth2/index.d.mts[22m[39m [2m 1.
|
|
171
|
+
[34mℹ[39m [2mdist/[22m[32m[1mindex.d.mts[22m[39m [2m 1.59 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
172
|
+
[34mℹ[39m [2mdist/[22m[32m[1moauth2/index.d.mts[22m[39m [2m 1.22 kB[22m [2m│ gzip: 0.34 kB[22m
|
|
173
173
|
[34mℹ[39m [2mdist/[22m[32m[1mutils/error-codes.d.mts[22m[39m [2m 1.03 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
174
174
|
[34mℹ[39m [2mdist/[22m[32m[1mcontext/index.d.mts[22m[39m [2m 0.97 kB[22m [2m│ gzip: 0.28 kB[22m
|
|
175
175
|
[34mℹ[39m [2mdist/[22m[32m[1mutils/url.d.mts[22m[39m [2m 0.88 kB[22m [2m│ gzip: 0.42 kB[22m
|
|
@@ -187,12 +187,12 @@
|
|
|
187
187
|
[34mℹ[39m [2mdist/[22m[32mdb/type.d.mts[39m [2m 7.55 kB[22m [2m│ gzip: 1.89 kB[22m
|
|
188
188
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/zoom.d.mts[39m [2m 6.29 kB[22m [2m│ gzip: 2.20 kB[22m
|
|
189
189
|
[34mℹ[39m [2mdist/[22m[32moauth2/oauth-provider.d.mts[39m [2m 5.97 kB[22m [2m│ gzip: 1.69 kB[22m
|
|
190
|
-
[34mℹ[39m [2mdist/[22m[32msocial-providers/microsoft-entra-id.d.mts[39m [2m 5.
|
|
190
|
+
[34mℹ[39m [2mdist/[22m[32msocial-providers/microsoft-entra-id.d.mts[39m [2m 5.88 kB[22m [2m│ gzip: 2.07 kB[22m
|
|
191
191
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/tiktok.d.mts[39m [2m 5.38 kB[22m [2m│ gzip: 1.36 kB[22m
|
|
192
192
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/kakao.d.mts[39m [2m 4.95 kB[22m [2m│ gzip: 1.29 kB[22m
|
|
193
193
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/twitter.d.mts[39m [2m 4.83 kB[22m [2m│ gzip: 1.45 kB[22m
|
|
194
194
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/types.d.mts[39m [2m 4.15 kB[22m [2m│ gzip: 1.28 kB[22m
|
|
195
|
-
[34mℹ[39m [2mdist/[22m[32msocial-providers/apple.d.mts[39m [2m 3.
|
|
195
|
+
[34mℹ[39m [2mdist/[22m[32msocial-providers/apple.d.mts[39m [2m 3.89 kB[22m [2m│ gzip: 1.52 kB[22m
|
|
196
196
|
[34mℹ[39m [2mdist/[22m[32mtypes/plugin.d.mts[39m [2m 3.81 kB[22m [2m│ gzip: 1.38 kB[22m
|
|
197
197
|
[34mℹ[39m [2mdist/[22m[32mtypes/plugin-client.d.mts[39m [2m 3.80 kB[22m [2m│ gzip: 1.47 kB[22m
|
|
198
198
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/discord.d.mts[39m [2m 3.76 kB[22m [2m│ gzip: 1.26 kB[22m
|
|
@@ -200,6 +200,7 @@
|
|
|
200
200
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/paypal.d.mts[39m [2m 3.39 kB[22m [2m│ gzip: 1.02 kB[22m
|
|
201
201
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/gitlab.d.mts[39m [2m 2.99 kB[22m [2m│ gzip: 0.94 kB[22m
|
|
202
202
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/line.d.mts[39m [2m 2.65 kB[22m [2m│ gzip: 0.82 kB[22m
|
|
203
|
+
[34mℹ[39m [2mdist/[22m[32moauth2/validate-authorization-code.d.mts[39m [2m 2.54 kB[22m [2m│ gzip: 0.64 kB[22m
|
|
203
204
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/google.d.mts[39m [2m 2.52 kB[22m [2m│ gzip: 0.90 kB[22m
|
|
204
205
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/github.d.mts[39m [2m 2.43 kB[22m [2m│ gzip: 0.81 kB[22m
|
|
205
206
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/slack.d.mts[39m [2m 2.42 kB[22m [2m│ gzip: 0.74 kB[22m
|
|
@@ -220,9 +221,10 @@
|
|
|
220
221
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/kick.d.mts[39m [2m 1.66 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
221
222
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/linkedin.d.mts[39m [2m 1.65 kB[22m [2m│ gzip: 0.62 kB[22m
|
|
222
223
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/linear.d.mts[39m [2m 1.64 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
223
|
-
[34mℹ[39m [2mdist/[22m[32moauth2/validate-authorization-code.d.mts[39m [2m 1.63 kB[22m [2m│ gzip: 0.51 kB[22m
|
|
224
224
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/notion.d.mts[39m [2m 1.60 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
225
|
+
[34mℹ[39m [2mdist/[22m[32moauth2/refresh-access-token.d.mts[39m [2m 1.58 kB[22m [2m│ gzip: 0.49 kB[22m
|
|
225
226
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/reddit.d.mts[39m [2m 1.58 kB[22m [2m│ gzip: 0.59 kB[22m
|
|
227
|
+
[34mℹ[39m [2mdist/[22m[32moauth2/client-credentials-token.d.mts[39m [2m 1.56 kB[22m [2m│ gzip: 0.48 kB[22m
|
|
226
228
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/spotify.d.mts[39m [2m 1.55 kB[22m [2m│ gzip: 0.58 kB[22m
|
|
227
229
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/vercel.d.mts[39m [2m 1.50 kB[22m [2m│ gzip: 0.57 kB[22m
|
|
228
230
|
[34mℹ[39m [2mdist/[22m[32msocial-providers/figma.d.mts[39m [2m 1.50 kB[22m [2m│ gzip: 0.57 kB[22m
|
|
@@ -230,19 +232,17 @@
|
|
|
230
232
|
[34mℹ[39m [2mdist/[22m[32mcontext/request-state.d.mts[39m [2m 1.40 kB[22m [2m│ gzip: 0.61 kB[22m
|
|
231
233
|
[34mℹ[39m [2mdist/[22m[32menv/env-impl.d.mts[39m [2m 1.31 kB[22m [2m│ gzip: 0.50 kB[22m
|
|
232
234
|
[34mℹ[39m [2mdist/[22m[32mcontext/transaction.d.mts[39m [2m 1.25 kB[22m [2m│ gzip: 0.53 kB[22m
|
|
235
|
+
[34mℹ[39m [2mdist/[22m[32moauth2/create-authorization-url.d.mts[39m [2m 1.21 kB[22m [2m│ gzip: 0.46 kB[22m
|
|
233
236
|
[34mℹ[39m [2mdist/[22m[32mdb/schema/session.d.mts[39m [2m 1.21 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
234
|
-
[34mℹ[39m [2mdist/[22m[32mdb/schema/user.d.mts[39m [2m 1.17 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
235
237
|
[34mℹ[39m [2mdist/[22m[32mdb/schema/verification.d.mts[39m [2m 1.15 kB[22m [2m│ gzip: 0.48 kB[22m
|
|
236
|
-
[34mℹ[39m [2mdist/[22m[
|
|
238
|
+
[34mℹ[39m [2mdist/[22m[32mdb/schema/user.d.mts[39m [2m 1.14 kB[22m [2m│ gzip: 0.52 kB[22m
|
|
237
239
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/get-id-field.d.mts[39m [2m 1.09 kB[22m [2m│ gzip: 0.49 kB[22m
|
|
238
240
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/factory.d.mts[39m [2m 1.06 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
239
241
|
[34mℹ[39m [2mdist/[22m[32mcontext/endpoint-context.d.mts[39m [2m 1.04 kB[22m [2m│ gzip: 0.45 kB[22m
|
|
240
|
-
[34mℹ[39m [2mdist/[22m[
|
|
241
|
-
[34mℹ[39m [2mdist/[22m[32moauth2/client-credentials-token.d.mts[39m [2m 0.97 kB[22m [2m│ gzip: 0.39 kB[22m
|
|
242
|
+
[34mℹ[39m [2mdist/[22m[32mtypes/index.d.mts[39m [2m 0.97 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
242
243
|
[34mℹ[39m [2mdist/[22m[32mdb/schema/rate-limit.d.mts[39m [2m 0.95 kB[22m [2m│ gzip: 0.43 kB[22m
|
|
243
|
-
[34mℹ[39m [2mdist/[22m[32mtypes/index.d.mts[39m [2m 0.95 kB[22m [2m│ gzip: 0.38 kB[22m
|
|
244
244
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/get-field-attributes.d.mts[39m [2m 0.78 kB[22m [2m│ gzip: 0.36 kB[22m
|
|
245
|
-
[34mℹ[39m [2mdist/[22m[32mtypes/helper.d.mts[39m [2m 0.
|
|
245
|
+
[34mℹ[39m [2mdist/[22m[32mtypes/helper.d.mts[39m [2m 0.70 kB[22m [2m│ gzip: 0.37 kB[22m
|
|
246
246
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/get-default-field-name.d.mts[39m [2m 0.43 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
247
247
|
[34mℹ[39m [2mdist/[22m[32mtypes/cookie.d.mts[39m [2m 0.42 kB[22m [2m│ gzip: 0.22 kB[22m
|
|
248
248
|
[34mℹ[39m [2mdist/[22m[32mdb/adapter/get-field-name.d.mts[39m [2m 0.41 kB[22m [2m│ gzip: 0.26 kB[22m
|
|
@@ -255,11 +255,11 @@
|
|
|
255
255
|
[34mℹ[39m [2mdist/[22m[32mdb/schema/shared.d.mts[39m [2m 0.29 kB[22m [2m│ gzip: 0.21 kB[22m
|
|
256
256
|
[34mℹ[39m [2mdist/[22m[32mcontext/global.d.mts[39m [2m 0.23 kB[22m [2m│ gzip: 0.18 kB[22m
|
|
257
257
|
[34mℹ[39m [2mdist/[22m[32menv/color-depth.d.mts[39m [2m 0.16 kB[22m [2m│ gzip: 0.14 kB[22m
|
|
258
|
-
[34mℹ[39m 248 files, total:
|
|
258
|
+
[34mℹ[39m 248 files, total: 880.17 kB
|
|
259
259
|
[33m[PLUGIN_TIMINGS] Warning:[0m Your build spent significant time in plugins. Here is a breakdown:
|
|
260
|
-
- rolldown-plugin-dts:generate (
|
|
261
|
-
- rolldown-plugin-dts:fake-js (
|
|
262
|
-
- rolldown-plugin-dts:resolver (
|
|
260
|
+
- rolldown-plugin-dts:generate (39%)
|
|
261
|
+
- rolldown-plugin-dts:fake-js (36%)
|
|
262
|
+
- rolldown-plugin-dts:resolver (24%)
|
|
263
263
|
See https://rolldown.rs/options/checks#plugintimings for more details.
|
|
264
264
|
|
|
265
|
-
[32m✔[39m Build complete in [
|
|
265
|
+
[32m✔[39m Build complete in [32m5343ms[39m
|
package/dist/api/index.d.mts
CHANGED
|
@@ -43,7 +43,7 @@ declare const createAuthMiddleware: {
|
|
|
43
43
|
updatedAt: Date;
|
|
44
44
|
email: string;
|
|
45
45
|
emailVerified: boolean;
|
|
46
|
-
name
|
|
46
|
+
name: string;
|
|
47
47
|
image?: string | null | undefined;
|
|
48
48
|
} & Record<string, any>;
|
|
49
49
|
} | null;
|
|
@@ -64,7 +64,7 @@ declare const createAuthMiddleware: {
|
|
|
64
64
|
updatedAt: Date;
|
|
65
65
|
email: string;
|
|
66
66
|
emailVerified: boolean;
|
|
67
|
-
name
|
|
67
|
+
name: string;
|
|
68
68
|
image?: string | null | undefined;
|
|
69
69
|
} & Record<string, any>;
|
|
70
70
|
} | null;
|
|
@@ -85,7 +85,7 @@ declare const createAuthMiddleware: {
|
|
|
85
85
|
updatedAt: Date;
|
|
86
86
|
email: string;
|
|
87
87
|
emailVerified: boolean;
|
|
88
|
-
name
|
|
88
|
+
name: string;
|
|
89
89
|
image?: string | null | undefined;
|
|
90
90
|
} & Record<string, any>;
|
|
91
91
|
} | null) => void;
|
|
@@ -170,7 +170,7 @@ declare const createAuthMiddleware: {
|
|
|
170
170
|
updatedAt: Date;
|
|
171
171
|
email: string;
|
|
172
172
|
emailVerified: boolean;
|
|
173
|
-
name
|
|
173
|
+
name: string;
|
|
174
174
|
image?: string | null | undefined;
|
|
175
175
|
} & Record<string, any>;
|
|
176
176
|
} | null;
|
|
@@ -191,7 +191,7 @@ declare const createAuthMiddleware: {
|
|
|
191
191
|
updatedAt: Date;
|
|
192
192
|
email: string;
|
|
193
193
|
emailVerified: boolean;
|
|
194
|
-
name
|
|
194
|
+
name: string;
|
|
195
195
|
image?: string | null | undefined;
|
|
196
196
|
} & Record<string, any>;
|
|
197
197
|
} | null;
|
|
@@ -212,7 +212,7 @@ declare const createAuthMiddleware: {
|
|
|
212
212
|
updatedAt: Date;
|
|
213
213
|
email: string;
|
|
214
214
|
emailVerified: boolean;
|
|
215
|
-
name
|
|
215
|
+
name: string;
|
|
216
216
|
image?: string | null | undefined;
|
|
217
217
|
} & Record<string, any>;
|
|
218
218
|
} | null) => void;
|
package/dist/context/global.mjs
CHANGED
package/dist/db/get-tables.mjs
CHANGED
|
@@ -130,6 +130,12 @@ const getAuthTables = (options) => {
|
|
|
130
130
|
user: {
|
|
131
131
|
modelName: options.user?.modelName || "user",
|
|
132
132
|
fields: {
|
|
133
|
+
name: {
|
|
134
|
+
type: "string",
|
|
135
|
+
required: true,
|
|
136
|
+
fieldName: options.user?.fields?.name || "name",
|
|
137
|
+
sortable: true
|
|
138
|
+
},
|
|
133
139
|
email: {
|
|
134
140
|
type: "string",
|
|
135
141
|
unique: true,
|
|
@@ -144,12 +150,6 @@ const getAuthTables = (options) => {
|
|
|
144
150
|
fieldName: options.user?.fields?.emailVerified || "emailVerified",
|
|
145
151
|
input: false
|
|
146
152
|
},
|
|
147
|
-
name: {
|
|
148
|
-
type: "string",
|
|
149
|
-
required: false,
|
|
150
|
-
fieldName: options.user?.fields?.name || "name",
|
|
151
|
-
sortable: true
|
|
152
|
-
},
|
|
153
153
|
image: {
|
|
154
154
|
type: "string",
|
|
155
155
|
required: false,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"get-tables.mjs","names":[],"sources":["../../src/db/get-tables.ts"],"sourcesContent":["import type { BetterAuthOptions } from \"../types\";\nimport type { BetterAuthDBSchema, DBFieldAttribute } from \"./type\";\n\nexport const getAuthTables = (\n\toptions: BetterAuthOptions,\n): BetterAuthDBSchema => {\n\tconst pluginSchema = (options.plugins ?? []).reduce(\n\t\t(acc, plugin) => {\n\t\t\tconst schema = plugin.schema;\n\t\t\tif (!schema) return acc;\n\t\t\tfor (const [key, value] of Object.entries(schema)) {\n\t\t\t\tacc[key] = {\n\t\t\t\t\tfields: {\n\t\t\t\t\t\t...acc[key]?.fields,\n\t\t\t\t\t\t...value.fields,\n\t\t\t\t\t},\n\t\t\t\t\tmodelName: value.modelName || key,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<\n\t\t\tstring,\n\t\t\t{ fields: Record<string, DBFieldAttribute>; modelName: string }\n\t\t>,\n\t);\n\n\tconst shouldAddRateLimitTable = options.rateLimit?.storage === \"database\";\n\tconst rateLimitTable = {\n\t\trateLimit: {\n\t\t\tmodelName: options.rateLimit?.modelName || \"rateLimit\",\n\t\t\tfields: {\n\t\t\t\tkey: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tunique: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.key || \"key\",\n\t\t\t\t},\n\t\t\t\tcount: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.count || \"count\",\n\t\t\t\t},\n\t\t\t\tlastRequest: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tbigint: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.lastRequest || \"lastRequest\",\n\t\t\t\t\tdefaultValue: () => Date.now(),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\tconst { user, session, account, verification, ...pluginTables } =\n\t\tpluginSchema;\n\n\tconst verificationTable = {\n\t\tverification: {\n\t\t\tmodelName: options.verification?.modelName || \"verification\",\n\t\t\tfields: {\n\t\t\t\tidentifier: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.identifier || \"identifier\",\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.value || \"value\",\n\t\t\t\t},\n\t\t\t\texpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.expiresAt || \"expiresAt\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tfieldName: options.verification?.fields?.createdAt || \"createdAt\",\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t\tfieldName: options.verification?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t},\n\t\t\t\t...verification?.fields,\n\t\t\t\t...options.verification?.additionalFields,\n\t\t\t},\n\t\t\torder: 4,\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\tconst sessionTable = {\n\t\tsession: {\n\t\t\tmodelName: options.session?.modelName || \"session\",\n\t\t\tfields: {\n\t\t\t\texpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.expiresAt || \"expiresAt\",\n\t\t\t\t},\n\t\t\t\ttoken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.token || \"token\",\n\t\t\t\t\tunique: true,\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.createdAt || \"createdAt\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t},\n\t\t\t\tipAddress: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.session?.fields?.ipAddress || \"ipAddress\",\n\t\t\t\t},\n\t\t\t\tuserAgent: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.session?.fields?.userAgent || \"userAgent\",\n\t\t\t\t},\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tfieldName: options.session?.fields?.userId || \"userId\",\n\t\t\t\t\treferences: {\n\t\t\t\t\t\tmodel: options.user?.modelName || \"user\",\n\t\t\t\t\t\tfield: \"id\",\n\t\t\t\t\t\tonDelete: \"cascade\",\n\t\t\t\t\t},\n\t\t\t\t\trequired: true,\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\t...session?.fields,\n\t\t\t\t...options.session?.additionalFields,\n\t\t\t},\n\t\t\torder: 2,\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\treturn {\n\t\tuser: {\n\t\t\tmodelName: options.user?.modelName || \"user\",\n\t\t\tfields: {\n\t\t\t\temail: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tunique: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.email || \"email\",\n\t\t\t\t\tsortable: true,\n\t\t\t\t},\n\t\t\t\temailVerified: {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\tdefaultValue: false,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.emailVerified || \"emailVerified\",\n\t\t\t\t\tinput: false,\n\t\t\t\t},\n\t\t\t\tname: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.user?.fields?.name || \"name\",\n\t\t\t\t\tsortable: true,\n\t\t\t\t},\n\t\t\t\timage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.user?.fields?.image || \"image\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.createdAt || \"createdAt\",\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t},\n\t\t\t\t...user?.fields,\n\t\t\t\t...options.user?.additionalFields,\n\t\t\t},\n\t\t\torder: 1,\n\t\t},\n\t\t//only add session table if it's not stored in secondary storage\n\t\t...(!options.secondaryStorage || options.session?.storeSessionInDatabase\n\t\t\t? sessionTable\n\t\t\t: {}),\n\t\taccount: {\n\t\t\tmodelName: options.account?.modelName || \"account\",\n\t\t\tfields: {\n\t\t\t\taccountId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.accountId || \"accountId\",\n\t\t\t\t},\n\t\t\t\tproviderId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.providerId || \"providerId\",\n\t\t\t\t},\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\treferences: {\n\t\t\t\t\t\tmodel: options.user?.modelName || \"user\",\n\t\t\t\t\t\tfield: \"id\",\n\t\t\t\t\t\tonDelete: \"cascade\",\n\t\t\t\t\t},\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.userId || \"userId\",\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\taccessToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.accessToken || \"accessToken\",\n\t\t\t\t},\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.refreshToken || \"refreshToken\",\n\t\t\t\t},\n\t\t\t\tidToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.idToken || \"idToken\",\n\t\t\t\t},\n\t\t\t\taccessTokenExpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName:\n\t\t\t\t\t\toptions.account?.fields?.accessTokenExpiresAt ||\n\t\t\t\t\t\t\"accessTokenExpiresAt\",\n\t\t\t\t},\n\t\t\t\trefreshTokenExpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName:\n\t\t\t\t\t\toptions.account?.fields?.refreshTokenExpiresAt ||\n\t\t\t\t\t\t\"refreshTokenExpiresAt\",\n\t\t\t\t},\n\t\t\t\tscope: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.account?.fields?.scope || \"scope\",\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.password || \"password\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.createdAt || \"createdAt\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t},\n\t\t\t\t...account?.fields,\n\t\t\t\t...options.account?.additionalFields,\n\t\t\t},\n\t\t\torder: 3,\n\t\t},\n\t\t...(!options.secondaryStorage || options.verification?.storeInDatabase\n\t\t\t? verificationTable\n\t\t\t: {}),\n\t\t...pluginTables,\n\t\t...(shouldAddRateLimitTable ? rateLimitTable : {}),\n\t} satisfies BetterAuthDBSchema;\n};\n"],"mappings":";AAGA,MAAa,iBACZ,YACwB;CACxB,MAAM,gBAAgB,QAAQ,WAAW,EAAE,EAAE,QAC3C,KAAK,WAAW;EAChB,MAAM,SAAS,OAAO;AACtB,MAAI,CAAC,OAAQ,QAAO;AACpB,OAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,CAChD,KAAI,OAAO;GACV,QAAQ;IACP,GAAG,IAAI,MAAM;IACb,GAAG,MAAM;IACT;GACD,WAAW,MAAM,aAAa;GAC9B;AAEF,SAAO;IAER,EAAE,CAIF;CAED,MAAM,0BAA0B,QAAQ,WAAW,YAAY;CAC/D,MAAM,iBAAiB,EACtB,WAAW;EACV,WAAW,QAAQ,WAAW,aAAa;EAC3C,QAAQ;GACP,KAAK;IACJ,MAAM;IACN,QAAQ;IACR,UAAU;IACV,WAAW,QAAQ,WAAW,QAAQ,OAAO;IAC7C;GACD,OAAO;IACN,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,WAAW,QAAQ,SAAS;IAC/C;GACD,aAAa;IACZ,MAAM;IACN,QAAQ;IACR,UAAU;IACV,WAAW,QAAQ,WAAW,QAAQ,eAAe;IACrD,oBAAoB,KAAK,KAAK;IAC9B;GACD;EACD,EACD;CAED,MAAM,EAAE,MAAM,SAAS,SAAS,cAAc,GAAG,iBAChD;CAED,MAAM,oBAAoB,EACzB,cAAc;EACb,WAAW,QAAQ,cAAc,aAAa;EAC9C,QAAQ;GACP,YAAY;IACX,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,cAAc,QAAQ,cAAc;IACvD,OAAO;IACP;GACD,OAAO;IACN,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,cAAc,QAAQ,SAAS;IAClD;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,cAAc,QAAQ,aAAa;IACtD;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,oCAAoB,IAAI,MAAM;IAC9B,WAAW,QAAQ,cAAc,QAAQ,aAAa;IACtD;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,oCAAoB,IAAI,MAAM;IAC9B,gCAAgB,IAAI,MAAM;IAC1B,WAAW,QAAQ,cAAc,QAAQ,aAAa;IACtD;GACD,GAAG,cAAc;GACjB,GAAG,QAAQ,cAAc;GACzB;EACD,OAAO;EACP,EACD;CAED,MAAM,eAAe,EACpB,SAAS;EACR,WAAW,QAAQ,SAAS,aAAa;EACzC,QAAQ;GACP,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;IACjD;GACD,OAAO;IACN,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,SAAS;IAC7C,QAAQ;IACR;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;IACjD,oCAAoB,IAAI,MAAM;IAC9B;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;IACjD,gCAAgB,IAAI,MAAM;IAC1B;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;IACjD;GACD,WAAW;IACV,MAAM;IACN,UAAU;IACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;IACjD;GACD,QAAQ;IACP,MAAM;IACN,WAAW,QAAQ,SAAS,QAAQ,UAAU;IAC9C,YAAY;KACX,OAAO,QAAQ,MAAM,aAAa;KAClC,OAAO;KACP,UAAU;KACV;IACD,UAAU;IACV,OAAO;IACP;GACD,GAAG,SAAS;GACZ,GAAG,QAAQ,SAAS;GACpB;EACD,OAAO;EACP,EACD;AAED,QAAO;EACN,MAAM;GACL,WAAW,QAAQ,MAAM,aAAa;GACtC,QAAQ;IACP,OAAO;KACN,MAAM;KACN,QAAQ;KACR,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,SAAS;KAC1C,UAAU;KACV;IACD,eAAe;KACd,MAAM;KACN,cAAc;KACd,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,iBAAiB;KAClD,OAAO;KACP;IACD,MAAM;KACL,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,QAAQ;KACzC,UAAU;KACV;IACD,OAAO;KACN,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,SAAS;KAC1C;IACD,WAAW;KACV,MAAM;KACN,oCAAoB,IAAI,MAAM;KAC9B,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,aAAa;KAC9C;IACD,WAAW;KACV,MAAM;KACN,oCAAoB,IAAI,MAAM;KAC9B,gCAAgB,IAAI,MAAM;KAC1B,UAAU;KACV,WAAW,QAAQ,MAAM,QAAQ,aAAa;KAC9C;IACD,GAAG,MAAM;IACT,GAAG,QAAQ,MAAM;IACjB;GACD,OAAO;GACP;EAED,GAAI,CAAC,QAAQ,oBAAoB,QAAQ,SAAS,yBAC/C,eACA,EAAE;EACL,SAAS;GACR,WAAW,QAAQ,SAAS,aAAa;GACzC,QAAQ;IACP,WAAW;KACV,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;KACjD;IACD,YAAY;KACX,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,cAAc;KAClD;IACD,QAAQ;KACP,MAAM;KACN,YAAY;MACX,OAAO,QAAQ,MAAM,aAAa;MAClC,OAAO;MACP,UAAU;MACV;KACD,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,UAAU;KAC9C,OAAO;KACP;IACD,aAAa;KACZ,MAAM;KACN,UAAU;KACV,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,eAAe;KACnD;IACD,cAAc;KACb,MAAM;KACN,UAAU;KACV,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,gBAAgB;KACpD;IACD,SAAS;KACR,MAAM;KACN,UAAU;KACV,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,WAAW;KAC/C;IACD,sBAAsB;KACrB,MAAM;KACN,UAAU;KACV,UAAU;KACV,WACC,QAAQ,SAAS,QAAQ,wBACzB;KACD;IACD,uBAAuB;KACtB,MAAM;KACN,UAAU;KACV,UAAU;KACV,WACC,QAAQ,SAAS,QAAQ,yBACzB;KACD;IACD,OAAO;KACN,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,SAAS;KAC7C;IACD,UAAU;KACT,MAAM;KACN,UAAU;KACV,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,YAAY;KAChD;IACD,WAAW;KACV,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;KACjD,oCAAoB,IAAI,MAAM;KAC9B;IACD,WAAW;KACV,MAAM;KACN,UAAU;KACV,WAAW,QAAQ,SAAS,QAAQ,aAAa;KACjD,gCAAgB,IAAI,MAAM;KAC1B;IACD,GAAG,SAAS;IACZ,GAAG,QAAQ,SAAS;IACpB;GACD,OAAO;GACP;EACD,GAAI,CAAC,QAAQ,oBAAoB,QAAQ,cAAc,kBACpD,oBACA,EAAE;EACL,GAAG;EACH,GAAI,0BAA0B,iBAAiB,EAAE;EACjD"}
|
|
1
|
+
{"version":3,"file":"get-tables.mjs","names":[],"sources":["../../src/db/get-tables.ts"],"sourcesContent":["import type { BetterAuthOptions } from \"../types\";\nimport type { BetterAuthDBSchema, DBFieldAttribute } from \"./type\";\n\nexport const getAuthTables = (\n\toptions: BetterAuthOptions,\n): BetterAuthDBSchema => {\n\tconst pluginSchema = (options.plugins ?? []).reduce(\n\t\t(acc, plugin) => {\n\t\t\tconst schema = plugin.schema;\n\t\t\tif (!schema) return acc;\n\t\t\tfor (const [key, value] of Object.entries(schema)) {\n\t\t\t\tacc[key] = {\n\t\t\t\t\tfields: {\n\t\t\t\t\t\t...acc[key]?.fields,\n\t\t\t\t\t\t...value.fields,\n\t\t\t\t\t},\n\t\t\t\t\tmodelName: value.modelName || key,\n\t\t\t\t};\n\t\t\t}\n\t\t\treturn acc;\n\t\t},\n\t\t{} as Record<\n\t\t\tstring,\n\t\t\t{ fields: Record<string, DBFieldAttribute>; modelName: string }\n\t\t>,\n\t);\n\n\tconst shouldAddRateLimitTable = options.rateLimit?.storage === \"database\";\n\tconst rateLimitTable = {\n\t\trateLimit: {\n\t\t\tmodelName: options.rateLimit?.modelName || \"rateLimit\",\n\t\t\tfields: {\n\t\t\t\tkey: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tunique: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.key || \"key\",\n\t\t\t\t},\n\t\t\t\tcount: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.count || \"count\",\n\t\t\t\t},\n\t\t\t\tlastRequest: {\n\t\t\t\t\ttype: \"number\",\n\t\t\t\t\tbigint: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.rateLimit?.fields?.lastRequest || \"lastRequest\",\n\t\t\t\t\tdefaultValue: () => Date.now(),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\tconst { user, session, account, verification, ...pluginTables } =\n\t\tpluginSchema;\n\n\tconst verificationTable = {\n\t\tverification: {\n\t\t\tmodelName: options.verification?.modelName || \"verification\",\n\t\t\tfields: {\n\t\t\t\tidentifier: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.identifier || \"identifier\",\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\tvalue: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.value || \"value\",\n\t\t\t\t},\n\t\t\t\texpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.verification?.fields?.expiresAt || \"expiresAt\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tfieldName: options.verification?.fields?.createdAt || \"createdAt\",\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t\tfieldName: options.verification?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t},\n\t\t\t\t...verification?.fields,\n\t\t\t\t...options.verification?.additionalFields,\n\t\t\t},\n\t\t\torder: 4,\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\tconst sessionTable = {\n\t\tsession: {\n\t\t\tmodelName: options.session?.modelName || \"session\",\n\t\t\tfields: {\n\t\t\t\texpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.expiresAt || \"expiresAt\",\n\t\t\t\t},\n\t\t\t\ttoken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.token || \"token\",\n\t\t\t\t\tunique: true,\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.createdAt || \"createdAt\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.session?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t},\n\t\t\t\tipAddress: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.session?.fields?.ipAddress || \"ipAddress\",\n\t\t\t\t},\n\t\t\t\tuserAgent: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.session?.fields?.userAgent || \"userAgent\",\n\t\t\t\t},\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tfieldName: options.session?.fields?.userId || \"userId\",\n\t\t\t\t\treferences: {\n\t\t\t\t\t\tmodel: options.user?.modelName || \"user\",\n\t\t\t\t\t\tfield: \"id\",\n\t\t\t\t\t\tonDelete: \"cascade\",\n\t\t\t\t\t},\n\t\t\t\t\trequired: true,\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\t...session?.fields,\n\t\t\t\t...options.session?.additionalFields,\n\t\t\t},\n\t\t\torder: 2,\n\t\t},\n\t} satisfies BetterAuthDBSchema;\n\n\treturn {\n\t\tuser: {\n\t\t\tmodelName: options.user?.modelName || \"user\",\n\t\t\tfields: {\n\t\t\t\tname: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.name || \"name\",\n\t\t\t\t\tsortable: true,\n\t\t\t\t},\n\t\t\t\temail: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tunique: true,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.email || \"email\",\n\t\t\t\t\tsortable: true,\n\t\t\t\t},\n\t\t\t\temailVerified: {\n\t\t\t\t\ttype: \"boolean\",\n\t\t\t\t\tdefaultValue: false,\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.emailVerified || \"emailVerified\",\n\t\t\t\t\tinput: false,\n\t\t\t\t},\n\t\t\t\timage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.user?.fields?.image || \"image\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.createdAt || \"createdAt\",\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.user?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t},\n\t\t\t\t...user?.fields,\n\t\t\t\t...options.user?.additionalFields,\n\t\t\t},\n\t\t\torder: 1,\n\t\t},\n\t\t//only add session table if it's not stored in secondary storage\n\t\t...(!options.secondaryStorage || options.session?.storeSessionInDatabase\n\t\t\t? sessionTable\n\t\t\t: {}),\n\t\taccount: {\n\t\t\tmodelName: options.account?.modelName || \"account\",\n\t\t\tfields: {\n\t\t\t\taccountId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.accountId || \"accountId\",\n\t\t\t\t},\n\t\t\t\tproviderId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.providerId || \"providerId\",\n\t\t\t\t},\n\t\t\t\tuserId: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\treferences: {\n\t\t\t\t\t\tmodel: options.user?.modelName || \"user\",\n\t\t\t\t\t\tfield: \"id\",\n\t\t\t\t\t\tonDelete: \"cascade\",\n\t\t\t\t\t},\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.userId || \"userId\",\n\t\t\t\t\tindex: true,\n\t\t\t\t},\n\t\t\t\taccessToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.accessToken || \"accessToken\",\n\t\t\t\t},\n\t\t\t\trefreshToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.refreshToken || \"refreshToken\",\n\t\t\t\t},\n\t\t\t\tidToken: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.idToken || \"idToken\",\n\t\t\t\t},\n\t\t\t\taccessTokenExpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName:\n\t\t\t\t\t\toptions.account?.fields?.accessTokenExpiresAt ||\n\t\t\t\t\t\t\"accessTokenExpiresAt\",\n\t\t\t\t},\n\t\t\t\trefreshTokenExpiresAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName:\n\t\t\t\t\t\toptions.account?.fields?.refreshTokenExpiresAt ||\n\t\t\t\t\t\t\"refreshTokenExpiresAt\",\n\t\t\t\t},\n\t\t\t\tscope: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\tfieldName: options.account?.fields?.scope || \"scope\",\n\t\t\t\t},\n\t\t\t\tpassword: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\trequired: false,\n\t\t\t\t\treturned: false,\n\t\t\t\t\tfieldName: options.account?.fields?.password || \"password\",\n\t\t\t\t},\n\t\t\t\tcreatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.createdAt || \"createdAt\",\n\t\t\t\t\tdefaultValue: () => new Date(),\n\t\t\t\t},\n\t\t\t\tupdatedAt: {\n\t\t\t\t\ttype: \"date\",\n\t\t\t\t\trequired: true,\n\t\t\t\t\tfieldName: options.account?.fields?.updatedAt || \"updatedAt\",\n\t\t\t\t\tonUpdate: () => new Date(),\n\t\t\t\t},\n\t\t\t\t...account?.fields,\n\t\t\t\t...options.account?.additionalFields,\n\t\t\t},\n\t\t\torder: 3,\n\t\t},\n\t\t...(!options.secondaryStorage || options.verification?.storeInDatabase\n\t\t\t? verificationTable\n\t\t\t: {}),\n\t\t...pluginTables,\n\t\t...(shouldAddRateLimitTable ? rateLimitTable : {}),\n\t} satisfies BetterAuthDBSchema;\n};\n"],"mappings":"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"}
|
|
@@ -11,7 +11,7 @@ declare const userSchema: z.ZodObject<{
|
|
|
11
11
|
updatedAt: z.ZodDefault<z.ZodDate>;
|
|
12
12
|
email: z.ZodPipe<z.ZodString, z.ZodTransform<string, string>>;
|
|
13
13
|
emailVerified: z.ZodDefault<z.ZodBoolean>;
|
|
14
|
-
name: z.
|
|
14
|
+
name: z.ZodString;
|
|
15
15
|
image: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
16
16
|
}, z.core.$strip>;
|
|
17
17
|
type BaseUser = z.infer<typeof userSchema>;
|
package/dist/db/schema/user.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.mjs","names":[],"sources":["../../../src/db/schema/user.ts"],"sourcesContent":["import * as z from \"zod\";\nimport type { BetterAuthOptions, Prettify } from \"../../types\";\nimport type {\n\tInferDBFieldsFromOptions,\n\tInferDBFieldsFromPlugins,\n} from \"../type\";\nimport { coreSchema } from \"./shared\";\n\nexport const userSchema = coreSchema.extend({\n\temail: z.string().transform((val) => val.toLowerCase()),\n\temailVerified: z.boolean().default(false),\n\tname: z.string()
|
|
1
|
+
{"version":3,"file":"user.mjs","names":[],"sources":["../../../src/db/schema/user.ts"],"sourcesContent":["import * as z from \"zod\";\nimport type { BetterAuthOptions, Prettify } from \"../../types\";\nimport type {\n\tInferDBFieldsFromOptions,\n\tInferDBFieldsFromPlugins,\n} from \"../type\";\nimport { coreSchema } from \"./shared\";\n\nexport const userSchema = coreSchema.extend({\n\temail: z.string().transform((val) => val.toLowerCase()),\n\temailVerified: z.boolean().default(false),\n\tname: z.string(),\n\timage: z.string().nullish(),\n});\n\nexport type BaseUser = z.infer<typeof userSchema>;\n\n/**\n * User schema type used by better-auth, note that it's possible that user could have additional fields\n */\nexport type User<\n\tDBOptions extends BetterAuthOptions[\"user\"] = BetterAuthOptions[\"user\"],\n\tPlugins extends BetterAuthOptions[\"plugins\"] = BetterAuthOptions[\"plugins\"],\n> = Prettify<\n\tBaseUser &\n\t\tInferDBFieldsFromOptions<DBOptions> &\n\t\tInferDBFieldsFromPlugins<\"user\", Plugins>\n>;\n"],"mappings":";;;;AAQA,MAAa,aAAa,WAAW,OAAO;CAC3C,OAAO,EAAE,QAAQ,CAAC,WAAW,QAAQ,IAAI,aAAa,CAAC;CACvD,eAAe,EAAE,SAAS,CAAC,QAAQ,MAAM;CACzC,MAAM,EAAE,QAAQ;CAChB,OAAO,EAAE,QAAQ,CAAC,SAAS;CAC3B,CAAC"}
|
package/dist/index.d.mts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { Awaitable, LiteralString, LiteralUnion, Prettify, Primitive, UnionToIntersection } from "./types/helper.mjs";
|
|
1
|
+
import { Awaitable, AwaitableFunction, LiteralString, LiteralUnion, Prettify, Primitive, UnionToIntersection } from "./types/helper.mjs";
|
|
2
2
|
import { BetterAuthPlugin, BetterAuthPluginErrorCodePart, HookEndpointContext } from "./types/plugin.mjs";
|
|
3
3
|
import { BetterAuthAdvancedOptions, BetterAuthDBOptions, BetterAuthOptions, BetterAuthRateLimitOptions, BetterAuthRateLimitRule, BetterAuthRateLimitStorage, GenerateIdFn, StoreIdentifierOption } from "./types/init-options.mjs";
|
|
4
4
|
import { BetterAuthCookie, BetterAuthCookies } from "./types/cookie.mjs";
|
|
5
5
|
import { AuthContext, BetterAuthPluginRegistry, BetterAuthPluginRegistryIdentifier, GenericEndpointContext, InfoContext, InternalAdapter, PluginContext } from "./types/context.mjs";
|
|
6
6
|
import { BetterAuthClientOptions, BetterAuthClientPlugin, ClientAtomListener, ClientFetchOption, ClientStore } from "./types/plugin-client.mjs";
|
|
7
7
|
import { StandardSchemaV1 } from "./types/index.mjs";
|
|
8
|
-
export { AuthContext, Awaitable, BetterAuthAdvancedOptions, BetterAuthClientOptions, BetterAuthClientPlugin, BetterAuthCookie, BetterAuthCookies, BetterAuthDBOptions, BetterAuthOptions, BetterAuthPlugin, BetterAuthPluginErrorCodePart, BetterAuthPluginRegistry, BetterAuthPluginRegistryIdentifier, BetterAuthRateLimitOptions, BetterAuthRateLimitRule, BetterAuthRateLimitStorage, ClientAtomListener, ClientFetchOption, ClientStore, GenerateIdFn, GenericEndpointContext, HookEndpointContext, InfoContext, InternalAdapter, LiteralString, LiteralUnion, PluginContext, Prettify, Primitive, StandardSchemaV1, StoreIdentifierOption, UnionToIntersection };
|
|
8
|
+
export { AuthContext, Awaitable, AwaitableFunction, BetterAuthAdvancedOptions, BetterAuthClientOptions, BetterAuthClientPlugin, BetterAuthCookie, BetterAuthCookies, BetterAuthDBOptions, BetterAuthOptions, BetterAuthPlugin, BetterAuthPluginErrorCodePart, BetterAuthPluginRegistry, BetterAuthPluginRegistryIdentifier, BetterAuthRateLimitOptions, BetterAuthRateLimitRule, BetterAuthRateLimitStorage, ClientAtomListener, ClientFetchOption, ClientStore, GenerateIdFn, GenericEndpointContext, HookEndpointContext, InfoContext, InternalAdapter, LiteralString, LiteralUnion, PluginContext, Prettify, Primitive, StandardSchemaV1, StoreIdentifierOption, UnionToIntersection };
|
|
@@ -1,6 +1,27 @@
|
|
|
1
|
+
import { AwaitableFunction } from "../types/helper.mjs";
|
|
2
|
+
import "../types/index.mjs";
|
|
1
3
|
import { OAuth2Tokens, ProviderOptions } from "./oauth-provider.mjs";
|
|
2
4
|
|
|
3
5
|
//#region src/oauth2/client-credentials-token.d.ts
|
|
6
|
+
declare function clientCredentialsTokenRequest({
|
|
7
|
+
options,
|
|
8
|
+
scope,
|
|
9
|
+
authentication,
|
|
10
|
+
resource
|
|
11
|
+
}: {
|
|
12
|
+
options: AwaitableFunction<ProviderOptions & {
|
|
13
|
+
clientSecret: string;
|
|
14
|
+
}>;
|
|
15
|
+
scope?: string | undefined;
|
|
16
|
+
authentication?: ("basic" | "post") | undefined;
|
|
17
|
+
resource?: (string | string[]) | undefined;
|
|
18
|
+
}): Promise<{
|
|
19
|
+
body: URLSearchParams;
|
|
20
|
+
headers: Record<string, any>;
|
|
21
|
+
}>;
|
|
22
|
+
/**
|
|
23
|
+
* @deprecated use async'd clientCredentialsTokenRequest instead
|
|
24
|
+
*/
|
|
4
25
|
declare function createClientCredentialsTokenRequest({
|
|
5
26
|
options,
|
|
6
27
|
scope,
|
|
@@ -24,14 +45,14 @@ declare function clientCredentialsToken({
|
|
|
24
45
|
authentication,
|
|
25
46
|
resource
|
|
26
47
|
}: {
|
|
27
|
-
options: ProviderOptions & {
|
|
48
|
+
options: AwaitableFunction<ProviderOptions & {
|
|
28
49
|
clientSecret: string;
|
|
29
|
-
}
|
|
50
|
+
}>;
|
|
30
51
|
tokenEndpoint: string;
|
|
31
52
|
scope: string;
|
|
32
53
|
authentication?: ("basic" | "post") | undefined;
|
|
33
54
|
resource?: (string | string[]) | undefined;
|
|
34
55
|
}): Promise<OAuth2Tokens>;
|
|
35
56
|
//#endregion
|
|
36
|
-
export { clientCredentialsToken, createClientCredentialsTokenRequest };
|
|
57
|
+
export { clientCredentialsToken, clientCredentialsTokenRequest, createClientCredentialsTokenRequest };
|
|
37
58
|
//# sourceMappingURL=client-credentials-token.d.mts.map
|
|
@@ -2,6 +2,18 @@ import { base64Url } from "@better-auth/utils/base64";
|
|
|
2
2
|
import { betterFetch } from "@better-fetch/fetch";
|
|
3
3
|
|
|
4
4
|
//#region src/oauth2/client-credentials-token.ts
|
|
5
|
+
async function clientCredentialsTokenRequest({ options, scope, authentication, resource }) {
|
|
6
|
+
options = typeof options === "function" ? await options() : options;
|
|
7
|
+
return createClientCredentialsTokenRequest({
|
|
8
|
+
options,
|
|
9
|
+
scope,
|
|
10
|
+
authentication,
|
|
11
|
+
resource
|
|
12
|
+
});
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* @deprecated use async'd clientCredentialsTokenRequest instead
|
|
16
|
+
*/
|
|
5
17
|
function createClientCredentialsTokenRequest({ options, scope, authentication, resource }) {
|
|
6
18
|
const body = new URLSearchParams();
|
|
7
19
|
const headers = {
|
|
@@ -26,7 +38,7 @@ function createClientCredentialsTokenRequest({ options, scope, authentication, r
|
|
|
26
38
|
};
|
|
27
39
|
}
|
|
28
40
|
async function clientCredentialsToken({ options, tokenEndpoint, scope, authentication, resource }) {
|
|
29
|
-
const { body, headers } =
|
|
41
|
+
const { body, headers } = await clientCredentialsTokenRequest({
|
|
30
42
|
options,
|
|
31
43
|
scope,
|
|
32
44
|
authentication,
|
|
@@ -51,5 +63,5 @@ async function clientCredentialsToken({ options, tokenEndpoint, scope, authentic
|
|
|
51
63
|
}
|
|
52
64
|
|
|
53
65
|
//#endregion
|
|
54
|
-
export { clientCredentialsToken, createClientCredentialsTokenRequest };
|
|
66
|
+
export { clientCredentialsToken, clientCredentialsTokenRequest, createClientCredentialsTokenRequest };
|
|
55
67
|
//# sourceMappingURL=client-credentials-token.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client-credentials-token.mjs","names":[],"sources":["../../src/oauth2/client-credentials-token.ts"],"sourcesContent":["import { base64Url } from \"@better-auth/utils/base64\";\nimport { betterFetch } from \"@better-fetch/fetch\";\nimport type { OAuth2Tokens, ProviderOptions } from \"./oauth-provider\";\n\nexport function createClientCredentialsTokenRequest({\n\toptions,\n\tscope,\n\tauthentication,\n\tresource,\n}: {\n\toptions: ProviderOptions & { clientSecret: string };\n\tscope?: string | undefined;\n\tauthentication?: (\"basic\" | \"post\") | undefined;\n\tresource?: (string | string[]) | undefined;\n}) {\n\tconst body = new URLSearchParams();\n\tconst headers: Record<string, any> = {\n\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\taccept: \"application/json\",\n\t};\n\n\tbody.set(\"grant_type\", \"client_credentials\");\n\tscope && body.set(\"scope\", scope);\n\tif (resource) {\n\t\tif (typeof resource === \"string\") {\n\t\t\tbody.append(\"resource\", resource);\n\t\t} else {\n\t\t\tfor (const _resource of resource) {\n\t\t\t\tbody.append(\"resource\", _resource);\n\t\t\t}\n\t\t}\n\t}\n\tif (authentication === \"basic\") {\n\t\tconst primaryClientId = Array.isArray(options.clientId)\n\t\t\t? options.clientId[0]\n\t\t\t: options.clientId;\n\t\tconst encodedCredentials = base64Url.encode(\n\t\t\t`${primaryClientId}:${options.clientSecret}`,\n\t\t);\n\t\theaders[\"authorization\"] = `Basic ${encodedCredentials}`;\n\t} else {\n\t\tconst primaryClientId = Array.isArray(options.clientId)\n\t\t\t? options.clientId[0]\n\t\t\t: options.clientId;\n\t\tbody.set(\"client_id\", primaryClientId);\n\t\tbody.set(\"client_secret\", options.clientSecret);\n\t}\n\n\treturn {\n\t\tbody,\n\t\theaders,\n\t};\n}\n\nexport async function clientCredentialsToken({\n\toptions,\n\ttokenEndpoint,\n\tscope,\n\tauthentication,\n\tresource,\n}: {\n\toptions: ProviderOptions & { clientSecret: string }
|
|
1
|
+
{"version":3,"file":"client-credentials-token.mjs","names":[],"sources":["../../src/oauth2/client-credentials-token.ts"],"sourcesContent":["import { base64Url } from \"@better-auth/utils/base64\";\nimport { betterFetch } from \"@better-fetch/fetch\";\nimport type { AwaitableFunction } from \"../types\";\nimport type { OAuth2Tokens, ProviderOptions } from \"./oauth-provider\";\n\nexport async function clientCredentialsTokenRequest({\n\toptions,\n\tscope,\n\tauthentication,\n\tresource,\n}: {\n\toptions: AwaitableFunction<ProviderOptions & { clientSecret: string }>;\n\tscope?: string | undefined;\n\tauthentication?: (\"basic\" | \"post\") | undefined;\n\tresource?: (string | string[]) | undefined;\n}) {\n\toptions = typeof options === \"function\" ? await options() : options;\n\treturn createClientCredentialsTokenRequest({\n\t\toptions,\n\t\tscope,\n\t\tauthentication,\n\t\tresource,\n\t});\n}\n\n/**\n * @deprecated use async'd clientCredentialsTokenRequest instead\n */\nexport function createClientCredentialsTokenRequest({\n\toptions,\n\tscope,\n\tauthentication,\n\tresource,\n}: {\n\toptions: ProviderOptions & { clientSecret: string };\n\tscope?: string | undefined;\n\tauthentication?: (\"basic\" | \"post\") | undefined;\n\tresource?: (string | string[]) | undefined;\n}) {\n\tconst body = new URLSearchParams();\n\tconst headers: Record<string, any> = {\n\t\t\"content-type\": \"application/x-www-form-urlencoded\",\n\t\taccept: \"application/json\",\n\t};\n\n\tbody.set(\"grant_type\", \"client_credentials\");\n\tscope && body.set(\"scope\", scope);\n\tif (resource) {\n\t\tif (typeof resource === \"string\") {\n\t\t\tbody.append(\"resource\", resource);\n\t\t} else {\n\t\t\tfor (const _resource of resource) {\n\t\t\t\tbody.append(\"resource\", _resource);\n\t\t\t}\n\t\t}\n\t}\n\tif (authentication === \"basic\") {\n\t\tconst primaryClientId = Array.isArray(options.clientId)\n\t\t\t? options.clientId[0]\n\t\t\t: options.clientId;\n\t\tconst encodedCredentials = base64Url.encode(\n\t\t\t`${primaryClientId}:${options.clientSecret}`,\n\t\t);\n\t\theaders[\"authorization\"] = `Basic ${encodedCredentials}`;\n\t} else {\n\t\tconst primaryClientId = Array.isArray(options.clientId)\n\t\t\t? options.clientId[0]\n\t\t\t: options.clientId;\n\t\tbody.set(\"client_id\", primaryClientId);\n\t\tbody.set(\"client_secret\", options.clientSecret);\n\t}\n\n\treturn {\n\t\tbody,\n\t\theaders,\n\t};\n}\n\nexport async function clientCredentialsToken({\n\toptions,\n\ttokenEndpoint,\n\tscope,\n\tauthentication,\n\tresource,\n}: {\n\toptions: AwaitableFunction<ProviderOptions & { clientSecret: string }>;\n\ttokenEndpoint: string;\n\tscope: string;\n\tauthentication?: (\"basic\" | \"post\") | undefined;\n\tresource?: (string | string[]) | undefined;\n}): Promise<OAuth2Tokens> {\n\tconst { body, headers } = await clientCredentialsTokenRequest({\n\t\toptions,\n\t\tscope,\n\t\tauthentication,\n\t\tresource,\n\t});\n\n\tconst { data, error } = await betterFetch<{\n\t\taccess_token: string;\n\t\texpires_in?: number | undefined;\n\t\ttoken_type?: string | undefined;\n\t\tscope?: string | undefined;\n\t}>(tokenEndpoint, {\n\t\tmethod: \"POST\",\n\t\tbody,\n\t\theaders,\n\t});\n\tif (error) {\n\t\tthrow error;\n\t}\n\tconst tokens: OAuth2Tokens = {\n\t\taccessToken: data.access_token,\n\t\ttokenType: data.token_type,\n\t\tscopes: data.scope?.split(\" \"),\n\t};\n\n\tif (data.expires_in) {\n\t\tconst now = new Date();\n\t\ttokens.accessTokenExpiresAt = new Date(\n\t\t\tnow.getTime() + data.expires_in * 1000,\n\t\t);\n\t}\n\n\treturn tokens;\n}\n"],"mappings":";;;;AAKA,eAAsB,8BAA8B,EACnD,SACA,OACA,gBACA,YAME;AACF,WAAU,OAAO,YAAY,aAAa,MAAM,SAAS,GAAG;AAC5D,QAAO,oCAAoC;EAC1C;EACA;EACA;EACA;EACA,CAAC;;;;;AAMH,SAAgB,oCAAoC,EACnD,SACA,OACA,gBACA,YAME;CACF,MAAM,OAAO,IAAI,iBAAiB;CAClC,MAAM,UAA+B;EACpC,gBAAgB;EAChB,QAAQ;EACR;AAED,MAAK,IAAI,cAAc,qBAAqB;AAC5C,UAAS,KAAK,IAAI,SAAS,MAAM;AACjC,KAAI,SACH,KAAI,OAAO,aAAa,SACvB,MAAK,OAAO,YAAY,SAAS;KAEjC,MAAK,MAAM,aAAa,SACvB,MAAK,OAAO,YAAY,UAAU;AAIrC,KAAI,mBAAmB,SAAS;EAC/B,MAAM,kBAAkB,MAAM,QAAQ,QAAQ,SAAS,GACpD,QAAQ,SAAS,KACjB,QAAQ;AAIX,UAAQ,mBAAmB,SAHA,UAAU,OACpC,GAAG,gBAAgB,GAAG,QAAQ,eAC9B;QAEK;EACN,MAAM,kBAAkB,MAAM,QAAQ,QAAQ,SAAS,GACpD,QAAQ,SAAS,KACjB,QAAQ;AACX,OAAK,IAAI,aAAa,gBAAgB;AACtC,OAAK,IAAI,iBAAiB,QAAQ,aAAa;;AAGhD,QAAO;EACN;EACA;EACA;;AAGF,eAAsB,uBAAuB,EAC5C,SACA,eACA,OACA,gBACA,YAOyB;CACzB,MAAM,EAAE,MAAM,YAAY,MAAM,8BAA8B;EAC7D;EACA;EACA;EACA;EACA,CAAC;CAEF,MAAM,EAAE,MAAM,UAAU,MAAM,YAK3B,eAAe;EACjB,QAAQ;EACR;EACA;EACA,CAAC;AACF,KAAI,MACH,OAAM;CAEP,MAAM,SAAuB;EAC5B,aAAa,KAAK;EAClB,WAAW,KAAK;EAChB,QAAQ,KAAK,OAAO,MAAM,IAAI;EAC9B;AAED,KAAI,KAAK,YAAY;EACpB,MAAM,sBAAM,IAAI,MAAM;AACtB,SAAO,uBAAuB,IAAI,KACjC,IAAI,SAAS,GAAG,KAAK,aAAa,IAClC;;AAGF,QAAO"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { AwaitableFunction } from "../types/helper.mjs";
|
|
2
|
+
import "../types/index.mjs";
|
|
1
3
|
import { ProviderOptions } from "./oauth-provider.mjs";
|
|
2
4
|
import "./index.mjs";
|
|
3
5
|
|
|
@@ -23,7 +25,7 @@ declare function createAuthorizationURL({
|
|
|
23
25
|
scopeJoiner
|
|
24
26
|
}: {
|
|
25
27
|
id: string;
|
|
26
|
-
options: ProviderOptions
|
|
28
|
+
options: AwaitableFunction<ProviderOptions>;
|
|
27
29
|
redirectURI: string;
|
|
28
30
|
authorizationEndpoint: string;
|
|
29
31
|
state: string;
|
|
@@ -2,6 +2,7 @@ import { generateCodeChallenge } from "./utils.mjs";
|
|
|
2
2
|
|
|
3
3
|
//#region src/oauth2/create-authorization-url.ts
|
|
4
4
|
async function createAuthorizationURL({ id, options, authorizationEndpoint, state, codeVerifier, scopes, claims, redirectURI, duration, prompt, accessType, responseType, display, loginHint, hd, responseMode, additionalParams, scopeJoiner }) {
|
|
5
|
+
options = typeof options === "function" ? await options() : options;
|
|
5
6
|
const url = new URL(options.authorizationEndpoint || authorizationEndpoint);
|
|
6
7
|
url.searchParams.set("response_type", responseType || "code");
|
|
7
8
|
const primaryClientId = Array.isArray(options.clientId) ? options.clientId[0] : options.clientId;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"create-authorization-url.mjs","names":[],"sources":["../../src/oauth2/create-authorization-url.ts"],"sourcesContent":["import type { ProviderOptions } from \"./index\";\nimport { generateCodeChallenge } from \"./utils\";\n\nexport async function createAuthorizationURL({\n\tid,\n\toptions,\n\tauthorizationEndpoint,\n\tstate,\n\tcodeVerifier,\n\tscopes,\n\tclaims,\n\tredirectURI,\n\tduration,\n\tprompt,\n\taccessType,\n\tresponseType,\n\tdisplay,\n\tloginHint,\n\thd,\n\tresponseMode,\n\tadditionalParams,\n\tscopeJoiner,\n}: {\n\tid: string;\n\toptions: ProviderOptions
|
|
1
|
+
{"version":3,"file":"create-authorization-url.mjs","names":[],"sources":["../../src/oauth2/create-authorization-url.ts"],"sourcesContent":["import type { AwaitableFunction } from \"../types\";\nimport type { ProviderOptions } from \"./index\";\nimport { generateCodeChallenge } from \"./utils\";\n\nexport async function createAuthorizationURL({\n\tid,\n\toptions,\n\tauthorizationEndpoint,\n\tstate,\n\tcodeVerifier,\n\tscopes,\n\tclaims,\n\tredirectURI,\n\tduration,\n\tprompt,\n\taccessType,\n\tresponseType,\n\tdisplay,\n\tloginHint,\n\thd,\n\tresponseMode,\n\tadditionalParams,\n\tscopeJoiner,\n}: {\n\tid: string;\n\toptions: AwaitableFunction<ProviderOptions>;\n\tredirectURI: string;\n\tauthorizationEndpoint: string;\n\tstate: string;\n\tcodeVerifier?: string | undefined;\n\tscopes?: string[] | undefined;\n\tclaims?: string[] | undefined;\n\tduration?: string | undefined;\n\tprompt?: string | undefined;\n\taccessType?: string | undefined;\n\tresponseType?: string | undefined;\n\tdisplay?: string | undefined;\n\tloginHint?: string | undefined;\n\thd?: string | undefined;\n\tresponseMode?: string | undefined;\n\tadditionalParams?: Record<string, string> | undefined;\n\tscopeJoiner?: string | undefined;\n}) {\n\toptions = typeof options === \"function\" ? await options() : options;\n\tconst url = new URL(options.authorizationEndpoint || authorizationEndpoint);\n\turl.searchParams.set(\"response_type\", responseType || \"code\");\n\tconst primaryClientId = Array.isArray(options.clientId)\n\t\t? options.clientId[0]\n\t\t: options.clientId;\n\turl.searchParams.set(\"client_id\", primaryClientId);\n\turl.searchParams.set(\"state\", state);\n\tif (scopes) {\n\t\turl.searchParams.set(\"scope\", scopes.join(scopeJoiner || \" \"));\n\t}\n\turl.searchParams.set(\"redirect_uri\", options.redirectURI || redirectURI);\n\tduration && url.searchParams.set(\"duration\", duration);\n\tdisplay && url.searchParams.set(\"display\", display);\n\tloginHint && url.searchParams.set(\"login_hint\", loginHint);\n\tprompt && url.searchParams.set(\"prompt\", prompt);\n\thd && url.searchParams.set(\"hd\", hd);\n\taccessType && url.searchParams.set(\"access_type\", accessType);\n\tresponseMode && url.searchParams.set(\"response_mode\", responseMode);\n\tif (codeVerifier) {\n\t\tconst codeChallenge = await generateCodeChallenge(codeVerifier);\n\t\turl.searchParams.set(\"code_challenge_method\", \"S256\");\n\t\turl.searchParams.set(\"code_challenge\", codeChallenge);\n\t}\n\tif (claims) {\n\t\tconst claimsObj = claims.reduce(\n\t\t\t(acc, claim) => {\n\t\t\t\tacc[claim] = null;\n\t\t\t\treturn acc;\n\t\t\t},\n\t\t\t{} as Record<string, null>,\n\t\t);\n\t\turl.searchParams.set(\n\t\t\t\"claims\",\n\t\t\tJSON.stringify({\n\t\t\t\tid_token: { email: null, email_verified: null, ...claimsObj },\n\t\t\t}),\n\t\t);\n\t}\n\tif (additionalParams) {\n\t\tObject.entries(additionalParams).forEach(([key, value]) => {\n\t\t\turl.searchParams.set(key, value);\n\t\t});\n\t}\n\treturn url;\n}\n"],"mappings":";;;AAIA,eAAsB,uBAAuB,EAC5C,IACA,SACA,uBACA,OACA,cACA,QACA,QACA,aACA,UACA,QACA,YACA,cACA,SACA,WACA,IACA,cACA,kBACA,eAoBE;AACF,WAAU,OAAO,YAAY,aAAa,MAAM,SAAS,GAAG;CAC5D,MAAM,MAAM,IAAI,IAAI,QAAQ,yBAAyB,sBAAsB;AAC3E,KAAI,aAAa,IAAI,iBAAiB,gBAAgB,OAAO;CAC7D,MAAM,kBAAkB,MAAM,QAAQ,QAAQ,SAAS,GACpD,QAAQ,SAAS,KACjB,QAAQ;AACX,KAAI,aAAa,IAAI,aAAa,gBAAgB;AAClD,KAAI,aAAa,IAAI,SAAS,MAAM;AACpC,KAAI,OACH,KAAI,aAAa,IAAI,SAAS,OAAO,KAAK,eAAe,IAAI,CAAC;AAE/D,KAAI,aAAa,IAAI,gBAAgB,QAAQ,eAAe,YAAY;AACxE,aAAY,IAAI,aAAa,IAAI,YAAY,SAAS;AACtD,YAAW,IAAI,aAAa,IAAI,WAAW,QAAQ;AACnD,cAAa,IAAI,aAAa,IAAI,cAAc,UAAU;AAC1D,WAAU,IAAI,aAAa,IAAI,UAAU,OAAO;AAChD,OAAM,IAAI,aAAa,IAAI,MAAM,GAAG;AACpC,eAAc,IAAI,aAAa,IAAI,eAAe,WAAW;AAC7D,iBAAgB,IAAI,aAAa,IAAI,iBAAiB,aAAa;AACnE,KAAI,cAAc;EACjB,MAAM,gBAAgB,MAAM,sBAAsB,aAAa;AAC/D,MAAI,aAAa,IAAI,yBAAyB,OAAO;AACrD,MAAI,aAAa,IAAI,kBAAkB,cAAc;;AAEtD,KAAI,QAAQ;EACX,MAAM,YAAY,OAAO,QACvB,KAAK,UAAU;AACf,OAAI,SAAS;AACb,UAAO;KAER,EAAE,CACF;AACD,MAAI,aAAa,IAChB,UACA,KAAK,UAAU,EACd,UAAU;GAAE,OAAO;GAAM,gBAAgB;GAAM,GAAG;GAAW,EAC7D,CAAC,CACF;;AAEF,KAAI,iBACH,QAAO,QAAQ,iBAAiB,CAAC,SAAS,CAAC,KAAK,WAAW;AAC1D,MAAI,aAAa,IAAI,KAAK,MAAM;GAC/B;AAEH,QAAO"}
|