@better-auth/sso 1.4.0-beta.21 → 1.4.0-beta.23

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.
@@ -1,16 +1,16 @@
1
1
 
2
- > @better-auth/sso@1.4.0-beta.21 build /home/runner/work/better-auth/better-auth/packages/sso
2
+ > @better-auth/sso@1.4.0-beta.23 build /home/runner/work/better-auth/better-auth/packages/sso
3
3
  > tsdown
4
4
 
5
- ℹ tsdown v0.16.0 powered by rolldown v1.0.0-beta.46
5
+ ℹ tsdown v0.16.5 powered by rolldown v1.0.0-beta.50
6
6
  ℹ Using tsdown config: /home/runner/work/better-auth/better-auth/packages/sso/tsdown.config.ts
7
- ℹ entry: src/client.ts, src/index.ts
7
+ ℹ entry: src/index.ts, src/client.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/index.mjs 47.64 kB │ gzip: 8.57 kB
11
- ℹ dist/client.mjs  0.15 kB │ gzip: 0.14 kB
12
- ℹ dist/client.d.mts  0.21 kB │ gzip: 0.18 kB
13
- ℹ dist/index.d.mts  0.18 kB │ gzip: 0.14 kB
14
- ℹ dist/index-C091fIpa.d.mts 20.75 kB │ gzip: 3.37 kB
15
- ℹ 5 files, total: 68.93 kB
16
- ✔ Build complete in 10064ms
10
+ ℹ dist/index.mjs 57.77 kB │ gzip: 10.35 kB
11
+ ℹ dist/client.mjs  0.15 kB │ gzip: 0.14 kB
12
+ ℹ dist/client.d.mts  0.49 kB │ gzip: 0.30 kB
13
+ ℹ dist/index.d.mts  0.21 kB │ gzip: 0.15 kB
14
+ ℹ dist/index-xXD__4zM.d.mts 25.36 kB │ gzip: 3.94 kB
15
+ ℹ 5 files, total: 83.98 kB
16
+ ✔ Build complete in 11335ms
package/dist/client.d.mts CHANGED
@@ -1,9 +1,20 @@
1
- import { t as sso } from "./index-C091fIpa.mjs";
1
+ import { t as SSOPlugin } from "./index-xXD__4zM.mjs";
2
2
 
3
3
  //#region src/client.d.ts
