Skip to content

Commit 536fa99

Browse files
authored
chore(shared,nextjs,backend): Rename reverificationMismatch to reverificationError (#4582)
1 parent df6b8cc commit 536fa99

File tree

8 files changed

+44
-32
lines changed

8 files changed

+44
-32
lines changed

.changeset/fluffy-tools-live.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
'@clerk/backend': minor
3+
'@clerk/nextjs': minor
4+
'@clerk/shared': minor
5+
---
6+
7+
Rename `reverificationMismatch` to `reverificationError`.

integration/templates/next-app-router/src/app/(reverification)/actions.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
'use server';
22

33
import { auth } from '@clerk/nextjs/server';
4-
import { __experimental_reverificationMismatch as reverificationMismatch } from '@clerk/shared/authorization-errors';
4+
import { __experimental_reverificationError as reverificationError } from '@clerk/shared/authorization-errors';
55
import { __experimental_ReverificationConfig } from '@clerk/types';
66

77
const logUserIdActionReverification = async () => {
@@ -17,7 +17,7 @@ const logUserIdActionReverification = async () => {
1717
});
1818

1919
if (userNeedsReverification) {
20-
return reverificationMismatch(config);
20+
return reverificationError(config);
2121
}
2222

2323
return {

packages/backend/src/__tests__/exports.test.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -37,8 +37,8 @@ describe('subpath /internal exports', () => {
3737
expect(Object.keys(internalExports).sort()).toMatchInlineSnapshot(`
3838
[
3939
"AuthStatus",
40-
"__experimental_reverificationMismatch",
41-
"__experimental_reverificationMismatchResponse",
40+
"__experimental_reverificationError",
41+
"__experimental_reverificationErrorResponse",
4242
"constants",
4343
"createAuthenticateRequest",
4444
"createClerkRequest",

packages/backend/src/internal.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ export { createClerkRequest } from './tokens/clerkRequest';
2121
export type { ClerkRequest } from './tokens/clerkRequest';
2222

2323
export {
24-
__experimental_reverificationMismatch,
25-
__experimental_reverificationMismatchResponse,
24+
__experimental_reverificationError,
25+
__experimental_reverificationErrorResponse,
2626
} from '@clerk/shared/authorization-errors';

packages/nextjs/src/server/__tests__/__snapshots__/exports.test.ts.snap

+2-2
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
exports[`/server public exports > should not include a breaking change 1`] = `
44
[
5-
"__experimental_reverificationMismatch",
6-
"__experimental_reverificationMismatchResponse",
5+
"__experimental_reverificationError",
6+
"__experimental_reverificationErrorResponse",
77
"auth",
88
"buildClerkProps",
99
"clerkClient",

packages/nextjs/src/server/index.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,6 @@ export type {
6868
* Utilities for reverification
6969
*/
7070
export {
71-
__experimental_reverificationMismatchResponse,
72-
__experimental_reverificationMismatch,
71+
__experimental_reverificationErrorResponse,
72+
__experimental_reverificationError,
7373
} from '@clerk/backend/internal';

packages/shared/src/authorization-errors.ts

+24-19
Original file line numberDiff line numberDiff line change
@@ -4,45 +4,50 @@ type ClerkError<T> = {
44
clerk_error: T;
55
};
66

7-
type ReverificationMismatchError<M extends { metadata?: any } = { metadata: unknown }> = ClerkError<
7+
const REVERIFICATION_REASON = 'reverification-error';
8+
9+
type ReverificationError<M extends { metadata?: any } = { metadata: unknown }> = ClerkError<
810
{
911
type: 'forbidden';
10-
reason: 'reverification-mismatch';
12+
reason: typeof REVERIFICATION_REASON;
1113
} & M
1214
>;
1315

14-
const __experimental_reverificationMismatch = <MC extends __experimental_ReverificationConfig>(missingConfig?: MC) =>
15-
({
16-
clerk_error: {
17-
type: 'forbidden',
18-
reason: 'reverification-mismatch',
19-
metadata: {
20-
reverification: missingConfig,
21-
},
16+
const __experimental_reverificationError = <MC extends __experimental_ReverificationConfig>(
17+
missingConfig?: MC,
18+
): ReverificationError<{
19+
metadata: {
20+
reverification?: MC;
21+
};
22+
}> => ({
23+
clerk_error: {
24+
type: 'forbidden',
25+
reason: REVERIFICATION_REASON,
26+
metadata: {
27+
reverification: missingConfig,
2228
},
23-
}) satisfies ReverificationMismatchError;
29+
},
30+
});
2431

25-
const __experimental_reverificationMismatchResponse = (
26-
...args: Parameters<typeof __experimental_reverificationMismatch>
27-
) =>
28-
new Response(JSON.stringify(__experimental_reverificationMismatch(...args)), {
32+
const __experimental_reverificationErrorResponse = (...args: Parameters<typeof __experimental_reverificationError>) =>
33+
new Response(JSON.stringify(__experimental_reverificationError(...args)), {
2934
status: 403,
3035
});
3136

3237
const __experimental_isReverificationHint = (
3338
result: any,
34-
): result is ReturnType<typeof __experimental_reverificationMismatch> => {
39+
): result is ReturnType<typeof __experimental_reverificationError> => {
3540
return (
3641
result &&
3742
typeof result === 'object' &&
3843
'clerk_error' in result &&
3944
result.clerk_error?.type === 'forbidden' &&
40-
result.clerk_error?.reason === 'reverification-mismatch'
45+
result.clerk_error?.reason === REVERIFICATION_REASON
4146
);
4247
};
4348

4449
export {
45-
__experimental_reverificationMismatch,
46-
__experimental_reverificationMismatchResponse,
50+
__experimental_reverificationError,
51+
__experimental_reverificationErrorResponse,
4752
__experimental_isReverificationHint,
4853
};

packages/shared/src/react/hooks/useReverification.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
import type { Clerk } from '@clerk/types';
22
import { useMemo, useRef } from 'react';
33

4-
import { __experimental_isReverificationHint, __experimental_reverificationMismatch } from '../../authorization-errors';
4+
import { __experimental_isReverificationHint, __experimental_reverificationError } from '../../authorization-errors';
55
import { ClerkRuntimeError, isClerkAPIResponseError } from '../../error';
66
import { createDeferredPromise } from '../../utils/createDeferredPromise';
77
import { useClerk } from './useClerk';
88
import { useSafeLayoutEffect } from './useSafeLayoutEffect';
99

1010
async function resolveResult<T>(
1111
result: Promise<T>,
12-
): Promise<T | ReturnType<typeof __experimental_reverificationMismatch>> {
12+
): Promise<T | ReturnType<typeof __experimental_reverificationError>> {
1313
return result
1414
.then(r => {
1515
if (r instanceof Response) {
@@ -20,7 +20,7 @@ async function resolveResult<T>(
2020
.catch(e => {
2121
// Treat fapi assurance as an assurance hint
2222
if (isClerkAPIResponseError(e) && e.errors.find(({ code }) => code == 'session_step_up_verification_required')) {
23-
return __experimental_reverificationMismatch();
23+
return __experimental_reverificationError();
2424
}
2525

2626
// rethrow

0 commit comments

Comments
 (0)