@clerk/shared
Version:
Internal package utils used by the Clerk SDKs
1 lines • 2.89 kB
Source Map (JSON)
{"version":3,"file":"completeSignUpFlow.mjs","names":[],"sources":["../../../src/internal/clerk-js/completeSignUpFlow.ts"],"sourcesContent":["import type { SignUpResource } from '../../types';\nimport { forwardClerkQueryParams } from './queryParams';\n\ntype CompleteSignUpFlowProps = {\n signUp: SignUpResource;\n verifyEmailPath?: string;\n verifyPhonePath?: string;\n protectCheckPath?: string;\n continuePath?: string;\n navigate: (to: string, options?: { searchParams?: URLSearchParams }) => Promise<unknown>;\n handleComplete?: () => Promise<void>;\n redirectUrl?: string;\n redirectUrlComplete?: string;\n oidcPrompt?: string;\n};\n\nexport const completeSignUpFlow = ({\n signUp,\n verifyEmailPath,\n verifyPhonePath,\n protectCheckPath,\n continuePath,\n navigate,\n handleComplete,\n redirectUrl = '',\n redirectUrlComplete = '',\n oidcPrompt,\n}: CompleteSignUpFlowProps): Promise<unknown> | undefined => {\n if (signUp.status === 'complete') {\n return handleComplete && handleComplete();\n } else if (signUp.status === 'missing_requirements') {\n if (signUp.missingFields.some(mf => mf === 'enterprise_sso')) {\n return signUp.authenticateWithRedirect({\n strategy: 'enterprise_sso',\n redirectUrl,\n redirectUrlComplete,\n continueSignUp: true,\n oidcPrompt,\n });\n }\n\n const params = forwardClerkQueryParams();\n\n // The protect_check field is the authoritative gating signal. Sign-up also surfaces it\n // via a missing_fields entry; treat either as equivalent.\n const isProtectGated = !!signUp.protectCheck || signUp.missingFields.some(mf => mf === 'protect_check');\n if (isProtectGated && protectCheckPath) {\n return navigate(protectCheckPath, { searchParams: params });\n }\n\n if (signUp.unverifiedFields?.includes('email_address') && verifyEmailPath) {\n return navigate(verifyEmailPath, { searchParams: params });\n }\n if (signUp.unverifiedFields?.includes('phone_number') && verifyPhonePath) {\n return navigate(verifyPhonePath, { searchParams: params });\n }\n\n if (continuePath) {\n return navigate(continuePath, { searchParams: params });\n }\n }\n return;\n};\n"],"mappings":";;;AAgBA,MAAa,sBAAsB,EACjC,QACA,iBACA,iBACA,kBACA,cACA,UACA,gBACA,cAAc,IACd,sBAAsB,IACtB,iBAC2D;CAC3D,IAAI,OAAO,WAAW,YACpB,OAAO,kBAAkB,eAAe;MACnC,IAAI,OAAO,WAAW,wBAAwB;EACnD,IAAI,OAAO,cAAc,MAAK,OAAM,OAAO,gBAAgB,GACzD,OAAO,OAAO,yBAAyB;GACrC,UAAU;GACV;GACA;GACA,gBAAgB;GAChB;EACF,CAAC;EAGH,MAAM,SAAS,wBAAwB;EAKvC,KADuB,CAAC,CAAC,OAAO,gBAAgB,OAAO,cAAc,MAAK,OAAM,OAAO,eAAe,MAChF,kBACpB,OAAO,SAAS,kBAAkB,EAAE,cAAc,OAAO,CAAC;EAG5D,IAAI,OAAO,kBAAkB,SAAS,eAAe,KAAK,iBACxD,OAAO,SAAS,iBAAiB,EAAE,cAAc,OAAO,CAAC;EAE3D,IAAI,OAAO,kBAAkB,SAAS,cAAc,KAAK,iBACvD,OAAO,SAAS,iBAAiB,EAAE,cAAc,OAAO,CAAC;EAG3D,IAAI,cACF,OAAO,SAAS,cAAc,EAAE,cAAc,OAAO,CAAC;CAE1D;AAEF"}