4
- declare const ssoClient: () => {
4
+ interface SSOClientOptions {
5
+ domainVerification?: {
6
+ enabled: boolean;
7
+ } | undefined;
8
+ }
9
+ declare const ssoClient: <CO extends SSOClientOptions>(options?: CO | undefined) => {
5
10
  id: "sso-client";
6
- $InferServerPlugin: ReturnType<typeof sso>;
11
+ $InferServerPlugin: SSOPlugin<{
12
+ domainVerification: {
13
+ enabled: CO["domainVerification"] extends {
14
+ enabled: true;
15
+ } ? true : false;
16
+ };
17
+ }>;
7
18
  };
8
19
  //#endregion
9
20
  export { ssoClient };
package/dist/client.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  //#region src/client.ts
2
- const ssoClient = () => {
2
+ const ssoClient = (options) => {
3
3
  return {
4
4
  id: "sso-client",
5
5
  $InferServerPlugin: {}
@@ -1,5 +1,5 @@
1
- import { OAuth2Tokens, User } from "better-auth";
2
1
  import * as z from "zod/v4";
2
+ import { OAuth2Tokens, User } from "better-auth";
3
3
  import * as better_call0 from "better-call";
4
4
 
5
5
  //#region src/types.d.ts
@@ -76,7 +76,7 @@ interface SAMLConfig {
76
76
  additionalParams?: Record<string, any> | undefined;
77
77
  mapping?: SAMLMapping | undefined;
78
78
  }
79
- type SSOProvider = {
79
+ type BaseSSOProvider = {
80
80
  issuer: string;
81
81
  oidcConfig?: OIDCConfig | undefined;
82
82
  samlConfig?: SAMLConfig | undefined;
@@ -85,6 +85,11 @@ type SSOProvider = {
85
85
  organizationId?: string | undefined;
86
86
  domain: string;
87
87
  };
88
+ type SSOProvider<O extends SSOOptions> = O["domainVerification"] extends {
89
+ enabled: true;
90
+ } ? {
91
+ domainVerified: boolean;
92
+ } & BaseSSOProvider : BaseSSOProvider;
88
93
  interface SSOOptions {
89
94
  /**
90
95
  * custom function to provision a user when they sign in with an SSO provider.
@@ -105,7 +110,7 @@ interface SSOOptions {
105
110
  /**
106
111
  * The SSO provider
107
112
  */
108
- provider: SSOProvider;
113
+ provider: SSOProvider<SSOOptions>;
109
114
  }) => Promise<void>) | undefined;
110
115
  /**
111
116
  * Organization provisioning options
@@ -129,7 +134,7 @@ interface SSOOptions {
129
134
  /**
130
135
  * The SSO provider
131
136
  */
132
- provider: SSOProvider;
137
+ provider: SSOProvider<SSOOptions>;
133
138
  }) => Promise<"member" | "admin">;
134
139
  } | undefined;
135
140
  /**
@@ -165,6 +170,29 @@ interface SSOOptions {
165
170
  * sign-in need to be called with with requestSignUp as true to create new users.
166
171
  */
167
172
  disableImplicitSignUp?: boolean | undefined;
173
+ /**
174
+ * The model name for the SSO provider table. Defaults to "ssoProvider".
175
+ */
176
+ modelName?: string;
177
+ /**
178
+ * Map fields
179
+ *
180
+ * @example
181
+ * ```ts
182
+ * {
183
+ * samlConfig: "saml_config"
184
+ * }
185
+ * ```
186
+ */
187
+ fields?: {
188
+ issuer?: string | undefined;
189
+ oidcConfig?: string | undefined;
190
+ samlConfig?: string | undefined;
191
+ userId?: string | undefined;
192
+ providerId?: string | undefined;
193
+ organizationId?: string | undefined;
194
+ domain?: string | undefined;
195
+ };
168
196
  /**
169
197
  * Configure the maximum number of SSO providers a user can register.
170
198
  * You can also pass a function that returns a number.
@@ -191,8 +219,129 @@ interface SSOOptions {
191
219
  * @default false
192
220
  */
193
221
  trustEmailVerified?: boolean | undefined;
222
+ /**
223
+ * Enable domain verification on SSO providers
224
+ *
225
+ * When this option is enabled, new SSO providers will require the associated domain to be verified by the owner
226
+ * prior to allowing sign-ins.
227
+ */
228
+ domainVerification?: {
229
+ /**
230
+ * Enables or disables the domain verification feature
231
+ */
232
+ enabled?: boolean;
233
+ /**
234
+ * Prefix used to generate the domain verification token
235
+ *
236
+ * @default "better-auth-token-"
237
+ */
238
+ tokenPrefix?: string;
239
+ };
194
240
  }
195
241
  //#endregion
