@better-auth/sso 1.4.0-beta.22 → 1.4.0-beta.24

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.24 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.85 kB │ gzip: 10.36 kB
11
+ ℹ dist/client.mjs  0.15 kB │ gzip: 0.14 kB
12
+ ℹ dist/client.d.mts  0.49 kB │ gzip: 0.29 kB
13
+ ℹ dist/index.d.mts  0.21 kB │ gzip: 0.15 kB
14
+ ℹ dist/index-BdGHTkZi.d.mts 25.39 kB │ gzip: 3.95 kB
15
+ ℹ 5 files, total: 84.10 kB
16
+ ✔ Build complete in 11149ms
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-BdGHTkZi.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: {
@@ -666,6 +797,7 @@ declare const acsEndpoint: (options?: SSOOptions) => better_call0.StrictEndpoint
666
797
  }, z.core.$strip>;
667
798
  metadata: {
668
799
  isAction: boolean;
800
+ allowedMediaTypes: string[];
669
801
  openapi: {
670
802
  operationId: string;
671
803
  summary: string;
@@ -682,17 +814,39 @@ declare const acsEndpoint: (options?: SSOOptions) => better_call0.StrictEndpoint
682
814
  }, never>;
683
815
  //#endregion
684
816
  //#region src/index.d.ts
685
- type SSOEndpoints = {
817
+ type DomainVerificationEndpoints = {
818
+ requestDomainVerification: ReturnType<typeof requestDomainVerification>;
819
+ verifyDomain: ReturnType<typeof verifyDomain>;
820
+ };
821
+ type SSOEndpoints<O extends SSOOptions> = {
686
822
  spMetadata: ReturnType<typeof spMetadata>;
687
- registerSSOProvider: ReturnType<typeof registerSSOProvider>;
823
+ registerSSOProvider: ReturnType<typeof registerSSOProvider<O>>;
688
824
  signInSSO: ReturnType<typeof signInSSO>;
689
825
  callbackSSO: ReturnType<typeof callbackSSO>;
690
826
  callbackSSOSAML: ReturnType<typeof callbackSSOSAML>;
691
827
  acsEndpoint: ReturnType<typeof acsEndpoint>;
692
828
  };
829
+ type SSOPlugin<O extends SSOOptions> = {
830
+ id: "sso";
831
+ endpoints: SSOEndpoints<O> & (O extends {
832
+ domainVerification: {
833
+ enabled: true;
834
+ };
835
+ } ? DomainVerificationEndpoints : {});
836
+ };
837
+ declare function sso<O extends SSOOptions & {
838
+ domainVerification?: {
839
+ enabled: true;
840
+ };
841
+ }>(options?: O | undefined): {
842
+ id: "sso";
843
+ endpoints: SSOEndpoints<O> & DomainVerificationEndpoints;
844
+ schema: any;
845
+ options: O;
846
+ };
693
847
  declare function sso<O extends SSOOptions>(options?: O | undefined): {
694
848
  id: "sso";
695
- endpoints: SSOEndpoints;
849
+ endpoints: SSOEndpoints<O>;
696
850
  };
697
851
  //#endregion
698
- export { SSOProvider as a, SSOOptions as i, OIDCConfig as n, SAMLConfig as r, sso as t };
852
+ 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-BdGHTkZi.mjs";
2
+ export { OIDCConfig, SAMLConfig, SSOOptions, SSOPlugin, SSOProvider, sso };