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

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.23 build /home/runner/work/better-auth/better-auth/packages/sso
2
+ > @better-auth/sso@1.4.0-beta.25 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 57.77 kB │ gzip: 10.35 kB
10
+ ℹ dist/index.mjs 58.41 kB │ gzip: 10.32 kB
11
11
  ℹ dist/client.mjs  0.15 kB │ gzip: 0.14 kB
12
- ℹ dist/client.d.mts  0.49 kB │ gzip: 0.30 kB
12
+ ℹ dist/client.d.mts  0.49 kB │ gzip: 0.29 kB
13
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
14
+ ℹ dist/index-BdGHTkZi.d.mts 25.39 kB │ gzip: 3.95 kB
15
+ ℹ 5 files, total: 84.66 kB
16
+ ✔ Build complete in 11606ms
package/dist/client.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import { t as SSOPlugin } from "./index-xXD__4zM.mjs";
1
+ import { t as SSOPlugin } from "./index-BdGHTkZi.mjs";
2
2
 
3
3
  //#region src/client.d.ts
4
4
  interface SSOClientOptions {
@@ -797,6 +797,7 @@ declare const acsEndpoint: (options?: SSOOptions) => better_call0.StrictEndpoint
797
797
  }, z.core.$strip>;
798
798
  metadata: {
799
799
  isAction: boolean;
800
+ allowedMediaTypes: string[];
800
801
  openapi: {
801
802
  operationId: string;
802
803
  summary: string;
package/dist/index.d.mts CHANGED
@@ -1,2 +1,2 @@
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";
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
2
  export { OIDCConfig, SAMLConfig, SSOOptions, SSOPlugin, SSOProvider, sso };
package/dist/index.mjs CHANGED
@@ -751,8 +751,18 @@ const signInSSO = (options) => {
751
751
  if (provider.samlConfig) {
752
752
  const parsedSamlConfig = typeof provider.samlConfig === "object" ? provider.samlConfig : safeJsonParse(provider.samlConfig);
753
753
  if (!parsedSamlConfig) throw new APIError("BAD_REQUEST", { message: "Invalid SAML configuration" });
754
+ let metadata = parsedSamlConfig.spMetadata.metadata;
755
+ if (!metadata) metadata = saml.SPMetadata({
756
+ entityID: parsedSamlConfig.spMetadata?.entityID || parsedSamlConfig.issuer,
757
+ assertionConsumerService: [{
758
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
759
+ Location: parsedSamlConfig.callbackUrl || `${ctx.context.baseURL}/sso/saml2/sp/acs/${provider.providerId}`
760
+ }],
761
+ wantMessageSigned: parsedSamlConfig.wantAssertionsSigned || false,
762
+ nameIDFormat: parsedSamlConfig.identifierFormat ? [parsedSamlConfig.identifierFormat] : void 0
763
+ }).getMetadata() || "";
754
764
  const sp = saml.ServiceProvider({
755
- metadata: parsedSamlConfig.spMetadata.metadata,
765
+ metadata,
756
766
  allowCreate: true
757
767
  });
758
768
  const idp = saml.IdentityProvider({
@@ -1185,6 +1195,7 @@ const acsEndpoint = (options) => {
1185
1195
  }),
1186
1196
  metadata: {
1187
1197
  isAction: false,
1198
+ allowedMediaTypes: ["application/x-www-form-urlencoded", "application/json"],
1188
1199
  openapi: {
1189
1200
  operationId: "handleSAMLAssertionConsumerService",
1190
1201
  summary: "SAML Assertion Consumer Service",
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@better-auth/sso",
3
3
  "author": "Bereket Engida",
4
- "version": "1.4.0-beta.23",
4
+ "version": "1.4.0-beta.25",
5
5
  "type": "module",
6
6
  "main": "dist/index.mjs",
7
7
  "homepage": "https://www.better-auth.com/docs/plugins/sso",
@@ -65,10 +65,10 @@
65
65
  "express": "^5.1.0",
66
66
  "oauth2-mock-server": "^7.2.1",
67
67
  "tsdown": "^0.16.0",
68
- "better-auth": "1.4.0-beta.23"
68
+ "better-auth": "1.4.0-beta.25"
69
69
  },
70
70
  "peerDependencies": {
71
- "better-auth": "1.4.0-beta.23"
71
+ "better-auth": "1.4.0-beta.25"
72
72
  },
73
73
  "scripts": {
74
74
  "test": "vitest",
package/src/routes/sso.ts CHANGED
@@ -1039,8 +1039,35 @@ export const signInSSO = (options?: SSOOptions) => {
1039
1039
  message: "Invalid SAML configuration",
1040
1040
  });
1041
1041
  }
1042
+
1043
+ let metadata = parsedSamlConfig.spMetadata.metadata;
1044
+
1045
+ if (!metadata) {
1046
+ metadata =
1047
+ saml
1048
+ .SPMetadata({
1049
+ entityID:
1050
+ parsedSamlConfig.spMetadata?.entityID ||
1051
+ parsedSamlConfig.issuer,
1052
+ assertionConsumerService: [
1053
+ {
1054
+ Binding: "urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST",
1055
+ Location:
1056
+ parsedSamlConfig.callbackUrl ||
1057
+ `${ctx.context.baseURL}/sso/saml2/sp/acs/${provider.providerId}`,
1058
+ },
1059
+ ],
1060
+ wantMessageSigned:
1061
+ parsedSamlConfig.wantAssertionsSigned || false,
1062
+ nameIDFormat: parsedSamlConfig.identifierFormat
1063
+ ? [parsedSamlConfig.identifierFormat]
1064
+ : undefined,
1065
+ })
1066
+ .getMetadata() || "";
1067
+ }
1068
+
1042
1069
  const sp = saml.ServiceProvider({
1043
- metadata: parsedSamlConfig.spMetadata.metadata,
1070
+ metadata: metadata,
1044
1071
  allowCreate: true,
1045
1072
  });
1046
1073
 
@@ -1798,6 +1825,10 @@ export const acsEndpoint = (options?: SSOOptions) => {
1798
1825
  }),
1799
1826
  metadata: {
1800
1827
  isAction: false,
1828
+ allowedMediaTypes: [
1829
+ "application/x-www-form-urlencoded",
1830
+ "application/json",
1831
+ ],
1801
1832
  openapi: {
1802
1833
  operationId: "handleSAMLAssertionConsumerService",
1803
1834
  summary: "SAML Assertion Consumer Service",