@clerk/shared 4.0.0-snapshot.v20251203203405 → 4.0.0-snapshot.v20251204143242
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/dist/runtime/alternativePhoneCode.d.mts +1 -1
- package/dist/runtime/alternativePhoneCode.d.ts +1 -1
- package/dist/runtime/apiUrlFromPublishableKey.d.mts +1 -1
- package/dist/runtime/apiUrlFromPublishableKey.d.ts +1 -1
- package/dist/runtime/authorization-errors.d.mts +1 -1
- package/dist/runtime/authorization-errors.d.ts +1 -1
- package/dist/runtime/authorization.d.mts +1 -1
- package/dist/runtime/authorization.d.ts +1 -1
- package/dist/runtime/clerkEventBus.d.mts +1 -1
- package/dist/runtime/clerkEventBus.d.ts +1 -1
- package/dist/runtime/color.d.mts +1 -1
- package/dist/runtime/color.d.mts.map +1 -1
- package/dist/runtime/color.d.ts +1 -1
- package/dist/runtime/color.d.ts.map +1 -1
- package/dist/runtime/{constants-DsfrXdQ8.js → constants-9KypHZxJ.js} +2 -1
- package/dist/runtime/constants-9KypHZxJ.js.map +1 -0
- package/dist/runtime/{constants-BundqeOh.mjs → constants-CZ3sPBBs.mjs} +2 -1
- package/dist/runtime/constants-CZ3sPBBs.mjs.map +1 -0
- package/dist/runtime/deriveState.d.mts +1 -1
- package/dist/runtime/deriveState.d.ts +1 -1
- package/dist/runtime/{error-BYTci2WS.js → error-C4TyorFL.js} +15 -1
- package/dist/runtime/{error-BYTci2WS.js.map → error-C4TyorFL.js.map} +1 -1
- package/dist/runtime/{error-BRvlv2fP.d.ts → error-CwbYlf2s.d.ts} +9 -3
- package/dist/runtime/{error-BRvlv2fP.d.ts.map → error-CwbYlf2s.d.ts.map} +1 -1
- package/dist/runtime/{error-t9UrtAmk.mjs → error-D6MGXq-n.mjs} +10 -2
- package/dist/runtime/{error-t9UrtAmk.mjs.map → error-D6MGXq-n.mjs.map} +1 -1
- package/dist/runtime/{error-BYHbh-4N.d.mts → error-KRW-ECGa.d.mts} +9 -3
- package/dist/runtime/{error-BYHbh-4N.d.mts.map → error-KRW-ECGa.d.mts.map} +1 -1
- package/dist/runtime/error.d.mts +3 -3
- package/dist/runtime/error.d.ts +3 -3
- package/dist/runtime/error.js +2 -1
- package/dist/runtime/error.mjs +2 -2
- package/dist/runtime/{index-D-EHOtTU.d.ts → index-046BvqQ_.d.ts} +16 -5
- package/dist/runtime/index-046BvqQ_.d.ts.map +1 -0
- package/dist/runtime/{index-CpTf_wzr.d.mts → index-ChHWjn_I.d.mts} +16 -5
- package/dist/runtime/index-ChHWjn_I.d.mts.map +1 -0
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.js +2 -2
- package/dist/runtime/internal/clerk-js/completeSignUpFlow.mjs +2 -2
- package/dist/runtime/internal/clerk-js/componentGuards.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/componentGuards.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/constants.d.mts +1 -0
- package/dist/runtime/internal/clerk-js/constants.d.mts.map +1 -1
- package/dist/runtime/internal/clerk-js/constants.d.ts +1 -0
- package/dist/runtime/internal/clerk-js/constants.d.ts.map +1 -1
- package/dist/runtime/internal/clerk-js/constants.js +1 -1
- package/dist/runtime/internal/clerk-js/constants.mjs +1 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/injectedWeb3Providers.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passkeys.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/passkeys.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/passkeys.js +1 -1
- package/dist/runtime/internal/clerk-js/passkeys.mjs +1 -1
- package/dist/runtime/internal/clerk-js/passwords/complexity.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/complexity.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/loadZxcvbn.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/password.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/password.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/strength.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/passwords/strength.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/queryParams.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/queryParams.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/queryParams.js +2 -2
- package/dist/runtime/internal/clerk-js/queryParams.mjs +2 -2
- package/dist/runtime/internal/clerk-js/queryStateParams.js +2 -2
- package/dist/runtime/internal/clerk-js/queryStateParams.mjs +2 -2
- package/dist/runtime/internal/clerk-js/redirectUrls.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/redirectUrls.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/sessionTasks.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/sessionTasks.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/sessionTasks.js +2 -2
- package/dist/runtime/internal/clerk-js/sessionTasks.mjs +2 -2
- package/dist/runtime/internal/clerk-js/url.d.mts +2 -2
- package/dist/runtime/internal/clerk-js/url.d.ts +2 -2
- package/dist/runtime/internal/clerk-js/user.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/user.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/web3.d.mts +1 -1
- package/dist/runtime/internal/clerk-js/web3.d.ts +1 -1
- package/dist/runtime/internal/clerk-js/web3.js +1 -1
- package/dist/runtime/internal/clerk-js/web3.js.map +1 -1
- package/dist/runtime/internal/clerk-js/web3.mjs +1 -1
- package/dist/runtime/internal/clerk-js/web3.mjs.map +1 -1
- package/dist/runtime/jwtPayloadParser.d.mts +1 -1
- package/dist/runtime/jwtPayloadParser.d.ts +1 -1
- package/dist/runtime/keys.d.mts +1 -1
- package/dist/runtime/keys.d.ts +1 -1
- package/dist/runtime/loadClerkJsScript.d.mts +1 -1
- package/dist/runtime/loadClerkJsScript.d.ts +1 -1
- package/dist/runtime/loadClerkJsScript.js +3 -3
- package/dist/runtime/loadClerkJsScript.js.map +1 -1
- package/dist/runtime/loadClerkJsScript.mjs +3 -3
- package/dist/runtime/loadClerkJsScript.mjs.map +1 -1
- package/dist/runtime/oauth.d.mts +1 -1
- package/dist/runtime/oauth.d.mts.map +1 -1
- package/dist/runtime/oauth.d.ts +1 -1
- package/dist/runtime/oauth.d.ts.map +1 -1
- package/dist/runtime/oauth.js +6 -0
- package/dist/runtime/oauth.js.map +1 -1
- package/dist/runtime/oauth.mjs +6 -0
- package/dist/runtime/oauth.mjs.map +1 -1
- package/dist/runtime/organization.d.mts +1 -1
- package/dist/runtime/organization.d.ts +1 -1
- package/dist/runtime/pathMatcher.d.mts +1 -1
- package/dist/runtime/pathMatcher.d.ts +1 -1
- package/dist/runtime/{queryParams-Dj-sxi00.mjs → queryParams-Bp8tBQWv.mjs} +2 -2
- package/dist/runtime/{queryParams-Dj-sxi00.mjs.map → queryParams-Bp8tBQWv.mjs.map} +1 -1
- package/dist/runtime/{queryParams-CslzMgQf.js → queryParams-Ch4kHyox.js} +2 -2
- package/dist/runtime/{queryParams-CslzMgQf.js.map → queryParams-Ch4kHyox.js.map} +1 -1
- package/dist/runtime/react/index.d.mts +23 -13
- package/dist/runtime/react/index.d.mts.map +1 -1
- package/dist/runtime/react/index.d.ts +23 -13
- package/dist/runtime/react/index.d.ts.map +1 -1
- package/dist/runtime/react/index.js +9 -6
- package/dist/runtime/react/index.js.map +1 -1
- package/dist/runtime/react/index.mjs +9 -7
- package/dist/runtime/react/index.mjs.map +1 -1
- package/dist/runtime/router.d.mts +1 -1
- package/dist/runtime/router.d.ts +1 -1
- package/dist/runtime/router.d.ts.map +1 -1
- package/dist/runtime/saml.d.mts +1 -1
- package/dist/runtime/saml.d.ts +1 -1
- package/dist/runtime/{telemetry-B26lGQUL.js → telemetry-CXXDXYfo.js} +3 -3
- package/dist/runtime/{telemetry-B26lGQUL.js.map → telemetry-CXXDXYfo.js.map} +1 -1
- package/dist/runtime/{telemetry-B4xKE_qs.mjs → telemetry-DnVD78JJ.mjs} +3 -3
- package/dist/runtime/{telemetry-B4xKE_qs.mjs.map → telemetry-DnVD78JJ.mjs.map} +1 -1
- package/dist/runtime/telemetry.d.mts +2 -2
- package/dist/runtime/telemetry.d.mts.map +1 -1
- package/dist/runtime/telemetry.d.ts +2 -2
- package/dist/runtime/telemetry.d.ts.map +1 -1
- package/dist/runtime/telemetry.js +1 -1
- package/dist/runtime/telemetry.mjs +1 -1
- package/dist/runtime/types/index.d.mts +2 -2
- package/dist/runtime/types/index.d.ts +2 -2
- package/dist/runtime/ui/index.d.mts +1 -1
- package/dist/runtime/ui/index.d.ts +1 -1
- package/dist/runtime/{url-DU3lPwMJ.d.ts → url-2Vs8oqh-.d.ts} +2 -2
- package/dist/runtime/{url-DU3lPwMJ.d.ts.map → url-2Vs8oqh-.d.ts.map} +1 -1
- package/dist/runtime/{url-BJuCuFH8.d.mts → url-Btmcqq0T.d.mts} +2 -2
- package/dist/runtime/{url-BJuCuFH8.d.mts.map → url-Btmcqq0T.d.mts.map} +1 -1
- package/dist/runtime/{versionSelector-B9gKzL3V.js → versionSelector-CkwOWe6H.js} +3 -3
- package/dist/runtime/{versionSelector-B9gKzL3V.js.map → versionSelector-CkwOWe6H.js.map} +1 -1
- package/dist/runtime/{versionSelector-yQqWqz9J.mjs → versionSelector-DAHukW82.mjs} +3 -3
- package/dist/runtime/{versionSelector-yQqWqz9J.mjs.map → versionSelector-DAHukW82.mjs.map} +1 -1
- package/dist/runtime/versionSelector.js +1 -1
- package/dist/runtime/versionSelector.mjs +1 -1
- package/dist/runtime/web3.d.mts +1 -1
- package/dist/runtime/web3.d.ts +1 -1
- package/dist/types/index.d.mts +15 -4
- package/dist/types/index.d.mts.map +1 -1
- package/dist/types/index.d.ts +15 -4
- package/dist/types/index.d.ts.map +1 -1
- package/package.json +3 -2
- package/scripts/postinstall.mjs +77 -0
- package/dist/runtime/constants-BundqeOh.mjs.map +0 -1
- package/dist/runtime/constants-DsfrXdQ8.js.map +0 -1
- package/dist/runtime/index-CpTf_wzr.d.mts.map +0 -1
- package/dist/runtime/index-D-EHOtTU.d.ts.map +0 -1
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @param publishableKey - The publishable key to parse.
|
|
6
6
|
* @returns One of Clerk's API URLs.
|
|
7
7
|
*/
|
|
8
|
-
declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.
|
|
8
|
+
declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com" | "https://api.clerkstage.dev" | "https://api.clerk.com";
|
|
9
9
|
//#endregion
|
|
10
10
|
export { apiUrlFromPublishableKey };
|
|
11
11
|
//# sourceMappingURL=apiUrlFromPublishableKey.d.mts.map
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* @param publishableKey - The publishable key to parse.
|
|
6
6
|
* @returns One of Clerk's API URLs.
|
|
7
7
|
*/
|
|
8
|
-
declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.
|
|
8
|
+
declare const apiUrlFromPublishableKey: (publishableKey: string) => "https://api.lclclerk.com" | "https://api.clerkstage.dev" | "https://api.clerk.com";
|
|
9
9
|
//#endregion
|
|
10
10
|
export { apiUrlFromPublishableKey };
|
|
11
11
|
//# sourceMappingURL=apiUrlFromPublishableKey.d.ts.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ao as SessionVerificationLevel, Da as GetToken, Do as ReverificationConfig, Ea as CheckAuthorizationWithCustomPermissions, Gi as ActClaim, Ji as JwtPayload, Oo as SessionVerificationAfterMinutes, Qi as OrganizationCustomRoleKey, Yi as SessionStatusClaim, Zi as OrganizationCustomPermissionKey, ka as PendingSessionOptions, kt as SignOut, m as UseAuthReturn } from "./index-
|
|
1
|
+
import { Ao as SessionVerificationLevel, Da as GetToken, Do as ReverificationConfig, Ea as CheckAuthorizationWithCustomPermissions, Gi as ActClaim, Ji as JwtPayload, Oo as SessionVerificationAfterMinutes, Qi as OrganizationCustomRoleKey, Yi as SessionStatusClaim, Zi as OrganizationCustomPermissionKey, ka as PendingSessionOptions, kt as SignOut, m as UseAuthReturn } from "./index-ChHWjn_I.mjs";
|
|
2
2
|
import "./moduleManager-pxNnXwxv.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/authorization.d.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ao as SessionVerificationLevel, Da as GetToken, Do as ReverificationConfig, Ea as CheckAuthorizationWithCustomPermissions, Gi as ActClaim, Ji as JwtPayload, Oo as SessionVerificationAfterMinutes, Qi as OrganizationCustomRoleKey, Yi as SessionStatusClaim, Zi as OrganizationCustomPermissionKey, ka as PendingSessionOptions, kt as SignOut, m as UseAuthReturn } from "./index-
|
|
1
|
+
import { Ao as SessionVerificationLevel, Da as GetToken, Do as ReverificationConfig, Ea as CheckAuthorizationWithCustomPermissions, Gi as ActClaim, Ji as JwtPayload, Oo as SessionVerificationAfterMinutes, Qi as OrganizationCustomRoleKey, Yi as SessionStatusClaim, Zi as OrganizationCustomPermissionKey, ka as PendingSessionOptions, kt as SignOut, m as UseAuthReturn } from "./index-046BvqQ_.js";
|
|
2
2
|
import "./moduleManager-WB15hU3T.js";
|
|
3
3
|
|
|
4
4
|
//#region src/authorization.d.ts
|
package/dist/runtime/color.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ci as HslaColor, Di as TransparentColor, Ti as RgbaColor, _i as Color } from "./index-
|
|
1
|
+
import { Ci as HslaColor, Di as TransparentColor, Ti as RgbaColor, _i as Color } from "./index-ChHWjn_I.mjs";
|
|
2
2
|
import "./moduleManager-pxNnXwxv.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/color.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.mts","names":[],"sources":["../../src/color.ts"],"sourcesContent":[],"mappings":";;;;cAUa;cAIA;cAIA;AARA,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,aAVZ,EAAA,CAAA,CAAA,EAUgC,KAVhC,EAAA,GAAA,CAAA,IAU6C,gBAV7C;AAEY,cAYA,
|
|
1
|
+
{"version":3,"file":"color.d.mts","names":[],"sources":["../../src/color.ts"],"sourcesContent":[],"mappings":";;;;cAUa;cAIA;cAIA;AARA,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,aAVZ,EAAA,CAAA,CAAA,EAUgC,KAVhC,EAAA,GAAA,CAAA,IAU6C,gBAV7C;AAEY,cAYA,QAVZ,EAF6B,CAAA,KAAa,EAYX,KAZW,EAAA,GAE1C,OAAA;AAEY,cAeA,iBAf8B,EAAA,CAAA,KAAA,EAE1C,MAAA,EAAA,GAaiD,SAbjD,GAAA,IAAA;AAEY,cA+BA,qBA/BiC,EAAA,CAAA,KAAA,EAAA,MAE7C,EAAA,GA6BqD,KA7BrD;AAEY,cA+CA,qBA/CwB,EAAA,CAAA,KAAA,EA+CQ,KA/CR,EAAA,GAAA,MAAA,GA+CyB,gBA/CzB;AAOxB,cAwDA,oBAxDqC,EAAA,CAAA,GAAS,EAAA,MAAA,EAAA,GAwDR,SAxDQ"}
|
package/dist/runtime/color.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Ci as HslaColor, Di as TransparentColor, Ti as RgbaColor, _i as Color } from "./index-
|
|
1
|
+
import { Ci as HslaColor, Di as TransparentColor, Ti as RgbaColor, _i as Color } from "./index-046BvqQ_.js";
|
|
2
2
|
import "./moduleManager-WB15hU3T.js";
|
|
3
3
|
|
|
4
4
|
//#region src/color.d.ts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"color.d.ts","names":[],"sources":["../../src/color.ts"],"sourcesContent":[],"mappings":";;;;cAUa;cAIA;cAIA;AARA,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,aAVZ,EAAA,CAAA,CAAA,EAUgC,KAVhC,EAAA,GAAA,CAAA,IAU6C,gBAV7C;AAEY,cAYA,
|
|
1
|
+
{"version":3,"file":"color.d.ts","names":[],"sources":["../../src/color.ts"],"sourcesContent":[],"mappings":";;;;cAUa;cAIA;cAIA;AARA,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,UAVZ,EAAA,CAAA,CAAA,EAU6B,KAV7B,EAAA,GAAA,CAAA,IAU0C,SAV1C;AAEY,cAYA,aAVZ,EAAA,CAAA,CAAA,EAUgC,KAVhC,EAAA,GAAA,CAAA,IAU6C,gBAV7C;AAEY,cAYA,QAVZ,EAF6B,CAAA,KAAa,EAYX,KAZW,EAAA,GAE1C,OAAA;AAEY,cAeA,iBAf8B,EAAA,CAAA,KAAA,EAE1C,MAAA,EAAA,GAaiD,SAbjD,GAAA,IAAA;AAEY,cA+BA,qBA/BiC,EAAA,CAAA,KAAA,EAAA,MAE7C,EAAA,GA6BqD,KA7BrD;AAEY,cA+CA,qBA/CwB,EAAA,CAAA,KAAA,EA+CQ,KA/CR,EAAA,GAAA,MAAA,GA+CyB,gBA/CzB;AAOxB,cAwDA,oBAxDqC,EAAA,CAAA,GAAS,EAAA,MAAA,EAAA,GAwDR,SAxDQ"}
|
|
@@ -25,6 +25,7 @@ const ERROR_CODES = {
|
|
|
25
25
|
SAML_USER_ATTRIBUTE_MISSING: "saml_user_attribute_missing",
|
|
26
26
|
USER_LOCKED: "user_locked",
|
|
27
27
|
EXTERNAL_ACCOUNT_NOT_FOUND: "external_account_not_found",
|
|
28
|
+
SESSION_EXISTS: "session_exists",
|
|
28
29
|
SIGN_UP_MODE_RESTRICTED: "sign_up_mode_restricted",
|
|
29
30
|
SIGN_UP_MODE_RESTRICTED_WAITLIST: "sign_up_restricted_waitlist",
|
|
30
31
|
ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING: "enterprise_sso_user_attribute_missing",
|
|
@@ -140,4 +141,4 @@ Object.defineProperty(exports, 'SUPPORTED_FAPI_VERSION', {
|
|
|
140
141
|
return SUPPORTED_FAPI_VERSION;
|
|
141
142
|
}
|
|
142
143
|
});
|
|
143
|
-
//# sourceMappingURL=constants-
|
|
144
|
+
//# sourceMappingURL=constants-9KypHZxJ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-9KypHZxJ.js","names":[],"sources":["../../src/internal/clerk-js/constants.ts"],"sourcesContent":["import type { SignUpModes } from '../../types';\n\n// TODO: Do we still have a use for this or can we simply preserve all params?\nexport const PRESERVED_QUERYSTRING_PARAMS = [\n 'redirect_url',\n 'after_sign_in_url',\n 'after_sign_up_url',\n 'sign_in_force_redirect_url',\n 'sign_in_fallback_redirect_url',\n 'sign_up_force_redirect_url',\n 'sign_up_fallback_redirect_url',\n];\n\nexport const CLERK_MODAL_STATE = '__clerk_modal_state';\nexport const CLERK_SYNCED = '__clerk_synced';\nexport const CLERK_SUFFIXED_COOKIES = 'suffixed_cookies';\nexport const CLERK_SATELLITE_URL = '__clerk_satellite_url';\nexport const ERROR_CODES = {\n FORM_IDENTIFIER_NOT_FOUND: 'form_identifier_not_found',\n FORM_PASSWORD_INCORRECT: 'form_password_incorrect',\n FORM_PASSWORD_PWNED: 'form_password_pwned',\n INVALID_STRATEGY_FOR_USER: 'strategy_for_user_invalid',\n NOT_ALLOWED_TO_SIGN_UP: 'not_allowed_to_sign_up',\n OAUTH_ACCESS_DENIED: 'oauth_access_denied',\n OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML: 'oauth_email_domain_reserved_by_saml',\n NOT_ALLOWED_ACCESS: 'not_allowed_access',\n SAML_USER_ATTRIBUTE_MISSING: 'saml_user_attribute_missing',\n USER_LOCKED: 'user_locked',\n EXTERNAL_ACCOUNT_NOT_FOUND: 'external_account_not_found',\n SESSION_EXISTS: 'session_exists',\n SIGN_UP_MODE_RESTRICTED: 'sign_up_mode_restricted',\n SIGN_UP_MODE_RESTRICTED_WAITLIST: 'sign_up_restricted_waitlist',\n ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING: 'enterprise_sso_user_attribute_missing',\n ENTERPRISE_SSO_EMAIL_ADDRESS_DOMAIN_MISMATCH: 'enterprise_sso_email_address_domain_mismatch',\n ENTERPRISE_SSO_HOSTED_DOMAIN_MISMATCH: 'enterprise_sso_hosted_domain_mismatch',\n SAML_EMAIL_ADDRESS_DOMAIN_MISMATCH: 'saml_email_address_domain_mismatch',\n INVITATION_ACCOUNT_NOT_EXISTS: 'invitation_account_not_exists',\n ORGANIZATION_MEMBERSHIP_QUOTA_EXCEEDED_FOR_SSO: 'organization_membership_quota_exceeded_for_sso',\n CAPTCHA_INVALID: 'captcha_invalid',\n FRAUD_DEVICE_BLOCKED: 'device_blocked',\n FRAUD_ACTION_BLOCKED: 'action_blocked',\n SIGNUP_RATE_LIMIT_EXCEEDED: 'signup_rate_limit_exceeded',\n USER_BANNED: 'user_banned',\n} as const;\n\nexport const SIGN_IN_INITIAL_VALUE_KEYS = ['email_address', 'phone_number', 'username'];\nexport const SIGN_UP_INITIAL_VALUE_KEYS = ['email_address', 'phone_number', 'username', 'first_name', 'last_name'];\n\nexport const DEBOUNCE_MS = 350;\n\nexport const SIGN_UP_MODES = {\n PUBLIC: 'public',\n RESTRICTED: 'restricted',\n WAITLIST: 'waitlist',\n} satisfies Record<string, SignUpModes>;\n\n// This is the currently supported version of the Frontend API\nexport const SUPPORTED_FAPI_VERSION = '2025-11-10';\n\nexport const CAPTCHA_ELEMENT_ID = 'clerk-captcha';\nexport const CAPTCHA_INVISIBLE_CLASSNAME = 'clerk-invisible-captcha';\n"],"mappings":";;AAGA,MAAa,+BAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,oBAAoB;AACjC,MAAa,eAAe;AAC5B,MAAa,yBAAyB;AACtC,MAAa,sBAAsB;AACnC,MAAa,cAAc;CACzB,2BAA2B;CAC3B,yBAAyB;CACzB,qBAAqB;CACrB,2BAA2B;CAC3B,wBAAwB;CACxB,qBAAqB;CACrB,qCAAqC;CACrC,oBAAoB;CACpB,6BAA6B;CAC7B,aAAa;CACb,4BAA4B;CAC5B,gBAAgB;CAChB,yBAAyB;CACzB,kCAAkC;CAClC,uCAAuC;CACvC,8CAA8C;CAC9C,uCAAuC;CACvC,oCAAoC;CACpC,+BAA+B;CAC/B,gDAAgD;CAChD,iBAAiB;CACjB,sBAAsB;CACtB,sBAAsB;CACtB,4BAA4B;CAC5B,aAAa;CACd;AAED,MAAa,6BAA6B;CAAC;CAAiB;CAAgB;CAAW;AACvF,MAAa,6BAA6B;CAAC;CAAiB;CAAgB;CAAY;CAAc;CAAY;AAElH,MAAa,cAAc;AAE3B,MAAa,gBAAgB;CAC3B,QAAQ;CACR,YAAY;CACZ,UAAU;CACX;AAGD,MAAa,yBAAyB;AAEtC,MAAa,qBAAqB;AAClC,MAAa,8BAA8B"}
|
|
@@ -24,6 +24,7 @@ const ERROR_CODES = {
|
|
|
24
24
|
SAML_USER_ATTRIBUTE_MISSING: "saml_user_attribute_missing",
|
|
25
25
|
USER_LOCKED: "user_locked",
|
|
26
26
|
EXTERNAL_ACCOUNT_NOT_FOUND: "external_account_not_found",
|
|
27
|
+
SESSION_EXISTS: "session_exists",
|
|
27
28
|
SIGN_UP_MODE_RESTRICTED: "sign_up_mode_restricted",
|
|
28
29
|
SIGN_UP_MODE_RESTRICTED_WAITLIST: "sign_up_restricted_waitlist",
|
|
29
30
|
ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING: "enterprise_sso_user_attribute_missing",
|
|
@@ -62,4 +63,4 @@ const CAPTCHA_INVISIBLE_CLASSNAME = "clerk-invisible-captcha";
|
|
|
62
63
|
|
|
63
64
|
//#endregion
|
|
64
65
|
export { CLERK_SUFFIXED_COOKIES as a, ERROR_CODES as c, SIGN_UP_INITIAL_VALUE_KEYS as d, SIGN_UP_MODES as f, CLERK_SATELLITE_URL as i, PRESERVED_QUERYSTRING_PARAMS as l, CAPTCHA_INVISIBLE_CLASSNAME as n, CLERK_SYNCED as o, SUPPORTED_FAPI_VERSION as p, CLERK_MODAL_STATE as r, DEBOUNCE_MS as s, CAPTCHA_ELEMENT_ID as t, SIGN_IN_INITIAL_VALUE_KEYS as u };
|
|
65
|
-
//# sourceMappingURL=constants-
|
|
66
|
+
//# sourceMappingURL=constants-CZ3sPBBs.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants-CZ3sPBBs.mjs","names":[],"sources":["../../src/internal/clerk-js/constants.ts"],"sourcesContent":["import type { SignUpModes } from '../../types';\n\n// TODO: Do we still have a use for this or can we simply preserve all params?\nexport const PRESERVED_QUERYSTRING_PARAMS = [\n 'redirect_url',\n 'after_sign_in_url',\n 'after_sign_up_url',\n 'sign_in_force_redirect_url',\n 'sign_in_fallback_redirect_url',\n 'sign_up_force_redirect_url',\n 'sign_up_fallback_redirect_url',\n];\n\nexport const CLERK_MODAL_STATE = '__clerk_modal_state';\nexport const CLERK_SYNCED = '__clerk_synced';\nexport const CLERK_SUFFIXED_COOKIES = 'suffixed_cookies';\nexport const CLERK_SATELLITE_URL = '__clerk_satellite_url';\nexport const ERROR_CODES = {\n FORM_IDENTIFIER_NOT_FOUND: 'form_identifier_not_found',\n FORM_PASSWORD_INCORRECT: 'form_password_incorrect',\n FORM_PASSWORD_PWNED: 'form_password_pwned',\n INVALID_STRATEGY_FOR_USER: 'strategy_for_user_invalid',\n NOT_ALLOWED_TO_SIGN_UP: 'not_allowed_to_sign_up',\n OAUTH_ACCESS_DENIED: 'oauth_access_denied',\n OAUTH_EMAIL_DOMAIN_RESERVED_BY_SAML: 'oauth_email_domain_reserved_by_saml',\n NOT_ALLOWED_ACCESS: 'not_allowed_access',\n SAML_USER_ATTRIBUTE_MISSING: 'saml_user_attribute_missing',\n USER_LOCKED: 'user_locked',\n EXTERNAL_ACCOUNT_NOT_FOUND: 'external_account_not_found',\n SESSION_EXISTS: 'session_exists',\n SIGN_UP_MODE_RESTRICTED: 'sign_up_mode_restricted',\n SIGN_UP_MODE_RESTRICTED_WAITLIST: 'sign_up_restricted_waitlist',\n ENTERPRISE_SSO_USER_ATTRIBUTE_MISSING: 'enterprise_sso_user_attribute_missing',\n ENTERPRISE_SSO_EMAIL_ADDRESS_DOMAIN_MISMATCH: 'enterprise_sso_email_address_domain_mismatch',\n ENTERPRISE_SSO_HOSTED_DOMAIN_MISMATCH: 'enterprise_sso_hosted_domain_mismatch',\n SAML_EMAIL_ADDRESS_DOMAIN_MISMATCH: 'saml_email_address_domain_mismatch',\n INVITATION_ACCOUNT_NOT_EXISTS: 'invitation_account_not_exists',\n ORGANIZATION_MEMBERSHIP_QUOTA_EXCEEDED_FOR_SSO: 'organization_membership_quota_exceeded_for_sso',\n CAPTCHA_INVALID: 'captcha_invalid',\n FRAUD_DEVICE_BLOCKED: 'device_blocked',\n FRAUD_ACTION_BLOCKED: 'action_blocked',\n SIGNUP_RATE_LIMIT_EXCEEDED: 'signup_rate_limit_exceeded',\n USER_BANNED: 'user_banned',\n} as const;\n\nexport const SIGN_IN_INITIAL_VALUE_KEYS = ['email_address', 'phone_number', 'username'];\nexport const SIGN_UP_INITIAL_VALUE_KEYS = ['email_address', 'phone_number', 'username', 'first_name', 'last_name'];\n\nexport const DEBOUNCE_MS = 350;\n\nexport const SIGN_UP_MODES = {\n PUBLIC: 'public',\n RESTRICTED: 'restricted',\n WAITLIST: 'waitlist',\n} satisfies Record<string, SignUpModes>;\n\n// This is the currently supported version of the Frontend API\nexport const SUPPORTED_FAPI_VERSION = '2025-11-10';\n\nexport const CAPTCHA_ELEMENT_ID = 'clerk-captcha';\nexport const CAPTCHA_INVISIBLE_CLASSNAME = 'clerk-invisible-captcha';\n"],"mappings":";AAGA,MAAa,+BAA+B;CAC1C;CACA;CACA;CACA;CACA;CACA;CACA;CACD;AAED,MAAa,oBAAoB;AACjC,MAAa,eAAe;AAC5B,MAAa,yBAAyB;AACtC,MAAa,sBAAsB;AACnC,MAAa,cAAc;CACzB,2BAA2B;CAC3B,yBAAyB;CACzB,qBAAqB;CACrB,2BAA2B;CAC3B,wBAAwB;CACxB,qBAAqB;CACrB,qCAAqC;CACrC,oBAAoB;CACpB,6BAA6B;CAC7B,aAAa;CACb,4BAA4B;CAC5B,gBAAgB;CAChB,yBAAyB;CACzB,kCAAkC;CAClC,uCAAuC;CACvC,8CAA8C;CAC9C,uCAAuC;CACvC,oCAAoC;CACpC,+BAA+B;CAC/B,gDAAgD;CAChD,iBAAiB;CACjB,sBAAsB;CACtB,sBAAsB;CACtB,4BAA4B;CAC5B,aAAa;CACd;AAED,MAAa,6BAA6B;CAAC;CAAiB;CAAgB;CAAW;AACvF,MAAa,6BAA6B;CAAC;CAAiB;CAAgB;CAAY;CAAc;CAAY;AAElH,MAAa,cAAc;AAE3B,MAAa,gBAAgB;CAC3B,QAAQ;CACR,YAAY;CACZ,UAAU;CACX;AAGD,MAAa,yBAAyB;AAEtC,MAAa,qBAAqB;AAClC,MAAa,8BAA8B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gi as ActClaim, Ha as SignedInSessionResource, Ji as JwtPayload, gt as Resources,
|
|
1
|
+
import { Gi as ActClaim, Ha as SignedInSessionResource, Ji as JwtPayload, gt as Resources, pa as OrganizationResource, rf as Autocomplete, t as InitialState, ta as OrganizationSystemPermissionKey, to as UserResource } from "./index-ChHWjn_I.mjs";
|
|
2
2
|
import "./moduleManager-pxNnXwxv.mjs";
|
|
3
3
|
|
|
4
4
|
//#region src/deriveState.d.ts
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Gi as ActClaim, Ha as SignedInSessionResource, Ji as JwtPayload, gt as Resources,
|
|
1
|
+
import { Gi as ActClaim, Ha as SignedInSessionResource, Ji as JwtPayload, gt as Resources, pa as OrganizationResource, rf as Autocomplete, t as InitialState, ta as OrganizationSystemPermissionKey, to as UserResource } from "./index-046BvqQ_.js";
|
|
2
2
|
import "./moduleManager-WB15hU3T.js";
|
|
3
3
|
|
|
4
4
|
//#region src/deriveState.d.ts
|
|
@@ -436,6 +436,14 @@ function isPasswordPwnedError(err) {
|
|
|
436
436
|
return isClerkAPIResponseError(err) && err.errors?.[0]?.code === "form_password_pwned";
|
|
437
437
|
}
|
|
438
438
|
/**
|
|
439
|
+
* Checks if the provided error is a clerk api response error indicating a password was compromised.
|
|
440
|
+
*
|
|
441
|
+
* @internal
|
|
442
|
+
*/
|
|
443
|
+
function isPasswordCompromisedError(err) {
|
|
444
|
+
return isClerkAPIResponseError(err) && err.errors?.[0]?.code === "form_password_compromised";
|
|
445
|
+
}
|
|
446
|
+
/**
|
|
439
447
|
* Checks if the provided error is an EmailLinkError.
|
|
440
448
|
*
|
|
441
449
|
* @internal
|
|
@@ -575,6 +583,12 @@ Object.defineProperty(exports, 'isNetworkError', {
|
|
|
575
583
|
return isNetworkError;
|
|
576
584
|
}
|
|
577
585
|
});
|
|
586
|
+
Object.defineProperty(exports, 'isPasswordCompromisedError', {
|
|
587
|
+
enumerable: true,
|
|
588
|
+
get: function () {
|
|
589
|
+
return isPasswordCompromisedError;
|
|
590
|
+
}
|
|
591
|
+
});
|
|
578
592
|
Object.defineProperty(exports, 'isPasswordPwnedError', {
|
|
579
593
|
enumerable: true,
|
|
580
594
|
get: function () {
|
|
@@ -611,4 +625,4 @@ Object.defineProperty(exports, 'parseErrors', {
|
|
|
611
625
|
return parseErrors;
|
|
612
626
|
}
|
|
613
627
|
});
|
|
614
|
-
//# sourceMappingURL=error-
|
|
628
|
+
//# sourceMappingURL=error-C4TyorFL.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-BYTci2WS.js","names":["packageName","customMessages","isClerkRuntimeError"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["type Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkApiErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIErrorInterface {\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkApiError instance.\n */\nexport const isClerkApiError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkApiResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkApiResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkApiResponseError()) { ... }\n */\nexport const isClerkApiResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkApiResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkApiResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error-C4TyorFL.js","names":["packageName","customMessages","isClerkRuntimeError"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["type Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkApiErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIErrorInterface {\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkApiError instance.\n */\nexport const isClerkApiError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkApiResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkApiResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkApiResponseError()) { ... }\n */\nexport const isClerkApiResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was compromised.\n *\n * @internal\n */\nexport function isPasswordCompromisedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_compromised';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkApiResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkApiResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mf as ClerkAPIResponseError, Pf as ClerkAPIError, cl as ClerkAPIError$1, jf as ClerkRuntimeError, ll as ClerkAPIErrorJSON } from "./index-046BvqQ_.js";
|
|
2
2
|
|
|
3
3
|
//#region src/errors/parseError.d.ts
|
|
4
4
|
|
|
@@ -186,6 +186,12 @@ declare function isUserLockedError(err: any): boolean;
|
|
|
186
186
|
* @internal
|
|
187
187
|
*/
|
|
188
188
|
declare function isPasswordPwnedError(err: any): boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Checks if the provided error is a clerk api response error indicating a password was compromised.
|
|
191
|
+
*
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
declare function isPasswordCompromisedError(err: any): boolean;
|
|
189
195
|
/**
|
|
190
196
|
* Checks if the provided error is an EmailLinkError.
|
|
191
197
|
*
|
|
@@ -193,5 +199,5 @@ declare function isPasswordPwnedError(err: any): boolean;
|
|
|
193
199
|
*/
|
|
194
200
|
declare function isEmailLinkError(err: Error): err is EmailLinkError;
|
|
195
201
|
//#endregion
|
|
196
|
-
export {
|
|
197
|
-
//# sourceMappingURL=error-
|
|
202
|
+
export { parseError as C, errorToJSON as S, EmailLinkErrorCode as _, isEmailLinkError as a, ErrorThrowerOptions as b, isNetworkError as c, isReverificationCancelledError as d, isUnauthorizedError as f, EmailLinkError as g, MetamaskError as h, isClerkRuntimeError as i, isPasswordCompromisedError as l, ClerkWebAuthnError as m, isCaptchaError as n, isKnownError as o, isUserLockedError as p, isClerkAPIResponseError as r, isMetamaskError as s, is4xxError as t, isPasswordPwnedError as u, EmailLinkErrorCodeStatus as v, parseErrors as w, buildErrorThrower as x, ErrorThrower as y };
|
|
203
|
+
//# sourceMappingURL=error-CwbYlf2s.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-
|
|
1
|
+
{"version":3,"file":"error-CwbYlf2s.d.ts","names":[],"sources":["../../src/errors/parseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/metamaskError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts"],"sourcesContent":[],"mappings":"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"}
|
|
@@ -435,6 +435,14 @@ function isPasswordPwnedError(err) {
|
|
|
435
435
|
return isClerkAPIResponseError(err) && err.errors?.[0]?.code === "form_password_pwned";
|
|
436
436
|
}
|
|
437
437
|
/**
|
|
438
|
+
* Checks if the provided error is a clerk api response error indicating a password was compromised.
|
|
439
|
+
*
|
|
440
|
+
* @internal
|
|
441
|
+
*/
|
|
442
|
+
function isPasswordCompromisedError(err) {
|
|
443
|
+
return isClerkAPIResponseError(err) && err.errors?.[0]?.code === "form_password_compromised";
|
|
444
|
+
}
|
|
445
|
+
/**
|
|
438
446
|
* Checks if the provided error is an EmailLinkError.
|
|
439
447
|
*
|
|
440
448
|
* @internal
|
|
@@ -460,5 +468,5 @@ function createClerkGlobalHookError(error) {
|
|
|
460
468
|
}
|
|
461
469
|
|
|
462
470
|
//#endregion
|
|
463
|
-
export {
|
|
464
|
-
//# sourceMappingURL=error-
|
|
471
|
+
export { errorToJSON as C, ClerkAPIError as E, ClerkError as S, parseErrors as T, EmailLinkError as _, isClerkRuntimeError as a, buildErrorThrower as b, isMetamaskError as c, isPasswordPwnedError as d, isReverificationCancelledError as f, ClerkRuntimeError as g, ClerkWebAuthnError as h, isClerkAPIResponseError as i, isNetworkError as l, isUserLockedError as m, is4xxError as n, isEmailLinkError as o, isUnauthorizedError as p, isCaptchaError as r, isKnownError as s, createClerkGlobalHookError as t, isPasswordCompromisedError as u, EmailLinkErrorCode as v, parseError as w, ClerkAPIResponseError as x, EmailLinkErrorCodeStatus as y };
|
|
472
|
+
//# sourceMappingURL=error-D6MGXq-n.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-t9UrtAmk.mjs","names":["packageName","customMessages","isClerkRuntimeError"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["type Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkApiErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIErrorInterface {\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkApiError instance.\n */\nexport const isClerkApiError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkApiResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkApiResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkApiResponseError()) { ... }\n */\nexport const isClerkApiResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkApiResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkApiResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"error-D6MGXq-n.mjs","names":["packageName","customMessages","isClerkRuntimeError"],"sources":["../../src/errors/createErrorTypeGuard.ts","../../src/errors/clerkApiError.ts","../../src/errors/parseError.ts","../../src/errors/clerkError.ts","../../src/errors/clerkApiResponseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/clerkRuntimeError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts","../../src/errors/globalHookError.ts"],"sourcesContent":["type Value = unknown;\n\n/**\n * Creates a type guard function for any error class.\n * The returned function can be called as a standalone function or as a method on an error object.\n *\n * @example\n * ```typescript\n * class MyError extends Error {}\n * const isMyError = createErrorTypeGuard(MyError);\n *\n * // As a standalone function\n * if (isMyError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isMyError()) { ... }\n * ```\n */\nexport function createErrorTypeGuard<T extends new (...args: any[]) => Value>(\n ErrorClass: T & { kind?: string },\n): {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n} {\n function typeGuard(this: Value, error?: Value): error is InstanceType<T> {\n const target = error ?? this;\n if (!target) {\n throw new TypeError(`${ErrorClass.kind || ErrorClass.name} type guard requires an error object`);\n }\n return target instanceof ErrorClass;\n }\n\n return typeGuard as {\n (error: Value): error is InstanceType<T>;\n (this: Value): this is InstanceType<T>;\n };\n}\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport type ClerkApiErrorMeta = Record<string, unknown>;\n\n/**\n * This error contains the specific error message, code, and any additional metadata that was returned by the Clerk API.\n */\nexport class ClerkAPIError<Meta extends ClerkApiErrorMeta = any> implements ClerkAPIErrorInterface {\n static kind = 'ClerkApiError';\n readonly code: string;\n readonly message: string;\n readonly longMessage: string | undefined;\n readonly meta: Meta;\n\n constructor(json: ClerkAPIErrorJSON) {\n const parsedError = {\n code: json.code,\n message: json.message,\n longMessage: json.long_message,\n meta: {\n paramName: json.meta?.param_name,\n sessionId: json.meta?.session_id,\n emailAddresses: json.meta?.email_addresses,\n identifiers: json.meta?.identifiers,\n zxcvbn: json.meta?.zxcvbn,\n plan: json.meta?.plan,\n isPlanUpgradePossible: json.meta?.is_plan_upgrade_possible,\n } as unknown as Meta,\n };\n this.code = parsedError.code;\n this.message = parsedError.message;\n this.longMessage = parsedError.longMessage;\n this.meta = parsedError.meta;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkApiError instance.\n */\nexport const isClerkApiError = createErrorTypeGuard(ClerkAPIError);\n","import type { ClerkAPIError as ClerkAPIErrorInterface, ClerkAPIErrorJSON } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\n\n/**\n * Parses an array of ClerkAPIErrorJSON objects into an array of ClerkAPIError objects.\n *\n * @internal\n */\nexport function parseErrors(data: ClerkAPIErrorJSON[] = []): ClerkAPIErrorInterface[] {\n return data.length > 0 ? data.map(e => new ClerkAPIError(e)) : [];\n}\n\n/**\n * Parses a ClerkAPIErrorJSON object into a ClerkAPIError object.\n *\n * @deprecated Use `ClerkAPIError` class instead\n *\n * @internal\n */\nexport function parseError(error: ClerkAPIErrorJSON): ClerkAPIErrorInterface {\n return new ClerkAPIError(error);\n}\n\n/**\n * Converts a ClerkAPIError object into a ClerkAPIErrorJSON object.\n *\n * @internal\n */\nexport function errorToJSON(error: ClerkAPIError | null): ClerkAPIErrorJSON {\n return {\n code: error?.code || '',\n message: error?.message || '',\n long_message: error?.longMessage,\n meta: {\n param_name: error?.meta?.paramName,\n session_id: error?.meta?.sessionId,\n email_addresses: error?.meta?.emailAddresses,\n identifiers: error?.meta?.identifiers,\n zxcvbn: error?.meta?.zxcvbn,\n plan: error?.meta?.plan,\n is_plan_upgrade_possible: error?.meta?.isPlanUpgradePossible,\n },\n };\n}\n","import { createErrorTypeGuard } from './createErrorTypeGuard';\n\nexport interface ClerkErrorParams {\n /**\n * A message that describes the error. This is typically intented to be showed to the developers.\n * It should not be shown to the user or parsed directly as the message contents are not guaranteed\n * to be stable - use the `code` property instead.\n */\n message: string;\n /**\n * A machine-stable code that identifies the error.\n */\n code: string;\n /**\n * A user-friendly message that describes the error and can be displayed to the user.\n * This message defaults to English but can be usually translated to the user's language\n * by matching the `code` property to a localized message.\n */\n longMessage?: string;\n /**\n * The cause of the error, typically an `Error` instance that was caught and wrapped by the Clerk error handler.\n */\n cause?: Error;\n /**\n * A URL to the documentation for the error.\n */\n docsUrl?: string;\n}\n\n/**\n * A temporary placeholder, this will eventually be replaced with a\n * build-time flag that will actually perform DCE.\n */\nconst __DEV__ = true;\n\nexport class ClerkError extends Error {\n static kind = 'ClerkError';\n readonly clerkError = true as const;\n readonly code: string;\n readonly longMessage: string | undefined;\n readonly docsUrl: string | undefined;\n readonly cause: Error | undefined;\n\n get name() {\n return this.constructor.name;\n }\n\n constructor(opts: ClerkErrorParams) {\n super(new.target.formatMessage(new.target.kind, opts.message, opts.code, opts.docsUrl), { cause: opts.cause });\n Object.setPrototypeOf(this, ClerkError.prototype);\n this.code = opts.code;\n this.docsUrl = opts.docsUrl;\n this.longMessage = opts.longMessage;\n this.cause = opts.cause;\n }\n\n public toString() {\n return `[${this.name}]\\nMessage:${this.message}`;\n }\n\n protected static formatMessage(name: string, msg: string, code: string, docsUrl: string | undefined) {\n // Keeping the Clerk prefix for backward compatibility\n // msg = `${name}: ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n // We can remove the Clerk prefix in the next major version\n const prefix = 'Clerk:';\n const regex = new RegExp(prefix.replace(' ', '\\\\s*'), 'i');\n msg = msg.replace(regex, '');\n msg = `${prefix} ${msg.trim()}\\n\\n(code=\"${code}\")\\n\\n`;\n if (__DEV__ && docsUrl) {\n msg += `\\n\\nDocs: ${docsUrl}`;\n }\n return msg;\n }\n}\n\n/**\n * Type guard to check if a value is a ClerkError instance.\n */\nexport function isClerkError(val: unknown): val is ClerkError {\n const typeguard = createErrorTypeGuard(ClerkError);\n // Ths is the base error so we're being more defensive about the type guard\n return typeguard(val) || (!!val && typeof val === 'object' && 'clerkError' in val && val.clerkError === true);\n}\n","import type { ClerkAPIErrorJSON, ClerkAPIResponseError as ClerkAPIResponseErrorInterface } from '../types';\nimport { ClerkAPIError } from './clerkApiError';\nimport type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ninterface ClerkAPIResponseOptions extends Omit<ClerkErrorParams, 'message' | 'code'> {\n data: ClerkAPIErrorJSON[];\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n}\n\nexport class ClerkAPIResponseError extends ClerkError implements ClerkAPIResponseErrorInterface {\n static kind = 'ClerkAPIResponseError';\n status: number;\n clerkTraceId?: string;\n retryAfter?: number;\n errors: ClerkAPIError[];\n\n constructor(message: string, options: ClerkAPIResponseOptions) {\n const { data: errorsJson, status, clerkTraceId, retryAfter } = options;\n super({ ...options, message, code: 'api_response_error' });\n Object.setPrototypeOf(this, ClerkAPIResponseError.prototype);\n this.status = status;\n this.clerkTraceId = clerkTraceId;\n this.retryAfter = retryAfter;\n this.errors = (errorsJson || []).map(e => new ClerkAPIError(e));\n }\n\n public toString() {\n let message = `[${this.name}]\\nMessage:${this.message}\\nStatus:${this.status}\\nSerialized errors: ${this.errors.map(\n e => JSON.stringify(e),\n )}`;\n\n if (this.clerkTraceId) {\n message += `\\nClerk Trace ID: ${this.clerkTraceId}`;\n }\n\n return message;\n }\n\n // Override formatMessage to keep it unformatted for backward compatibility\n protected static override formatMessage(name: string, msg: string, _: string, __: string | undefined) {\n return msg;\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkApiResponseError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkApiResponseError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkApiResponseError()) { ... }\n */\nexport const isClerkApiResponseError = createErrorTypeGuard(ClerkAPIResponseError);\n","const DefaultMessages = Object.freeze({\n InvalidProxyUrlErrorMessage: `The proxyUrl passed to Clerk is invalid. The expected value for proxyUrl is an absolute URL or a relative path with a leading '/'. (key={{url}})`,\n InvalidPublishableKeyErrorMessage: `The publishableKey passed to Clerk is invalid. You can get your Publishable key at https://dashboard.clerk.com/last-active?path=api-keys. (key={{key}})`,\n MissingPublishableKeyErrorMessage: `Missing publishableKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingSecretKeyErrorMessage: `Missing secretKey. You can get your key at https://dashboard.clerk.com/last-active?path=api-keys.`,\n MissingClerkProvider: `{{source}} can only be used within the <ClerkProvider /> component. Learn more: https://clerk.com/docs/components/clerk-provider`,\n});\n\ntype MessageKeys = keyof typeof DefaultMessages;\n\ntype Messages = Record<MessageKeys, string>;\n\ntype CustomMessages = Partial<Messages>;\n\nexport type ErrorThrowerOptions = {\n packageName: string;\n customMessages?: CustomMessages;\n};\n\nexport interface ErrorThrower {\n setPackageName(options: ErrorThrowerOptions): ErrorThrower;\n\n setMessages(options: ErrorThrowerOptions): ErrorThrower;\n\n throwInvalidPublishableKeyError(params: { key?: string }): never;\n\n throwInvalidProxyUrl(params: { url?: string }): never;\n\n throwMissingPublishableKeyError(): never;\n\n throwMissingSecretKeyError(): never;\n\n throwMissingClerkProviderError(params: { source?: string }): never;\n\n throw(message: string): never;\n}\n\n/**\n * Builds an error thrower.\n *\n * @internal\n */\nexport function buildErrorThrower({ packageName, customMessages }: ErrorThrowerOptions): ErrorThrower {\n let pkg = packageName;\n\n /**\n * Builds a message from a raw message and replacements.\n *\n * @internal\n */\n function buildMessage(rawMessage: string, replacements?: Record<string, string | number>) {\n if (!replacements) {\n return `${pkg}: ${rawMessage}`;\n }\n\n let msg = rawMessage;\n const matches = rawMessage.matchAll(/{{([a-zA-Z0-9-_]+)}}/g);\n\n for (const match of matches) {\n const replacement = (replacements[match[1]] || '').toString();\n msg = msg.replace(`{{${match[1]}}}`, replacement);\n }\n\n return `${pkg}: ${msg}`;\n }\n\n const messages = {\n ...DefaultMessages,\n ...customMessages,\n };\n\n return {\n setPackageName({ packageName }: ErrorThrowerOptions): ErrorThrower {\n if (typeof packageName === 'string') {\n pkg = packageName;\n }\n return this;\n },\n\n setMessages({ customMessages }: ErrorThrowerOptions): ErrorThrower {\n Object.assign(messages, customMessages || {});\n return this;\n },\n\n throwInvalidPublishableKeyError(params: { key?: string }): never {\n throw new Error(buildMessage(messages.InvalidPublishableKeyErrorMessage, params));\n },\n\n throwInvalidProxyUrl(params: { url?: string }): never {\n throw new Error(buildMessage(messages.InvalidProxyUrlErrorMessage, params));\n },\n\n throwMissingPublishableKeyError(): never {\n throw new Error(buildMessage(messages.MissingPublishableKeyErrorMessage));\n },\n\n throwMissingSecretKeyError(): never {\n throw new Error(buildMessage(messages.MissingSecretKeyErrorMessage));\n },\n\n throwMissingClerkProviderError(params: { source?: string }): never {\n throw new Error(buildMessage(messages.MissingClerkProvider, params));\n },\n\n throw(message: string): never {\n throw new Error(buildMessage(message));\n },\n };\n}\n","export class EmailLinkError extends Error {\n code: string;\n\n constructor(code: string) {\n super(code);\n this.code = code;\n this.name = 'EmailLinkError' as const;\n Object.setPrototypeOf(this, EmailLinkError.prototype);\n }\n}\n\n/**\n * @deprecated Use `EmailLinkErrorCodeStatus` instead.\n *\n * @internal\n */\nexport const EmailLinkErrorCode = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n};\n\nexport const EmailLinkErrorCodeStatus = {\n Expired: 'expired',\n Failed: 'failed',\n ClientMismatch: 'client_mismatch',\n} as const;\n","import type { ClerkErrorParams } from './clerkError';\nimport { ClerkError } from './clerkError';\nimport { createErrorTypeGuard } from './createErrorTypeGuard';\n\ntype ClerkRuntimeErrorOptions = Omit<ClerkErrorParams, 'message'>;\n\n/**\n * Custom error class for representing Clerk runtime errors.\n *\n * @class ClerkRuntimeError\n *\n * @example\n * throw new ClerkRuntimeError('An error occurred', { code: 'password_invalid' });\n */\nexport class ClerkRuntimeError extends ClerkError {\n static kind = 'ClerkRuntimeError';\n /**\n * @deprecated Use `clerkError` property instead. This property is maintained for backward compatibility.\n */\n readonly clerkRuntimeError = true as const;\n\n constructor(message: string, options: ClerkRuntimeErrorOptions) {\n super({ ...options, message });\n Object.setPrototypeOf(this, ClerkRuntimeError.prototype);\n }\n}\n\n/**\n * Type guard to check if an error is a ClerkRuntimeError.\n * Can be called as a standalone function or as a method on an error object.\n *\n * @example\n * // As a standalone function\n * if (isClerkRuntimeError(error)) { ... }\n *\n * // As a method (when attached to error object)\n * if (error.isClerkRuntimeError()) { ... }\n */\nexport const isClerkRuntimeError = createErrorTypeGuard(ClerkRuntimeError);\n","import { ClerkRuntimeError } from './clerkRuntimeError';\n\ntype ClerkWebAuthnErrorCode =\n // Generic\n | 'passkey_not_supported'\n | 'passkey_pa_not_supported'\n | 'passkey_invalid_rpID_or_domain'\n | 'passkey_already_exists'\n | 'passkey_operation_aborted'\n // Retrieval\n | 'passkey_retrieval_cancelled'\n | 'passkey_retrieval_failed'\n // Registration\n | 'passkey_registration_cancelled'\n | 'passkey_registration_failed';\n\nexport class ClerkWebAuthnError extends ClerkRuntimeError {\n /**\n * A unique code identifying the error, can be used for localization.\n */\n code: ClerkWebAuthnErrorCode;\n\n constructor(message: string, { code }: { code: ClerkWebAuthnErrorCode }) {\n super(message, { code });\n this.code = code;\n }\n}\n","import type { ClerkAPIResponseError } from './clerkApiResponseError';\nimport type { ClerkRuntimeError } from './clerkRuntimeError';\nimport type { EmailLinkError } from './emailLinkError';\nimport type { MetamaskError } from './metamaskError';\n\n/**\n * Checks if the provided error object is an unauthorized error.\n *\n * @internal\n *\n * @deprecated This is no longer used, and will be removed in the next major version.\n */\nexport function isUnauthorizedError(e: any): boolean {\n const status = e?.status;\n const code = e?.errors?.[0]?.code;\n return code === 'authentication_invalid' && status === 401;\n}\n\n/**\n * Checks if the provided error object is a captcha error.\n *\n * @internal\n */\nexport function isCaptchaError(e: ClerkAPIResponseError): boolean {\n return ['captcha_invalid', 'captcha_not_enabled', 'captcha_missing_token'].includes(e.errors[0].code);\n}\n\n/**\n * Checks if the provided error is a 4xx error.\n *\n * @internal\n */\nexport function is4xxError(e: any): boolean {\n const status = e?.status;\n return !!status && status >= 400 && status < 500;\n}\n\n/**\n * Checks if the provided error is a network error.\n *\n * @internal\n */\nexport function isNetworkError(e: any): boolean {\n // TODO: revise during error handling epic\n const message = (`${e.message}${e.name}` || '').toLowerCase().replace(/\\s+/g, '');\n return message.includes('networkerror');\n}\n\n/**\n * Checks if the provided error is either a ClerkAPIResponseError, a ClerkRuntimeError, or a MetamaskError.\n *\n * @internal\n */\nexport function isKnownError(error: any): error is ClerkAPIResponseError | ClerkRuntimeError | MetamaskError {\n return isClerkAPIResponseError(error) || isMetamaskError(error) || isClerkRuntimeError(error);\n}\n\n/**\n * Checks if the provided error is a ClerkAPIResponseError.\n *\n * @internal\n */\nexport function isClerkAPIResponseError(err: any): err is ClerkAPIResponseError {\n return err && 'clerkError' in err;\n}\n\n/**\n * Checks if the provided error object is an instance of ClerkRuntimeError.\n *\n * @param err - The error object to check.\n * @returns True if the error is a ClerkRuntimeError, false otherwise.\n *\n * @example\n * const error = new ClerkRuntimeError('An error occurred');\n * if (isClerkRuntimeError(error)) {\n * // Handle ClerkRuntimeError\n * console.error('ClerkRuntimeError:', error.message);\n * } else {\n * // Handle other errors\n * console.error('Other error:', error.message);\n * }\n */\nexport function isClerkRuntimeError(err: any): err is ClerkRuntimeError {\n return 'clerkRuntimeError' in err;\n}\n\n/**\n * Checks if the provided error is a Clerk runtime error indicating a reverification was cancelled.\n *\n * @internal\n */\nexport function isReverificationCancelledError(err: any) {\n return isClerkRuntimeError(err) && err.code === 'reverification_cancelled';\n}\n\n/**\n * Checks if the provided error is a Metamask error.\n *\n * @internal\n */\nexport function isMetamaskError(err: any): err is MetamaskError {\n return 'code' in err && [4001, 32602, 32603].includes(err.code) && 'message' in err;\n}\n\n/**\n * Checks if the provided error is clerk api response error indicating a user is locked.\n *\n * @internal\n */\nexport function isUserLockedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'user_locked';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was pwned.\n *\n * @internal\n */\nexport function isPasswordPwnedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_pwned';\n}\n\n/**\n * Checks if the provided error is a clerk api response error indicating a password was compromised.\n *\n * @internal\n */\nexport function isPasswordCompromisedError(err: any) {\n return isClerkAPIResponseError(err) && err.errors?.[0]?.code === 'form_password_compromised';\n}\n\n/**\n * Checks if the provided error is an EmailLinkError.\n *\n * @internal\n */\nexport function isEmailLinkError(err: Error): err is EmailLinkError {\n return err.name === 'EmailLinkError';\n}\n","import { isClerkApiResponseError } from './clerkApiResponseError';\nimport type { ClerkError } from './clerkError';\nimport { isClerkRuntimeError } from './clerkRuntimeError';\n\n/**\n * Creates a ClerkGlobalHookError object from a ClerkError instance.\n * It's a wrapper for all the different instances of Clerk errors that can\n * be returned when using Clerk hooks.\n */\nexport function createClerkGlobalHookError(error: ClerkError) {\n const predicates = {\n isClerkApiResponseError,\n isClerkRuntimeError,\n } as const;\n\n for (const [name, fn] of Object.entries(predicates)) {\n Object.assign(error, { [name]: fn });\n }\n\n return error as ClerkError & typeof predicates;\n}\n\nexport type ClerkGlobalHookError = ReturnType<typeof createClerkGlobalHookError>;\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { Mf as ClerkAPIResponseError, Pf as ClerkAPIError, cl as ClerkAPIError$1, jf as ClerkRuntimeError, ll as ClerkAPIErrorJSON } from "./index-ChHWjn_I.mjs";
|
|
2
2
|
|
|
3
3
|
//#region src/errors/parseError.d.ts
|
|
4
4
|
|
|
@@ -186,6 +186,12 @@ declare function isUserLockedError(err: any): boolean;
|
|
|
186
186
|
* @internal
|
|
187
187
|
*/
|
|
188
188
|
declare function isPasswordPwnedError(err: any): boolean;
|
|
189
|
+
/**
|
|
190
|
+
* Checks if the provided error is a clerk api response error indicating a password was compromised.
|
|
191
|
+
*
|
|
192
|
+
* @internal
|
|
193
|
+
*/
|
|
194
|
+
declare function isPasswordCompromisedError(err: any): boolean;
|
|
189
195
|
/**
|
|
190
196
|
* Checks if the provided error is an EmailLinkError.
|
|
191
197
|
*
|
|
@@ -193,5 +199,5 @@ declare function isPasswordPwnedError(err: any): boolean;
|
|
|
193
199
|
*/
|
|
194
200
|
declare function isEmailLinkError(err: Error): err is EmailLinkError;
|
|
195
201
|
//#endregion
|
|
196
|
-
export {
|
|
197
|
-
//# sourceMappingURL=error-
|
|
202
|
+
export { parseError as C, errorToJSON as S, EmailLinkErrorCode as _, isEmailLinkError as a, ErrorThrowerOptions as b, isNetworkError as c, isReverificationCancelledError as d, isUnauthorizedError as f, EmailLinkError as g, MetamaskError as h, isClerkRuntimeError as i, isPasswordCompromisedError as l, ClerkWebAuthnError as m, isCaptchaError as n, isKnownError as o, isUserLockedError as p, isClerkAPIResponseError as r, isMetamaskError as s, is4xxError as t, isPasswordPwnedError as u, EmailLinkErrorCodeStatus as v, parseErrors as w, buildErrorThrower as x, ErrorThrower as y };
|
|
203
|
+
//# sourceMappingURL=error-KRW-ECGa.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-
|
|
1
|
+
{"version":3,"file":"error-KRW-ECGa.d.mts","names":[],"sources":["../../src/errors/parseError.ts","../../src/errors/errorThrower.ts","../../src/errors/emailLinkError.ts","../../src/errors/metamaskError.ts","../../src/errors/webAuthNError.ts","../../src/errors/helpers.ts"],"sourcesContent":[],"mappings":"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"}
|