@robelest/convex-auth 0.0.4-preview.22 → 0.0.4-preview.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.
- package/README.md +10 -11
- package/dist/authorization/index.d.ts +1 -1
- package/dist/authorization/index.js +1 -1
- package/dist/authorization/index.js.map +1 -1
- package/dist/client/index.d.ts +1 -2
- package/dist/client/index.d.ts.map +1 -1
- package/dist/client/index.js +36 -39
- package/dist/client/index.js.map +1 -1
- package/dist/component/client/index.d.ts +1 -2
- package/dist/component/index.js +2 -2
- package/dist/component/model.d.ts +9 -9
- package/dist/component/model.d.ts.map +1 -1
- package/dist/component/public/enterprise/audit.d.ts.map +1 -1
- package/dist/component/public/enterprise/audit.js.map +1 -1
- package/dist/component/public/enterprise/core.d.ts.map +1 -1
- package/dist/component/public/enterprise/core.js.map +1 -1
- package/dist/component/public/enterprise/domains.d.ts.map +1 -1
- package/dist/component/public/enterprise/domains.js.map +1 -1
- package/dist/component/public/enterprise/scim.d.ts.map +1 -1
- package/dist/component/public/enterprise/scim.js.map +1 -1
- package/dist/component/public/enterprise/secrets.d.ts.map +1 -1
- package/dist/component/public/enterprise/secrets.js.map +1 -1
- package/dist/component/public/enterprise/webhooks.d.ts.map +1 -1
- package/dist/component/public/enterprise/webhooks.js.map +1 -1
- package/dist/component/public/factors/devices.d.ts.map +1 -1
- package/dist/component/public/factors/devices.js.map +1 -1
- package/dist/component/public/factors/passkeys.d.ts.map +1 -1
- package/dist/component/public/factors/passkeys.js.map +1 -1
- package/dist/component/public/factors/totp.d.ts.map +1 -1
- package/dist/component/public/factors/totp.js.map +1 -1
- package/dist/component/public/groups/core.js.map +1 -1
- package/dist/component/public/groups/invites.d.ts.map +1 -1
- package/dist/component/public/groups/invites.js.map +1 -1
- package/dist/component/public/groups/members.d.ts.map +1 -1
- package/dist/component/public/groups/members.js.map +1 -1
- package/dist/component/public/identity/accounts.d.ts.map +1 -1
- package/dist/component/public/identity/accounts.js.map +1 -1
- package/dist/component/public/identity/codes.d.ts.map +1 -1
- package/dist/component/public/identity/codes.js.map +1 -1
- package/dist/component/public/identity/sessions.d.ts.map +1 -1
- package/dist/component/public/identity/sessions.js.map +1 -1
- package/dist/component/public/identity/tokens.d.ts.map +1 -1
- package/dist/component/public/identity/tokens.js.map +1 -1
- package/dist/component/public/identity/users.d.ts.map +1 -1
- package/dist/component/public/identity/users.js.map +1 -1
- package/dist/component/public/identity/verifiers.d.ts.map +1 -1
- package/dist/component/public/identity/verifiers.js.map +1 -1
- package/dist/component/public/security/keys.d.ts.map +1 -1
- package/dist/component/public/security/keys.js.map +1 -1
- package/dist/component/public/security/limits.d.ts.map +1 -1
- package/dist/component/public/security/limits.js.map +1 -1
- package/dist/component/schema.d.ts +41 -41
- package/dist/component/server/auth.d.ts +127 -130
- package/dist/component/server/auth.d.ts.map +1 -1
- package/dist/component/server/auth.js +100 -64
- package/dist/component/server/auth.js.map +1 -1
- package/dist/component/server/context.js +53 -0
- package/dist/component/server/context.js.map +1 -0
- package/dist/component/server/core.js +113 -250
- package/dist/component/server/core.js.map +1 -1
- package/dist/component/server/crypto.js +25 -7
- package/dist/component/server/crypto.js.map +1 -1
- package/dist/component/server/device.js +59 -16
- package/dist/component/server/device.js.map +1 -1
- package/dist/component/server/enterprise/domain.js +148 -59
- package/dist/component/server/enterprise/domain.js.map +1 -1
- package/dist/component/server/enterprise/http.js +36 -15
- package/dist/component/server/enterprise/http.js.map +1 -1
- package/dist/component/server/enterprise/oidc.js +1 -1
- package/dist/component/server/http.d.ts +85 -0
- package/dist/component/server/http.d.ts.map +1 -0
- package/dist/component/server/http.js +85 -22
- package/dist/component/server/http.js.map +1 -1
- package/dist/component/server/identity.js +5 -2
- package/dist/component/server/identity.js.map +1 -1
- package/dist/component/server/limits.js +21 -30
- package/dist/component/server/limits.js.map +1 -1
- package/dist/component/server/mutations/account.js +12 -10
- package/dist/component/server/mutations/account.js.map +1 -1
- package/dist/component/server/mutations/code.js +5 -2
- package/dist/component/server/mutations/code.js.map +1 -1
- package/dist/component/server/mutations/invalidate.js +1 -1
- package/dist/component/server/mutations/invalidate.js.map +1 -1
- package/dist/component/server/mutations/oauth.js +10 -4
- package/dist/component/server/mutations/oauth.js.map +1 -1
- package/dist/component/server/mutations/refresh.js +2 -2
- package/dist/component/server/mutations/refresh.js.map +1 -1
- package/dist/component/server/mutations/register.js +46 -42
- package/dist/component/server/mutations/register.js.map +1 -1
- package/dist/component/server/mutations/retrieve.js +21 -25
- package/dist/component/server/mutations/retrieve.js.map +1 -1
- package/dist/component/server/mutations/signature.js +10 -4
- package/dist/component/server/mutations/signature.js.map +1 -1
- package/dist/component/server/mutations/signout.js.map +1 -1
- package/dist/component/server/mutations/store.js +9 -24
- package/dist/component/server/mutations/store.js.map +1 -1
- package/dist/component/server/mutations/verifier.js.map +1 -1
- package/dist/component/server/mutations/verify.js +1 -1
- package/dist/component/server/mutations/verify.js.map +1 -1
- package/dist/component/server/oauth.js +53 -16
- package/dist/component/server/oauth.js.map +1 -1
- package/dist/component/server/passkey.js +115 -31
- package/dist/component/server/passkey.js.map +1 -1
- package/dist/component/server/redirects.js +9 -3
- package/dist/component/server/redirects.js.map +1 -1
- package/dist/component/server/refresh.js +10 -7
- package/dist/component/server/refresh.js.map +1 -1
- package/dist/component/server/runtime.d.ts +5 -5
- package/dist/component/server/runtime.js +156 -113
- package/dist/component/server/runtime.js.map +1 -1
- package/dist/component/server/signin.js +34 -10
- package/dist/component/server/signin.js.map +1 -1
- package/dist/component/server/totp.js +79 -19
- package/dist/component/server/totp.js.map +1 -1
- package/dist/component/server/types.d.ts +12 -20
- package/dist/component/server/types.d.ts.map +1 -1
- package/dist/component/server/types.js.map +1 -1
- package/dist/component/server/users.js +6 -3
- package/dist/component/server/users.js.map +1 -1
- package/dist/component/server/utils.js +10 -4
- package/dist/component/server/utils.js.map +1 -1
- package/dist/core/types.d.ts +14 -22
- package/dist/core/types.d.ts.map +1 -1
- package/dist/factors/device.js +8 -9
- package/dist/factors/device.js.map +1 -1
- package/dist/factors/passkey.js +18 -21
- package/dist/factors/passkey.js.map +1 -1
- package/dist/providers/password.js +66 -81
- package/dist/providers/password.js.map +1 -1
- package/dist/runtime/invite.js +2 -8
- package/dist/runtime/invite.js.map +1 -1
- package/dist/server/auth.d.ts +127 -130
- package/dist/server/auth.d.ts.map +1 -1
- package/dist/server/auth.js +100 -64
- package/dist/server/auth.js.map +1 -1
- package/dist/server/context.d.ts +1 -0
- package/dist/server/context.js +53 -0
- package/dist/server/context.js.map +1 -0
- package/dist/server/core.d.ts +74 -195
- package/dist/server/core.d.ts.map +1 -1
- package/dist/server/core.js +113 -250
- package/dist/server/core.js.map +1 -1
- package/dist/server/crypto.d.ts.map +1 -1
- package/dist/server/crypto.js +25 -7
- package/dist/server/crypto.js.map +1 -1
- package/dist/server/device.js +59 -16
- package/dist/server/device.js.map +1 -1
- package/dist/server/enterprise/domain.d.ts +0 -8
- package/dist/server/enterprise/domain.d.ts.map +1 -1
- package/dist/server/enterprise/domain.js +148 -59
- package/dist/server/enterprise/domain.js.map +1 -1
- package/dist/server/enterprise/http.d.ts.map +1 -1
- package/dist/server/enterprise/http.js +35 -14
- package/dist/server/enterprise/http.js.map +1 -1
- package/dist/server/http.d.ts +81 -3
- package/dist/server/http.d.ts.map +1 -1
- package/dist/server/http.js +84 -21
- package/dist/server/http.js.map +1 -1
- package/dist/server/identity.js +5 -2
- package/dist/server/identity.js.map +1 -1
- package/dist/server/index.d.ts +3 -2
- package/dist/server/index.js +2 -2
- package/dist/server/limits.js +21 -30
- package/dist/server/limits.js.map +1 -1
- package/dist/server/mounts.d.ts +25 -63
- package/dist/server/mounts.d.ts.map +1 -1
- package/dist/server/mounts.js +46 -107
- package/dist/server/mounts.js.map +1 -1
- package/dist/server/mutations/account.d.ts +8 -9
- package/dist/server/mutations/account.d.ts.map +1 -1
- package/dist/server/mutations/account.js +11 -9
- package/dist/server/mutations/account.js.map +1 -1
- package/dist/server/mutations/code.d.ts +12 -12
- package/dist/server/mutations/code.d.ts.map +1 -1
- package/dist/server/mutations/code.js +5 -2
- package/dist/server/mutations/code.js.map +1 -1
- package/dist/server/mutations/invalidate.d.ts +4 -4
- package/dist/server/mutations/invalidate.d.ts.map +1 -1
- package/dist/server/mutations/invalidate.js.map +1 -1
- package/dist/server/mutations/oauth.d.ts +14 -12
- package/dist/server/mutations/oauth.d.ts.map +1 -1
- package/dist/server/mutations/oauth.js +9 -3
- package/dist/server/mutations/oauth.js.map +1 -1
- package/dist/server/mutations/refresh.d.ts +3 -3
- package/dist/server/mutations/refresh.d.ts.map +1 -1
- package/dist/server/mutations/refresh.js +1 -1
- package/dist/server/mutations/refresh.js.map +1 -1
- package/dist/server/mutations/register.d.ts +11 -11
- package/dist/server/mutations/register.d.ts.map +1 -1
- package/dist/server/mutations/register.js +45 -41
- package/dist/server/mutations/register.js.map +1 -1
- package/dist/server/mutations/retrieve.d.ts +6 -6
- package/dist/server/mutations/retrieve.d.ts.map +1 -1
- package/dist/server/mutations/retrieve.js +20 -24
- package/dist/server/mutations/retrieve.js.map +1 -1
- package/dist/server/mutations/signature.d.ts +6 -7
- package/dist/server/mutations/signature.d.ts.map +1 -1
- package/dist/server/mutations/signature.js +9 -3
- package/dist/server/mutations/signature.js.map +1 -1
- package/dist/server/mutations/signin.d.ts +5 -5
- package/dist/server/mutations/signout.js.map +1 -1
- package/dist/server/mutations/store.d.ts +83 -83
- package/dist/server/mutations/store.js +8 -23
- package/dist/server/mutations/store.js.map +1 -1
- package/dist/server/mutations/verifier.js.map +1 -1
- package/dist/server/mutations/verify.d.ts +7 -7
- package/dist/server/mutations/verify.d.ts.map +1 -1
- package/dist/server/mutations/verify.js.map +1 -1
- package/dist/server/oauth.js +53 -16
- package/dist/server/oauth.js.map +1 -1
- package/dist/server/passkey.d.ts +2 -2
- package/dist/server/passkey.d.ts.map +1 -1
- package/dist/server/passkey.js +114 -30
- package/dist/server/passkey.js.map +1 -1
- package/dist/server/redirects.js +9 -3
- package/dist/server/redirects.js.map +1 -1
- package/dist/server/refresh.js +10 -7
- package/dist/server/refresh.js.map +1 -1
- package/dist/server/runtime.d.ts +11 -11
- package/dist/server/runtime.js +155 -112
- package/dist/server/runtime.js.map +1 -1
- package/dist/server/signin.js +34 -10
- package/dist/server/signin.js.map +1 -1
- package/dist/server/ssr.d.ts.map +1 -1
- package/dist/server/ssr.js +175 -184
- package/dist/server/ssr.js.map +1 -1
- package/dist/server/totp.js +78 -18
- package/dist/server/totp.js.map +1 -1
- package/dist/server/types.d.ts +13 -21
- package/dist/server/types.d.ts.map +1 -1
- package/dist/server/types.js.map +1 -1
- package/dist/server/users.js +6 -3
- package/dist/server/users.js.map +1 -1
- package/dist/server/utils.js +10 -4
- package/dist/server/utils.js.map +1 -1
- package/package.json +1 -5
- package/src/authorization/index.ts +1 -1
- package/src/client/core/types.ts +14 -14
- package/src/client/factors/device.ts +10 -12
- package/src/client/factors/passkey.ts +23 -26
- package/src/client/index.ts +54 -64
- package/src/client/runtime/invite.ts +5 -7
- package/src/component/index.ts +9 -3
- package/src/component/public/enterprise/audit.ts +6 -1
- package/src/component/public/enterprise/core.ts +1 -0
- package/src/component/public/enterprise/domains.ts +5 -1
- package/src/component/public/enterprise/scim.ts +1 -0
- package/src/component/public/enterprise/secrets.ts +1 -0
- package/src/component/public/enterprise/webhooks.ts +1 -0
- package/src/component/public/factors/devices.ts +1 -0
- package/src/component/public/factors/passkeys.ts +1 -0
- package/src/component/public/factors/totp.ts +1 -0
- package/src/component/public/groups/core.ts +1 -1
- package/src/component/public/groups/invites.ts +7 -1
- package/src/component/public/groups/members.ts +1 -0
- package/src/component/public/identity/accounts.ts +1 -0
- package/src/component/public/identity/codes.ts +1 -0
- package/src/component/public/identity/sessions.ts +1 -0
- package/src/component/public/identity/tokens.ts +1 -0
- package/src/component/public/identity/users.ts +1 -0
- package/src/component/public/identity/verifiers.ts +1 -0
- package/src/component/public/security/keys.ts +1 -0
- package/src/component/public/security/limits.ts +1 -0
- package/src/providers/password.ts +89 -110
- package/src/server/auth.ts +240 -182
- package/src/server/context.ts +90 -0
- package/src/server/core.ts +195 -286
- package/src/server/crypto.ts +31 -29
- package/src/server/device.ts +65 -32
- package/src/server/enterprise/domain.ts +158 -170
- package/src/server/enterprise/http.ts +46 -39
- package/src/server/http.ts +289 -30
- package/src/server/identity.ts +5 -5
- package/src/server/index.ts +9 -3
- package/src/server/limits.ts +53 -80
- package/src/server/mounts.ts +56 -80
- package/src/server/mutations/account.ts +22 -36
- package/src/server/mutations/code.ts +6 -6
- package/src/server/mutations/invalidate.ts +1 -1
- package/src/server/mutations/oauth.ts +14 -8
- package/src/server/mutations/refresh.ts +5 -4
- package/src/server/mutations/register.ts +87 -132
- package/src/server/mutations/retrieve.ts +44 -44
- package/src/server/mutations/signature.ts +13 -6
- package/src/server/mutations/signout.ts +1 -1
- package/src/server/mutations/store.ts +16 -31
- package/src/server/mutations/verifier.ts +1 -1
- package/src/server/mutations/verify.ts +3 -5
- package/src/server/oauth.ts +60 -69
- package/src/server/passkey.ts +567 -517
- package/src/server/redirects.ts +10 -6
- package/src/server/refresh.ts +14 -18
- package/src/server/runtime.ts +340 -302
- package/src/server/signin.ts +44 -37
- package/src/server/ssr.ts +390 -407
- package/src/server/totp.ts +85 -35
- package/src/server/types.ts +19 -22
- package/src/server/users.ts +7 -6
- package/src/server/utils.ts +10 -12
- package/dist/component/server/authError.js +0 -34
- package/dist/component/server/authError.js.map +0 -1
- package/dist/component/server/errors.d.ts +0 -1
- package/dist/component/server/errors.js +0 -137
- package/dist/component/server/errors.js.map +0 -1
- package/dist/server/authError.d.ts +0 -46
- package/dist/server/authError.d.ts.map +0 -1
- package/dist/server/authError.js +0 -34
- package/dist/server/authError.js.map +0 -1
- package/dist/server/errors.d.ts +0 -177
- package/dist/server/errors.d.ts.map +0 -1
- package/dist/server/errors.js +0 -212
- package/dist/server/errors.js.map +0 -1
- package/src/server/authError.ts +0 -44
- package/src/server/errors.ts +0 -290
package/src/server/signin.ts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import type { Fx as FxType } from "@robelest/fx";
|
|
2
|
+
import { Fx } from "@robelest/fx";
|
|
3
|
+
import { Cv } from "@robelest/fx/convex";
|
|
2
4
|
import { GenericId } from "convex/values";
|
|
5
|
+
import { ConvexError } from "convex/values";
|
|
3
6
|
|
|
4
7
|
import { handleDevice } from "./device";
|
|
5
|
-
import { Fx } from "@robelest/fx";
|
|
6
|
-
|
|
7
|
-
import { AuthError } from "./authError";
|
|
8
8
|
import {
|
|
9
9
|
callCreateVerificationCode,
|
|
10
10
|
callRefreshSession,
|
|
@@ -79,9 +79,7 @@ export async function signInImpl(
|
|
|
79
79
|
},
|
|
80
80
|
): Promise<SignInResult> {
|
|
81
81
|
const fx = signInFx(ctx, provider, args, options);
|
|
82
|
-
return Fx.run(
|
|
83
|
-
fx.pipe(Fx.recover((e) => Fx.fatal((e as AuthError).toConvexError()))),
|
|
84
|
-
);
|
|
82
|
+
return Fx.run(fx.pipe(Fx.recover((e) => Fx.fatal(e))));
|
|
85
83
|
}
|
|
86
84
|
|
|
87
85
|
/**
|
|
@@ -104,7 +102,7 @@ function signInFx(
|
|
|
104
102
|
generateTokens: boolean;
|
|
105
103
|
allowExtraProviders: boolean;
|
|
106
104
|
},
|
|
107
|
-
): FxType<SignInResult,
|
|
105
|
+
): FxType<SignInResult, ConvexError<any>> {
|
|
108
106
|
return Fx.gen(function* () {
|
|
109
107
|
// --- Refresh token (no provider) ---
|
|
110
108
|
if (provider === null && args.refreshToken) {
|
|
@@ -133,7 +131,10 @@ function signInFx(
|
|
|
133
131
|
// --- Provider is required past this point ---
|
|
134
132
|
const resolvedProvider = yield* provider != null
|
|
135
133
|
? Fx.succeed(provider)
|
|
136
|
-
:
|
|
134
|
+
: Cv.fail({
|
|
135
|
+
code: "SIGN_IN_MISSING_PARAMS",
|
|
136
|
+
message: "Cannot sign in: missing provider, code, or refresh token.",
|
|
137
|
+
});
|
|
137
138
|
|
|
138
139
|
// --- Dispatch by provider type ---
|
|
139
140
|
return yield* Fx.match(resolvedProvider).on("type", {
|
|
@@ -167,7 +168,7 @@ function handleEmailAndPhoneProviderFx(
|
|
|
167
168
|
): FxType<
|
|
168
169
|
| { kind: "started"; started: true }
|
|
169
170
|
| { kind: "signedIn"; signedIn: SessionInfoWithTokens },
|
|
170
|
-
|
|
171
|
+
ConvexError<any>
|
|
171
172
|
> {
|
|
172
173
|
return Fx.gen(function* () {
|
|
173
174
|
// --- Code verification path ---
|
|
@@ -182,7 +183,10 @@ function handleEmailAndPhoneProviderFx(
|
|
|
182
183
|
);
|
|
183
184
|
const verified = yield* result != null
|
|
184
185
|
? Fx.succeed(result)
|
|
185
|
-
:
|
|
186
|
+
: Cv.fail({
|
|
187
|
+
code: "INVALID_VERIFICATION_CODE",
|
|
188
|
+
message: "Invalid or expired verification code.",
|
|
189
|
+
});
|
|
186
190
|
return {
|
|
187
191
|
kind: "signedIn" as const,
|
|
188
192
|
signedIn: verified as SessionInfoWithTokens,
|
|
@@ -196,10 +200,10 @@ function handleEmailAndPhoneProviderFx(
|
|
|
196
200
|
? yield* Fx.from({
|
|
197
201
|
ok: async () => provider.generateVerificationToken!(),
|
|
198
202
|
err: () =>
|
|
199
|
-
|
|
200
|
-
"INTERNAL_ERROR",
|
|
201
|
-
"Failed to generate verification token",
|
|
202
|
-
),
|
|
203
|
+
Cv.error({
|
|
204
|
+
code: "INTERNAL_ERROR",
|
|
205
|
+
message: "Failed to generate verification token",
|
|
206
|
+
}),
|
|
203
207
|
})
|
|
204
208
|
: generateRandomString(32, alphabet);
|
|
205
209
|
const expirationTime =
|
|
@@ -242,7 +246,10 @@ function handleEmailAndPhoneProviderFx(
|
|
|
242
246
|
ctx,
|
|
243
247
|
),
|
|
244
248
|
err: () =>
|
|
245
|
-
|
|
249
|
+
Cv.error({
|
|
250
|
+
code: "INTERNAL_ERROR",
|
|
251
|
+
message: "Failed to send email code",
|
|
252
|
+
}),
|
|
246
253
|
}),
|
|
247
254
|
phone: (p) =>
|
|
248
255
|
Fx.from({
|
|
@@ -252,7 +259,10 @@ function handleEmailAndPhoneProviderFx(
|
|
|
252
259
|
ctx,
|
|
253
260
|
),
|
|
254
261
|
err: () =>
|
|
255
|
-
|
|
262
|
+
Cv.error({
|
|
263
|
+
code: "INTERNAL_ERROR",
|
|
264
|
+
message: "Failed to send phone code",
|
|
265
|
+
}),
|
|
256
266
|
}),
|
|
257
267
|
});
|
|
258
268
|
return { kind: "started" as const, started: true as const };
|
|
@@ -275,7 +285,7 @@ function handleCredentialsFx(
|
|
|
275
285
|
): FxType<
|
|
276
286
|
| { kind: "signedIn"; signedIn: SessionInfo | null }
|
|
277
287
|
| { kind: "totpRequired"; verifier: string },
|
|
278
|
-
|
|
288
|
+
ConvexError<any>
|
|
279
289
|
> {
|
|
280
290
|
return Fx.gen(function* () {
|
|
281
291
|
const result = yield* Fx.promise(() =>
|
|
@@ -338,7 +348,7 @@ function handleOAuthProviderFx(
|
|
|
338
348
|
): FxType<
|
|
339
349
|
| { kind: "signedIn"; signedIn: SessionInfoWithTokens | null }
|
|
340
350
|
| { kind: "redirect"; redirect: string; verifier: string },
|
|
341
|
-
|
|
351
|
+
ConvexError<any>
|
|
342
352
|
> {
|
|
343
353
|
return Fx.gen(function* () {
|
|
344
354
|
// --- Code verification path ---
|
|
@@ -368,12 +378,10 @@ function handleOAuthProviderFx(
|
|
|
368
378
|
if (args.params?.redirectTo !== undefined) {
|
|
369
379
|
yield* Fx.guard(
|
|
370
380
|
typeof args.params.redirectTo !== "string",
|
|
371
|
-
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
),
|
|
376
|
-
),
|
|
381
|
+
Cv.fail({
|
|
382
|
+
code: "INVALID_REDIRECT",
|
|
383
|
+
message: `Expected \`redirectTo\` to be a string, got ${args.params.redirectTo}`,
|
|
384
|
+
}),
|
|
377
385
|
);
|
|
378
386
|
redirect.searchParams.set("redirectTo", args.params.redirectTo);
|
|
379
387
|
}
|
|
@@ -395,26 +403,25 @@ function handleSsoProviderFx(
|
|
|
395
403
|
args: {
|
|
396
404
|
params?: Record<string, any>;
|
|
397
405
|
},
|
|
398
|
-
): FxType<
|
|
406
|
+
): FxType<
|
|
407
|
+
{ kind: "redirect"; redirect: string; verifier: string },
|
|
408
|
+
ConvexError<any>
|
|
409
|
+
> {
|
|
399
410
|
return Fx.gen(function* () {
|
|
400
411
|
const enterpriseId = args.params?.enterpriseId;
|
|
401
412
|
if (!enterpriseId || typeof enterpriseId !== "string") {
|
|
402
|
-
return yield*
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
),
|
|
407
|
-
);
|
|
413
|
+
return yield* Cv.fail({
|
|
414
|
+
code: "SIGN_IN_MISSING_PARAMS",
|
|
415
|
+
message: "enterpriseId is required for SSO sign-in.",
|
|
416
|
+
});
|
|
408
417
|
}
|
|
409
418
|
|
|
410
419
|
const protocol: "oidc" | "saml" = args.params?.protocol ?? "oidc";
|
|
411
420
|
if (protocol !== "oidc" && protocol !== "saml") {
|
|
412
|
-
return yield*
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
),
|
|
417
|
-
);
|
|
421
|
+
return yield* Cv.fail({
|
|
422
|
+
code: "SIGN_IN_MISSING_PARAMS",
|
|
423
|
+
message: `Invalid SSO protocol: ${protocol as string}. Expected "oidc" or "saml".`,
|
|
424
|
+
});
|
|
418
425
|
}
|
|
419
426
|
|
|
420
427
|
const verifier = yield* Fx.promise(() => callVerifier(ctx));
|