242
+ //#region src/routes/domain-verification.d.ts
243
+ declare const requestDomainVerification: (options: SSOOptions) => better_call0.StrictEndpoint<"/sso/request-domain-verification", {
244
+ method: "POST";
245
+ body: z.ZodObject<{
246
+ providerId: z.ZodString;
247
+ }, z.core.$strip>;
248
+ metadata: {
249
+ openapi: {
250
+ summary: string;
251
+ description: string;
252
+ responses: {
253
+ "404": {
254
+ description: string;
255
+ };
256
+ "409": {
257
+ description: string;
258
+ };
259
+ "201": {
260
+ description: string;
261
+ };
262
+ };
263
+ };
264
+ };
265
+ use: ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
266
+ session: {
267
+ session: Record<string, any> & {
268
+ id: string;
269
+ createdAt: Date;
270
+ updatedAt: Date;
271
+ userId: string;
272
+ expiresAt: Date;
273
+ token: string;
274
+ ipAddress?: string | null | undefined;
275
+ userAgent?: string | null | undefined;
276
+ };
277
+ user: Record<string, any> & {
278
+ id: string;
279
+ createdAt: Date;
280
+ updatedAt: Date;
281
+ email: string;
282
+ emailVerified: boolean;
283
+ name: string;
284
+ image?: string | null | undefined;
285
+ };
286
+ };
287
+ }>)[];
288
+ } & {
289
+ use: any[];
290
+ }, {
291
+ domainVerificationToken: string;
292
+ }>;
293
+ declare const verifyDomain: (options: SSOOptions) => better_call0.StrictEndpoint<"/sso/verify-domain", {
294
+ method: "POST";
295
+ body: z.ZodObject<{
296
+ providerId: z.ZodString;
297
+ }, z.core.$strip>;
298
+ metadata: {
299
+ openapi: {
300
+ summary: string;
301
+ description: string;
302
+ responses: {
303
+ "404": {
304
+ description: string;
305
+ };
306
+ "409": {
307
+ description: string;
308
+ };
309
+ "502": {
310
+ description: string;
311
+ };
312
+ "204": {
313
+ description: string;
314
+ };
315
+ };
316
+ };
317
+ };
318
+ use: ((inputContext: better_call0.MiddlewareInputContext<better_call0.MiddlewareOptions>) => Promise<{
319
+ session: {
320
+ session: Record<string, any> & {
321
+ id: string;
322
+ createdAt: Date;
323
+ updatedAt: Date;
324
+ userId: string;
325
+ expiresAt: Date;
326
+ token: string;
327
+ ipAddress?: string | null | undefined;
328
+ userAgent?: string | null | undefined;
329
+ };
330
+ user: Record<string, any> & {
331
+ id: string;
332
+ createdAt: Date;
333
+ updatedAt: Date;
334
+ email: string;
335
+ emailVerified: boolean;
336
+ name: string;
337
+ image?: string | null | undefined;
338
+ };
339
+ };
340
+ }>)[];
341
+ } & {
342
+ use: any[];
343
+ }, void>;
344
+ //#endregion
196
345
  //#region src/routes/sso.d.ts
197
346
  declare const spMetadata: () => better_call0.StrictEndpoint<"/sso/saml2/sp/metadata", {
198
347
  method: "GET";
@@ -218,7 +367,7 @@ declare const spMetadata: () => better_call0.StrictEndpoint<"/sso/saml2/sp/metad
218
367
  } & {
219
368
  use: any[];
220
369
  }, Response>;
