@phygitallabs/tapquest-core 6.5.0 → 6.6.0

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
@@ -51,6 +51,13 @@ declare enum AchievementType {
51
51
  SURVEY = "survey"
52
52
  }
53
53
 
54
+ declare function useClearAchievementProgressCache(): {
55
+ clearCache: (options?: {
56
+ refetchActive?: boolean;
57
+ refetchInactive?: boolean;
58
+ }) => void;
59
+ };
60
+
54
61
  declare const getLocationIdsFromAchievementRule: (achievement: Achievement) => string[];
55
62
  declare const getActionsFromAchievementRule: (achievement: Achievement) => string[];
56
63
  declare const isAchievementCompleted: (achievement: UserAchievementProgress) => boolean;
@@ -979,4 +986,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
979
986
  isLoading: boolean;
980
987
  };
981
988
 
982
- export { ALLOWED_ORIGINS, type APIVersionType$1 as APIVersionType, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
989
+ export { ALLOWED_ORIGINS, type APIVersionType$1 as APIVersionType, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
package/dist/index.d.ts CHANGED
@@ -51,6 +51,13 @@ declare enum AchievementType {
51
51
  SURVEY = "survey"
52
52
  }
53
53
 
54
+ declare function useClearAchievementProgressCache(): {
55
+ clearCache: (options?: {
56
+ refetchActive?: boolean;
57
+ refetchInactive?: boolean;
58
+ }) => void;
59
+ };
60
+
54
61
  declare const getLocationIdsFromAchievementRule: (achievement: Achievement) => string[];
55
62
  declare const getActionsFromAchievementRule: (achievement: Achievement) => string[];
56
63
  declare const isAchievementCompleted: (achievement: UserAchievementProgress) => boolean;
@@ -979,4 +986,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
979
986
  isLoading: boolean;
980
987
  };
981
988
 
982
- export { ALLOWED_ORIGINS, type APIVersionType$1 as APIVersionType, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
989
+ export { ALLOWED_ORIGINS, type APIVersionType$1 as APIVersionType, AchievementType, type AchievementWithProgress, type AuthCallbacks, AuthProvider, type AuthProviderProps$1 as AuthProviderProps, type AuthResponse, type AuthService, CALLBACK_URL, type CampaignByProjectIdModel, type CampaignLocationSummary, type CampaignLocationSummaryQueryOptions, type ClaimUserRewardPayload, type ClaimUserRewardRequest, type ClaimUserRewardResponse, type CreateModelGroupRewardRequest, type CreateModelGroupRewardResponse, type CreateRewardGroupRequest, type CreateRewardGroupResponse, type CreateRewardModelRequest, type CreateRewardModelResponse, type CreateUserRewardRequest, type CreateUserRewardResponse, type EnvironmentType, type FirebaseConfig, type GetManyRewardGroupsRequest, type GetManyRewardModelsRequest, type GetManyRewardModelsResponse, type GetManyUserRewardsRequest, type GetManyUserRewardsResponse, type GetOneRewardGroupRequest, type GetOneRewardModelRequest, type GetOneRewardModelResponse, type GetOneUserRewardRequest, type GetOneUserRewardResponse, NotificationProvider, type OpenReplayConfig, RewardClaimStatus, type RewardFilter, type RewardGroup, type RewardModelFilter, type RewardNotifyTheme, type RewardRule, type ScanChipData, type ScanChipResponse, SessionReplayProvider, type SessionReplayProviderProps, type SignInProvider, TapquestCoreProvider, TaskType, type TrackerAction, TrackerContext, type TrackerContextValue, type TrackerState, type UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
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,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,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 {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*as Dt 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 {jsxs,jsx,Fragment}from'react/jsx-runtime';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {createContext,useState,useRef,useCallback,useEffect,useReducer,useContext,useMemo}from'react';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 {useQuery}from'@tanstack/react-query';import {v4}from'uuid';import Ie from'posthog-js';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import st from'axios';var Ye=Object.defineProperty;var co=Object.getOwnPropertyDescriptor;var uo=Object.getOwnPropertyNames;var lo=Object.prototype.hasOwnProperty;var Ue=(e,s)=>{for(var o in s)Ye(e,o,{get:s[o],enumerable:true});},Je=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of uo(s))!lo.call(e,n)&&n!==o&&Ye(e,n,{get:()=>s[n],enumerable:!(r=co(s,n))||r.enumerable});return e},c=(e,s,o)=>(Je(e,s,"default"),o);var Ee={};Ue(Ee,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>_e,AuthProvider:()=>K,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>Le,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>ro,TaskType:()=>Ve,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>qe,generateDeviceId:()=>ze,getAccessToken:()=>Ir,getActionsFromAchievementRule:()=>Ze,getChipAuthToken:()=>Pr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Xe,getRefreshToken:()=>Ur,getRetryAttemptsRefreshToken:()=>wr,getSessionUserId:()=>Yr,getUserInfo:()=>Lr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>B,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Er,removeChipAuthToken:()=>kr,removeDeviceUid:()=>Cr,removeRefreshToken:()=>_r,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Tr,setChipAuthToken:()=>he,setDeviceUid:()=>We,setRefreshToken:()=>xr,setRetryAttemptsRefreshToken:()=>Sr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>He,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Xr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>ar,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,useScanChip:()=>zr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>H,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var u={};Ue(u,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>_e,AuthProvider:()=>K,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>Le,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>ro,TaskType:()=>Ve,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>qe,generateDeviceId:()=>ze,getAccessToken:()=>Ir,getActionsFromAchievementRule:()=>Ze,getChipAuthToken:()=>Pr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Xe,getRefreshToken:()=>Ur,getRetryAttemptsRefreshToken:()=>wr,getSessionUserId:()=>Yr,getUserInfo:()=>Lr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>B,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Er,removeChipAuthToken:()=>kr,removeDeviceUid:()=>Cr,removeRefreshToken:()=>_r,removeUserInfo:()=>br,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Tr,setChipAuthToken:()=>he,setDeviceUid:()=>We,setRefreshToken:()=>xr,setRetryAttemptsRefreshToken:()=>Sr,setUserInfo:()=>Mr,sortLocationsByIndex:()=>He,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Xr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>ar,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,useScanChip:()=>zr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>H,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var Xe=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(n=>{n.filters&&n.filters.forEach(t=>{t.label==="location_id"&&t.value&&(Array.isArray(t.value)?s.push(...t.value):s.push(t.value));});});});}),Array.from(new Set(s))},Ze=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.action&&s.push(r.action);});}),Array.from(new Set(s))},B=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>L(s));if(typeof e=="object"&&e.constructor===Object){let s={};for(let o in e)if(e.hasOwnProperty(o)){let r=o.replace(/_([a-z])/g,(n,t)=>t.toUpperCase());s[r]=L(e[o]);}return s}return e}var ar=(e,s)=>{let o=!!e.userId,r=o?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return o?useManyAchievementProgress(r,{...s,select:n=>n.map(t=>({...t,isCompleted:B(t)}))}):useManyAchievementProgressByDevice(r,{...s,select:n=>L(n).map(i=>({...i,isCompleted:B(i)}))})};var _e=(t=>(t.DEFAULT="default",t.MULTIPLE_CHECK_INS="multiple_check_ins",t.RANDOM_CHECK_INS="random_check_ins",t.GROUP_MISSION="group_mission",t.SURVEY="survey",t))(_e||{});var Le=(n=>(n.NOT_CLAIMED="not_claimed",n.CLAIMED="claimed",n.IN_PROGRESS="in_progress",n.FAILED="failed",n))(Le||{});var d={};Ue(d,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});c(d,Dt);var mo={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_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_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_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},P=mo;var se=({children:e,autoConnect:s=true,environment:o="dev",user:r,onWebSocketOpen:n,onWebSocketClose:t,onWebSocketMessage:i})=>{let a=P[o]?.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r?.id,accessToken:r?.accessToken??null,webSocketUrl:a,autoConnect:s,onWebSocketOpen:n,onWebSocketClose:t,onWebSocketMessage:i,children:e})};c(u,d);var M="phygital-user-info",b="accessToken",D="refreshToken",ie=3,w="retryAttemptsRefreshToken",O="Device-UID",G="chip-auth-token",ae="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",ce=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Po={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},p=create()(devtools(persist(subscribeWithSelector(immer((e,s)=>({...Po,actions:{setIsLoading:o=>e(r=>{r.isLoading=o;}),setCleanupFunctions:o=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...o};}),addEventCallbacks:o=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};});}),signInWithEmail:async(o,r)=>{let{eventCallbacks:n}=s();e(t=>{t.isLoading=true,t.error=null;});try{let t=await authService.signIn({email:o,password:r});return t?.data?.idToken&&t?.data?.refreshToken&&(tokenStorage.setTokens({idToken:t.data.idToken,refreshToken:t.data.refreshToken}),e(i=>{i.isSignedIn=!0;}),n.onLoginSuccess?.(t.data.idToken)),t}catch(t){let i=t instanceof Error?t.message:"Login failed";throw e(a=>{a.error=i;}),n.onLoginError?.(new Error(i)),t}finally{e(t=>{t.isLoading=false;});}},signInWithGoogle:async()=>{let{eventCallbacks:o}=s();try{let r=ae;return await authService.getOAuthSignInUrl(r)}catch(r){let n=r instanceof Error?r.message:"Google sign in failed";throw e(t=>{t.error=n;}),o.onLoginError?.(new Error(n)),r}},signUpWithEmail:async(o,r)=>{let{eventCallbacks:n}=s();e(t=>{t.isLoading=true,t.error=null;});try{let t=await authService.signUp({email:o,password:r});return t.data&&n.onSignupSuccess?.(),t}catch(t){let i=t instanceof Error?t.message:"Signup failed";throw e(a=>{a.error=i;}),n.onSignupError?.(new Error(i)),t}finally{e(t=>{t.isLoading=false,t.user=null,t.isSignedIn=false;});}},signOut:async()=>{let{eventCallbacks:o,cleanupFunctions:r}=s();e(n=>{n.isLoading=true,n.error=null;});try{e(i=>{i.user=null,i.isSignedIn=!1,i.error=null;});let n=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!n){tokenStorage.clearTokens();return}await authService.logout({refreshToken:n}),tokenStorage.clearTokens();try{r.clearQueryCache?.(),r.clearOrganization?.(),r.clearCustomData?.(),r.clearHeaders?.();}catch(i){console.warn("Error during logout cleanup:",i);}o.onLogoutSuccess?.();}catch(n){console.log(n);let t=n instanceof Error?n.message:"Logout failed";throw e(i=>{i.error=t;}),o.onLogoutError?.(new Error(t)),n}finally{e(n=>{n.isLoading=false;});}},sendPasswordResetEmail:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:o});}catch(r){let n=r instanceof Error?r.message:"Failed to send reset email";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(o)}catch(r){let n=r instanceof Error?r.message:"Failed to reset password";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(o)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(o)}catch(r){let n=r instanceof Error?r.message:"Failed to send reset email";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(o)}catch(r){let n=r instanceof Error?r.message:"Failed to send verify code";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async o=>{let r=await authService.refreshToken({refreshToken:o??tokenStorage.getRefreshToken()??""});return r.data?.idToken&&r.data?.refreshToken&&tokenStorage.setTokens({idToken:r.data?.idToken,refreshToken:r.data?.refreshToken}),r},clearError:()=>e(o=>{o.error=null;}),setUser:o=>e(r=>{r.user=o;}),setIsSignedIn:o=>e(r=>{r.isSignedIn=o;}),setIsInitialized:o=>e(r=>{r.isInitialized=o;}),patchUser:o=>e(r=>{r.user?r.user={...r.user,...o}:r.user=o;}),initialize:()=>{e(o=>{let r=tokenStorage.getAuthToken();o.isSignedIn=!!r,o.isInitialized=true;});},syncAuthState:()=>{e(o=>{let r=tokenStorage.getAuthToken(),n=o.isSignedIn;o.isSignedIn=!!r,n!==o.isSignedIn&&(o.isSignedIn?o.eventCallbacks?.onAuthStateChange?.(o.user,true):o.eventCallbacks?.onAuthStateChange?.(null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),I=()=>{let e=p(i=>i.user),s=p(i=>i.isSignedIn),o=p(i=>i.isInitialized),r=p(i=>i.isLoading),n=p(i=>i.error),t=p(i=>i.actions);return {user:e,isSignedIn:s,isInitialized:o,isLoading:r,error:n,...t}};var de=(e,s)=>{let o={...e},r={};try{r=jwtDecode(s);}catch(n){console.warn("Failed to decode token in transformUserData:",n);}return o.exp=r.exp||0,o.accessToken=s||"",o.roles=r?.roles||["USER"],o.account_type=r?.account_type||0,o.picture=e.picture||"",o},ue=e=>{try{return jwtDecode(e)}catch(s){return console.warn("Failed to decode token in decodeJWTToken:",s),null}};function N(){let{refreshToken:e,signOut:s}=I(),o=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),s();}};useQuery({queryKey:["refresh-token"],queryFn:()=>o(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Lo=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:s,coreApi:o}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:n}=useRewardService(),{updateHeaders:t}=useGenerateCertificateService();return useEffect(()=>{p.getState().actions.initialize();let i=tokenStorage.getAuthToken();if(i){e({Authorization:`Bearer ${i}`}),s({Authorization:`Bearer ${i}`}),r({Authorization:`Bearer ${i}`}),n({Authorization:`Bearer ${i}`}),t({Authorization:`Bearer ${i}`});let{user:m}=p.getState();m&&m.accessToken!==i&&p.getState().actions.setUser({...m,accessToken:i});}let a=p.getState().isSignedIn,l=p.subscribe(m=>[m.isSignedIn,m.user],async([m])=>{if(m!==a)if(a=m,m){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),s({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`}),t({Authorization:`Bearer ${g}`});try{let f=await userService(o).getMyProfile(),k=de(f,g);p.getState().actions.setUser(k);}catch{p.getState().actions.signOut();}}let{eventCallbacks:h,user:T}=p.getState();h?.onAuthStateChange?.(T,true);}else {e({}),s({}),r({Authorization:""}),n({Authorization:""}),t({Authorization:""});let{eventCallbacks:g}=p.getState();g?.onAuthStateChange?.(null,false);}}),_=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:m,user:g}=p.getState();if(m){let h=tokenStorage.getAuthToken();h?(e({Authorization:`Bearer ${h}`}),s({Authorization:`Bearer ${h}`}),r({Authorization:`Bearer ${h}`}),n({Authorization:`Bearer ${h}`}),t({Authorization:`Bearer ${h}`}),g&&g.accessToken!==h&&p.getState().actions.setUser({...g,accessToken:h})):(p.getState().actions.signOut(),e({}),s({}),r({Authorization:""}),n({Authorization:""}),t({Authorization:""}));}});return ()=>{l(),_();}},[e,s,r,n,t,o]),null},Mo=()=>(N(),null),K=({children:e,baseURL:s,queryClient:o})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:s,queryClient:o,children:[jsx(Lo,{}),jsx(Mo,{}),e]});function fe(e={}){let{onSuccess:s,onError:o,onPopupBlocked:r,onPopupClosed:n}=e,{signInWithGoogle:t,refreshToken:i,setIsSignedIn:a,setIsLoading:l,isLoading:_}=I(),[m,g]=useState(null),h=useRef(null),T=useRef(false),C=useRef(null),f=useRef(null),k=useCallback(async v=>{if(v)try{let y=await i(v);if(y.data?.idToken&&y.data?.refreshToken){tokenStorage.setTokens({idToken:y.data.idToken,refreshToken:y.data.refreshToken});let R=ue(y.data.idToken);a(!0),l(!1),s?.(R);}}catch(y){let R=y instanceof Error?y.message:"Token refresh failed";f.current=R,o?.(R),l(false);}},[i,a,l,s,o]),E=useCallback(()=>{C.current&&(clearInterval(C.current),C.current=null),T.current=false;},[]),U=useCallback(v=>{let y=ce.concat(window?.location?.origin);if(v.origin!=="*"&&!y.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:R}=v.data;R&&k(R),T.current=true,E();}else if(v.data.type==="LOGIN_ERROR"){let R=v.data.error||"Login failed";f.current=R,o?.(R),l(false),T.current=true,E();}},[k,l,E,o]);useEffect(()=>{(async()=>{try{let y=await t();g(y.statusMessage||"");}catch(y){console.error("error",y),g("");}})();},[]);let x=useCallback(()=>{let R=window.screenX+(window.outerWidth-500)/2,ao=window.screenY+(window.outerHeight-600)/2;try{if(m===null)return;if(m===""){let A="Google sign in failed. Please try again later.";f.current=A,o?.(A);return}if(f.current=null,l(!0),h.current=window.open(m,"oauthPopup",`width=500,height=600,left=${R},top=${ao},resizable,scrollbars`),!h.current){l(!1);let A="Popup blocked. Please allow popups for this site.";f.current=A,r?.(),o?.(A);return}C.current=setInterval(()=>{if(h.current&&h.current.closed&&(C.current&&(clearInterval(C.current),C.current=null),!T.current)){let A="Authentication popup was closed";f.current=A,n?.(),o?.(A),l(!1);}},500);}catch(A){let Qe=A instanceof Error?A.message:"Google sign in failed";f.current=Qe,o?.(Qe),l(false);}},[t,l,U,o,r,n,m]);return useEffect(()=>(window.addEventListener("message",U),()=>{window.removeEventListener("message",U);}),[U]),useEffect(()=>()=>{E();},[E]),{signIn:x,isLoading:_,error:f.current}}var ze=async()=>{try{return await No()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},No=async()=>{let e=new Date().toISOString(),s=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(s),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")};var $=()=>typeof window>"u"?null:localStorage.getItem(O),We=e=>{typeof window>"u"||localStorage.setItem(O,e);},Cr=()=>{typeof window>"u"||localStorage.removeItem(O);},ge=async()=>{let e=$();return e||(e=await ze(),We(e)),e},Pr=()=>typeof window>"u"?null:localStorage.getItem(G),he=e=>{typeof window>"u"||localStorage.setItem(G,e);},kr=()=>{typeof window>"u"||localStorage.removeItem(G);},wr=()=>typeof window>"u"?null:localStorage.getItem(w),Sr=e=>{typeof window>"u"||localStorage.setItem(w,e);},Ir=()=>typeof window>"u"?null:localStorage.getItem(b),Tr=e=>{typeof window>"u"||localStorage.setItem(b,e);},Er=()=>{typeof window>"u"||localStorage.removeItem(b);},Ur=()=>typeof window>"u"?null:localStorage.getItem(D),xr=e=>{typeof window>"u"||localStorage.setItem(D,e);},_r=()=>{typeof window>"u"||localStorage.removeItem(D);},Lr=()=>{if(typeof window>"u")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(s){return console.error("Failed to parse stored user data:",s),null}},Mr=e=>{typeof window>"u"||localStorage.setItem(M,JSON.stringify(e));},br=()=>{typeof window>"u"||localStorage.removeItem(M);};function zr({token:e,id:s,onScanChipError:o}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let l={"Chip-Authorization":e};he(e),r(l);}},[e,r]);let{data:n,isLoading:t,isError:i,isSuccess:a}=useChipScanStory({token:e,id:s});return useEffect(()=>{i&&o?.();},[i,o]),n?{data:{externalUrl:n?.external_url,campaignDetail:n?.project,locationDetail:n?.location,scanCounter:n?.scan_counter,campaignId:n?.campaign_id,chipModelId:n?.chip_model_id,organizationId:n?.organization_id,projectId:n?.project_id,locationId:n?.location_id,chipUid:n?.uid},isLoading:t,isError:i,isSuccess:a}:{data:null,isLoading:t,isError:i,isSuccess:a}}var Ve=(n=>(n.CHECK_IN="check_in",n.CREATE_MEMORY="create_memory",n.FILL_FORM="fill_form",n.SHARE="share",n))(Ve||{});var He=e=>[...e].sort((s,o)=>(s.index??0)-(o.index??0)),qe=(e,s,o)=>e.filter(r=>r[s]===o);var Yr=e=>e||$(),Se=()=>typeof window<"u";var F=createContext(null);function Ko(){return v4()}async function $o(e){try{let s=(await import('@openreplay/tracker')).default,o=e?.userIdEnabled&&e?.getUserId?e.getUserId:Ko,r={projectKey:e?.projectKey||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e?.ingestPoint,captureExceptions:e.captureExceptions??!0,capturePerformance:e.capturePerformance??!0,network:e.network||{capturePayload:!0,sanitizer:t=>t},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:e.obscureTextEmails??!0,obscureTextNumbers:e.obscureTextNumbers??!1,obscureInputEmails:e.obscureInputEmails??!0,__DISABLE_SECURE_MODE:e.__DISABLE_SECURE_MODE??(typeof process<"u"&&process.env?.NODE_ENV==="development")},n=new s(r);if(e?.userIdEnabled){let t=o();n.setUserID(t),console.log("User ID set:",t);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",r.projectKey),console.log("Ingest Point:",r.ingestPoint),n}catch(s){throw console.error("Failed to create tracker:",s),s}}function Vo(e,s){let{debug:o=false}=e.config;switch(s.type){case "init":return !e.tracker&&Se()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(o,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:$o(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(o,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(s.payload),console.log(o,"User ID updated:",s.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{Object.entries(s.payload||{})?.forEach(([n,t])=>{r.setMetadata(n,t);}),console.log(o,"Metadata updated:",s.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var V=({children:e,config:s={}})=>{let[,o]=useReducer(Vo,{tracker:null,config:s}),r=()=>o({type:"init"}),n=()=>o({type:"start"}),t=a=>o({type:"setUserId",payload:a}),i=a=>o({type:"setMetadata",payload:a});return useEffect(()=>{r(),n();},[]),jsx(F.Provider,{value:{initTracker:r,startTracking:n,setUserId:t,setMetadata:i},children:e})};function H(){let e=useContext(F);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var jo=(e,s)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...s});}catch(o){console.error(o);}},Qo=(e,s)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,s);},Jo=(e,s)=>{Ie.capture(e,s);};function Xr(){let{setUserId:e,setMetadata:s}=H();return {trackEvent:(t,i,a)=>{console.log("trackEvent ",t,i),a=a||["gtm"],a.includes("gtm")&&typeof window<"u"&&jo(t,i),a.includes("ga")&&typeof gtag=="function"&&Qo(t,i),a.includes("posthog")&&typeof Ie=="function"&&Jo(t,i);},trackUserIdentify:t=>{Ie.identify(t.email,{email:t.email,name:t.name,avatar:t.avatar,uid:t.uid}),e(t.id),s({user_email:t.email});},trackLogoutEvent:()=>{Ie.capture("user_signed_out");}}}var eo=({children:e,queryClient:s,apiConfig:o={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:n}=I(),{environment:t,version:i}=o,[a,l]=useState(null);return useEffect(()=>{(async()=>{try{let m=await ge();l({queryClient:s,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":m}},responseInterceptors:{onFulfilled:f=>f,onRejected:async f=>{let k=f.config,E=tokenStorage.getAuthToken();if(f.response?.status===401&&!k._retry){let U=parseInt(getFromLS(w)||"0",10);if(U>=3)return await r(),setToLS(w,0),Promise.reject(f);if(setToLS(w,`${U+1}`),k._retry=!0,E)try{let x=await n();if(x?.data?.idToken)return k.headers.Authorization=`Bearer ${x?.data?.idToken}`,st(k)}catch(x){return console.error("Failed to refresh token:",x),await r(),Promise.reject(x)}}}},requestInterceptors:{onFulfilled:f=>f,onRejected:f=>Promise.reject(f)},useDevTool:!0});}catch(m){console.error(m);}})();},[s]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${P[t].API_BASE_URL}/${i}`,baseCoreURL:`${P[t].API_BASE_CORE_URL}/${i}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${P[t].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${P[t].API_ACHIEVEMENT_URL}/${i}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${P[t].API_GENERATE_CERTIFICATE_URL}/v1`,children:e})})})}):jsx(Fragment,{})};var ro=({children:e,queryClient:s,apiConfig:o})=>{let{environment:r}=o,n=useMemo(()=>{let t=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(t)return {projectKey:t,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(V,{config:n,children:jsx(eo,{queryClient:s,apiConfig:o,children:jsx(K,{baseURL:`${P[r].API_BASE_URL}`,queryClient:s,children:e})})})};function lt(e,s){if(!s?.reward_models)return [];let o=s.reward_models;return e.map((r,n)=>{let t=o[n]?.[0]||null,i=r.subAchievementIds?.map((a,l)=>{let _=o[n*(r.subAchievementIds?.length||0)+l+1]?.[0]||null;return {id:a,reward_model:_}})||[];return {id:r.id,name:r.name,reward_model:t,subAchievements:i}})}var pt=({campaignId:e})=>{let{data:s,isLoading:o}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>s?.data?s.data.map(l=>l.groupRewardId).filter(l=>l!==void 0):[],[s?.data]),{mutate:n,data:t,isPending:i}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&n({group_reward_ids:r});},[r,n]),{mappedAchievements:useMemo(()=>!t?.data||!s?.data?[]:lt(s.data,t.data),[t,s?.data]),isLoading:o||i}},Te=pt;c(Ee,u);
2
- export{ce as ALLOWED_ORIGINS,_e as AchievementType,K as AuthProvider,ae as CALLBACK_URL,se as NotificationProvider,Le as RewardClaimStatus,V as SessionReplayProvider,ro as TapquestCoreProvider,Ve as TaskType,F as TrackerContext,b as accessTokenKey,ge as checkDeviceUid,G as chipAuthTokenKey,L as convertSnakeToCamel,ue as decodeJWTToken,O as deviceUIDKey,qe as filterLocationsByProperty,ze as generateDeviceId,Ir as getAccessToken,Ze as getActionsFromAchievementRule,Pr as getChipAuthToken,$ as getDeviceUid,Xe as getLocationIdsFromAchievementRule,Ur as getRefreshToken,wr as getRetryAttemptsRefreshToken,Yr as getSessionUserId,Lr as getUserInfo,ie as httpMaxRetries,B as isAchievementCompleted,Se as isBrowser,D as refreshTokenKey,Er as removeAccessToken,kr as removeChipAuthToken,Cr as removeDeviceUid,_r as removeRefreshToken,br as removeUserInfo,w as retryAttemptsRefreshToken,Tr as setAccessToken,he as setChipAuthToken,We as setDeviceUid,xr as setRefreshToken,Sr as setRetryAttemptsRefreshToken,Mr as setUserInfo,He as sortLocationsByIndex,de as transformProtoUserData,Te as useAchivementPlusRewardModel,I as useAuth,p as useAuthStore,Xr as useDataTracking,fe as useGoogleLogin,ar as useManyAchievementProgress,zr as useScanChip,H as useSessionReplay,N as useTokenRefresher,M as userInfoKey};//# sourceMappingURL=index.js.map
1
+ import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,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,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,useState,useRef,useEffect,useReducer,useContext,useMemo}from'react';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*as Kt 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 {jsxs,jsx,Fragment}from'react/jsx-runtime';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 {v4}from'uuid';import Ie from'posthog-js';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import ct from'axios';var Xe=Object.defineProperty;var uo=Object.getOwnPropertyDescriptor;var lo=Object.getOwnPropertyNames;var po=Object.prototype.hasOwnProperty;var Ue=(e,s)=>{for(var o in s)Xe(e,o,{get:s[o],enumerable:true});},Ye=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let n of lo(s))!po.call(e,n)&&n!==o&&Xe(e,n,{get:()=>s[n],enumerable:!(r=uo(s,n))||r.enumerable});return e},c=(e,s,o)=>(Ye(e,s,"default"),o);var Ee={};Ue(Ee,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>Le,AuthProvider:()=>W,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>Me,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>oo,TaskType:()=>qe,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>je,generateDeviceId:()=>Ke,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>er,getChipAuthToken:()=>kr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Ze,getRefreshToken:()=>xr,getRetryAttemptsRefreshToken:()=>Sr,getSessionUserId:()=>Xr,getUserInfo:()=>Mr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>B,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Ur,removeChipAuthToken:()=>wr,removeDeviceUid:()=>Pr,removeRefreshToken:()=>Lr,removeUserInfo:()=>Dr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Er,setChipAuthToken:()=>he,setDeviceUid:()=>We,setRefreshToken:()=>_r,setRetryAttemptsRefreshToken:()=>Ir,setUserInfo:()=>br,sortLocationsByIndex:()=>He,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>xe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Zr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>cr,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,useScanChip:()=>Kr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var u={};Ue(u,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>Le,AuthProvider:()=>W,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>Me,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>oo,TaskType:()=>qe,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>je,generateDeviceId:()=>Ke,getAccessToken:()=>Tr,getActionsFromAchievementRule:()=>er,getChipAuthToken:()=>kr,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Ze,getRefreshToken:()=>xr,getRetryAttemptsRefreshToken:()=>Sr,getSessionUserId:()=>Xr,getUserInfo:()=>Mr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>B,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Ur,removeChipAuthToken:()=>wr,removeDeviceUid:()=>Pr,removeRefreshToken:()=>Lr,removeUserInfo:()=>Dr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Er,setChipAuthToken:()=>he,setDeviceUid:()=>We,setRefreshToken:()=>_r,setRetryAttemptsRefreshToken:()=>Ir,setUserInfo:()=>br,sortLocationsByIndex:()=>He,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>xe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Zr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>cr,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,useScanChip:()=>Kr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>q,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});function xe(){let e=useQueryClient();return {clearCache:useCallback(o=>{let{refetchActive:r=true,refetchInactive:n=false}=o||{};[["deviceUidAchievementProgressMany"],["achievementProgressMany"]].forEach(i=>{e.invalidateQueries({queryKey:i,refetchType:r?n?"all":"active":"none"});}),console.log("\u{1F504} Achievement progress cache cleared");},[e])}}var Ze=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(n=>{n.filters&&n.filters.forEach(t=>{t.label==="location_id"&&t.value&&(Array.isArray(t.value)?s.push(...t.value):s.push(t.value));});});});}),Array.from(new Set(s))},er=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.action&&s.push(r.action);});}),Array.from(new Set(s))},B=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>L(s));if(typeof e=="object"&&e.constructor===Object){let s={};for(let o in e)if(e.hasOwnProperty(o)){let r=o.replace(/_([a-z])/g,(n,t)=>t.toUpperCase());s[r]=L(e[o]);}return s}return e}var cr=(e,s)=>{let o=!!e.userId,r=o?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return o?useManyAchievementProgress(r,{...s,select:n=>n.map(t=>({...t,isCompleted:B(t)}))}):useManyAchievementProgressByDevice(r,{...s,select:n=>L(n).map(i=>({...i,isCompleted:B(i)}))})};var Le=(t=>(t.DEFAULT="default",t.MULTIPLE_CHECK_INS="multiple_check_ins",t.RANDOM_CHECK_INS="random_check_ins",t.GROUP_MISSION="group_mission",t.SURVEY="survey",t))(Le||{});var Me=(n=>(n.NOT_CLAIMED="not_claimed",n.CLAIMED="claimed",n.IN_PROGRESS="in_progress",n.FAILED="failed",n))(Me||{});var d={};Ue(d,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});c(d,Kt);var ho={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_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_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_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},P=ho;var se=({children:e,autoConnect:s=true,environment:o="dev",user:r,onWebSocketOpen:n,onWebSocketClose:t,onWebSocketMessage:i})=>{let a=P[o]?.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r?.id,accessToken:r?.accessToken??null,webSocketUrl:a,autoConnect:s,onWebSocketOpen:n,onWebSocketClose:t,onWebSocketMessage:i,children:e})};c(u,d);var M="phygital-user-info",b="accessToken",D="refreshToken",ie=3,w="retryAttemptsRefreshToken",O="Device-UID",G="chip-auth-token",ae="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",ce=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var So={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},p=create()(devtools(persist(subscribeWithSelector(immer((e,s)=>({...So,actions:{setIsLoading:o=>e(r=>{r.isLoading=o;}),setCleanupFunctions:o=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...o};}),addEventCallbacks:o=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};});}),signInWithEmail:async(o,r)=>{let{eventCallbacks:n}=s();e(t=>{t.isLoading=true,t.error=null;});try{let t=await authService.signIn({email:o,password:r});return t?.data?.idToken&&t?.data?.refreshToken&&(tokenStorage.setTokens({idToken:t.data.idToken,refreshToken:t.data.refreshToken}),e(i=>{i.isSignedIn=!0;}),n.onLoginSuccess?.(t.data.idToken)),t}catch(t){let i=t instanceof Error?t.message:"Login failed";throw e(a=>{a.error=i;}),n.onLoginError?.(new Error(i)),t}finally{e(t=>{t.isLoading=false;});}},signInWithGoogle:async()=>{let{eventCallbacks:o}=s();try{let r=ae;return await authService.getOAuthSignInUrl(r)}catch(r){let n=r instanceof Error?r.message:"Google sign in failed";throw e(t=>{t.error=n;}),o.onLoginError?.(new Error(n)),r}},signUpWithEmail:async(o,r)=>{let{eventCallbacks:n}=s();e(t=>{t.isLoading=true,t.error=null;});try{let t=await authService.signUp({email:o,password:r});return t.data&&n.onSignupSuccess?.(),t}catch(t){let i=t instanceof Error?t.message:"Signup failed";throw e(a=>{a.error=i;}),n.onSignupError?.(new Error(i)),t}finally{e(t=>{t.isLoading=false,t.user=null,t.isSignedIn=false;});}},signOut:async()=>{let{eventCallbacks:o,cleanupFunctions:r}=s();e(n=>{n.isLoading=true,n.error=null;});try{e(i=>{i.user=null,i.isSignedIn=!1,i.error=null;});let n=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!n){tokenStorage.clearTokens();return}await authService.logout({refreshToken:n}),tokenStorage.clearTokens();try{r.clearQueryCache?.(),r.clearOrganization?.(),r.clearCustomData?.(),r.clearHeaders?.();}catch(i){console.warn("Error during logout cleanup:",i);}o.onLogoutSuccess?.();}catch(n){console.log(n);let t=n instanceof Error?n.message:"Logout failed";throw e(i=>{i.error=t;}),o.onLogoutError?.(new Error(t)),n}finally{e(n=>{n.isLoading=false;});}},sendPasswordResetEmail:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:o});}catch(r){let n=r instanceof Error?r.message:"Failed to send reset email";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(o)}catch(r){let n=r instanceof Error?r.message:"Failed to reset password";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(o)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(o)}catch(r){let n=r instanceof Error?r.message:"Failed to send reset email";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(o)}catch(r){let n=r instanceof Error?r.message:"Failed to send verify code";throw e(t=>{t.error=n;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async o=>{let r=await authService.refreshToken({refreshToken:o??tokenStorage.getRefreshToken()??""});return r.data?.idToken&&r.data?.refreshToken&&tokenStorage.setTokens({idToken:r.data?.idToken,refreshToken:r.data?.refreshToken}),r},clearError:()=>e(o=>{o.error=null;}),setUser:o=>e(r=>{r.user=o;}),setIsSignedIn:o=>e(r=>{r.isSignedIn=o;}),setIsInitialized:o=>e(r=>{r.isInitialized=o;}),patchUser:o=>e(r=>{r.user?r.user={...r.user,...o}:r.user=o;}),initialize:()=>{e(o=>{let r=tokenStorage.getAuthToken();o.isSignedIn=!!r,o.isInitialized=true;});},syncAuthState:()=>{e(o=>{let r=tokenStorage.getAuthToken(),n=o.isSignedIn;o.isSignedIn=!!r,n!==o.isSignedIn&&(o.isSignedIn?o.eventCallbacks?.onAuthStateChange?.(o.user,true):o.eventCallbacks?.onAuthStateChange?.(null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),I=()=>{let e=p(i=>i.user),s=p(i=>i.isSignedIn),o=p(i=>i.isInitialized),r=p(i=>i.isLoading),n=p(i=>i.error),t=p(i=>i.actions);return {user:e,isSignedIn:s,isInitialized:o,isLoading:r,error:n,...t}};var de=(e,s)=>{let o={...e},r={};try{r=jwtDecode(s);}catch(n){console.warn("Failed to decode token in transformUserData:",n);}return o.exp=r.exp||0,o.accessToken=s||"",o.roles=r?.roles||["USER"],o.account_type=r?.account_type||0,o.picture=e.picture||"",o},ue=e=>{try{return jwtDecode(e)}catch(s){return console.warn("Failed to decode token in decodeJWTToken:",s),null}};function N(){let{refreshToken:e,signOut:s}=I(),o=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),s();}};useQuery({queryKey:["refresh-token"],queryFn:()=>o(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Do=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:s,coreApi:o}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:n}=useRewardService(),{updateHeaders:t}=useGenerateCertificateService();return useEffect(()=>{p.getState().actions.initialize();let i=tokenStorage.getAuthToken();if(i){e({Authorization:`Bearer ${i}`}),s({Authorization:`Bearer ${i}`}),r({Authorization:`Bearer ${i}`}),n({Authorization:`Bearer ${i}`}),t({Authorization:`Bearer ${i}`});let{user:m}=p.getState();m&&m.accessToken!==i&&p.getState().actions.setUser({...m,accessToken:i});}let a=p.getState().isSignedIn,l=p.subscribe(m=>[m.isSignedIn,m.user],async([m])=>{if(m!==a)if(a=m,m){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),s({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`}),t({Authorization:`Bearer ${g}`});try{let f=await userService(o).getMyProfile(),k=de(f,g);p.getState().actions.setUser(k);}catch{p.getState().actions.signOut();}}let{eventCallbacks:h,user:T}=p.getState();h?.onAuthStateChange?.(T,true);}else {e({}),s({}),r({Authorization:""}),n({Authorization:""}),t({Authorization:""});let{eventCallbacks:g}=p.getState();g?.onAuthStateChange?.(null,false);}}),_=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:m,user:g}=p.getState();if(m){let h=tokenStorage.getAuthToken();h?(e({Authorization:`Bearer ${h}`}),s({Authorization:`Bearer ${h}`}),r({Authorization:`Bearer ${h}`}),n({Authorization:`Bearer ${h}`}),t({Authorization:`Bearer ${h}`}),g&&g.accessToken!==h&&p.getState().actions.setUser({...g,accessToken:h})):(p.getState().actions.signOut(),e({}),s({}),r({Authorization:""}),n({Authorization:""}),t({Authorization:""}));}});return ()=>{l(),_();}},[e,s,r,n,t,o]),null},Oo=()=>(N(),null),W=({children:e,baseURL:s,queryClient:o})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:s,queryClient:o,children:[jsx(Do,{}),jsx(Oo,{}),e]});function fe(e={}){let{onSuccess:s,onError:o,onPopupBlocked:r,onPopupClosed:n}=e,{signInWithGoogle:t,refreshToken:i,setIsSignedIn:a,setIsLoading:l,isLoading:_}=I(),[m,g]=useState(null),h=useRef(null),T=useRef(false),C=useRef(null),f=useRef(null),k=useCallback(async y=>{if(y)try{let v=await i(y);if(v.data?.idToken&&v.data?.refreshToken){tokenStorage.setTokens({idToken:v.data.idToken,refreshToken:v.data.refreshToken});let R=ue(v.data.idToken);a(!0),l(!1),s?.(R);}}catch(v){let R=v instanceof Error?v.message:"Token refresh failed";f.current=R,o?.(R),l(false);}},[i,a,l,s,o]),E=useCallback(()=>{C.current&&(clearInterval(C.current),C.current=null),T.current=false;},[]),U=useCallback(y=>{let v=ce.concat(window?.location?.origin);if(y.origin!=="*"&&!v.includes(y.origin)){console.warn("Rejected message from untrusted origin:",y.origin);return}if(!y.data||typeof y.data!="object"){console.warn("Invalid message data received");return}if(y.data.type==="LOGIN_SUCCESS"){let{refreshToken:R}=y.data;R&&k(R),T.current=true,E();}else if(y.data.type==="LOGIN_ERROR"){let R=y.data.error||"Login failed";f.current=R,o?.(R),l(false),T.current=true,E();}},[k,l,E,o]);useEffect(()=>{(async()=>{try{let v=await t();g(v.statusMessage||"");}catch(v){console.error("error",v),g("");}})();},[]);let x=useCallback(()=>{let R=window.screenX+(window.outerWidth-500)/2,co=window.screenY+(window.outerHeight-600)/2;try{if(m===null)return;if(m===""){let A="Google sign in failed. Please try again later.";f.current=A,o?.(A);return}if(f.current=null,l(!0),h.current=window.open(m,"oauthPopup",`width=500,height=600,left=${R},top=${co},resizable,scrollbars`),!h.current){l(!1);let A="Popup blocked. Please allow popups for this site.";f.current=A,r?.(),o?.(A);return}C.current=setInterval(()=>{if(h.current&&h.current.closed&&(C.current&&(clearInterval(C.current),C.current=null),!T.current)){let A="Authentication popup was closed";f.current=A,n?.(),o?.(A),l(!1);}},500);}catch(A){let Je=A instanceof Error?A.message:"Google sign in failed";f.current=Je,o?.(Je),l(false);}},[t,l,U,o,r,n,m]);return useEffect(()=>(window.addEventListener("message",U),()=>{window.removeEventListener("message",U);}),[U]),useEffect(()=>()=>{E();},[E]),{signIn:x,isLoading:_,error:f.current}}var Ke=async()=>{try{return await zo()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},zo=async()=>{let e=new Date().toISOString(),s=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(s),n=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(n)).map(a=>a.toString(16).padStart(2,"0")).join("")};var $=()=>typeof window>"u"?null:localStorage.getItem(O),We=e=>{typeof window>"u"||localStorage.setItem(O,e);},Pr=()=>{typeof window>"u"||localStorage.removeItem(O);},ge=async()=>{let e=$();return e||(e=await Ke(),We(e)),e},kr=()=>typeof window>"u"?null:localStorage.getItem(G),he=e=>{typeof window>"u"||localStorage.setItem(G,e);},wr=()=>{typeof window>"u"||localStorage.removeItem(G);},Sr=()=>typeof window>"u"?null:localStorage.getItem(w),Ir=e=>{typeof window>"u"||localStorage.setItem(w,e);},Tr=()=>typeof window>"u"?null:localStorage.getItem(b),Er=e=>{typeof window>"u"||localStorage.setItem(b,e);},Ur=()=>{typeof window>"u"||localStorage.removeItem(b);},xr=()=>typeof window>"u"?null:localStorage.getItem(D),_r=e=>{typeof window>"u"||localStorage.setItem(D,e);},Lr=()=>{typeof window>"u"||localStorage.removeItem(D);},Mr=()=>{if(typeof window>"u")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(s){return console.error("Failed to parse stored user data:",s),null}},br=e=>{typeof window>"u"||localStorage.setItem(M,JSON.stringify(e));},Dr=()=>{typeof window>"u"||localStorage.removeItem(M);};function Kr({token:e,id:s,onScanChipError:o}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let l={"Chip-Authorization":e};he(e),r(l);}},[e,r]);let{data:n,isLoading:t,isError:i,isSuccess:a}=useChipScanStory({token:e,id:s});return useEffect(()=>{i&&o?.();},[i,o]),n?{data:{externalUrl:n?.external_url,campaignDetail:n?.project,locationDetail:n?.location,scanCounter:n?.scan_counter,campaignId:n?.campaign_id,chipModelId:n?.chip_model_id,organizationId:n?.organization_id,projectId:n?.project_id,locationId:n?.location_id,chipUid:n?.uid},isLoading:t,isError:i,isSuccess:a}:{data:null,isLoading:t,isError:i,isSuccess:a}}var qe=(n=>(n.CHECK_IN="check_in",n.CREATE_MEMORY="create_memory",n.FILL_FORM="fill_form",n.SHARE="share",n))(qe||{});var He=e=>[...e].sort((s,o)=>(s.index??0)-(o.index??0)),je=(e,s,o)=>e.filter(r=>r[s]===o);var Xr=e=>e||$(),Se=()=>typeof window<"u";var F=createContext(null);function qo(){return v4()}async function Ho(e){try{let s=(await import('@openreplay/tracker')).default,o=e?.userIdEnabled&&e?.getUserId?e.getUserId:qo,r={projectKey:e?.projectKey||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e?.ingestPoint,captureExceptions:e.captureExceptions??!0,capturePerformance:e.capturePerformance??!0,network:e.network||{capturePayload:!0,sanitizer:t=>t},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:e.obscureTextEmails??!0,obscureTextNumbers:e.obscureTextNumbers??!1,obscureInputEmails:e.obscureInputEmails??!0,__DISABLE_SECURE_MODE:e.__DISABLE_SECURE_MODE??(typeof process<"u"&&process.env?.NODE_ENV==="development")},n=new s(r);if(e?.userIdEnabled){let t=o();n.setUserID(t),console.log("User ID set:",t);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",r.projectKey),console.log("Ingest Point:",r.ingestPoint),n}catch(s){throw console.error("Failed to create tracker:",s),s}}function jo(e,s){let{debug:o=false}=e.config;switch(s.type){case "init":return !e.tracker&&Se()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(o,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Ho(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(o,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(s.payload),console.log(o,"User ID updated:",s.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{Object.entries(s.payload||{})?.forEach(([n,t])=>{r.setMetadata(n,t);}),console.log(o,"Metadata updated:",s.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var V=({children:e,config:s={}})=>{let[,o]=useReducer(jo,{tracker:null,config:s}),r=()=>o({type:"init"}),n=()=>o({type:"start"}),t=a=>o({type:"setUserId",payload:a}),i=a=>o({type:"setMetadata",payload:a});return useEffect(()=>{r(),n();},[]),jsx(F.Provider,{value:{initTracker:r,startTracking:n,setUserId:t,setMetadata:i},children:e})};function q(){let e=useContext(F);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Yo=(e,s)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...s});}catch(o){console.error(o);}},Xo=(e,s)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,s);},Zo=(e,s)=>{Ie.capture(e,s);};function Zr(){let{setUserId:e,setMetadata:s}=q();return {trackEvent:(t,i,a)=>{console.log("trackEvent ",t,i),a=a||["gtm"],a.includes("gtm")&&typeof window<"u"&&Yo(t,i),a.includes("ga")&&typeof gtag=="function"&&Xo(t,i),a.includes("posthog")&&typeof Ie=="function"&&Zo(t,i);},trackUserIdentify:t=>{Ie.identify(t.email,{email:t.email,name:t.name,avatar:t.avatar,uid:t.uid}),e(t.id),s({user_email:t.email});},trackLogoutEvent:()=>{Ie.capture("user_signed_out");}}}var ro=({children:e,queryClient:s,apiConfig:o={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:n}=I(),{environment:t,version:i}=o,[a,l]=useState(null);return useEffect(()=>{(async()=>{try{let m=await ge();l({queryClient:s,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":m}},responseInterceptors:{onFulfilled:f=>f,onRejected:async f=>{let k=f.config,E=tokenStorage.getAuthToken();if(f.response?.status===401&&!k._retry){let U=parseInt(getFromLS(w)||"0",10);if(U>=3)return await r(),setToLS(w,0),Promise.reject(f);if(setToLS(w,`${U+1}`),k._retry=!0,E)try{let x=await n();if(x?.data?.idToken)return k.headers.Authorization=`Bearer ${x?.data?.idToken}`,ct(k)}catch(x){return console.error("Failed to refresh token:",x),await r(),Promise.reject(x)}}}},requestInterceptors:{onFulfilled:f=>f,onRejected:f=>Promise.reject(f)},useDevTool:!0});}catch(m){console.error(m);}})();},[s]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${P[t].API_BASE_URL}/${i}`,baseCoreURL:`${P[t].API_BASE_CORE_URL}/${i}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${P[t].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${P[t].API_ACHIEVEMENT_URL}/${i}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${P[t].API_GENERATE_CERTIFICATE_URL}/v1`,children:e})})})}):jsx(Fragment,{})};var oo=({children:e,queryClient:s,apiConfig:o})=>{let{environment:r}=o,n=useMemo(()=>{let t=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(t)return {projectKey:t,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(V,{config:n,children:jsx(ro,{queryClient:s,apiConfig:o,children:jsx(W,{baseURL:`${P[r].API_BASE_URL}`,queryClient:s,children:e})})})};function ft(e,s){if(!s?.reward_models)return [];let o=s.reward_models;return e.map((r,n)=>{let t=o[n]?.[0]||null,i=r.subAchievementIds?.map((a,l)=>{let _=o[n*(r.subAchievementIds?.length||0)+l+1]?.[0]||null;return {id:a,reward_model:_}})||[];return {id:r.id,name:r.name,reward_model:t,subAchievements:i}})}var gt=({campaignId:e})=>{let{data:s,isLoading:o}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>s?.data?s.data.map(l=>l.groupRewardId).filter(l=>l!==void 0):[],[s?.data]),{mutate:n,data:t,isPending:i}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&n({group_reward_ids:r});},[r,n]),{mappedAchievements:useMemo(()=>!t?.data||!s?.data?[]:ft(s.data,t.data),[t,s?.data]),isLoading:o||i}},Te=gt;c(Ee,u);
2
+ export{ce as ALLOWED_ORIGINS,Le as AchievementType,W as AuthProvider,ae as CALLBACK_URL,se as NotificationProvider,Me as RewardClaimStatus,V as SessionReplayProvider,oo as TapquestCoreProvider,qe as TaskType,F as TrackerContext,b as accessTokenKey,ge as checkDeviceUid,G as chipAuthTokenKey,L as convertSnakeToCamel,ue as decodeJWTToken,O as deviceUIDKey,je as filterLocationsByProperty,Ke as generateDeviceId,Tr as getAccessToken,er as getActionsFromAchievementRule,kr as getChipAuthToken,$ as getDeviceUid,Ze as getLocationIdsFromAchievementRule,xr as getRefreshToken,Sr as getRetryAttemptsRefreshToken,Xr as getSessionUserId,Mr as getUserInfo,ie as httpMaxRetries,B as isAchievementCompleted,Se as isBrowser,D as refreshTokenKey,Ur as removeAccessToken,wr as removeChipAuthToken,Pr as removeDeviceUid,Lr as removeRefreshToken,Dr as removeUserInfo,w as retryAttemptsRefreshToken,Er as setAccessToken,he as setChipAuthToken,We as setDeviceUid,_r as setRefreshToken,Ir as setRetryAttemptsRefreshToken,br as setUserInfo,He as sortLocationsByIndex,de as transformProtoUserData,Te as useAchivementPlusRewardModel,I as useAuth,p as useAuthStore,xe as useClearAchievementProgressCache,Zr as useDataTracking,fe as useGoogleLogin,cr as useManyAchievementProgress,Kr as useScanChip,q as useSessionReplay,N as useTokenRefresher,M as userInfoKey};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map