{"version":3,"file":"ReZero_UserDataProvider.CEFf_CCs.mjs","names":["createClient","_Fragment"],"sources":["https:/framerusercontent.com/modules/BRuVAbxUUCs6dSR82WEI/5iBTePAC24xCvHM3Ni8P/ReZero_UserDataProvider.js"],"sourcesContent":["import{jsx as _jsx,Fragment as _Fragment}from\"react/jsx-runtime\";import{useEffect}from\"react\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{createClient}from\"https://esm.sh/@supabase/supabase-js@2\";const emptyUserData={isLoading:false,isAuthenticated:false,isLoggedIn:false,isProfileComplete:false,needsProfileCompletion:false,provider:\"\",name:\"\",email:\"\",phone:\"\",birthdate:\"\",gender:\"\",interests:[]};function publishUserData(userData){window.__rzUserData=userData;try{if(userData.isAuthenticated||userData.isLoggedIn){window.sessionStorage.setItem(\"rzUserData\",JSON.stringify(userData));}else{window.sessionStorage.removeItem(\"rzUserData\");}}catch(error){console.warn(\"[RZ] user data storage sync failed:\",error);}window.dispatchEvent(new CustomEvent(\"rzUserDataLoaded\",{detail:userData}));}function getNormalizedRedirectTarget(link){const trimmedLink=link.trim();if(!trimmedLink)return null;try{const targetUrl=new URL(trimmedLink,window.location.origin);return{href:targetUrl.origin===window.location.origin?`${targetUrl.pathname}${targetUrl.search}${targetUrl.hash}`:targetUrl.href,pathname:targetUrl.pathname,comparable:targetUrl.origin===window.location.origin?`${targetUrl.pathname}${targetUrl.search}${targetUrl.hash}`:targetUrl.href};}catch(error){console.error(\"[RZ] invalid profileCompletePath:\",trimmedLink,error);return null;}}function normalizePhone(value){if(value&&typeof value===\"object\"){return`${value.countryCode??\"\"} ${value.phone??\"\"}`.trim();}return value??\"\";}const requiredProfileFieldList=[\"name\",\"phone\",\"birthdate\"];function getRequiredFields(){return requiredProfileFieldList;}function getPathList(value){return(value||\"\").split(\",\").map(path=>path.trim()).filter(Boolean);}function isCurrentPathIncluded(paths){if(typeof window===\"undefined\")return false;const currentPath=window.location.pathname;return paths.some(path=>{const cleanPath=path.startsWith(\"/\")?path:`/${path}`;return currentPath===cleanPath||currentPath.startsWith(`${cleanPath}/`);});}function getEventElement(target){if(target instanceof Element)return target;if(target instanceof Text)return target.parentElement;return null;}function normalizeText(value){return(value||\"\").replace(/\\s+/g,\" \").trim().toLowerCase();}function looksLikeLogout(text){return text.includes(\"로그아웃\")||text.includes(\"logout\");}function isLogoutTarget(target){const element=getEventElement(target);if(!element)return false;const clickable=element.closest(\"button, a, [role='button'], [data-framer-name]\");if(!clickable)return false;// 라벨성 속성(짧은 이름)은 포함 매칭으로 아이콘 버튼까지 잡는다.\nconst labels=[clickable.getAttribute?.(\"aria-label\"),clickable.getAttribute?.(\"title\"),clickable.getAttribute?.(\"data-framer-name\")].map(normalizeText).filter(Boolean);// 텍스트는 \"엄격하게\" 매칭한다.\n// GNB 메뉴처럼 여러 항목(로그아웃 포함)이 합쳐진 큰 컨테이너의 텍스트가\n// 우연히 \"로그아웃\"을 포함하더라도 로그아웃 클릭으로 오판하지 않는다.\nconst ownText=normalizeText(clickable.textContent);const matchedByLabel=labels.some(looksLikeLogout);const matchedByText=ownText===\"로그아웃\"||ownText===\"logout\"||looksLikeLogout(ownText)&&ownText.length<=10;const matched=matchedByLabel||matchedByText;console.log(\"[RZ][LOGOUT?]\",{matched,matchedByLabel,matchedByText,labels,ownText:ownText.slice(0,60),ownTextLength:ownText.length,clickableTag:clickable.tagName,framerName:clickable.getAttribute?.(\"data-framer-name\")});return matched;}function wait(ms){return new Promise(resolve=>setTimeout(resolve,ms));}function getAuthProvider(authUser){return authUser?.app_metadata?.provider||authUser?.identities?.find(identity=>identity?.provider)?.provider||\"\";}function isAnonymousAuthUser(authUser){return Boolean(authUser?.is_anonymous||authUser?.app_metadata?.provider===\"anonymous\"||authUser?.identities?.some(identity=>identity?.provider===\"anonymous\"));}function isOAuthProvider(provider){return Boolean(provider&&provider!==\"email\");}function hasValue(value){if(value===undefined||value===null)return false;if(typeof value===\"string\")return value.trim().length>0;if(Array.isArray(value))return value.length>0;if(typeof value===\"object\")return Object.keys(value).length>0;return true;}function firstValue(...values){return values.find(value=>hasValue(value))??\"\";}function getProfileValues(data,authUser,phoneValue){const metadata=authUser?.user_metadata??{};return{name:firstValue(data?.name,data?.full_name,metadata.full_name,metadata.name),email:firstValue(data?.email,authUser?.email,metadata.email),phone:phoneValue,birthdate:firstValue(data?.birthdate,data?.birthDate,data?.birth_date,data?.birthday,data?.dateOfBirth),gender:firstValue(data?.gender,data?.sex),interests:data?.interests??[]};}function getMissingFields(profileValues,requiredFields){return requiredFields.filter(field=>!hasValue(profileValues?.[field]));}function clearSupabaseAuthStorage(projectId){if(typeof window===\"undefined\")return;const exactKey=`sb-${projectId}-auth-token`;try{window.localStorage.removeItem(\"rzUserData\");window.sessionStorage.removeItem(\"rzUserData\");window.localStorage.removeItem(exactKey);window.sessionStorage.removeItem(exactKey);for(let index=window.localStorage.length-1;index>=0;index-=1){const key=window.localStorage.key(index);if(key?.startsWith(\"sb-\")&&key.includes(\"auth-token\")){window.localStorage.removeItem(key);}}for(let index=window.sessionStorage.length-1;index>=0;index-=1){const key=window.sessionStorage.key(index);if(key?.startsWith(\"sb-\")&&key.includes(\"auth-token\")){window.sessionStorage.removeItem(key);}}}catch(error){console.warn(\"[RZ] auth storage cleanup failed:\",error);}}/** @framerDisableUnlink */export default function ReZero_UserDataProvider(props){const{supabaseProjectId,supabaseAnonKey,tableName,profileCompletePath,redirectIncompleteProfiles,authRequiredPaths,signedOutRedirectPath}=props;useEffect(()=>{if(!supabaseProjectId||!supabaseAnonKey){publishUserData(emptyUserData);return;}const supabaseUrl=`https://${supabaseProjectId}.supabase.co`;const supabase=createClient(supabaseUrl,supabaseAnonKey);window.__rzSupabase=supabase;let isMounted=true;let redirectHandled=false;let signedOutRedirectHandled=false;async function notifyAccountLinked(session){const isOAuthCallback=window.location.hash.includes(\"access_token\")||window.location.search.includes(\"code=\");if(!isOAuthCallback)return;const identities=session.user.identities??[];const hasEmailIdentity=identities.some(i=>i.provider===\"email\");const hasOAuthIdentity=identities.some(i=>i.provider!==\"email\");if(hasEmailIdentity&&hasOAuthIdentity){alert(\"기존 이메일 계정과 소셜 계정이 연결됐습니다.\\n앞으로 두 방법 모두로 로그인하실 수 있어요.\");}}function redirectToProfileCompleteIfNeeded(shouldRedirect){if(!shouldRedirect||redirectHandled)return;const completionPath=profileCompletePath||\"/signup-social\";const redirectTarget=getNormalizedRedirectTarget(completionPath);if(!redirectTarget)return;const isAlreadyOnCompletionPage=window.location.pathname===redirectTarget.pathname;if(isAlreadyOnCompletionPage)return;redirectHandled=true;console.log(\"[RZ] redirectToProfileComplete\",redirectTarget.href);window.location.replace(redirectTarget.href);}function redirectSignedOutFromProtectedPage(){console.log(\"[RZ] redirectSignedOut() called\",{signedOutRedirectHandled,pathname:window.location.pathname,stack:new Error().stack});if(signedOutRedirectHandled)return;const protectedPaths=getPathList(authRequiredPaths||\"/mypage\");if(!isCurrentPathIncluded(protectedPaths))return;const redirectTarget=getNormalizedRedirectTarget(signedOutRedirectPath||\"/\");if(!redirectTarget)return;const isAlreadyOnTarget=window.location.pathname===redirectTarget.pathname;if(isAlreadyOnTarget)return;signedOutRedirectHandled=true;console.log(\"[RZ] redirectSignedOut -> REPLACE\",redirectTarget.href);window.location.replace(redirectTarget.href);}async function guardProtectedPageAccess(){const protectedPaths=getPathList(authRequiredPaths||\"/mypage\");if(!isCurrentPathIncluded(protectedPaths))return;const liveUserData=window.__rzUserData;if(liveUserData&&liveUserData.isAuthenticated===false&&liveUserData.isLoggedIn===false){redirectSignedOutFromProtectedPage();return;}const{data}=await supabase.auth.getSession().catch(()=>({data:{session:null}}));if(!data?.session||isAnonymousAuthUser(data.session.user)){console.log(\"[RZ] guardProtectedPageAccess -> signedOut redirect\",{hasSession:!!data?.session,anonymous:data?.session?isAnonymousAuthUser(data.session.user):null});redirectSignedOutFromProtectedPage();}}function handleProtectedLogoutClick(event){const protectedPaths=getPathList(authRequiredPaths||\"/mypage\");if(!isCurrentPathIncluded(protectedPaths))return;const logout=isLogoutTarget(event.target);console.log(\"[RZ] protected click\",{type:event.type,logout,target:event.target?.tagName});if(!logout)return;console.log(\"[RZ] LOGOUT detected -> scheduling signedOut redirect\");window.setTimeout(redirectSignedOutFromProtectedPage,120);window.setTimeout(redirectSignedOutFromProtectedPage,600);}async function fetchRegistrationWithRetry(table,userId){let lastResult={data:null,error:null};for(let attempt=0;attempt<3;attempt+=1){lastResult=await supabase.from(table).select(\"*\").eq(\"user_id\",userId).maybeSingle();if(lastResult.error||lastResult.data)return lastResult;if(attempt<2)await wait(350);}return lastResult;}async function fetchUserDataWithSession(session){const table=tableName||\"registrations\";const requiredFields=getRequiredFields();const{data:authUserData,error:authUserError}=await supabase.auth.getUser();const authUser=authUserData?.user;if(authUserError||!authUser){console.warn(\"[RZ] auth user missing. Signing out.\",authUserError?.message);await supabase.auth.signOut({scope:\"local\"}).catch(error=>{console.warn(\"[RZ] local signOut failed:\",error?.message??error);});clearSupabaseAuthStorage(supabaseProjectId);if(isMounted)publishUserData(emptyUserData);redirectSignedOutFromProtectedPage();return;}const provider=getAuthProvider(authUser);if(isAnonymousAuthUser(authUser)){if(!isMounted)return;publishUserData({...emptyUserData,provider:\"anonymous\"});redirectSignedOutFromProtectedPage();return;}const{data,error}=await fetchRegistrationWithRetry(table,authUser.id);const phoneValue=normalizePhone(data?.phone);const profileValues=getProfileValues(data,authUser,phoneValue);if(error){console.error(\"registrations select error:\",error.message);if(!isMounted)return;publishUserData({...emptyUserData,isAuthenticated:true,provider,name:profileValues.name,email:profileValues.email,needsProfileCompletion:true});return;}const completionValues={name:profileValues.name,phone:phoneValue,birthdate:profileValues.birthdate};const missingFields=getMissingFields(completionValues,requiredFields);const complete=missingFields.length===0;const isOAuthUser=isOAuthProvider(provider);const loggedIn=complete||!isOAuthUser;const shouldCompleteProfile=Boolean(session?.user)&&!complete&&isOAuthUser&&redirectIncompleteProfiles!==false;if(!isMounted)return;publishUserData({isLoading:false,isAuthenticated:true,isLoggedIn:loggedIn,isProfileComplete:complete,needsProfileCompletion:!complete&&isOAuthUser,provider,name:profileValues.name,email:profileValues.email,phone:profileValues.phone,birthdate:profileValues.birthdate,gender:profileValues.gender,interests:profileValues.interests});redirectToProfileCompleteIfNeeded(shouldCompleteProfile);}const{data:{subscription}}=supabase.auth.onAuthStateChange((_event,session)=>{if(!isMounted)return;if(session){notifyAccountLinked(session);fetchUserDataWithSession(session);}else{publishUserData(emptyUserData);redirectSignedOutFromProtectedPage();}});window.addEventListener(\"click\",handleProtectedLogoutClick,true);const protectedGuardTimer=window.setInterval(guardProtectedPageAccess,1e3);window.setTimeout(guardProtectedPageAccess,700);return()=>{isMounted=false;window.removeEventListener(\"click\",handleProtectedLogoutClick,true);window.clearInterval(protectedGuardTimer);subscription.unsubscribe();};},[supabaseProjectId,supabaseAnonKey,tableName,profileCompletePath,redirectIncompleteProfiles,authRequiredPaths,signedOutRedirectPath]);if(RenderTarget.current()===RenderTarget.canvas){return /*#__PURE__*/_jsx(\"div\",{style:{width:\"100%\",height:\"100%\",display:\"flex\",justifyContent:\"center\",alignItems:\"center\",backgroundColor:\"rgba(59, 130, 246, 0.08)\",color:\"#3b82f6\",fontSize:\"11px\",fontWeight:\"bold\",border:\"1px dashed #3b82f6\",borderRadius:\"8px\",whiteSpace:\"nowrap\",minWidth:\"max-content\",padding:\"0 12px\"},children:\"관제탑 (Provider)\"});}return /*#__PURE__*/_jsx(_Fragment,{});}ReZero_UserDataProvider.defaultProps={tableName:\"registrations\",profileCompletePath:\"/signup-social\",profileCompleteMessage:\"회원가입이 아직 완료되지 않았어요.\\n연락처를 등록하셔야 모든 서비스를 이용하실 수 있어요.\",requiredProfileFields:\"name,phone,birthdate\",redirectIncompleteProfiles:true,authRequiredPaths:\"/mypage\",signedOutRedirectPath:\"/\"};addPropertyControls(ReZero_UserDataProvider,{supabaseProjectId:{type:ControlType.String,title:\"Project ID\",placeholder:\"wnpsddhsrocxywfbyruo\"},supabaseAnonKey:{type:ControlType.String,title:\"Anon Key\"},tableName:{type:ControlType.String,title:\"테이블 이름\",defaultValue:\"registrations\"},profileCompletePath:{type:ControlType.Link,title:\"프로필 완성 페이지\",defaultValue:\"/signup-social\",description:\"소셜 로그인 후 필수 정보 미등록 유저를 이 페이지로 이동시킵니다.\"},profileCompleteMessage:{type:ControlType.String,title:\"알림 메시지\",defaultValue:\"회원가입이 아직 완료되지 않았어요.\\n연락처를 등록하셔야 모든 서비스를 이용하실 수 있어요.\"},requiredProfileFields:{type:ControlType.String,title:\"필수 필드\",defaultValue:\"name,phone,birthdate\",description:\"현재 완료 기준은 name, phone, birthdate 세 개로 고정되어 있습니다.\"},redirectIncompleteProfiles:{type:ControlType.Boolean,title:\"미완성 이동\",enabledTitle:\"ON\",disabledTitle:\"OFF\",defaultValue:true},authRequiredPaths:{type:ControlType.String,title:\"로그인 필요 경로\",defaultValue:\"/mypage\",description:\"쉼표로 여러 경로를 입력할 수 있습니다.\"},signedOutRedirectPath:{type:ControlType.Link,title:\"로그아웃 이동\",defaultValue:\"/\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"ReZero_UserDataProvider\",\"slots\":[],\"annotations\":{\"framerDisableUnlink\":\"\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./ReZero_UserDataProvider.map"],"mappings":"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"}