221
- declare const registerSSOProvider: (options?: SSOOptions) => better_call0.StrictEndpoint<"/sso/register", {
370
+ declare const registerSSOProvider: <O extends SSOOptions>(options: O) => better_call0.StrictEndpoint<"/sso/register", {
222
371
  method: "POST";
223
372
  body: z.ZodObject<{
224
373
  providerId: z.ZodString;
@@ -341,6 +490,14 @@ declare const registerSSOProvider: (options?: SSOOptions) => better_call0.Strict
341
490
  type: string;
342
491
  description: string;
343
492
  };
493
+ domainVerified: {
494
+ type: string;
495
+ description: string;
496
+ };
497
+ domainVerificationToken: {
498
+ type: string;
499
+ description: string;
500
+ };
344
501
  oidcConfig: {
345
502
  type: string;
346
503
  properties: {
@@ -474,16 +631,12 @@ declare const registerSSOProvider: (options?: SSOOptions) => better_call0.Strict
474
631
  };
475
632
  } & {
476
633
  use: any[];
477
- }, {
478
- oidcConfig: OIDCConfig;
479
- samlConfig: SAMLConfig;
480
- redirectURI: string;
481
- issuer: string;
482
- userId: string;
483
- providerId: string;
484
- organizationId?: string | undefined;
485
- domain: string;
486
- }>;
634
+ }, O["domainVerification"] extends {
635
+ enabled: true;
636
+ } ? {
637
+ domainVerified: boolean;
638
+ domainVerificationToken: string;
639
+ } & SSOProvider<O> : SSOProvider<O>>;
487
640
  declare const signInSSO: (options?: SSOOptions) => better_call0.StrictEndpoint<"/sign-in/sso", {
488
641
  method: "POST";
489
642
  body: z.ZodObject<{
@@ -588,6 +741,7 @@ declare const callbackSSO: (options?: SSOOptions) => better_call0.StrictEndpoint
588
741
  error: z.ZodOptional<z.ZodString>;
589
742
  error_description: z.ZodOptional<z.ZodString>;
590
743
  }, z.core.$strip>;
744
+ allowedMediaTypes: string[];
591
745
  metadata: {
592
746
  isAction: boolean;
593
747
  openapi: {
@@ -659,17 +813,39 @@ declare const acsEndpoint: (options?: SSOOptions) => better_call0.StrictEndpoint
659
813
  }, never>;
660
814
  //#endregion
661
815
  //#region src/index.d.ts
662
- type SSOEndpoints = {
816
+ type DomainVerificationEndpoints = {
817
+ requestDomainVerification: ReturnType<typeof requestDomainVerification>;
818
+ verifyDomain: ReturnType<typeof verifyDomain>;
819
+ };
820
+ type SSOEndpoints<O extends SSOOptions> = {
663
821
  spMetadata: ReturnType<typeof spMetadata>;
664
- registerSSOProvider: ReturnType<typeof registerSSOProvider>;
822
+ registerSSOProvider: ReturnType<typeof registerSSOProvider<O>>;
665
823
  signInSSO: ReturnType<typeof signInSSO>;
666
824
  callbackSSO: ReturnType<typeof callbackSSO>;
667
825
  callbackSSOSAML: ReturnType<typeof callbackSSOSAML>;
668
826
  acsEndpoint: ReturnType<typeof acsEndpoint>;
669
827
  };
828
+ type SSOPlugin<O extends SSOOptions> = {
829
+ id: "sso";
830
+ endpoints: SSOEndpoints<O> & (O extends {
831
+ domainVerification: {
832
+ enabled: true;
833
+ };
834
+ } ? DomainVerificationEndpoints : {});
835
+ };
836
+ declare function sso<O extends SSOOptions & {
837
+ domainVerification?: {
838
+ enabled: true;
839
+ };
840
+ }>(options?: O | undefined): {
841
+ id: "sso";
842
+ endpoints: SSOEndpoints<O> & DomainVerificationEndpoints;
843
+ schema: any;
844
+ options: O;
845
+ };
670
846
  declare function sso<O extends SSOOptions>(options?: O | undefined): {
671
847
  id: "sso";
672
- endpoints: SSOEndpoints;
848
+ endpoints: SSOEndpoints<O>;
673
849
  };
674
850
  //#endregion
675
- export { SSOProvider as a, SSOOptions as i, OIDCConfig as n, SAMLConfig as r, sso as t };
851
+ export { SSOOptions as a, SAMLConfig as i, sso as n, SSOProvider as o, OIDCConfig as r, SSOPlugin as t };
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
1
- import { a as SSOProvider, i as SSOOptions, n as OIDCConfig, r as SAMLConfig, t as sso } from "./index-C091fIpa.mjs";
2
- export { OIDCConfig, SAMLConfig, SSOOptions, SSOProvider, sso };
1
+ import { a as SSOOptions, i as SAMLConfig, n as sso, o as SSOProvider, r as OIDCConfig, t as SSOPlugin } from "./index-xXD__4zM.mjs";
2
+ export { OIDCConfig, SAMLConfig, SSOOptions, SSOPlugin, SSOProvider, sso };