@better-auth/sso 1.4.0-beta.22 → 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,5 +1,5 @@
1
1
 
2
- > @better-auth/sso@1.4.0-beta.22 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
5
  ℹ tsdown v0.16.5 powered by rolldown v1.0.0-beta.50
@@ -7,10 +7,10 @@
7
7
  ℹ entry: src/index.ts, src/client.ts
8
8
  ℹ tsconfig: tsconfig.json
9
9
  ℹ Build start
10
- ℹ dist/index.mjs 48.56 kB │ gzip: 8.72 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-DOws6HlV.d.mts 21.24 kB │ gzip: 3.48 kB
15
- ℹ 5 files, total: 70.34 kB
16
- ✔ Build complete in 11501ms
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-DOws6HlV.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
  /**
@@ -214,8 +219,129 @@ interface SSOOptions {
214
219
  * @default false
215
220
  */
216
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
+ };
217
240
  }
218
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
219
345
  //#region src/routes/sso.d.ts
220
346
  declare const spMetadata: () => better_call0.StrictEndpoint<"/sso/saml2/sp/metadata", {
221
347
  method: "GET";
@@ -241,7 +367,7 @@ declare const spMetadata: () => better_call0.StrictEndpoint<"/sso/saml2/sp/metad
241
367
  } & {
242
368
  use: any[];
243
369
  }, Response>;
244
- declare const registerSSOProvider: (options?: SSOOptions) => better_call0.StrictEndpoint<"/sso/register", {
370
+ declare const registerSSOProvider: <O extends SSOOptions>(options: O) => better_call0.StrictEndpoint<"/sso/register", {
245
371
  method: "POST";
246
372
  body: z.ZodObject<{
247
373
  providerId: z.ZodString;
@@ -364,6 +490,14 @@ declare const registerSSOProvider: (options?: SSOOptions) => better_call0.Strict
364
490
  type: string;
365
491
  description: string;
366
492
  };
493
+ domainVerified: {
494
+ type: string;
495
+ description: string;
496
+ };
497
+ domainVerificationToken: {
498
+ type: string;
499
+ description: string;
500
+ };
367
501
  oidcConfig: {
368
502
  type: string;
369
503
  properties: {
@@ -497,16 +631,12 @@ declare const registerSSOProvider: (options?: SSOOptions) => better_call0.Strict
497
631
  };
498
632
  } & {
499
633
  use: any[];
500
- }, {
501
- oidcConfig: OIDCConfig;
502
- samlConfig: SAMLConfig;
503
- redirectURI: string;
504
- issuer: string;
505
- userId: string;
506
- providerId: string;
507
- organizationId?: string | undefined;
508
- domain: string;
509
- }>;
634
+ }, O["domainVerification"] extends {
635
+ enabled: true;
636
+ } ? {
637
+ domainVerified: boolean;
638
+ domainVerificationToken: string;
639
+ } & SSOProvider<O> : SSOProvider<O>>;
510
640
  declare const signInSSO: (options?: SSOOptions) => better_call0.StrictEndpoint<"/sign-in/sso", {
511
641
  method: "POST";
512
642
  body: z.ZodObject<{
@@ -611,6 +741,7 @@ declare const callbackSSO: (options?: SSOOptions) => better_call0.StrictEndpoint
611
741
  error: z.ZodOptional<z.ZodString>;
612
742
  error_description: z.ZodOptional<z.ZodString>;
613
743
  }, z.core.$strip>;
744
+ allowedMediaTypes: string[];
614
745
  metadata: {
615
746
  isAction: boolean;
616
747
  openapi: {
@@ -682,17 +813,39 @@ declare const acsEndpoint: (options?: SSOOptions) => better_call0.StrictEndpoint
682
813
  }, never>;
683
814
  //#endregion
684
815
  //#region src/index.d.ts
685
- type SSOEndpoints = {
816
+ type DomainVerificationEndpoints = {
817
+ requestDomainVerification: ReturnType<typeof requestDomainVerification>;
818
+ verifyDomain: ReturnType<typeof verifyDomain>;
819
+ };
820
+ type SSOEndpoints<O extends SSOOptions> = {
686
821
  spMetadata: ReturnType<typeof spMetadata>;
687
- registerSSOProvider: ReturnType<typeof registerSSOProvider>;
822
+ registerSSOProvider: ReturnType<typeof registerSSOProvider<O>>;
688
823
  signInSSO: ReturnType<typeof signInSSO>;
689
824
  callbackSSO: ReturnType<typeof callbackSSO>;
690
825
  callbackSSOSAML: ReturnType<typeof callbackSSOSAML>;
691
826
  acsEndpoint: ReturnType<typeof acsEndpoint>;
692
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
+ };
693
846
  declare function sso<O extends SSOOptions>(options?: O | undefined): {
694
847
  id: "sso";
695
- endpoints: SSOEndpoints;
848
+ endpoints: SSOEndpoints<O>;
696
849
  };
697
850
  //#endregion
698
- 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-DOws6HlV.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 };