@phygitallabs/tapquest-core 6.7.13 → 6.7.15

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/index.d.mts CHANGED
@@ -18,7 +18,7 @@ import * as zustand from 'zustand';
18
18
  import { ProtoSignInResponse, OAuthSignInResponse, ProtoSignUpResponse, ResetPasswordRequest, ProtoResetPasswordResponse, ChangePasswordRequest, ProtoChangePasswordResponse, VerifyEmailRequest, ProtoVerifyEmailResponse, SendVerifyCodeRequest, ProtoSendVerifyCodeResponse, ProtoRefreshTokenResponse } from '@phygitallabs/authentication';
19
19
  export { CommonModel as GenerateCertificateCommonModel, DateTimeNumber as GenerateCertificateDateTimeNumber, EntityStatus as GenerateCertificateEntityStatus, Media as GenerateCertificateMedia, MediaType as GenerateCertificateMediaType, useAddFrame, useCreateCertificate, useCreateCertificateAnonymous, useCreateCertificateWithMask, useGenerateFansipanCertificate, useGenerateTemplateCertificate, useGenerateThaocamvienCertificate, wrapTextWithFont } from '@phygitallabs/generate-certificate';
20
20
  export { cn, fileToBase64, parse } from '@phygitallabs/helpers';
21
- export { CookieConsentBanner, PhygitalConsentProvider, usePhygitalConsent } from '@phygitallabs/phygital-consent';
21
+ export { CookieConsentBanner, PhygitalConsentProvider, PolicyPopup, useLatestConsentByUserId, usePhygitalConsent } from '@phygitallabs/phygital-consent';
22
22
 
23
23
  declare const useManyAchievementProgress: (params: GetManyUserOrDeviceAchievementProgressParams, options?: any) => _tanstack_query_core.QueryObserverRefetchErrorResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverSuccessResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverLoadingErrorResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverPendingResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverPlaceholderResult<_phygitallabs_achievement.UserAchievementProgress[], Error>;
24
24
 
package/dist/index.d.ts CHANGED
@@ -18,7 +18,7 @@ import * as zustand from 'zustand';
18
18
  import { ProtoSignInResponse, OAuthSignInResponse, ProtoSignUpResponse, ResetPasswordRequest, ProtoResetPasswordResponse, ChangePasswordRequest, ProtoChangePasswordResponse, VerifyEmailRequest, ProtoVerifyEmailResponse, SendVerifyCodeRequest, ProtoSendVerifyCodeResponse, ProtoRefreshTokenResponse } from '@phygitallabs/authentication';
19
19
  export { CommonModel as GenerateCertificateCommonModel, DateTimeNumber as GenerateCertificateDateTimeNumber, EntityStatus as GenerateCertificateEntityStatus, Media as GenerateCertificateMedia, MediaType as GenerateCertificateMediaType, useAddFrame, useCreateCertificate, useCreateCertificateAnonymous, useCreateCertificateWithMask, useGenerateFansipanCertificate, useGenerateTemplateCertificate, useGenerateThaocamvienCertificate, wrapTextWithFont } from '@phygitallabs/generate-certificate';
20
20
  export { cn, fileToBase64, parse } from '@phygitallabs/helpers';
21
- export { CookieConsentBanner, PhygitalConsentProvider, usePhygitalConsent } from '@phygitallabs/phygital-consent';
21
+ export { CookieConsentBanner, PhygitalConsentProvider, PolicyPopup, useLatestConsentByUserId, usePhygitalConsent } from '@phygitallabs/phygital-consent';
22
22
 
23
23
  declare const useManyAchievementProgress: (params: GetManyUserOrDeviceAchievementProgressParams, options?: any) => _tanstack_query_core.QueryObserverRefetchErrorResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverSuccessResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverLoadingErrorResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverPendingResult<_phygitallabs_achievement.UserAchievementProgress[], Error> | _tanstack_query_core.QueryObserverPlaceholderResult<_phygitallabs_achievement.UserAchievementProgress[], Error>;
