(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[382],{28533:(e,t,r)=>{"use strict";r.r(t),r.d(t,{default:()=>_});var a=r(95155),o=r(67734);function _(e){let{children:t}=e;return(0,a.jsx)(o.sm,{initialFlags:o.of,children:t})}},43610:(e,t,r)=>{"use strict";r.d(t,{T:()=>a});var a=function(e){return e.EMAIL_PASSWORD_AUTH="email_password_auth",e.OTP_AUTH="otp_auth",e.ADMIN_EMAIL_AUTH="admin_email_auth",e.GOOGLE_AUTH="google_auth",e.FORCE_PHONE_MIGRATION="force_phone_migration",e.OTP_RATE_LIMITING="otp_rate_limiting",e.SHOW_AUTH_METHOD_SWITCH="show_auth_method_switch",e.AUTO_SUGGEST_PHONE="auto_suggest_phone",e.SHOW_EMAIL_DEPRECATION_WARNING="show_email_deprecation_warning",e.ALLOW_EMAIL_FALLBACK="allow_email_fallback",e}({})},44876:(e,t,r)=>{"use strict";r.d(t,{FeatureFlagProvider:()=>_,useFeatureFlags:()=>u});var a=r(12115);let o=a.createContext(void 0);function _(e){let{children:t,initialFlags:r}=e,[_,u]=a.useState(r),[s,n]=a.useState(!0),T=a.useCallback(async()=>{try{n(!0);let e=await fetch("/api/feature-flags",{cache:"no-store",headers:{"Cache-Control":"no-cache, no-store, must-revalidate"}});if(!e.ok)throw Error("API returned ".concat(e.status));let t=await e.json();t.success&&t.data&&u(e=>{let r={...e};return Object.entries(t.data).forEach(e=>{let[t,a]=e;t.startsWith("is")||(r[t]=a)}),r})}catch(e){console.error("Failed to refresh feature flags:",e)}finally{n(!1)}},[]);a.useEffect(()=>{T()},[T]);let A=a.useCallback(e=>!!_[e],[_]),l=a.useCallback(e=>_[e],[_]),i=a.useMemo(()=>({flags:_,isEnabled:A,getValue:l,isLoading:s}),[_,A,l,s]);return a.createElement(o.Provider,{value:i},t)}function u(){let e=a.useContext(o);if(!e)throw Error("useFeatureFlags must be used within FeatureFlagProvider");return e}},52742:(e,t,r)=>{Promise.resolve().then(r.bind(r,28533))},67734:(e,t,r)=>{"use strict";r.d(t,{sm:()=>s.FeatureFlagProvider,of:()=>u,jA:()=>n.useEmailPasswordAuth,Ps:()=>n.useOTPAuth});var a=r(43610),o=r(95704);let _={[a.T.EMAIL_PASSWORD_AUTH]:!1,[a.T.OTP_AUTH]:!0,[a.T.ADMIN_EMAIL_AUTH]:!0,[a.T.GOOGLE_AUTH]:!1,[a.T.FORCE_PHONE_MIGRATION]:!1,[a.T.OTP_RATE_LIMITING]:!0,[a.T.SHOW_AUTH_METHOD_SWITCH]:!1,[a.T.AUTO_SUGGEST_PHONE]:!1,[a.T.SHOW_EMAIL_DEPRECATION_WARNING]:!1,[a.T.ALLOW_EMAIL_FALLBACK]:!1},u=function(){let e={};for(let[t,r]of Object.entries(_))e[t]=function(e,t){let r=e.toUpperCase(),a="FEATURE_".concat(r);"OTP_AUTH"===r&&(a="NEXT_PUBLIC_FEATURE_OTP_AUTH");let _=o.env[a];if(void 0===_)return t;if("boolean"==typeof t)return"true"===_||"1"===_;if("number"==typeof t){let e=parseFloat(_);return isNaN(e)?t:e}return _}(t,r);let t=e[a.T.OTP_AUTH];return e[a.T.EMAIL_PASSWORD_AUTH]=!t,function(e){let t=e[a.T.EMAIL_PASSWORD_AUTH],r=e[a.T.OTP_AUTH],o=e[a.T.ADMIN_EMAIL_AUTH];t||r||(console.error("❌ CRITICAL: No authentication method for customers enabled!"),console.error("❌ Enabling OTP_AUTH as fallback..."),e[a.T.OTP_AUTH]=!0,e[a.T.EMAIL_PASSWORD_AUTH]=!1),o||r||(console.error("❌ CRITICAL: No authentication method for admin enabled!"),console.error("❌ Enabling ADMIN_EMAIL_AUTH as fallback..."),e[a.T.ADMIN_EMAIL_AUTH]=!0),e[a.T.FORCE_PHONE_MIGRATION]&&!r&&(console.error("❌ FORCE_PHONE_MIGRATION requires OTP_AUTH to be enabled"),e[a.T.FORCE_PHONE_MIGRATION]=!1)}(e),e}();var s=r(44876),n=r(77339)},77339:(e,t,r)=>{"use strict";r.d(t,{useAuthMethodsConfig:()=>T,useEmailPasswordAuth:()=>s,useFeature:()=>_,useFeatureValue:()=>u,useOTPAuth:()=>n});var a=r(44876),o=r(43610);function _(e){let{isEnabled:t}=(0,a.useFeatureFlags)();return t(e)}function u(e){let{getValue:t}=(0,a.useFeatureFlags)();return t(e)}function s(){return _(o.T.EMAIL_PASSWORD_AUTH)}function n(){return _(o.T.OTP_AUTH)}function T(){let e=_(o.T.EMAIL_PASSWORD_AUTH),t=_(o.T.OTP_AUTH);return{isEmailPasswordEnabled:e,isOTPEnabled:t,shouldShowEmailAuth:e,shouldShowPhoneAuth:t,shouldShowAuthSwitch:!1}}}},e=>{e.O(0,[8441,1255,7358],()=>e(e.s=52742)),_N_E=e.O()}]);