@phygitallabs/tapquest-core 6.7.2 → 6.7.3

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
@@ -420,7 +420,13 @@ interface CreateModelGroupRewardResponse {
420
420
  data: EntityRewardModel[];
421
421
  }
422
422
 
423
+ declare enum Environment {
424
+ DEV = "dev",
425
+ STAGING = "staging",
426
+ PRODUCTION = "production"
427
+ }
423
428
  type EnvironmentType = "dev" | "staging" | "production";
429
+ type APIVersionType = "v1" | "v2";
424
430
 
425
431
  interface NotificationCallbacks {
426
432
  onWebSocketOpen?: (metadata: Record<string, any>) => void;
@@ -1001,4 +1007,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
1001
1007
  isLoading: boolean;
1002
1008
  };
1003
1009
 
1004
- export { ALLOWED_ORIGINS, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, 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 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 TrackingEventName, 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, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
1010
+ export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, 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, Environment, 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 TrackingEventName, 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, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
package/dist/index.d.ts CHANGED
@@ -420,7 +420,13 @@ interface CreateModelGroupRewardResponse {
420
420
  data: EntityRewardModel[];
421
421
  }
422
422
 
423
+ declare enum Environment {
424
+ DEV = "dev",
425
+ STAGING = "staging",
426
+ PRODUCTION = "production"
427
+ }
423
428
  type EnvironmentType = "dev" | "staging" | "production";
429
+ type APIVersionType = "v1" | "v2";
424
430
 
425
431
  interface NotificationCallbacks {
426
432
  onWebSocketOpen?: (metadata: Record<string, any>) => void;
@@ -1001,4 +1007,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
1001
1007
  isLoading: boolean;
1002
1008
  };
1003
1009
 
1004
- export { ALLOWED_ORIGINS, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, 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 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 TrackingEventName, 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, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, useAchivementPlusRewardModel, useAuth, useAuthStore, useClearAchievementProgressCache, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
1010
+ export { ALLOWED_ORIGINS, type APIVersionType, type AchievementActionType, type AchievementTrackingContextValue, AchievementTrackingProvider, type AchievementTrackingProviderProps, 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, Environment, 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 TrackingEventName, 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, getSurveyIdsFromAchievementRule, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchievementTracking, 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,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,useEffect,useContext,useRef,useMemo,useState}from'react';import ne from'posthog-js';import {v4}from'uuid';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as fn 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 Ro from'axios';var or=Object.defineProperty;var gt=Object.getOwnPropertyDescriptor;var ht=Object.getOwnPropertyNames;var yt=Object.prototype.hasOwnProperty;var be=(e,n)=>{for(var t in n)or(e,t,{get:n[t],enumerable:true});},tr=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of ht(n))!yt.call(e,o)&&o!==t&&or(e,o,{get:()=>n[o],enumerable:!(r=gt(n,o))||r.enumerable});return e},f=(e,n,t)=>(tr(e,n,"default"),t);var Me={};be(Me,{ALLOWED_ORIGINS:()=>ee,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>qe,AchievementType:()=>Y,AuthProvider:()=>j,CALLBACK_URL:()=>Z,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>He,SessionReplayProvider:()=>W,TapquestCoreProvider:()=>ct,TaskType:()=>Ye,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>re,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Ze,generateDeviceId:()=>Ge,getAccessToken:()=>Pr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>yr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>nr,getRefreshToken:()=>kr,getRetryAttemptsRefreshToken:()=>Ar,getSessionUserId:()=>_r,getSurveyIdsFromAchievementRule:()=>ir,getUserInfo:()=>Ir,httpMaxRetries:()=>X,isAchievementCompleted:()=>B,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>wr,removeChipAuthToken:()=>vr,removeDeviceUid:()=>hr,removeRefreshToken:()=>Tr,removeUserInfo:()=>xr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Cr,setChipAuthToken:()=>te,setDeviceUid:()=>Ne,setRefreshToken:()=>Sr,setRetryAttemptsRefreshToken:()=>Rr,setUserInfo:()=>Er,sortLocationsByIndex:()=>Xe,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Ve,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>U,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Oe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>mr,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:()=>Jr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>$,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>F,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var y={};be(y,{ALLOWED_ORIGINS:()=>ee,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>qe,AchievementType:()=>Y,AuthProvider:()=>j,CALLBACK_URL:()=>Z,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>He,SessionReplayProvider:()=>W,TapquestCoreProvider:()=>ct,TaskType:()=>Ye,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>re,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Ze,generateDeviceId:()=>Ge,getAccessToken:()=>Pr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>yr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>nr,getRefreshToken:()=>kr,getRetryAttemptsRefreshToken:()=>Ar,getSessionUserId:()=>_r,getSurveyIdsFromAchievementRule:()=>ir,getUserInfo:()=>Ir,httpMaxRetries:()=>X,isAchievementCompleted:()=>B,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>wr,removeChipAuthToken:()=>vr,removeDeviceUid:()=>hr,removeRefreshToken:()=>Tr,removeUserInfo:()=>xr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>x,setAccessToken:()=>Cr,setChipAuthToken:()=>te,setDeviceUid:()=>Ne,setRefreshToken:()=>Sr,setRetryAttemptsRefreshToken:()=>Rr,setUserInfo:()=>Er,sortLocationsByIndex:()=>Xe,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>Ve,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>U,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Oe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>mr,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:()=>Jr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>$,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>F,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});function Oe(){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 nr=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))},ir=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))},z=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))},B=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>L(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]=L(e[t]);}return n}return e}var mr=(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:B(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>L(o).map(s=>({...s,isCompleted:B(s)}))})};var Y=(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))(Y||{});var M="phygital-user-info",b="accessToken",O="refreshToken",X=3,x="retryAttemptsRefreshToken",D="Device-UID",G="chip-auth-token",Z="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",ee=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Ge=async()=>{try{return await Ct()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},Ct=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 K=()=>typeof window=="undefined"?null:localStorage.getItem(D),Ne=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},hr=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},re=async()=>{let e=K();return e||(e=await Ge(),Ne(e)),e},yr=()=>typeof window=="undefined"?null:localStorage.getItem(G),te=e=>{typeof window!="undefined"&&localStorage.setItem(G,e);},vr=()=>{typeof window!="undefined"&&localStorage.removeItem(G);},Ar=()=>typeof window=="undefined"?null:localStorage.getItem(x),Rr=e=>{typeof window!="undefined"&&localStorage.setItem(x,e);},Pr=()=>typeof window=="undefined"?null:localStorage.getItem(b),Cr=e=>{typeof window!="undefined"&&localStorage.setItem(b,e);},wr=()=>{typeof window!="undefined"&&localStorage.removeItem(b);},kr=()=>typeof window=="undefined"?null:localStorage.getItem(O),Sr=e=>{typeof window!="undefined"&&localStorage.setItem(O,e);},Tr=()=>{typeof window!="undefined"&&localStorage.removeItem(O);},Ir=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Er=e=>{typeof window!="undefined"&&localStorage.setItem(M,JSON.stringify(e));},xr=()=>{typeof window!="undefined"&&localStorage.removeItem(M);};var _r=e=>e||K(),oe=()=>typeof window!="undefined";var N=createContext(null);function It(){return v4()}async function Et(e){var n,t,r,o,i,s,a;try{let d=(await import('@openreplay/tracker')).default,l=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:It,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"},p=new d(c);if(e!=null&&e.userIdEnabled){let u=l();p.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),p}catch(d){throw console.error("Failed to create tracker:",d),d}}function xt(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&oe()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Et(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 W=({children:e,config:n={}})=>{let[,t]=useReducer(xt,{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 useEffect(()=>{r(),o();},[]),jsx(N.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function $(){let e=useContext(N);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Lt=(e,n)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},Mt=(e,n)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,n);},bt=(e,n)=>{ne.capture(e,n);};function ie(){let{setUserId:e,setMetadata:n}=$();return {trackEvent:(i,s,a)=>{console.log("trackEvent ",i,s),a=a||["gtm"],a.includes("gtm")&&typeof window!="undefined"&&Lt(i,s),a.includes("ga")&&typeof gtag=="function"&&Mt(i,s),a.includes("posthog")&&typeof ne=="function"&&bt(i,s);},trackUserIdentify:i=>{ne.identify(i.email,{email:i.email,name:i.name,avatar:i.avatar,uid:i.uid}),e(i.id),n({user_email:i.email});},trackLogoutEvent:()=>{ne.capture("user_signed_out");}}}var g={};be(g,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});f(g,fn);var Ot={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"}},E=Ot;var se=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var d,l;let a=(d=E[t])==null?void 0:d.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(l=r==null?void 0:r.accessToken)!=null?l:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Lr=createContext(void 0);function qe({children:e,achievements:n}){let{trackEvent:t}=ie(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let c=[],p=[];return n.forEach(u=>{u.type==="group_mission"?p.push(u):c.push(u);}),{challenges:c,quests:p}},[n]);useEffect(()=>{let c=useNotificationStore.subscribe(p=>{var k;let u=p.notifications;if(u.length===0)return;let m=u[u.length-1];if(!((k=m==null?void 0:m.data)!=null&&k.achievement))return;let A=`${m.data.achievement.id}_${Date.now()}`;if(r.current.has(A))return;r.current.add(A);let h=m.data.achievement;if(h.type==="group_mission")t("quest_complete",{quest_id:h.id,quest_name:h.name});else {let T=z(h)[0]||"unknown";t("challenge_complete",{challenge_id:h.id,challenge_name:h.name,challenge_type:T});}});return ()=>{c();}},[t]);let s=useCallback(c=>{let p=o.filter(u=>z(u).includes(c));if(p.length===0){console.error(`[AchievementTracking] No achievement found for action: ${c}`);return}p.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,l={trackChallengeStart:s,trackQuestStart:a,isReady:d};return jsx(Lr.Provider,{value:l,children:e})}function Ve(){let e=useContext(Lr);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var He=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(He||{});f(y,g);var Jt={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},v=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...Jt,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(l=>{l.isLoading=true,l.error=null;});try{let l=await authService.signIn({email:t,password:r});return (i=l==null?void 0:l.data)!=null&&i.idToken&&((s=l==null?void 0:l.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:l.data.idToken,refreshToken:l.data.refreshToken}),e(c=>{c.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,l.data.idToken)),l}catch(l){let c=l instanceof Error?l.message:"Login failed";throw e(p=>{p.error=c;}),(d=o.onLoginError)==null||d.call(o,new Error(c)),l}finally{e(l=>{l.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=Z;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(l=>{l.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,l;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 p=c instanceof Error?c.message:"Logout failed";throw e(u=>{u.error=p;}),(l=t.onLogoutError)==null||l.call(t,new Error(p)),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})}))),U=()=>{let e=v(s=>s.user),n=v(s=>s.isSignedIn),t=v(s=>s.isInitialized),r=v(s=>s.isLoading),o=v(s=>s.error),i=v(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var ve=(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},Ae=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function F(){let{refreshToken:e,signOut:n}=U(),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 so=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{v.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}=v.getState();c&&c.accessToken!==s&&v.getState().actions.setUser({...c,accessToken:s});}let a=v.getState().isSignedIn,d=v.subscribe(c=>[c.isSignedIn,c.user],async([c])=>{var p,u;if(c!==a)if(a=c,c){let m=tokenStorage.getAuthToken();if(m){e({Authorization:`Bearer ${m}`}),n({Authorization:`Bearer ${m}`}),r({Authorization:`Bearer ${m}`}),o({Authorization:`Bearer ${m}`}),i({Authorization:`Bearer ${m}`});try{let I=await userService(t).getMyProfile(),T=ve(I,m);v.getState().actions.setUser(T);}catch{v.getState().actions.signOut();}}let{eventCallbacks:A,user:h}=v.getState();(p=A==null?void 0:A.onAuthStateChange)==null||p.call(A,h,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:m}=v.getState();(u=m==null?void 0:m.onAuthStateChange)==null||u.call(m,null,false);}}),l=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:c,user:p}=v.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}`}),p&&p.accessToken!==u&&v.getState().actions.setUser({...p,accessToken:u})):(v.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{d(),l();}},[e,n,r,o,i,t]),null},ao=()=>(F(),null),j=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(so,{}),jsx(ao,{}),e]});function we(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:d,isLoading:l}=U(),[c,p]=useState(null),u=useRef(null),m=useRef(false),A=useRef(null),h=useRef(null),k=useCallback(async R=>{var S,P;if(R)try{let C=await s(R);if((S=C.data)!=null&&S.idToken&&((P=C.data)!=null&&P.refreshToken)){tokenStorage.setTokens({idToken:C.data.idToken,refreshToken:C.data.refreshToken});let w=Ae(C.data.idToken);a(!0),d(!1),n==null||n(w);}}catch(C){let w=C instanceof Error?C.message:"Token refresh failed";h.current=w,t==null||t(w),d(false);}},[s,a,d,n,t]),I=useCallback(()=>{A.current&&(clearInterval(A.current),A.current=null),m.current=false;},[]),T=useCallback(R=>{var P;let S=ee.concat((P=window==null?void 0:window.location)==null?void 0:P.origin);if(R.origin!=="*"&&!S.includes(R.origin)){console.warn("Rejected message from untrusted origin:",R.origin);return}if(!R.data||typeof R.data!="object"){console.warn("Invalid message data received");return}if(R.data.type==="LOGIN_SUCCESS"){let{refreshToken:C}=R.data;C&&k(C),m.current=true,I();}else if(R.data.type==="LOGIN_ERROR"){let C=R.data.error||"Login failed";h.current=C,t==null||t(C),d(false),m.current=true,I();}},[k,d,I,t]);useEffect(()=>{(async()=>{try{let S=await i();p(S.statusMessage||"");}catch(S){console.error("error",S),p("");}})();},[]);let J=useCallback(()=>{let P=window.screenX+(window.outerWidth-500)/2,C=window.screenY+(window.outerHeight-600)/2;try{if(c===null)return;if(c===""){let w="Google sign in failed. Please try again later.";h.current=w,t==null||t(w);return}if(h.current=null,d(!0),u.current=window.open(c,"oauthPopup",`width=500,height=600,left=${P},top=${C},resizable,scrollbars`),!u.current){d(!1);let w="Popup blocked. Please allow popups for this site.";h.current=w,r==null||r(),t==null||t(w);return}A.current=setInterval(()=>{if(u.current&&u.current.closed&&(A.current&&(clearInterval(A.current),A.current=null),!m.current)){let w="Authentication popup was closed";h.current=w,o==null||o(),t==null||t(w),d(!1);}},500);}catch(w){let rr=w instanceof Error?w.message:"Google sign in failed";h.current=rr,t==null||t(rr),d(false);}},[i,d,T,t,r,o,c]);return useEffect(()=>(window.addEventListener("message",T),()=>{window.removeEventListener("message",T);}),[T]),useEffect(()=>()=>{I();},[I]),{signIn:J,isLoading:l,error:h.current}}function Jr({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let d={"Chip-Authorization":e};te(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 Ye=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(Ye||{});var Xe=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),Ze=(e,n,t)=>e.filter(r=>r[n]===t);var at=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=U(),{environment:i,version:s}=t,[a,d]=useState(null);return useEffect(()=>{(async()=>{try{let c=await re();d({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":c}},responseInterceptors:{onFulfilled:h=>h,onRejected:async h=>{var T,J,R;let k=h.config,I=tokenStorage.getAuthToken();if(((T=h.response)==null?void 0:T.status)===401&&!k._retry){let S=parseInt(getFromLS(x)||"0",10);if(S>=3)return await r(),setToLS(x,0),Promise.reject(h);if(setToLS(x,`${S+1}`),k._retry=!0,I)try{let P=await o();if((J=P==null?void 0:P.data)!=null&&J.idToken)return k.headers.Authorization=`Bearer ${(R=P==null?void 0:P.data)==null?void 0:R.idToken}`,Ro(k)}catch(P){return console.error("Failed to refresh token:",P),await r(),Promise.reject(P)}}}},requestInterceptors:{onFulfilled:h=>h,onRejected:h=>Promise.reject(h)},useDevTool:!0});}catch(c){console.error(c);}})();},[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:e})})})}):jsx(Fragment,{})};var ct=({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(W,{config:o,children:jsx(at,{queryClient:n,apiConfig:t,children:jsx(j,{baseURL:`${E[r].API_BASE_URL}`,queryClient:n,children:e})})})};function To(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((l,c)=>{var u,m;let p=((m=t[o*(((u=r.subAchievementIds)==null?void 0:u.length)||0)+c+1])==null?void 0:m[0])||null;return {id:l,reward_model:p}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var Io=({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)?[]:To(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},Le=Io;f(Me,y);
2
- export{ee as ALLOWED_ORIGINS,qe as AchievementTrackingProvider,Y as AchievementType,j as AuthProvider,Z as CALLBACK_URL,se as NotificationProvider,He as RewardClaimStatus,W as SessionReplayProvider,ct as TapquestCoreProvider,Ye as TaskType,N as TrackerContext,b as accessTokenKey,re as checkDeviceUid,G as chipAuthTokenKey,L as convertSnakeToCamel,Ae as decodeJWTToken,D as deviceUIDKey,Ze as filterLocationsByProperty,Ge as generateDeviceId,Pr as getAccessToken,z as getActionsFromAchievementRule,yr as getChipAuthToken,K as getDeviceUid,nr as getLocationIdsFromAchievementRule,kr as getRefreshToken,Ar as getRetryAttemptsRefreshToken,_r as getSessionUserId,ir as getSurveyIdsFromAchievementRule,Ir as getUserInfo,X as httpMaxRetries,B as isAchievementCompleted,oe as isBrowser,O as refreshTokenKey,wr as removeAccessToken,vr as removeChipAuthToken,hr as removeDeviceUid,Tr as removeRefreshToken,xr as removeUserInfo,x as retryAttemptsRefreshToken,Cr as setAccessToken,te as setChipAuthToken,Ne as setDeviceUid,Sr as setRefreshToken,Rr as setRetryAttemptsRefreshToken,Er as setUserInfo,Xe as sortLocationsByIndex,ve as transformProtoUserData,Ve as useAchievementTracking,Le as useAchivementPlusRewardModel,U as useAuth,v as useAuthStore,Oe as useClearAchievementProgressCache,ie as useDataTracking,we as useGoogleLogin,mr as useManyAchievementProgress,Jr as useScanChip,$ as useSessionReplay,F 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,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,useEffect,useContext,useRef,useMemo,useState}from'react';import ne from'posthog-js';import {v4}from'uuid';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import*as gn 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 Po from'axios';var nr=Object.defineProperty;var ht=Object.getOwnPropertyDescriptor;var yt=Object.getOwnPropertyNames;var vt=Object.prototype.hasOwnProperty;var be=(e,n)=>{for(var t in n)nr(e,t,{get:n[t],enumerable:true});},or=(e,n,t,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let o of yt(n))!vt.call(e,o)&&o!==t&&nr(e,o,{get:()=>n[o],enumerable:!(r=ht(n,o))||r.enumerable});return e},f=(e,n,t)=>(or(e,n,"default"),t);var Me={};be(Me,{ALLOWED_ORIGINS:()=>ee,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>$e,AchievementType:()=>Y,AuthProvider:()=>j,CALLBACK_URL:()=>Z,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,Environment:()=>rr,NotificationProvider:()=>se,RewardClaimStatus:()=>He,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>dt,TaskType:()=>Ye,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>re,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Ze,generateDeviceId:()=>Ge,getAccessToken:()=>Cr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>vr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>ir,getRefreshToken:()=>Tr,getRetryAttemptsRefreshToken:()=>Rr,getSessionUserId:()=>Ur,getSurveyIdsFromAchievementRule:()=>sr,getUserInfo:()=>xr,httpMaxRetries:()=>X,isAchievementCompleted:()=>B,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>kr,removeChipAuthToken:()=>Ar,removeDeviceUid:()=>yr,removeRefreshToken:()=>Ir,removeUserInfo:()=>_r,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>E,setAccessToken:()=>wr,setChipAuthToken:()=>te,setDeviceUid:()=>Ne,setRefreshToken:()=>Sr,setRetryAttemptsRefreshToken:()=>Pr,setUserInfo:()=>Er,sortLocationsByIndex:()=>Xe,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>qe,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>U,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Oe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>fr,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:()=>Yr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>W,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>F,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var y={};be(y,{ALLOWED_ORIGINS:()=>ee,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementTrackingProvider:()=>$e,AchievementType:()=>Y,AuthProvider:()=>j,CALLBACK_URL:()=>Z,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,Environment:()=>rr,NotificationProvider:()=>se,RewardClaimStatus:()=>He,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>dt,TaskType:()=>Ye,TrackerContext:()=>N,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>re,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>Ae,deviceUIDKey:()=>D,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Ze,generateDeviceId:()=>Ge,getAccessToken:()=>Cr,getActionsFromAchievementRule:()=>z,getChipAuthToken:()=>vr,getDeviceUid:()=>K,getLocationIdsFromAchievementRule:()=>ir,getRefreshToken:()=>Tr,getRetryAttemptsRefreshToken:()=>Rr,getSessionUserId:()=>Ur,getSurveyIdsFromAchievementRule:()=>sr,getUserInfo:()=>xr,httpMaxRetries:()=>X,isAchievementCompleted:()=>B,isBrowser:()=>oe,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>O,removeAccessToken:()=>kr,removeChipAuthToken:()=>Ar,removeDeviceUid:()=>yr,removeRefreshToken:()=>Ir,removeUserInfo:()=>_r,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>E,setAccessToken:()=>wr,setChipAuthToken:()=>te,setDeviceUid:()=>Ne,setRefreshToken:()=>Sr,setRetryAttemptsRefreshToken:()=>Pr,setUserInfo:()=>Er,sortLocationsByIndex:()=>Xe,transformProtoUserData:()=>ve,useAchievementProgress:()=>useAchievementProgress,useAchievementTracking:()=>qe,useAchivementPlusRewardModel:()=>Le,useAddFrame:()=>useAddFrame,useAuth:()=>U,useAuthStore:()=>v,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearAchievementProgressCache:()=>Oe,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateClickButtonActionLog:()=>useCreateClickButtonActionLog,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>ie,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>we,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>fr,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:()=>Yr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>W,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>F,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});function Oe(){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 ir=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))},sr=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))},z=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))},B=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(n=>L(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]=L(e[t]);}return n}return e}var fr=(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:B(i)}))}):useManyAchievementProgressByDevice(r,{...n,select:o=>L(o).map(s=>({...s,isCompleted:B(s)}))})};var Y=(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))(Y||{});var M="phygital-user-info",b="accessToken",O="refreshToken",X=3,E="retryAttemptsRefreshToken",D="Device-UID",G="chip-auth-token",Z="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",ee=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Ge=async()=>{try{return await wt()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},wt=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 K=()=>typeof window=="undefined"?null:localStorage.getItem(D),Ne=e=>{typeof window!="undefined"&&localStorage.setItem(D,e);},yr=()=>{typeof window!="undefined"&&localStorage.removeItem(D);},re=async()=>{let e=K();return e||(e=await Ge(),Ne(e)),e},vr=()=>typeof window=="undefined"?null:localStorage.getItem(G),te=e=>{typeof window!="undefined"&&localStorage.setItem(G,e);},Ar=()=>{typeof window!="undefined"&&localStorage.removeItem(G);},Rr=()=>typeof window=="undefined"?null:localStorage.getItem(E),Pr=e=>{typeof window!="undefined"&&localStorage.setItem(E,e);},Cr=()=>typeof window=="undefined"?null:localStorage.getItem(b),wr=e=>{typeof window!="undefined"&&localStorage.setItem(b,e);},kr=()=>{typeof window!="undefined"&&localStorage.removeItem(b);},Tr=()=>typeof window=="undefined"?null:localStorage.getItem(O),Sr=e=>{typeof window!="undefined"&&localStorage.setItem(O,e);},Ir=()=>{typeof window!="undefined"&&localStorage.removeItem(O);},xr=()=>{if(typeof window=="undefined")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(n){return console.error("Failed to parse stored user data:",n),null}},Er=e=>{typeof window!="undefined"&&localStorage.setItem(M,JSON.stringify(e));},_r=()=>{typeof window!="undefined"&&localStorage.removeItem(M);};var Ur=e=>e||K(),oe=()=>typeof window!="undefined";var N=createContext(null);function xt(){return v4()}async function Et(e){var n,t,r,o,i,s,a;try{let d=(await import('@openreplay/tracker')).default,l=e!=null&&e.userIdEnabled&&(e!=null&&e.getUserId)?e.getUserId:xt,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"},p=new d(c);if(e!=null&&e.userIdEnabled){let u=l();p.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),p}catch(d){throw console.error("Failed to create tracker:",d),d}}function _t(e,n){let{debug:t=false}=e.config;switch(n.type){case "init":return !e.tracker&&oe()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(t,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Et(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 V=({children:e,config:n={}})=>{let[,t]=useReducer(_t,{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 useEffect(()=>{r(),o();},[]),jsx(N.Provider,{value:{initTracker:r,startTracking:o,setUserId:i,setMetadata:s},children:e})};function W(){let e=useContext(N);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var Mt=(e,n)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...n});}catch(t){console.error(t);}},bt=(e,n)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,n);},Ot=(e,n)=>{ne.capture(e,n);};function ie(){let{setUserId:e,setMetadata:n}=W();return {trackEvent:(i,s,a)=>{console.log("trackEvent ",i,s),a=a||["gtm"],a.includes("gtm")&&typeof window!="undefined"&&Mt(i,s),a.includes("ga")&&typeof gtag=="function"&&bt(i,s),a.includes("posthog")&&typeof ne=="function"&&Ot(i,s);},trackUserIdentify:i=>{ne.identify(i.email,{email:i.email,name:i.name,avatar:i.avatar,uid:i.uid}),e(i.id),n({user_email:i.email});},trackLogoutEvent:()=>{ne.capture("user_signed_out");}}}var g={};be(g,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});f(g,gn);var Dt={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"}},x=Dt;var se=({children:e,autoConnect:n=true,environment:t="dev",user:r,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s})=>{var d,l;let a=(d=x[t])==null?void 0:d.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r==null?void 0:r.id,accessToken:(l=r==null?void 0:r.accessToken)!=null?l:null,webSocketUrl:a,autoConnect:n,onWebSocketOpen:o,onWebSocketClose:i,onWebSocketMessage:s,children:e})};var Mr=createContext(void 0);function $e({children:e,achievements:n}){let{trackEvent:t}=ie(),r=useRef(new Set),{challenges:o,quests:i}=useMemo(()=>{let c=[],p=[];return n.forEach(u=>{u.type==="group_mission"?p.push(u):c.push(u);}),{challenges:c,quests:p}},[n]);useEffect(()=>{let c=useNotificationStore.subscribe(p=>{var k;let u=p.notifications;if(u.length===0)return;let m=u[u.length-1];if(!((k=m==null?void 0:m.data)!=null&&k.achievement))return;let A=`${m.data.achievement.id}_${Date.now()}`;if(r.current.has(A))return;r.current.add(A);let h=m.data.achievement;if(h.type==="group_mission")t("quest_complete",{quest_id:h.id,quest_name:h.name});else {let S=z(h)[0]||"unknown";t("challenge_complete",{challenge_id:h.id,challenge_name:h.name,challenge_type:S});}});return ()=>{c();}},[t]);let s=useCallback(c=>{let p=o.filter(u=>z(u).includes(c));if(p.length===0){console.error(`[AchievementTracking] No achievement found for action: ${c}`);return}p.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,l={trackChallengeStart:s,trackQuestStart:a,isReady:d};return jsx(Mr.Provider,{value:l,children:e})}function qe(){let e=useContext(Mr);if(!e)throw new Error("useAchievementTracking must be used within AchievementTrackingProvider");return e}var He=(o=>(o.NOT_CLAIMED="not_claimed",o.CLAIMED="claimed",o.IN_PROGRESS="in_progress",o.FAILED="failed",o))(He||{});f(y,g);var Yt={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},v=create()(devtools(persist(subscribeWithSelector(immer((e,n)=>({...Yt,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(l=>{l.isLoading=true,l.error=null;});try{let l=await authService.signIn({email:t,password:r});return (i=l==null?void 0:l.data)!=null&&i.idToken&&((s=l==null?void 0:l.data)!=null&&s.refreshToken)&&(tokenStorage.setTokens({idToken:l.data.idToken,refreshToken:l.data.refreshToken}),e(c=>{c.isSignedIn=!0;}),(a=o.onLoginSuccess)==null||a.call(o,l.data.idToken)),l}catch(l){let c=l instanceof Error?l.message:"Login failed";throw e(p=>{p.error=c;}),(d=o.onLoginError)==null||d.call(o,new Error(c)),l}finally{e(l=>{l.isLoading=false;});}},signInWithGoogle:async()=>{var r;let{eventCallbacks:t}=n();try{let o=Z;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(l=>{l.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,l;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 p=c instanceof Error?c.message:"Logout failed";throw e(u=>{u.error=p;}),(l=t.onLogoutError)==null||l.call(t,new Error(p)),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})}))),U=()=>{let e=v(s=>s.user),n=v(s=>s.isSignedIn),t=v(s=>s.isInitialized),r=v(s=>s.isLoading),o=v(s=>s.error),i=v(s=>s.actions);return {user:e,isSignedIn:n,isInitialized:t,isLoading:r,error:o,...i}};var ve=(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},Ae=e=>{try{return jwtDecode(e)}catch(n){return console.warn("Failed to decode token in decodeJWTToken:",n),null}};function F(){let{refreshToken:e,signOut:n}=U(),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 ao=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:n,coreApi:t}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:o}=useRewardService(),{updateHeaders:i}=useGenerateCertificateService();return useEffect(()=>{v.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}=v.getState();c&&c.accessToken!==s&&v.getState().actions.setUser({...c,accessToken:s});}let a=v.getState().isSignedIn,d=v.subscribe(c=>[c.isSignedIn,c.user],async([c])=>{var p,u;if(c!==a)if(a=c,c){let m=tokenStorage.getAuthToken();if(m){e({Authorization:`Bearer ${m}`}),n({Authorization:`Bearer ${m}`}),r({Authorization:`Bearer ${m}`}),o({Authorization:`Bearer ${m}`}),i({Authorization:`Bearer ${m}`});try{let I=await userService(t).getMyProfile(),S=ve(I,m);v.getState().actions.setUser(S);}catch{v.getState().actions.signOut();}}let{eventCallbacks:A,user:h}=v.getState();(p=A==null?void 0:A.onAuthStateChange)==null||p.call(A,h,true);}else {e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""});let{eventCallbacks:m}=v.getState();(u=m==null?void 0:m.onAuthStateChange)==null||u.call(m,null,false);}}),l=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:c,user:p}=v.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}`}),p&&p.accessToken!==u&&v.getState().actions.setUser({...p,accessToken:u})):(v.getState().actions.signOut(),e({}),n({}),r({Authorization:""}),o({Authorization:""}),i({Authorization:""}));}});return ()=>{d(),l();}},[e,n,r,o,i,t]),null},co=()=>(F(),null),j=({children:e,baseURL:n,queryClient:t})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:n,queryClient:t,children:[jsx(ao,{}),jsx(co,{}),e]});function we(e={}){let{onSuccess:n,onError:t,onPopupBlocked:r,onPopupClosed:o}=e,{signInWithGoogle:i,refreshToken:s,setIsSignedIn:a,setIsLoading:d,isLoading:l}=U(),[c,p]=useState(null),u=useRef(null),m=useRef(false),A=useRef(null),h=useRef(null),k=useCallback(async R=>{var T,P;if(R)try{let C=await s(R);if((T=C.data)!=null&&T.idToken&&((P=C.data)!=null&&P.refreshToken)){tokenStorage.setTokens({idToken:C.data.idToken,refreshToken:C.data.refreshToken});let w=Ae(C.data.idToken);a(!0),d(!1),n==null||n(w);}}catch(C){let w=C instanceof Error?C.message:"Token refresh failed";h.current=w,t==null||t(w),d(false);}},[s,a,d,n,t]),I=useCallback(()=>{A.current&&(clearInterval(A.current),A.current=null),m.current=false;},[]),S=useCallback(R=>{var P;let T=ee.concat((P=window==null?void 0:window.location)==null?void 0:P.origin);if(R.origin!=="*"&&!T.includes(R.origin)){console.warn("Rejected message from untrusted origin:",R.origin);return}if(!R.data||typeof R.data!="object"){console.warn("Invalid message data received");return}if(R.data.type==="LOGIN_SUCCESS"){let{refreshToken:C}=R.data;C&&k(C),m.current=true,I();}else if(R.data.type==="LOGIN_ERROR"){let C=R.data.error||"Login failed";h.current=C,t==null||t(C),d(false),m.current=true,I();}},[k,d,I,t]);useEffect(()=>{(async()=>{try{let T=await i();p(T.statusMessage||"");}catch(T){console.error("error",T),p("");}})();},[]);let J=useCallback(()=>{let P=window.screenX+(window.outerWidth-500)/2,C=window.screenY+(window.outerHeight-600)/2;try{if(c===null)return;if(c===""){let w="Google sign in failed. Please try again later.";h.current=w,t==null||t(w);return}if(h.current=null,d(!0),u.current=window.open(c,"oauthPopup",`width=500,height=600,left=${P},top=${C},resizable,scrollbars`),!u.current){d(!1);let w="Popup blocked. Please allow popups for this site.";h.current=w,r==null||r(),t==null||t(w);return}A.current=setInterval(()=>{if(u.current&&u.current.closed&&(A.current&&(clearInterval(A.current),A.current=null),!m.current)){let w="Authentication popup was closed";h.current=w,o==null||o(),t==null||t(w),d(!1);}},500);}catch(w){let tr=w instanceof Error?w.message:"Google sign in failed";h.current=tr,t==null||t(tr),d(false);}},[i,d,S,t,r,o,c]);return useEffect(()=>(window.addEventListener("message",S),()=>{window.removeEventListener("message",S);}),[S]),useEffect(()=>()=>{I();},[I]),{signIn:J,isLoading:l,error:h.current}}function Yr({token:e,id:n,onScanChipError:t}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let d={"Chip-Authorization":e};te(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 Ye=(o=>(o.CHECK_IN="check_in",o.CREATE_MEMORY="create_memory",o.FILL_FORM="fill_form",o.SHARE="share",o))(Ye||{});var Xe=e=>[...e].sort((n,t)=>{var r,o;return ((r=n.index)!=null?r:0)-((o=t.index)!=null?o:0)}),Ze=(e,n,t)=>e.filter(r=>r[n]===t);var ct=({children:e,queryClient:n,apiConfig:t={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:o}=U(),{environment:i,version:s}=t,[a,d]=useState(null);return useEffect(()=>{(async()=>{try{let c=await re();d({queryClient:n,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":c}},responseInterceptors:{onFulfilled:h=>h,onRejected:async h=>{var S,J,R;let k=h.config,I=tokenStorage.getAuthToken();if(((S=h.response)==null?void 0:S.status)===401&&!k._retry){let T=parseInt(getFromLS(E)||"0",10);if(T>=3)return await r(),setToLS(E,0),Promise.reject(h);if(setToLS(E,`${T+1}`),k._retry=!0,I)try{let P=await o();if((J=P==null?void 0:P.data)!=null&&J.idToken)return k.headers.Authorization=`Bearer ${(R=P==null?void 0:P.data)==null?void 0:R.idToken}`,Po(k)}catch(P){return console.error("Failed to refresh token:",P),await r(),Promise.reject(P)}}}},requestInterceptors:{onFulfilled:h=>h,onRejected:h=>Promise.reject(h)},useDevTool:!0});}catch(c){console.error(c);}})();},[n]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${x[i].API_BASE_URL}/${s}`,baseCoreURL:`${x[i].API_BASE_CORE_URL}/${s}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${x[i].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${x[i].API_ACHIEVEMENT_URL}/${s}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${x[i].API_GENERATE_CERTIFICATE_URL}/v1`,children:e})})})}):jsx(Fragment,{})};var dt=({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(V,{config:o,children:jsx(ct,{queryClient:n,apiConfig:t,children:jsx(j,{baseURL:`${x[r].API_BASE_URL}`,queryClient:n,children:e})})})};function Io(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((l,c)=>{var u,m;let p=((m=t[o*(((u=r.subAchievementIds)==null?void 0:u.length)||0)+c+1])==null?void 0:m[0])||null;return {id:l,reward_model:p}}))||[];return {id:r.id,name:r.name,reward_model:i,subAchievements:s}})}var xo=({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)?[]:Io(n.data,i.data),[i,n==null?void 0:n.data]),isLoading:t||s}},Le=xo;var rr=(r=>(r.DEV="dev",r.STAGING="staging",r.PRODUCTION="production",r))(rr||{});f(Me,y);
2
+ export{ee as ALLOWED_ORIGINS,$e as AchievementTrackingProvider,Y as AchievementType,j as AuthProvider,Z as CALLBACK_URL,rr as Environment,se as NotificationProvider,He as RewardClaimStatus,V as SessionReplayProvider,dt as TapquestCoreProvider,Ye as TaskType,N as TrackerContext,b as accessTokenKey,re as checkDeviceUid,G as chipAuthTokenKey,L as convertSnakeToCamel,Ae as decodeJWTToken,D as deviceUIDKey,Ze as filterLocationsByProperty,Ge as generateDeviceId,Cr as getAccessToken,z as getActionsFromAchievementRule,vr as getChipAuthToken,K as getDeviceUid,ir as getLocationIdsFromAchievementRule,Tr as getRefreshToken,Rr as getRetryAttemptsRefreshToken,Ur as getSessionUserId,sr as getSurveyIdsFromAchievementRule,xr as getUserInfo,X as httpMaxRetries,B as isAchievementCompleted,oe as isBrowser,O as refreshTokenKey,kr as removeAccessToken,Ar as removeChipAuthToken,yr as removeDeviceUid,Ir as removeRefreshToken,_r as removeUserInfo,E as retryAttemptsRefreshToken,wr as setAccessToken,te as setChipAuthToken,Ne as setDeviceUid,Sr as setRefreshToken,Pr as setRetryAttemptsRefreshToken,Er as setUserInfo,Xe as sortLocationsByIndex,ve as transformProtoUserData,qe as useAchievementTracking,Le as useAchivementPlusRewardModel,U as useAuth,v as useAuthStore,Oe as useClearAchievementProgressCache,ie as useDataTracking,we as useGoogleLogin,fr as useManyAchievementProgress,Yr as useScanChip,W as useSessionReplay,F as useTokenRefresher,M as userInfoKey};//# sourceMappingURL=index.js.map
3
3
  //# sourceMappingURL=index.js.map