24
24
 
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useCreateClickButtonActionLog,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateClickButtonActionLog,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievementsByLocation,useManyAchievements,useManyAchievementProgress,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievementProgress as useManyAchievementProgressCore,useManyAchievements,useManyAchievementsByLocation,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useQueryClient,useQuery}from'@tanstack/react-query';import {createContext,useCallback,useReducer,useContext,useEffect,useRef,useMemo,useState}from'react';import {usePhygitalConsent,PhygitalConsentProvider,CookieConsentBanner}from'@phygitallabs/phygital-consent';export{CookieConsentBanner,PhygitalConsentProvider,usePhygitalConsent}from'@phygitallabs/phygital-consent';import M from'posthog-js';import {v4}from'uuid';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as Ln from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import Lo from'axios';var ar=Object.defineProperty;var It=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var Et=Object.prototype.hasOwnProperty;var De=(e,n)=>{for(var t in n)ar(e,t,{get:n[t],enumerable:true});},sr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of _t(n))!Et.call(e,o)&&o!==t&&ar(e,o,{get:()=>n[o],enumerable:!(r=It(n,o))||r.enumerable});return e},h=(e,n,t)=>(sr(e,n,"default"),t);var Oe={};De(Oe,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>je,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,DataTrackingConsentSync:()=>ae,Environment:()=>nr,NotificationProvider:()=>ce,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>Ye,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>yt,TaskType:()=>er,TrackerContext:()=>z,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>B,cn:()=>cn,convertSnakeToCamel:()=>b,decodeJWTToken:()=>Re,deviceUIDKey:()=>N,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>tr,generateDeviceId:()=>Be,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Rr,getDeviceUid:()=>q,getLocationIdsFromAchievementRule:()=>cr,getRefreshToken:()=>_r,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>br,getSurveyIdsFromAchievementRule:()=>dr,getUserInfo:()=>Ur,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>G,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>wr,removeRefreshToken:()=>xr,removeUserInfo:()=>Mr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Sr,setChipAuthToken:()=>ne,setDeviceUid:()=>ze,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>Lr,sortLocationsByIndex:()=>rr,transformProtoUserData:()=>we,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Qe,useAchivementPlusRewardModel:()=>be,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>P,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ge,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>F,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>Te,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>yr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>ot,useSendEmail:()=>useSendEmail,useSessionReplay:()=>Q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});var w={};De(w,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>je,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,DataTrackingConsentSync:()=>ae,Environment:()=>nr,NotificationProvider:()=>ce,PhygitalConsentProvider:()=>PhygitalConsentProvider,RewardClaimStatus:()=>Ye,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>yt,TaskType:()=>er,TrackerContext:()=>z,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>B,cn:()=>cn,convertSnakeToCamel:()=>b,decodeJWTToken:()=>Re,deviceUIDKey:()=>N,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>tr,generateDeviceId:()=>Be,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Rr,getDeviceUid:()=>q,getLocationIdsFromAchievementRule:()=>cr,getRefreshToken:()=>_r,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>br,getSurveyIdsFromAchievementRule:()=>dr,getUserInfo:()=>Ur,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>G,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>wr,removeRefreshToken:()=>xr,removeUserInfo:()=>Mr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Sr,setChipAuthToken:()=>ne,setDeviceUid:()=>ze,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>Lr,sortLocationsByIndex:()=>rr,transformProtoUserData:()=>we,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Qe,useAchivementPlusRewardModel:()=>be,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>P,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ge,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>F,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>Te,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>yr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>ot,useSendEmail:()=>useSendEmail,useSessionReplay:()=>Q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});function Ge(){let e=useQueryClient();return {clearCache:useCallback(t=>{let{refetchActive:r=true,refetchInactive:o=false}=t||{};e.invalidateQueries({predicate:i=>{let s=i.queryKey;return s.includes("achievementProgressMany")||s.includes("achievementProgress")||s.includes("deviceUidAchievementProgressMany")},refetchType:r?o?"all":"active":"none"}),console.log("\u{1F504} Achievement progress cache cleared");},[e])}}var cr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="location_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},dr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="survey_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},K=e=>{if(!(e!=null&&e.rule))return [];let n=[];return Object.values((e==null?void 0:e.rule)||{}).forEach(t=>{var r;t!=null&&t.rules&&((r=t==null?void 0:t.rules)==null||r.forEach(o=>{o!=null&&o.action&&n.push(o==null?void 0:o.action);}));}),Array.from(new Set(n))},V=e=>e.isCompleted||e.overallPercentage===100;function b(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>b(n));if(typeof e=="object"&&e.constructor===Object){let n={};for(let t in e)if(e.hasOwnProperty(t)){let r=t.replace(/_([a-z])/g,(o,i)=>i.toUpperCase());n[r]=b(e[t]);}return n}return e}var yr=(e,n)=>{let t=!!e.userId,r=t?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return t?useManyAchievementProgress(r,{...n,select:o=>o.map(i=>({...i,isCompleted:V(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>b(o).map(s=>({...s,isCompleted:V(s)}))})};var ee=(i=>(i.DEFAULT="default",i.MULTIPLE_CHECK_INS="multiple_check_ins",i.RANDOM_CHECK_INS="random_check_ins",i.GROUP_MISSION="group_mission",i.SURVEY="survey",i))(ee||{});var O="phygital-user-info",D="accessToken",G="refreshToken",re=3,x="retryAttemptsRefreshToken",N="Device-UID",B="chip-auth-token",te="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",oe=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Be=async()=>{try{return await bt()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},bt=async()=>{let e=new Date().toISOString(),n=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(n),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(a=>a.toString(16).padStart(2,"0")).join("")};var q=()=>typeof window=="undefined"?null:localStorage.getItem(N),ze=e=>{typeof window!="undefined"&&localStorage.setItem(N,e);},wr=()=>{typeof window!="undefined"&&localStorage.removeItem(N);},H=async()=>{let e=q();return e||(e=await Be(),ze(e)),e},Rr=()=>typeof window=="undefined"?null:localStorage.getItem(B),ne=e=>{typeof window!="undefined"&&localStorage.setItem(B,e);},Cr=()=>{typeof window!="undefined"&&localStorage.removeItem(B);},Pr=()=>typeof window=="undefined"?null:localStorage.getItem(x),kr=e=>{typeof window!="undefined"&&localStorage.setItem(x,e);},Tr=()=>typeof window=="undefined"?null:localStorage.getItem(D),Sr=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},Ir=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},_r=()=>typeof window=="undefined"?null:localStorage.getItem(G),Er=e=>{typeof window!="undefined"&&localStorage.setItem(G,e);},xr=()=>{typeof window!="undefined"&&localStorage.removeItem(G);},Ur=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(O);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Lr=e=>{typeof window!="undefined"&&localStorage.setItem(O,JSON.stringify(e));},Mr=()=>{typeof window!="undefined"&&localStorage.removeItem(O);};var br=e=>e||q(),ie=()=>typeof window!="undefined";var z=createContext(null);function Nt(){return v4()}async function Bt(e){var n,t,r,o,i,s,a;try{let d=(await import('@openreplay/tracker')).default,p=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:Nt,c={projectKey:(e==null?void 0:e.projectKey)||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e==null?void 0:e.ingestPoint,captureExceptions:(n=e.captureExceptions)!=null?n:!0,capturePerformance:(t=e.capturePerformance)!=null?t:!0,network:e.network||{capturePayload:!0,sanitizer:u=>u},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:(r=e.obscureTextEmails)!=null?r:!0,obscureTextNumbers:(o=e.obscureTextNumbers)!=null?o:!1,obscureInputEmails:(i=e.obscureInputEmails)!=null?i:!0,__DISABLE_SECURE_MODE:(a=e.__DISABLE_SECURE_MODE)!=null?a:typeof process!="undefined"&&((s=process.env)==null?void 0:s.NODE_ENV)==="development"},f=new d(c);if(e!=null&&e.userIdEnabled){let u=p();f.setUserID(u),console.log("User ID set:",u);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",c.projectKey),console.log("Ingest Point:",c.ingestPoint),f}catch(d){throw console.error("Failed to create tracker:",d),d}}function zt(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&ie()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Bt(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(t,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(n.payload),console.log(t,"User ID updated:",n.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{var o;(o=Object.entries(n.payload||{}))==null||o.forEach(([i,s])=>{r.setMetadata(i,s);}),console.log(t,"Metadata updated:",n.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var j=({children:e,config:n={}})=>{let[,t]=useReducer(zt,{tracker:null,config:n}),r=()=>t({type:"init"}),o=()=>t({type:"start"}),i=a=>t({type:"setUserId",payload:a}),s=a=>t({type:"setMetadata",payload:a});return jsx(z.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function Q(){let e=useContext(z);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Fe={analytics_storage:"granted"},Or={ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted"},Dr={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"},Kt=(e,n)=>{try{if(typeof window=="undefined")return;window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},Vt=(e,n)=>{if(typeof window=="undefined")return;let t=window;typeof t.gtag=="function"&&t.gtag("event",e,n);},qt=(e,n)=>{M.capture(e,n);};function F(){var _,k;let{initTracker:e,startTracking:n,setUserId:t,setMetadata:r}=Q(),o=usePhygitalConsent(),i=(_=o.isAnalyticsAllowed)!=null?_:false,s=(k=o.isAdvertisingAllowed)!=null?k:false;return {trackEvent:(l,A,v)=>{var R;v=v||["gtm"],v.includes("gtm")&&typeof window!="undefined"&&Kt(l,A),v.includes("ga")&&i&&Vt(l,A),v.includes("posthog")&&i&&typeof((R=M)==null?void 0:R.capture)=="function"&&qt(l,A);},trackUserIdentify:l=>{var A;i&&(typeof((A=M)==null?void 0:A.identify)=="function"&&M.identify(l.email,{email:l.email,name:l.name,avatar:l.avatar,uid:l.uid}),t(l.id),r({user_email:l.email}));},trackLogoutEvent:()=>{var l;i&&typeof((l=M)==null?void 0:l.capture)=="function"&&M.capture("user_signed_out");},loadGA:l=>{if(!i||typeof window=="undefined"||!l)return;let A=window,v=`ga-script-${l}`;if(!document.getElementById(v)){let R=document.createElement("script");R.id=v,R.async=true,R.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(l)}`,document.head.appendChild(R),A.dataLayer=A.dataLayer||[],A.gtag=function(){A.dataLayer.push(arguments);},A.gtag("js",new Date),A.gtag("config",l);}typeof A.gtag=="function"&&A.gtag("consent","update",{...Fe});},loadGTM:l=>{if(!i||typeof window=="undefined"||!l)return;let A=window,v=`gtm-script-${l}`;if(!document.getElementById(v)){A.dataLayer=A.dataLayer||[],A.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let R=document.createElement("script");R.id=v,R.async=true,R.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(l)}`,document.head.appendChild(R);let I=`gtm-noscript-${l}`;if(!document.getElementById(I)){let C=document.createElement("noscript");C.id=I;let m=document.createElement("iframe");m.src=`https://www.googletagmanager.com/ns.html?id=${encodeURIComponent(l)}`,m.height="0",m.width="0",m.style.display="none",m.style.visibility="hidden",C.appendChild(m),document.body.insertBefore(C,document.body.firstChild);}}typeof A.gtag=="function"?A.gtag("consent","update",{...Fe}):(A.dataLayer=A.dataLayer||[],A.dataLayer.push(["consent","update",{...Fe}]));},togglePostHog:()=>{i&&typeof M.opt_in_capturing=="function"&&M.opt_in_capturing();},toggleOpenReplay:()=>{i&&(e(),n());},toggleGoogleAdSense:()=>{if(!s||typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...Or}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...Or}]);},pauseGoogleAdSense:()=>{if(typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...Dr}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...Dr}]);}}}var Gr={analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"};function ae(){var a,d;let e=usePhygitalConsent(),n=(a=e.isAnalyticsAllowed)!=null?a:false,t=(d=e.isAdvertisingAllowed)!=null?d:false,{togglePostHog:r,toggleOpenReplay:o,toggleGoogleAdSense:i,pauseGoogleAdSense:s}=F();return useEffect(()=>{if(typeof window=="undefined")return;let p=window;p.dataLayer=p.dataLayer||[],typeof p.gtag=="function"?p.gtag("consent","default",{...Gr}):p.dataLayer.push(["consent","default",{...Gr}]);},[]),useEffect(()=>{t?i():s();},[t,i,s]),useEffect(()=>{n&&r();},[n,r]),useEffect(()=>{n&&o();},[n,o]),null}var y={};De(y,{NotificationProvider:()=>ce,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});h(y,Ln);var jt={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_CONSENT_URL:"https://backend-dev.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_CONSENT_URL:"https://backend-staging.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_CONSENT_URL:"https://backend.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},E=jt;var ce=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var d,p;let a=(d=E[t])==null?void 0:d.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(p=r==null?void 0:r.accessToken)!=null?p:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Br=createContext(void 0);function je({children:e,achievements:n}){let{trackEvent:t}=F(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let c=[],f=[];return n.forEach(u=>{u.type==="group_mission"?f.push(u):c.push(u);}),{challenges:c,quests:f}},[n]);useEffect(()=>{let c=useNotificationStore.subscribe(f=>{var _;let u=f.notifications;if(u.length===0)return;let g=u[u.length-1];if(!((_=g==null?void 0:g.data)!=null&&_.achievement))return;let S=`${g.data.achievement.id}_${Date.now()}`;if(r.current.has(S))return;r.current.add(S);let T=g.data.achievement;if(T.type==="group_mission")t("quest_complete",{quest_id:T.id,quest_name:T.name});else {let l=K(T)[0]||"unknown";t("challenge_complete",{challenge_id:T.id,challenge_name:T.name,challenge_type:l});}});return ()=>{c();}},[t]);let s=useCallback(c=>{let f=o.filter(u=>K(u).includes(c));if(f.length===0){console.error(`[AchievementTracking] No achievement found for action: ${c}`);return}f.forEach(u=>{t("challenge_start",{challenge_id:u.id,challenge_name:u.name,challenge_type:c});});},[o,t]),a=useCallback(()=>{if(i.length===0){console.error("[AchievementTracking] No quests found");return}i.forEach(c=>{t("quest_start",{quest_id:c.id,quest_name:c.name});});},[i,t]),d=n.length>0,p={trackChallengeStart:s,trackQuestStart:a,isReady:d};return jsx(Br.Provider,{value:p,children:e})}function Qe(){let e=useContext(Br);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var Ye=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(Ye||{});h(w,y);var uo={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},P=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...uo,actions:{setIsLoading:t=>e(r=>{r.isLoading=t;}),setCleanupFunctions:t=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...t};}),addEventCallbacks:t=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};});}),signInWithEmail:async(t,r)=>{var i,s,a,d;let{eventCallbacks:o}=n();e(p=>{p.isLoading=true,p.error=null;});try{let p=await authService.signIn({email:t,password:r});return (i=p==null?void 0:p.data)!=null&&i.idToken&&((s=p==null?void 0:p.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:p.data.idToken,refreshToken:p.data.refreshToken}),e(c=>{c.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,p.data.idToken)),p}catch(p){let c=p instanceof Error?p.message:"Login failed";throw e(f=>{f.error=c;}),(d=o.onLoginError)==null||d.call(o,new Error(c)),p}finally{e(p=>{p.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=te;return await authService.getOAuthSignInUrl(o)}catch(o){let i=o instanceof Error?o.message:"Google sign in failed";throw e(s=>{s.error=i;}),(r=t.onLoginError)==null||r.call(t,new Error(i)),o}},signUpWithEmail:async(t,r)=>{var i,s;let{eventCallbacks:o}=n();e(a=>{a.isLoading=true,a.error=null;});try{let a=await authService.signUp({email:t,password:r});return a.data&&((i=o.onSignupSuccess)==null||i.call(o)),a}catch(a){let d=a instanceof Error?a.message:"Signup failed";throw e(p=>{p.error=d;}),(s=o.onSignupError)==null||s.call(o,new Error(d)),a}finally{e(a=>{a.isLoading=false,a.user=null,a.isSignedIn=false;});}},signOut:async()=>{var o,i,s,a,d,p;let{eventCallbacks:t,cleanupFunctions:r}=n();e(c=>{c.isLoading=true,c.error=null;});try{e(u=>{u.user=null,u.isSignedIn=!1,u.error=null;});let c=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!c){tokenStorage.clearTokens();return}await authService.logout({refreshToken:c}),tokenStorage.clearTokens();try{(o=r.clearQueryCache)==null||o.call(r),(i=r.clearOrganization)==null||i.call(r),(s=r.clearCustomData)==null||s.call(r),(a=r.clearHeaders)==null||a.call(r);}catch(u){console.warn("Error during logout cleanup:",u);}(d=t.onLogoutSuccess)==null||d.call(t);}catch(c){console.log(c);let f=c instanceof Error?c.message:"Logout failed";throw e(u=>{u.error=f;}),(p=t.onLogoutError)==null||p.call(t,new Error(f)),c}finally{e(c=>{c.isLoading=false;});}},sendPasswordResetEmail:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:t});}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(t)}catch(r){let o=r instanceof Error?r.message:"Failed to reset password";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(t)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send verify code";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async t=>{var o,i,s,a,d;let r=await authService.refreshToken({refreshToken:(o=t!=null?t:tokenStorage.getRefreshToken())!=null?o:""});return (i=r.data)!=null&&i.idToken&&((s=r.data)!=null&&s.refreshToken)&&tokenStorage.setTokens({idToken:(a=r.data)==null?void 0:a.idToken,refreshToken:(d=r.data)==null?void 0:d.refreshToken}),r},clearError:()=>e(t=>{t.error=null;}),setUser:t=>e(r=>{r.user=t;}),setIsSignedIn:t=>e(r=>{r.isSignedIn=t;}),setIsInitialized:t=>e(r=>{r.isInitialized=t;}),patchUser:t=>e(r=>{r.user?r.user={...r.user,...t}:r.user=t;}),initialize:()=>{e(t=>{let r=tokenStorage.getAuthToken();t.isSignedIn=!!r,t.isInitialized=true;});},syncAuthState:()=>{e(t=>{var i,s,a,d;let r=tokenStorage.getAuthToken(),o=t.isSignedIn;t.isSignedIn=!!r,o!==t.isSignedIn&&(t.isSignedIn?(s=(i=t.eventCallbacks)==null?void 0:i.onAuthStateChange)==null||s.call(i,t.user,true):(d=(a=t.eventCallbacks)==null?void 0:a.onAuthStateChange)==null||d.call(a,null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),L=()=>{let e=P(s=>s.user),n=P(s=>s.isSignedIn),t=P(s=>s.isInitialized),r=P(s=>s.isLoading),o=P(s=>s.error),i=P(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var we=(e,n)=>{let t={...e},r={};try{r=jwtDecode(n);}catch(o){console.warn("Failed to decode token in transformUserData:",o);}return t.exp=r.exp||0,t.accessToken=n||"",t.roles=(r==null?void 0:r.roles)||["USER"],t.account_type=(r==null?void 0:r.account_type)||0,t.picture=e.picture||"",t},Re=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function W(){let{refreshToken:e,signOut:n}=L(),t=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),n();}};useQuery({queryKey:["refresh-token"],queryFn:()=>t(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var wo=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{P.getState().actions.initialize();let s=tokenStorage.getAuthToken();if(s){e({Authorization:`Bearer ${s}`}),n({Authorization:`Bearer ${s}`}),r({Authorization:`Bearer ${s}`}),o({Authorization:`Bearer ${s}`}),i({Authorization:`Bearer ${s}`});let{user:c}=P.getState();c&&c.accessToken!==s&&P.getState().actions.setUser({...c,accessToken:s});}let a=P.getState().isSignedIn,d=P.subscribe(c=>[c.isSignedIn,c.user],async([c])=>{var f,u;if(c!==a)if(a=c,c){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),o({Authorization:`Bearer ${g}`}),i({Authorization:`Bearer ${g}`});try{let k=await userService(t).getMyProfile(),l=we(k,g);P.getState().actions.setUser(l);}catch{P.getState().actions.signOut();}}let{eventCallbacks:S,user:T}=P.getState();(f=S==null?void 0:S.onAuthStateChange)==null||f.call(S,T,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:g}=P.getState();(u=g==null?void 0:g.onAuthStateChange)==null||u.call(g,null,false);}}),p=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:c,user:f}=P.getState();if(c){let u=tokenStorage.getAuthToken();u?(e({Authorization:`Bearer ${u}`}),n({Authorization:`Bearer ${u}`}),r({Authorization:`Bearer ${u}`}),o({Authorization:`Bearer ${u}`}),i({Authorization:`Bearer ${u}`}),f&&f.accessToken!==u&&P.getState().actions.setUser({...f,accessToken:u})):(P.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{d(),p();}},[e,n,r,o,i,t]),null},Ro=()=>(W(),null),Z=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(wo,{}),jsx(Ro,{}),e]});function Te(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:d,isLoading:p}=L(),[c,f]=useState(null),u=useRef(null),g=useRef(false),S=useRef(null),T=useRef(null),_=useCallback(async v=>{var R,I;if(v)try{let C=await s(v);if((R=C.data)!=null&&R.idToken&&((I=C.data)!=null&&I.refreshToken)){tokenStorage.setTokens({idToken:C.data.idToken,refreshToken:C.data.refreshToken});let m=Re(C.data.idToken);a(!0),d(!1),n==null||n(m);}}catch(C){let m=C instanceof Error?C.message:"Token refresh failed";T.current=m,t==null||t(m),d(false);}},[s,a,d,n,t]),k=useCallback(()=>{S.current&&(clearInterval(S.current),S.current=null),g.current=false;},[]),l=useCallback(v=>{var I;let R=oe.concat((I=window==null?void 0:window.location)==null?void 0:I.origin);if(v.origin!=="*"&&!R.includes(v.origin)){console.warn("Rejected message from untrusted origin:",v.origin);return}if(!v.data||typeof v.data!="object"){console.warn("Invalid message data received");return}if(v.data.type==="LOGIN_SUCCESS"){let{refreshToken:C}=v.data;C&&_(C),g.current=true,k();}else if(v.data.type==="LOGIN_ERROR"){let C=v.data.error||"Login failed";T.current=C,t==null||t(C),d(false),g.current=true,k();}},[_,d,k,t]);useEffect(()=>{(async()=>{try{let R=await i();f(R.statusMessage||"");}catch(R){console.error("error",R),f("");}})();},[]);let A=useCallback(()=>{let I=window.screenX+(window.outerWidth-500)/2,C=window.screenY+(window.outerHeight-600)/2;try{if(c===null)return;if(c===""){let m="Google sign in failed. Please try again later.";T.current=m,t==null||t(m);return}if(T.current=null,d(!0),u.current=window.open(c,"oauthPopup",`width=500,height=600,left=${I},top=${C},resizable,scrollbars`),!u.current){d(!1);let m="Popup blocked. Please allow popups for this site.";T.current=m,r==null||r(),t==null||t(m);return}S.current=setInterval(()=>{if(u.current&&u.current.closed&&(S.current&&(clearInterval(S.current),S.current=null),!g.current)){let m="Authentication popup was closed";T.current=m,o==null||o(),t==null||t(m),d(!1);}},500);}catch(m){let ir=m instanceof Error?m.message:"Google sign in failed";T.current=ir,t==null||t(ir),d(false);}},[i,d,l,t,r,o,c]);return useEffect(()=>(window.addEventListener("message",l),()=>{window.removeEventListener("message",l);}),[l]),useEffect(()=>()=>{k();},[k]),{signIn:A,isLoading:p,error:T.current}}function ot({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let d={"Chip-Authorization":e};ne(e),r(d);}},[e,r]);let{data:o,isLoading:i,isError:s,isSuccess:a}=useChipScanStory({token:e,id:n});return useEffect(()=>{s&&(t==null||t());},[s,t]),o?{data:{externalUrl:o==null?void 0:o.external_url,campaignDetail:o==null?void 0:o.project,locationDetail:o==null?void 0:o.location,scanCounter:o==null?void 0:o.scan_counter,campaignId:o==null?void 0:o.campaign_id,chipModelId:o==null?void 0:o.chip_model_id,organizationId:o==null?void 0:o.organization_id,projectId:o==null?void 0:o.project_id,locationId:o==null?void 0:o.location_id,chipUid:o==null?void 0:o.uid},isLoading:i,isError:s,isSuccess:a}:{data:null,isLoading:i,isError:s,isSuccess:a}}var er=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(er||{});var rr=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),tr=(e,n,t)=>e.filter(r=>r[n]===t);var ht=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=L(),{environment:i,version:s}=t,[a,d]=useState(null),[p,c]=useState("");return useEffect(()=>{(async()=>{let u=await H();c(u);})();},[]),useEffect(()=>{(async()=>{try{let u=await H();d({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":u}},responseInterceptors:{onFulfilled:k=>k,onRejected:async k=>{var v,R,I;let l=k.config,A=tokenStorage.getAuthToken();if(((v=k.response)==null?void 0:v.status)===401&&!l._retry){let C=parseInt(getFromLS(x)||"0",10);if(C>=3)return await r(),setToLS(x,0),Promise.reject(k);if(setToLS(x,`${C+1}`),l._retry=!0,A)try{let m=await o();if((R=m==null?void 0:m.data)!=null&&R.idToken)return l.headers.Authorization=`Bearer ${(I=m==null?void 0:m.data)==null?void 0:I.idToken}`,Lo(l)}catch(m){return console.error("Failed to refresh token:",m),await r(),Promise.reject(m)}}}},requestInterceptors:{onFulfilled:k=>k,onRejected:k=>Promise.reject(k)},useDevTool:!0});}catch(u){console.error(u);}})();},[n]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${E[i].API_BASE_URL}/${s}`,baseCoreURL:`${E[i].API_BASE_CORE_URL}/${s}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${E[i].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${E[i].API_ACHIEVEMENT_URL}/${s}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${E[i].API_GENERATE_CERTIFICATE_URL}/v1`,children:jsxs(PhygitalConsentProvider,{...a,deviceId:p,baseURL:`${E[i].API_CONSENT_URL}/v1`,axiosConfig:{headers:{"Content-Type":"application/json"}},children:[jsx(ae,{}),e]})})})})}):jsx(Fragment,{})};var yt=({children:e,queryClient:n,apiConfig:t})=>{let{environment:r}=t,o=useMemo(()=>{let i=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(i)return {projectKey:i,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(j,{config:o,children:jsx(ht,{queryClient:n,apiConfig:t,children:jsx(Z,{baseURL:`${E[r].API_BASE_URL}`,queryClient:n,children:e})})})};function Bo(e,n){if(!(n!=null&&n.reward_models))return [];let t=n.reward_models;return e.map((r,o)=>{var a,d;let i=((a=t[o])==null?void 0:a[0])||null,s=((d=r.subAchievementIds)==null?void 0:d.map((p,c)=>{var u,g;let f=((g=t[o*(((u=r.subAchievementIds)==null?void 0:u.length)||0)+c+1])==null?void 0:g[0])||null;return {id:p,reward_model:f}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var zo=({campaignId:e})=>{let{data:n,isLoading:t}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>n!=null&&n.data?n.data.map(d=>d.groupRewardId).filter(d=>d!==void 0):[],[n==null?void 0:n.data]),{mutate:o,data:i,isPending:s}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&o({group_reward_ids:r});},[r,o]),{mappedAchievements:useMemo(()=>!(i!=null&&i.data)||!(n!=null&&n.data)?[]:Bo(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},be=zo;var nr=(r=>(r.DEV="dev",r.STAGING="staging",r.PRODUCTION="production",r))(nr||{});h(Oe,w);
1
+ import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useCreateClickButtonActionLog,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateClickButtonActionLog,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievementsByLocation,useManyAchievements,useManyAchievementProgress,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievementProgress as useManyAchievementProgressCore,useManyAchievements,useManyAchievementsByLocation,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useQueryClient,useQuery}from'@tanstack/react-query';import {createContext,useCallback,useReducer,useContext,useEffect,useRef,useMemo,useState}from'react';import {usePhygitalConsent,useLatestConsentByUserId,PolicyPopup,PhygitalConsentProvider,CookieConsentBanner}from'@phygitallabs/phygital-consent';export{CookieConsentBanner,PhygitalConsentProvider,PolicyPopup,useLatestConsentByUserId,usePhygitalConsent}from'@phygitallabs/phygital-consent';import M from'posthog-js';import {v4}from'uuid';import {jsx,jsxs,Fragment}from'react/jsx-runtime';import*as bn from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import bo from'axios';var ar=Object.defineProperty;var Et=Object.getOwnPropertyDescriptor;var xt=Object.getOwnPropertyNames;var Ut=Object.prototype.hasOwnProperty;var De=(e,n)=>{for(var t in n)ar(e,t,{get:n[t],enumerable:true});},sr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of xt(n))!Ut.call(e,o)&&o!==t&&ar(e,o,{get:()=>n[o],enumerable:!(r=Et(n,o))||r.enumerable});return e},h=(e,n,t)=>(sr(e,n,"default"),t);var Oe={};De(Oe,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>je,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,DataTrackingConsentSync:()=>ae,Environment:()=>nr,NotificationProvider:()=>ce,PhygitalConsentProvider:()=>PhygitalConsentProvider,PolicyPopup:()=>PolicyPopup,RewardClaimStatus:()=>Ye,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>yt,TaskType:()=>er,TrackerContext:()=>z,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>B,cn:()=>cn,convertSnakeToCamel:()=>b,decodeJWTToken:()=>Re,deviceUIDKey:()=>N,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>tr,generateDeviceId:()=>Be,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Rr,getDeviceUid:()=>q,getLocationIdsFromAchievementRule:()=>cr,getRefreshToken:()=>_r,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>br,getSurveyIdsFromAchievementRule:()=>dr,getUserInfo:()=>Ur,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>G,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>wr,removeRefreshToken:()=>xr,removeUserInfo:()=>Mr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Sr,setChipAuthToken:()=>ne,setDeviceUid:()=>ze,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>Lr,sortLocationsByIndex:()=>rr,transformProtoUserData:()=>we,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Qe,useAchivementPlusRewardModel:()=>be,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>P,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ge,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>F,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>Te,useInfiniteMemories:()=>useInfiniteMemories,useLatestConsentByUserId:()=>useLatestConsentByUserId,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>yr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>ot,useSendEmail:()=>useSendEmail,useSessionReplay:()=>Q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});var w={};De(w,{ALLOWED_ORIGINS:()=>oe,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>je,AchievementType:()=>ee,AuthProvider:()=>Z,CALLBACK_URL:()=>te,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,CookieConsentBanner:()=>CookieConsentBanner,DataTrackingConsentSync:()=>ae,Environment:()=>nr,NotificationProvider:()=>ce,PhygitalConsentProvider:()=>PhygitalConsentProvider,PolicyPopup:()=>PolicyPopup,RewardClaimStatus:()=>Ye,SessionReplayProvider:()=>j,TapquestCoreProvider:()=>yt,TaskType:()=>er,TrackerContext:()=>z,UserSourceType:()=>UserSourceType,accessTokenKey:()=>D,checkDeviceUid:()=>H,chipAuthTokenKey:()=>B,cn:()=>cn,convertSnakeToCamel:()=>b,decodeJWTToken:()=>Re,deviceUIDKey:()=>N,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>tr,generateDeviceId:()=>Be,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>K,getChipAuthToken:()=>Rr,getDeviceUid:()=>q,getLocationIdsFromAchievementRule:()=>cr,getRefreshToken:()=>_r,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>br,getSurveyIdsFromAchievementRule:()=>dr,getUserInfo:()=>Ur,httpMaxRetries:()=>re,isAchievementCompleted:()=>V,isBrowser:()=>ie,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>G,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>wr,removeRefreshToken:()=>xr,removeUserInfo:()=>Mr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Sr,setChipAuthToken:()=>ne,setDeviceUid:()=>ze,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>Lr,sortLocationsByIndex:()=>rr,transformProtoUserData:()=>we,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Qe,useAchivementPlusRewardModel:()=>be,useAddFrame:()=>useAddFrame,useAuth:()=>L,useAuthStore:()=>P,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Ge,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>F,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>Te,useInfiniteMemories:()=>useInfiniteMemories,useLatestConsentByUserId:()=>useLatestConsentByUserId,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>yr,useManyAchievementProgressCore:()=>useManyAchievementProgress,useManyAchievements:()=>useManyAchievements,useManyAchievementsByLocation:()=>useManyAchievementsByLocation,useManyAchievementsRewardModels:()=>useManyAchievementsRewardModels,useManyChildrenAchievements:()=>useManyChildrenAchievements,useManyMemory:()=>useManyMemory,useManyUserActionLocations:()=>useManyUserActionLocations,useManyUserRewards:()=>useManyUserRewards,useMyProfile:()=>useMyProfile,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,useOneAchievement:()=>useOneAchievement,useOneMemory:()=>useOneMemory,useOneUserCampaign:()=>useOneUserCampaign,usePGLCoreService:()=>usePGLCoreService,usePageVisibility:()=>usePageVisibility,usePhygitalConsent:()=>usePhygitalConsent,useScanChip:()=>ot,useSendEmail:()=>useSendEmail,useSessionReplay:()=>Q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>W,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>O,wrapTextWithFont:()=>wrapTextWithFont});function Ge(){let e=useQueryClient();return {clearCache:useCallback(t=>{let{refetchActive:r=true,refetchInactive:o=false}=t||{};e.invalidateQueries({predicate:i=>{let s=i.queryKey;return s.includes("achievementProgressMany")||s.includes("achievementProgress")||s.includes("deviceUidAchievementProgressMany")},refetchType:r?o?"all":"active":"none"}),console.log("\u{1F504} Achievement progress cache cleared");},[e])}}var cr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="location_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},dr=e=>{if(!e.rule)return [];let n=[];return Object.values(e.rule).forEach(t=>{t.rules&&t.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(o=>{o.filters&&o.filters.forEach(i=>{i.label==="survey_id"&&i.value&&(Array.isArray(i.value)?n.push(...i.value):n.push(i.value));});});});}),Array.from(new Set(n))},K=e=>{if(!(e!=null&&e.rule))return [];let n=[];return Object.values((e==null?void 0:e.rule)||{}).forEach(t=>{var r;t!=null&&t.rules&&((r=t==null?void 0:t.rules)==null||r.forEach(o=>{o!=null&&o.action&&n.push(o==null?void 0:o.action);}));}),Array.from(new Set(n))},V=e=>e.isCompleted||e.overallPercentage===100;function b(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>b(n));if(typeof e=="object"&&e.constructor===Object){let n={};for(let t in e)if(e.hasOwnProperty(t)){let r=t.replace(/_([a-z])/g,(o,i)=>i.toUpperCase());n[r]=b(e[t]);}return n}return e}var yr=(e,n)=>{let t=!!e.userId,r=t?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return t?useManyAchievementProgress(r,{...n,select:o=>o.map(i=>({...i,isCompleted:V(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>b(o).map(s=>({...s,isCompleted:V(s)}))})};var ee=(i=>(i.DEFAULT="default",i.MULTIPLE_CHECK_INS="multiple_check_ins",i.RANDOM_CHECK_INS="random_check_ins",i.GROUP_MISSION="group_mission",i.SURVEY="survey",i))(ee||{});var O="phygital-user-info",D="accessToken",G="refreshToken",re=3,x="retryAttemptsRefreshToken",N="Device-UID",B="chip-auth-token",te="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",oe=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Be=async()=>{try{return await Dt()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},Dt=async()=>{let e=new Date().toISOString(),n=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(n),o=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(o)).map(a=>a.toString(16).padStart(2,"0")).join("")};var q=()=>typeof window=="undefined"?null:localStorage.getItem(N),ze=e=>{typeof window!="undefined"&&localStorage.setItem(N,e);},wr=()=>{typeof window!="undefined"&&localStorage.removeItem(N);},H=async()=>{let e=q();return e||(e=await Be(),ze(e)),e},Rr=()=>typeof window=="undefined"?null:localStorage.getItem(B),ne=e=>{typeof window!="undefined"&&localStorage.setItem(B,e);},Cr=()=>{typeof window!="undefined"&&localStorage.removeItem(B);},Pr=()=>typeof window=="undefined"?null:localStorage.getItem(x),kr=e=>{typeof window!="undefined"&&localStorage.setItem(x,e);},Tr=()=>typeof window=="undefined"?null:localStorage.getItem(D),Sr=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},Ir=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},_r=()=>typeof window=="undefined"?null:localStorage.getItem(G),Er=e=>{typeof window!="undefined"&&localStorage.setItem(G,e);},xr=()=>{typeof window!="undefined"&&localStorage.removeItem(G);},Ur=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(O);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Lr=e=>{typeof window!="undefined"&&localStorage.setItem(O,JSON.stringify(e));},Mr=()=>{typeof window!="undefined"&&localStorage.removeItem(O);};var br=e=>e||q(),ie=()=>typeof window!="undefined";var z=createContext(null);function zt(){return v4()}async function Ft(e){var n,t,r,o,i,s,a;try{let d=(await import('@openreplay/tracker')).default,p=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:zt,c={projectKey:(e==null?void 0:e.projectKey)||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e==null?void 0:e.ingestPoint,captureExceptions:(n=e.captureExceptions)!=null?n:!0,capturePerformance:(t=e.capturePerformance)!=null?t:!0,network:e.network||{capturePayload:!0,sanitizer:u=>u},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:(r=e.obscureTextEmails)!=null?r:!0,obscureTextNumbers:(o=e.obscureTextNumbers)!=null?o:!1,obscureInputEmails:(i=e.obscureInputEmails)!=null?i:!0,__DISABLE_SECURE_MODE:(a=e.__DISABLE_SECURE_MODE)!=null?a:typeof process!="undefined"&&((s=process.env)==null?void 0:s.NODE_ENV)==="development"},f=new d(c);if(e!=null&&e.userIdEnabled){let u=p();f.setUserID(u),console.log("User ID set:",u);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",c.projectKey),console.log("Ingest Point:",c.ingestPoint),f}catch(d){throw console.error("Failed to create tracker:",d),d}}function Wt(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&ie()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Ft(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(t,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(n.payload),console.log(t,"User ID updated:",n.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{var o;(o=Object.entries(n.payload||{}))==null||o.forEach(([i,s])=>{r.setMetadata(i,s);}),console.log(t,"Metadata updated:",n.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(t,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var j=({children:e,config:n={}})=>{let[,t]=useReducer(Wt,{tracker:null,config:n}),r=()=>t({type:"init"}),o=()=>t({type:"start"}),i=a=>t({type:"setUserId",payload:a}),s=a=>t({type:"setMetadata",payload:a});return jsx(z.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function Q(){let e=useContext(z);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Fe={analytics_storage:"granted"},Or={ad_storage:"granted",ad_user_data:"granted",ad_personalization:"granted"},Dr={ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"},qt=(e,n)=>{try{if(typeof window=="undefined")return;window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},Ht=(e,n)=>{if(typeof window=="undefined")return;let t=window;typeof t.gtag=="function"&&t.gtag("event",e,n);},jt=(e,n)=>{M.capture(e,n);};function F(){var _,k;let{initTracker:e,startTracking:n,setUserId:t,setMetadata:r}=Q(),o=usePhygitalConsent(),i=(_=o.isAnalyticsAllowed)!=null?_:false,s=(k=o.isAdvertisingAllowed)!=null?k:false;return {trackEvent:(l,A,v)=>{var R;v=v||["gtm"],v.includes("gtm")&&typeof window!="undefined"&&qt(l,A),v.includes("ga")&&i&&Ht(l,A),v.includes("posthog")&&i&&typeof((R=M)==null?void 0:R.capture)=="function"&&jt(l,A);},trackUserIdentify:l=>{var A;i&&(typeof((A=M)==null?void 0:A.identify)=="function"&&M.identify(l.email,{email:l.email,name:l.name,avatar:l.avatar,uid:l.uid}),t(l.id),r({user_email:l.email}));},trackLogoutEvent:()=>{var l;i&&typeof((l=M)==null?void 0:l.capture)=="function"&&M.capture("user_signed_out");},loadGA:l=>{if(!i||typeof window=="undefined"||!l)return;let A=window,v=`ga-script-${l}`;if(!document.getElementById(v)){let R=document.createElement("script");R.id=v,R.async=true,R.src=`https://www.googletagmanager.com/gtag/js?id=${encodeURIComponent(l)}`,document.head.appendChild(R),A.dataLayer=A.dataLayer||[],A.gtag=function(){A.dataLayer.push(arguments);},A.gtag("js",new Date),A.gtag("config",l);}typeof A.gtag=="function"&&A.gtag("consent","update",{...Fe});},loadGTM:l=>{if(!i||typeof window=="undefined"||!l)return;let A=window,v=`gtm-script-${l}`;if(!document.getElementById(v)){A.dataLayer=A.dataLayer||[],A.dataLayer.push({"gtm.start":new Date().getTime(),event:"gtm.js"});let R=document.createElement("script");R.id=v,R.async=true,R.src=`https://www.googletagmanager.com/gtm.js?id=${encodeURIComponent(l)}`,document.head.appendChild(R);let I=`gtm-noscript-${l}`;if(!document.getElementById(I)){let C=document.createElement("noscript");C.id=I;let m=document.createElement("iframe");m.src=`https://www.googletagmanager.com/ns.html?id=${encodeURIComponent(l)}`,m.height="0",m.width="0",m.style.display="none",m.style.visibility="hidden",C.appendChild(m),document.body.insertBefore(C,document.body.firstChild);}}typeof A.gtag=="function"?A.gtag("consent","update",{...Fe}):(A.dataLayer=A.dataLayer||[],A.dataLayer.push(["consent","update",{...Fe}]));},togglePostHog:()=>{i&&typeof M.opt_in_capturing=="function"&&M.opt_in_capturing();},toggleOpenReplay:()=>{i&&(e(),n());},toggleGoogleAdSense:()=>{if(!s||typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...Or}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...Or}]);},pauseGoogleAdSense:()=>{if(typeof window=="undefined")return;let l=window;typeof l.gtag=="function"?l.gtag("consent","update",{...Dr}):Array.isArray(l.dataLayer)&&l.dataLayer.push(["consent","update",{...Dr}]);}}}var Gr={analytics_storage:"denied",ad_storage:"denied",ad_user_data:"denied",ad_personalization:"denied"};function ae(){var a,d;let e=usePhygitalConsent(),n=(a=e.isAnalyticsAllowed)!=null?a:false,t=(d=e.isAdvertisingAllowed)!=null?d:false,{togglePostHog:r,toggleOpenReplay:o,toggleGoogleAdSense:i,pauseGoogleAdSense:s}=F();return useEffect(()=>{if(typeof window=="undefined")return;let p=window;p.dataLayer=p.dataLayer||[],typeof p.gtag=="function"?p.gtag("consent","default",{...Gr}):p.dataLayer.push(["consent","default",{...Gr}]);},[]),useEffect(()=>{t?i():s();},[t,i,s]),useEffect(()=>{n&&r();},[n,r]),useEffect(()=>{n&&o();},[n,o]),null}var y={};De(y,{NotificationProvider:()=>ce,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});h(y,bn);var Yt={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_CONSENT_URL:"https://backend-dev.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_CONSENT_URL:"https://backend-staging.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_CONSENT_URL:"https://backend.nomion.io/consent",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},E=Yt;var ce=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var d,p;let a=(d=E[t])==null?void 0:d.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(p=r==null?void 0:r.accessToken)!=null?p:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Br=createContext(void 0);function je({children:e,achievements:n}){let{trackEvent:t}=F(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let c=[],f=[];return n.forEach(u=>{u.type==="group_mission"?f.push(u):c.push(u);}),{challenges:c,quests:f}},[n]);useEffect(()=>{let c=useNotificationStore.subscribe(f=>{var _;let u=f.notifications;if(u.length===0)return;let g=u[u.length-1];if(!((_=g==null?void 0:g.data)!=null&&_.achievement))return;let S=`${g.data.achievement.id}_${Date.now()}`;if(r.current.has(S))return;r.current.add(S);let T=g.data.achievement;if(T.type==="group_mission")t("quest_complete",{quest_id:T.id,quest_name:T.name});else {let l=K(T)[0]||"unknown";t("challenge_complete",{challenge_id:T.id,challenge_name:T.name,challenge_type:l});}});return ()=>{c();}},[t]);let s=useCallback(c=>{let f=o.filter(u=>K(u).includes(c));if(f.length===0){console.error(`[AchievementTracking] No achievement found for action: ${c}`);return}f.forEach(u=>{t("challenge_start",{challenge_id:u.id,challenge_name:u.name,challenge_type:c});});},[o,t]),a=useCallback(()=>{if(i.length===0){console.error("[AchievementTracking] No quests found");return}i.forEach(c=>{t("quest_start",{quest_id:c.id,quest_name:c.name});});},[i,t]),d=n.length>0,p={trackChallengeStart:s,trackQuestStart:a,isReady:d};return jsx(Br.Provider,{value:p,children:e})}function Qe(){let e=useContext(Br);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var Ye=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(Ye||{});h(w,y);var po={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},P=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...po,actions:{setIsLoading:t=>e(r=>{r.isLoading=t;}),setCleanupFunctions:t=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...t};}),addEventCallbacks:t=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...t};});}),signInWithEmail:async(t,r)=>{var i,s,a,d;let{eventCallbacks:o}=n();e(p=>{p.isLoading=true,p.error=null;});try{let p=await authService.signIn({email:t,password:r});return (i=p==null?void 0:p.data)!=null&&i.idToken&&((s=p==null?void 0:p.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:p.data.idToken,refreshToken:p.data.refreshToken}),e(c=>{c.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,p.data.idToken)),p}catch(p){let c=p instanceof Error?p.message:"Login failed";throw e(f=>{f.error=c;}),(d=o.onLoginError)==null||d.call(o,new Error(c)),p}finally{e(p=>{p.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=te;return await authService.getOAuthSignInUrl(o)}catch(o){let i=o instanceof Error?o.message:"Google sign in failed";throw e(s=>{s.error=i;}),(r=t.onLoginError)==null||r.call(t,new Error(i)),o}},signUpWithEmail:async(t,r)=>{var i,s;let{eventCallbacks:o}=n();e(a=>{a.isLoading=true,a.error=null;});try{let a=await authService.signUp({email:t,password:r});return a.data&&((i=o.onSignupSuccess)==null||i.call(o)),a}catch(a){let d=a instanceof Error?a.message:"Signup failed";throw e(p=>{p.error=d;}),(s=o.onSignupError)==null||s.call(o,new Error(d)),a}finally{e(a=>{a.isLoading=false,a.user=null,a.isSignedIn=false;});}},signOut:async()=>{var o,i,s,a,d,p;let{eventCallbacks:t,cleanupFunctions:r}=n();e(c=>{c.isLoading=true,c.error=null;});try{e(u=>{u.user=null,u.isSignedIn=!1,u.error=null;});let c=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!c){tokenStorage.clearTokens();return}await authService.logout({refreshToken:c}),tokenStorage.clearTokens();try{(o=r.clearQueryCache)==null||o.call(r),(i=r.clearOrganization)==null||i.call(r),(s=r.clearCustomData)==null||s.call(r),(a=r.clearHeaders)==null||a.call(r);}catch(u){console.warn("Error during logout cleanup:",u);}(d=t.onLogoutSuccess)==null||d.call(t);}catch(c){console.log(c);let f=c instanceof Error?c.message:"Logout failed";throw e(u=>{u.error=f;}),(p=t.onLogoutError)==null||p.call(t,new Error(f)),c}finally{e(c=>{c.isLoading=false;});}},sendPasswordResetEmail:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:t});}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(t)}catch(r){let o=r instanceof Error?r.message:"Failed to reset password";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(t)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send reset email";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async t=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(t)}catch(r){let o=r instanceof Error?r.message:"Failed to send verify code";throw e(i=>{i.error=o;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async t=>{var o,i,s,a,d;let r=await authService.refreshToken({refreshToken:(o=t!=null?t:tokenStorage.getRefreshToken())!=null?o:""});return (i=r.data)!=null&&i.idToken&&((s=r.data)!=null&&s.refreshToken)&&tokenStorage.setTokens({idToken:(a=r.data)==null?void 0:a.idToken,refreshToken:(d=r.data)==null?void 0:d.refreshToken}),r},clearError:()=>e(t=>{t.error=null;}),setUser:t=>e(r=>{r.user=t;}),setIsSignedIn:t=>e(r=>{r.isSignedIn=t;}),setIsInitialized:t=>e(r=>{r.isInitialized=t;}),patchUser:t=>e(r=>{r.user?r.user={...r.user,...t}:r.user=t;}),initialize:()=>{e(t=>{let r=tokenStorage.getAuthToken();t.isSignedIn=!!r,t.isInitialized=true;});},syncAuthState:()=>{e(t=>{var i,s,a,d;let r=tokenStorage.getAuthToken(),o=t.isSignedIn;t.isSignedIn=!!r,o!==t.isSignedIn&&(t.isSignedIn?(s=(i=t.eventCallbacks)==null?void 0:i.onAuthStateChange)==null||s.call(i,t.user,true):(d=(a=t.eventCallbacks)==null?void 0:a.onAuthStateChange)==null||d.call(a,null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),L=()=>{let e=P(s=>s.user),n=P(s=>s.isSignedIn),t=P(s=>s.isInitialized),r=P(s=>s.isLoading),o=P(s=>s.error),i=P(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var we=(e,n)=>{let t={...e},r={};try{r=jwtDecode(n);}catch(o){console.warn("Failed to decode token in transformUserData:",o);}return t.exp=r.exp||0,t.accessToken=n||"",t.roles=(r==null?void 0:r.roles)||["USER"],t.account_type=(r==null?void 0:r.account_type)||0,t.picture=e.picture||"",t},Re=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function W(){let{refreshToken:e,signOut:n}=L(),t=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),n();}};useQuery({queryKey:["refresh-token"],queryFn:()=>t(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Co=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{P.getState().actions.initialize();let s=tokenStorage.getAuthToken();if(s){e({Authorization:`Bearer ${s}`}),n({Authorization:`Bearer ${s}`}),r({Authorization:`Bearer ${s}`}),o({Authorization:`Bearer ${s}`}),i({Authorization:`Bearer ${s}`});let{user:c}=P.getState();c&&c.accessToken!==s&&P.getState().actions.setUser({...c,accessToken:s});}let a=P.getState().isSignedIn,d=P.subscribe(c=>[c.isSignedIn,c.user],async([c])=>{var f,u;if(c!==a)if(a=c,c){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),o({Authorization:`Bearer ${g}`}),i({Authorization:`Bearer ${g}`});try{let k=await userService(t).getMyProfile(),l=we(k,g);P.getState().actions.setUser(l);}catch{P.getState().actions.signOut();}}let{eventCallbacks:S,user:T}=P.getState();(f=S==null?void 0:S.onAuthStateChange)==null||f.call(S,T,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:g}=P.getState();(u=g==null?void 0:g.onAuthStateChange)==null||u.call(g,null,false);}}),p=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:c,user:f}=P.getState();if(c){let u=tokenStorage.getAuthToken();u?(e({Authorization:`Bearer ${u}`}),n({Authorization:`Bearer ${u}`}),r({Authorization:`Bearer ${u}`}),o({Authorization:`Bearer ${u}`}),i({Authorization:`Bearer ${u}`}),f&&f.accessToken!==u&&P.getState().actions.setUser({...f,accessToken:u})):(P.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{d(),p();}},[e,n,r,o,i,t]),null},Po=()=>(W(),null),Z=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(Co,{}),jsx(Po,{}),e]});function Te(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:d,isLoading:p}=L(),[c,f]=useState(null),u=useRef(null),g=useRef(false),S=useRef(null),T=useRef(null),_=useCallback(async v=>{var R,I;if(v)try{let C=await s(v);if((R=C.data)!=null&&R.idToken&&((I=C.data)!=null&&I.refreshToken)){tokenStorage.setTokens({idToken:C.data.idToken,refreshToken:C.data.refreshToken});let m=Re(C.data.idToken);a(!0),d(!1),n==null||n(m);}}catch(C){let m=C instanceof Error?C.message:"Token refresh failed";T.current=m,t==null||t(m),d(false);}},[s,a,d,n,t]),k=useCallback(()=>{S.current&&(clearInterval(S.current),S.current=null),g.current=false;},[]),l=useCallback(v=>{var I;let R=oe.concat((I=window==null?void 0:window.location)==null?void 0:I.origin);if(v.origin!=="*"&&!R.includes(v.origin)){console.warn("Rejected message from untrusted origin:",v.origin);return}if(!v.data||typeof v.data!="object"){console.warn("Invalid message data received");return}if(v.data.type==="LOGIN_SUCCESS"){let{refreshToken:C}=v.data;C&&_(C),g.current=true,k();}else if(v.data.type==="LOGIN_ERROR"){let C=v.data.error||"Login failed";T.current=C,t==null||t(C),d(false),g.current=true,k();}},[_,d,k,t]);useEffect(()=>{(async()=>{try{let R=await i();f(R.statusMessage||"");}catch(R){console.error("error",R),f("");}})();},[]);let A=useCallback(()=>{let I=window.screenX+(window.outerWidth-500)/2,C=window.screenY+(window.outerHeight-600)/2;try{if(c===null)return;if(c===""){let m="Google sign in failed. Please try again later.";T.current=m,t==null||t(m);return}if(T.current=null,d(!0),u.current=window.open(c,"oauthPopup",`width=500,height=600,left=${I},top=${C},resizable,scrollbars`),!u.current){d(!1);let m="Popup blocked. Please allow popups for this site.";T.current=m,r==null||r(),t==null||t(m);return}S.current=setInterval(()=>{if(u.current&&u.current.closed&&(S.current&&(clearInterval(S.current),S.current=null),!g.current)){let m="Authentication popup was closed";T.current=m,o==null||o(),t==null||t(m),d(!1);}},500);}catch(m){let ir=m instanceof Error?m.message:"Google sign in failed";T.current=ir,t==null||t(ir),d(false);}},[i,d,l,t,r,o,c]);return useEffect(()=>(window.addEventListener("message",l),()=>{window.removeEventListener("message",l);}),[l]),useEffect(()=>()=>{k();},[k]),{signIn:A,isLoading:p,error:T.current}}function ot({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let d={"Chip-Authorization":e};ne(e),r(d);}},[e,r]);let{data:o,isLoading:i,isError:s,isSuccess:a}=useChipScanStory({token:e,id:n});return useEffect(()=>{s&&(t==null||t());},[s,t]),o?{data:{externalUrl:o==null?void 0:o.external_url,campaignDetail:o==null?void 0:o.project,locationDetail:o==null?void 0:o.location,scanCounter:o==null?void 0:o.scan_counter,campaignId:o==null?void 0:o.campaign_id,chipModelId:o==null?void 0:o.chip_model_id,organizationId:o==null?void 0:o.organization_id,projectId:o==null?void 0:o.project_id,locationId:o==null?void 0:o.location_id,chipUid:o==null?void 0:o.uid},isLoading:i,isError:s,isSuccess:a}:{data:null,isLoading:i,isError:s,isSuccess:a}}var er=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(er||{});var rr=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),tr=(e,n,t)=>e.filter(r=>r[n]===t);var ht=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=L(),{environment:i,version:s}=t,[a,d]=useState(null),[p,c]=useState("");return useEffect(()=>{(async()=>{let u=await H();c(u);})();},[]),useEffect(()=>{(async()=>{try{let u=await H();d({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":u}},responseInterceptors:{onFulfilled:k=>k,onRejected:async k=>{var v,R,I;let l=k.config,A=tokenStorage.getAuthToken();if(((v=k.response)==null?void 0:v.status)===401&&!l._retry){let C=parseInt(getFromLS(x)||"0",10);if(C>=3)return await r(),setToLS(x,0),Promise.reject(k);if(setToLS(x,`${C+1}`),l._retry=!0,A)try{let m=await o();if((R=m==null?void 0:m.data)!=null&&R.idToken)return l.headers.Authorization=`Bearer ${(I=m==null?void 0:m.data)==null?void 0:I.idToken}`,bo(l)}catch(m){return console.error("Failed to refresh token:",m),await r(),Promise.reject(m)}}}},requestInterceptors:{onFulfilled:k=>k,onRejected:k=>Promise.reject(k)},useDevTool:!0});}catch(u){console.error(u);}})();},[n]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${E[i].API_BASE_URL}/${s}`,baseCoreURL:`${E[i].API_BASE_CORE_URL}/${s}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${E[i].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${E[i].API_ACHIEVEMENT_URL}/${s}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${E[i].API_GENERATE_CERTIFICATE_URL}/v1`,children:jsxs(PhygitalConsentProvider,{...a,deviceId:p,baseURL:`${E[i].API_CONSENT_URL}/v1`,axiosConfig:{headers:{"Content-Type":"application/json"}},children:[jsx(ae,{}),e]})})})})}):jsx(Fragment,{})};var yt=({children:e,queryClient:n,apiConfig:t})=>{let{environment:r}=t,o=useMemo(()=>{let i=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(i)return {projectKey:i,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(j,{config:o,children:jsx(ht,{queryClient:n,apiConfig:t,children:jsx(Z,{baseURL:`${E[r].API_BASE_URL}`,queryClient:n,children:e})})})};function Fo(e,n){if(!(n!=null&&n.reward_models))return [];let t=n.reward_models;return e.map((r,o)=>{var a,d;let i=((a=t[o])==null?void 0:a[0])||null,s=((d=r.subAchievementIds)==null?void 0:d.map((p,c)=>{var u,g;let f=((g=t[o*(((u=r.subAchievementIds)==null?void 0:u.length)||0)+c+1])==null?void 0:g[0])||null;return {id:p,reward_model:f}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var Wo=({campaignId:e})=>{let{data:n,isLoading:t}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>n!=null&&n.data?n.data.map(d=>d.groupRewardId).filter(d=>d!==void 0):[],[n==null?void 0:n.data]),{mutate:o,data:i,isPending:s}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&o({group_reward_ids:r});},[r,o]),{mappedAchievements:useMemo(()=>!(i!=null&&i.data)||!(n!=null&&n.data)?[]:Fo(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},be=Wo;var nr=(r=>(r.DEV="dev",r.STAGING="staging",r.PRODUCTION="production",r))(nr||{});h(Oe,w);
2
2
  export{oe as ALLOWED_ORIGINS,je as AchievementTrackingProvider,ee as AchievementType,Z as AuthProvider,te as CALLBACK_URL,ae as DataTrackingConsentSync,nr as Environment,ce as NotificationProvider,Ye as RewardClaimStatus,j as SessionReplayProvider,yt as TapquestCoreProvider,er as TaskType,z as TrackerContext,D as accessTokenKey,H as checkDeviceUid,B as chipAuthTokenKey,b as convertSnakeToCamel,Re as decodeJWTToken,N as deviceUIDKey,tr as filterLocationsByProperty,Be as generateDeviceId,Tr as getAccessToken,K as getActionsFromAchievementRule,Rr as getChipAuthToken,q as getDeviceUid,cr as getLocationIdsFromAchievementRule,_r as getRefreshToken,Pr as getRetryAttemptsRefreshToken,br as getSessionUserId,dr as getSurveyIdsFromAchievementRule,Ur as getUserInfo,re as httpMaxRetries,V as isAchievementCompleted,ie as isBrowser,G as refreshTokenKey,Ir as removeAccessToken,Cr as removeChipAuthToken,wr as removeDeviceUid,xr as removeRefreshToken,Mr as removeUserInfo,x as retryAttemptsRefreshToken,Sr as setAccessToken,ne as setChipAuthToken,ze as setDeviceUid,Er as setRefreshToken,kr as setRetryAttemptsRefreshToken,Lr as setUserInfo,rr as sortLocationsByIndex,we as transformProtoUserData,Qe as useAchievementTracking,be as useAchivementPlusRewardModel,L as useAuth,P as useAuthStore,Ge as useClearAchievementProgressCache,F as useDataTracking,Te as useGoogleLogin,yr as useManyAchievementProgress,ot as useScanChip,Q as useSessionReplay,W as useTokenRefresher,O as userInfoKey};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map