@phygitallabs/tapquest-core 4.8.0 → 6.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bun.lock +1212 -0
- package/dist/index.cjs +2 -2
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.mts +104 -2
- package/dist/index.d.ts +104 -2
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/modules/auth/hooks/index.ts +5 -1
- package/src/modules/auth/hooks/useGoogleLogin.ts +56 -14
- package/src/modules/auth/index.ts +8 -7
- package/src/modules/auth/utils/user.ts +1 -1
- package/src/providers/ServicesProvider.tsx +4 -1
package/dist/index.d.mts
CHANGED
|
@@ -12,6 +12,9 @@ export { useDefaultServiceGetPollStats, useDefaultServicePostPoll, useNotificati
|
|
|
12
12
|
import React$1 from 'react';
|
|
13
13
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
14
14
|
import { QueryClient } from '@tanstack/react-query';
|
|
15
|
+
import * as immer from 'immer';
|
|
16
|
+
import * as zustand_middleware from 'zustand/middleware';
|
|
17
|
+
import * as zustand from 'zustand';
|
|
15
18
|
import { ProtoSignInResponse, OAuthSignInResponse, ProtoSignUpResponse, ResetPasswordRequest, ProtoResetPasswordResponse, ChangePasswordRequest, ProtoChangePasswordResponse, VerifyEmailRequest, ProtoVerifyEmailResponse, SendVerifyCodeRequest, ProtoSendVerifyCodeResponse, ProtoRefreshTokenResponse } from '@phygitallabs/authentication';
|
|
16
19
|
export { CommonModel as GenerateCertificateCommonModel, DateTimeNumber as GenerateCertificateDateTimeNumber, EntityStatus as GenerateCertificateEntityStatus, Media as GenerateCertificateMedia, MediaType as GenerateCertificateMediaType, useAddFrame, useCreateCertificate, useCreateCertificateAnonymous, useCreateCertificateWithMask, useGenerateFansipanCertificate, useGenerateTemplateCertificate, useGenerateThaocamvienCertificate, wrapTextWithFont } from '@phygitallabs/generate-certificate';
|
|
17
20
|
export { cn, fileToBase64, parse } from '@phygitallabs/helpers';
|
|
@@ -520,6 +523,100 @@ interface AuthCleanupFunctions {
|
|
|
520
523
|
clearHeaders?: () => void;
|
|
521
524
|
clearCustomData?: () => void;
|
|
522
525
|
}
|
|
526
|
+
interface AuthState {
|
|
527
|
+
user: UserData | null;
|
|
528
|
+
isSignedIn: boolean;
|
|
529
|
+
isInitialized: boolean;
|
|
530
|
+
isLoading: boolean;
|
|
531
|
+
error: string | null;
|
|
532
|
+
cleanupFunctions: AuthCleanupFunctions;
|
|
533
|
+
eventCallbacks: AuthEventCallbacks;
|
|
534
|
+
}
|
|
535
|
+
interface AuthActions {
|
|
536
|
+
setCleanupFunctions: (cleanupFunctions: Partial<AuthCleanupFunctions>) => void;
|
|
537
|
+
addEventCallbacks: (callbacks: AuthEventCallbacks) => () => void;
|
|
538
|
+
signInWithEmail: (email: string, password: string, updateHeaders?: (headers: Record<string, string>) => void, updateAuthenticationHeaders?: (headers: Record<string, string>) => void) => Promise<ProtoSignInResponse>;
|
|
539
|
+
signInWithGoogle: () => Promise<OAuthSignInResponse>;
|
|
540
|
+
signUpWithEmail: (email: string, password: string) => Promise<ProtoSignUpResponse>;
|
|
541
|
+
signOut: () => Promise<void>;
|
|
542
|
+
sendPasswordResetEmail: (email: string) => Promise<void>;
|
|
543
|
+
resetPassword: (data: ResetPasswordRequest) => Promise<ProtoResetPasswordResponse>;
|
|
544
|
+
changePassword: (data: ChangePasswordRequest) => Promise<ProtoChangePasswordResponse>;
|
|
545
|
+
verifyEmailCode: (data: VerifyEmailRequest) => Promise<ProtoVerifyEmailResponse>;
|
|
546
|
+
sendVerifyCode: (data: SendVerifyCodeRequest) => Promise<ProtoSendVerifyCodeResponse>;
|
|
547
|
+
refreshToken: (refreshToken?: string) => Promise<ProtoRefreshTokenResponse>;
|
|
548
|
+
clearError: () => void;
|
|
549
|
+
setUser: (user: UserData | null) => void;
|
|
550
|
+
patchUser: (user: Partial<UserData>) => void;
|
|
551
|
+
setIsSignedIn: (isSignedIn: boolean) => void;
|
|
552
|
+
setIsInitialized: (isInitialized: boolean) => void;
|
|
553
|
+
setIsLoading: (isLoading: boolean) => void;
|
|
554
|
+
initialize: () => void;
|
|
555
|
+
syncAuthState: () => void;
|
|
556
|
+
}
|
|
557
|
+
interface AuthStoreState extends AuthState {
|
|
558
|
+
actions: AuthActions;
|
|
559
|
+
}
|
|
560
|
+
declare const useAuthStore: zustand.UseBoundStore<Omit<Omit<Omit<Omit<zustand.StoreApi<AuthStoreState>, "setState" | "devtools"> & {
|
|
561
|
+
setState(partial: AuthStoreState | Partial<AuthStoreState> | ((state: AuthStoreState) => AuthStoreState | Partial<AuthStoreState>), replace?: false | undefined, action?: (string | {
|
|
562
|
+
[x: string]: unknown;
|
|
563
|
+
[x: number]: unknown;
|
|
564
|
+
[x: symbol]: unknown;
|
|
565
|
+
type: string;
|
|
566
|
+
}) | undefined): void;
|
|
567
|
+
setState(state: AuthStoreState | ((state: AuthStoreState) => AuthStoreState), replace: true, action?: (string | {
|
|
568
|
+
[x: string]: unknown;
|
|
569
|
+
[x: number]: unknown;
|
|
570
|
+
[x: symbol]: unknown;
|
|
571
|
+
type: string;
|
|
572
|
+
}) | undefined): void;
|
|
573
|
+
devtools: {
|
|
574
|
+
cleanup: () => void;
|
|
575
|
+
};
|
|
576
|
+
}, "setState" | "persist"> & {
|
|
577
|
+
setState(partial: AuthStoreState | Partial<AuthStoreState> | ((state: AuthStoreState) => AuthStoreState | Partial<AuthStoreState>), replace?: false | undefined, action?: (string | {
|
|
578
|
+
[x: string]: unknown;
|
|
579
|
+
[x: number]: unknown;
|
|
580
|
+
[x: symbol]: unknown;
|
|
581
|
+
type: string;
|
|
582
|
+
}) | undefined): unknown;
|
|
583
|
+
setState(state: AuthStoreState | ((state: AuthStoreState) => AuthStoreState), replace: true, action?: (string | {
|
|
584
|
+
[x: string]: unknown;
|
|
585
|
+
[x: number]: unknown;
|
|
586
|
+
[x: symbol]: unknown;
|
|
587
|
+
type: string;
|
|
588
|
+
}) | undefined): unknown;
|
|
589
|
+
persist: {
|
|
590
|
+
setOptions: (options: Partial<zustand_middleware.PersistOptions<AuthStoreState, unknown, unknown>>) => void;
|
|
591
|
+
clearStorage: () => void;
|
|
592
|
+
rehydrate: () => Promise<void> | void;
|
|
593
|
+
hasHydrated: () => boolean;
|
|
594
|
+
onHydrate: (fn: (state: AuthStoreState) => void) => () => void;
|
|
595
|
+
onFinishHydration: (fn: (state: AuthStoreState) => void) => () => void;
|
|
596
|
+
getOptions: () => Partial<zustand_middleware.PersistOptions<AuthStoreState, unknown, unknown>>;
|
|
597
|
+
};
|
|
598
|
+
}, "subscribe"> & {
|
|
599
|
+
subscribe: {
|
|
600
|
+
(listener: (selectedState: AuthStoreState, previousSelectedState: AuthStoreState) => void): () => void;
|
|
601
|
+
<U>(selector: (state: AuthStoreState) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
602
|
+
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
603
|
+
fireImmediately?: boolean;
|
|
604
|
+
} | undefined): () => void;
|
|
605
|
+
};
|
|
606
|
+
}, "setState"> & {
|
|
607
|
+
setState(nextStateOrUpdater: AuthStoreState | Partial<AuthStoreState> | ((state: immer.WritableDraft<AuthStoreState>) => void), shouldReplace?: false, action?: (string | {
|
|
608
|
+
[x: string]: unknown;
|
|
609
|
+
[x: number]: unknown;
|
|
610
|
+
[x: symbol]: unknown;
|
|
611
|
+
type: string;
|
|
612
|
+
}) | undefined): unknown;
|
|
613
|
+
setState(nextStateOrUpdater: AuthStoreState | ((state: immer.WritableDraft<AuthStoreState>) => void), shouldReplace: true, action?: (string | {
|
|
614
|
+
[x: string]: unknown;
|
|
615
|
+
[x: number]: unknown;
|
|
616
|
+
[x: symbol]: unknown;
|
|
617
|
+
type: string;
|
|
618
|
+
}) | undefined): unknown;
|
|
619
|
+
}>;
|
|
523
620
|
declare const useAuth: () => {
|
|
524
621
|
setCleanupFunctions: (cleanupFunctions: Partial<AuthCleanupFunctions>) => void;
|
|
525
622
|
addEventCallbacks: (callbacks: AuthEventCallbacks) => () => void;
|
|
@@ -555,12 +652,14 @@ interface UseGoogleLoginOptions {
|
|
|
555
652
|
onPopupClosed?: () => void;
|
|
556
653
|
}
|
|
557
654
|
interface UseGoogleLoginReturn {
|
|
558
|
-
signIn: () =>
|
|
655
|
+
signIn: () => void;
|
|
559
656
|
isLoading: boolean;
|
|
560
657
|
error: string | null;
|
|
561
658
|
}
|
|
562
659
|
declare function useGoogleLogin(options?: UseGoogleLoginOptions): UseGoogleLoginReturn;
|
|
563
660
|
|
|
661
|
+
declare function useTokenRefresher(): void;
|
|
662
|
+
|
|
564
663
|
declare const userInfoKey = "phygital-user-info";
|
|
565
664
|
declare const accessTokenKey = "accessToken";
|
|
566
665
|
declare const refreshTokenKey = "refreshToken";
|
|
@@ -591,6 +690,9 @@ declare const getUserInfo: () => any;
|
|
|
591
690
|
declare const setUserInfo: (userData: any) => void;
|
|
592
691
|
declare const removeUserInfo: () => void;
|
|
593
692
|
|
|
693
|
+
declare const transformProtoUserData: (user: UserModel, accessToken: string) => UserData;
|
|
694
|
+
declare const decodeJWTToken: (token: string) => any;
|
|
695
|
+
|
|
594
696
|
type ScanChipData = {
|
|
595
697
|
externalUrl?: string;
|
|
596
698
|
campaignDetail?: ProjectModel;
|
|
@@ -875,4 +977,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
|
|
|
875
977
|
isLoading: boolean;
|
|
876
978
|
};
|
|
877
979
|
|
|
878
|
-
export { ALLOWED_ORIGINS, 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 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, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, useAchivementPlusRewardModel, useAuth, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, userInfoKey };
|
|
980
|
+
export { ALLOWED_ORIGINS, 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 UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,9 @@ export { useDefaultServiceGetPollStats, useDefaultServicePostPoll, useNotificati
|
|
|
12
12
|
import React$1 from 'react';
|
|
13
13
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
14
14
|
import { QueryClient } from '@tanstack/react-query';
|
|
15
|
+
import * as immer from 'immer';
|
|
16
|
+
import * as zustand_middleware from 'zustand/middleware';
|
|
17
|
+
import * as zustand from 'zustand';
|
|
15
18
|
import { ProtoSignInResponse, OAuthSignInResponse, ProtoSignUpResponse, ResetPasswordRequest, ProtoResetPasswordResponse, ChangePasswordRequest, ProtoChangePasswordResponse, VerifyEmailRequest, ProtoVerifyEmailResponse, SendVerifyCodeRequest, ProtoSendVerifyCodeResponse, ProtoRefreshTokenResponse } from '@phygitallabs/authentication';
|
|
16
19
|
export { CommonModel as GenerateCertificateCommonModel, DateTimeNumber as GenerateCertificateDateTimeNumber, EntityStatus as GenerateCertificateEntityStatus, Media as GenerateCertificateMedia, MediaType as GenerateCertificateMediaType, useAddFrame, useCreateCertificate, useCreateCertificateAnonymous, useCreateCertificateWithMask, useGenerateFansipanCertificate, useGenerateTemplateCertificate, useGenerateThaocamvienCertificate, wrapTextWithFont } from '@phygitallabs/generate-certificate';
|
|
17
20
|
export { cn, fileToBase64, parse } from '@phygitallabs/helpers';
|
|
@@ -520,6 +523,100 @@ interface AuthCleanupFunctions {
|
|
|
520
523
|
clearHeaders?: () => void;
|
|
521
524
|
clearCustomData?: () => void;
|
|
522
525
|
}
|
|
526
|
+
interface AuthState {
|
|
527
|
+
user: UserData | null;
|
|
528
|
+
isSignedIn: boolean;
|
|
529
|
+
isInitialized: boolean;
|
|
530
|
+
isLoading: boolean;
|
|
531
|
+
error: string | null;
|
|
532
|
+
cleanupFunctions: AuthCleanupFunctions;
|
|
533
|
+
eventCallbacks: AuthEventCallbacks;
|
|
534
|
+
}
|
|
535
|
+
interface AuthActions {
|
|
536
|
+
setCleanupFunctions: (cleanupFunctions: Partial<AuthCleanupFunctions>) => void;
|
|
537
|
+
addEventCallbacks: (callbacks: AuthEventCallbacks) => () => void;
|
|
538
|
+
signInWithEmail: (email: string, password: string, updateHeaders?: (headers: Record<string, string>) => void, updateAuthenticationHeaders?: (headers: Record<string, string>) => void) => Promise<ProtoSignInResponse>;
|
|
539
|
+
signInWithGoogle: () => Promise<OAuthSignInResponse>;
|
|
540
|
+
signUpWithEmail: (email: string, password: string) => Promise<ProtoSignUpResponse>;
|
|
541
|
+
signOut: () => Promise<void>;
|
|
542
|
+
sendPasswordResetEmail: (email: string) => Promise<void>;
|
|
543
|
+
resetPassword: (data: ResetPasswordRequest) => Promise<ProtoResetPasswordResponse>;
|
|
544
|
+
changePassword: (data: ChangePasswordRequest) => Promise<ProtoChangePasswordResponse>;
|
|
545
|
+
verifyEmailCode: (data: VerifyEmailRequest) => Promise<ProtoVerifyEmailResponse>;
|
|
546
|
+
sendVerifyCode: (data: SendVerifyCodeRequest) => Promise<ProtoSendVerifyCodeResponse>;
|
|
547
|
+
refreshToken: (refreshToken?: string) => Promise<ProtoRefreshTokenResponse>;
|
|
548
|
+
clearError: () => void;
|
|
549
|
+
setUser: (user: UserData | null) => void;
|
|
550
|
+
patchUser: (user: Partial<UserData>) => void;
|
|
551
|
+
setIsSignedIn: (isSignedIn: boolean) => void;
|
|
552
|
+
setIsInitialized: (isInitialized: boolean) => void;
|
|
553
|
+
setIsLoading: (isLoading: boolean) => void;
|
|
554
|
+
initialize: () => void;
|
|
555
|
+
syncAuthState: () => void;
|
|
556
|
+
}
|
|
557
|
+
interface AuthStoreState extends AuthState {
|
|
558
|
+
actions: AuthActions;
|
|
559
|
+
}
|
|
560
|
+
declare const useAuthStore: zustand.UseBoundStore<Omit<Omit<Omit<Omit<zustand.StoreApi<AuthStoreState>, "setState" | "devtools"> & {
|
|
561
|
+
setState(partial: AuthStoreState | Partial<AuthStoreState> | ((state: AuthStoreState) => AuthStoreState | Partial<AuthStoreState>), replace?: false | undefined, action?: (string | {
|
|
562
|
+
[x: string]: unknown;
|
|
563
|
+
[x: number]: unknown;
|
|
564
|
+
[x: symbol]: unknown;
|
|
565
|
+
type: string;
|
|
566
|
+
}) | undefined): void;
|
|
567
|
+
setState(state: AuthStoreState | ((state: AuthStoreState) => AuthStoreState), replace: true, action?: (string | {
|
|
568
|
+
[x: string]: unknown;
|
|
569
|
+
[x: number]: unknown;
|
|
570
|
+
[x: symbol]: unknown;
|
|
571
|
+
type: string;
|
|
572
|
+
}) | undefined): void;
|
|
573
|
+
devtools: {
|
|
574
|
+
cleanup: () => void;
|
|
575
|
+
};
|
|
576
|
+
}, "setState" | "persist"> & {
|
|
577
|
+
setState(partial: AuthStoreState | Partial<AuthStoreState> | ((state: AuthStoreState) => AuthStoreState | Partial<AuthStoreState>), replace?: false | undefined, action?: (string | {
|
|
578
|
+
[x: string]: unknown;
|
|
579
|
+
[x: number]: unknown;
|
|
580
|
+
[x: symbol]: unknown;
|
|
581
|
+
type: string;
|
|
582
|
+
}) | undefined): unknown;
|
|
583
|
+
setState(state: AuthStoreState | ((state: AuthStoreState) => AuthStoreState), replace: true, action?: (string | {
|
|
584
|
+
[x: string]: unknown;
|
|
585
|
+
[x: number]: unknown;
|
|
586
|
+
[x: symbol]: unknown;
|
|
587
|
+
type: string;
|
|
588
|
+
}) | undefined): unknown;
|
|
589
|
+
persist: {
|
|
590
|
+
setOptions: (options: Partial<zustand_middleware.PersistOptions<AuthStoreState, unknown, unknown>>) => void;
|
|
591
|
+
clearStorage: () => void;
|
|
592
|
+
rehydrate: () => Promise<void> | void;
|
|
593
|
+
hasHydrated: () => boolean;
|
|
594
|
+
onHydrate: (fn: (state: AuthStoreState) => void) => () => void;
|
|
595
|
+
onFinishHydration: (fn: (state: AuthStoreState) => void) => () => void;
|
|
596
|
+
getOptions: () => Partial<zustand_middleware.PersistOptions<AuthStoreState, unknown, unknown>>;
|
|
597
|
+
};
|
|
598
|
+
}, "subscribe"> & {
|
|
599
|
+
subscribe: {
|
|
600
|
+
(listener: (selectedState: AuthStoreState, previousSelectedState: AuthStoreState) => void): () => void;
|
|
601
|
+
<U>(selector: (state: AuthStoreState) => U, listener: (selectedState: U, previousSelectedState: U) => void, options?: {
|
|
602
|
+
equalityFn?: ((a: U, b: U) => boolean) | undefined;
|
|
603
|
+
fireImmediately?: boolean;
|
|
604
|
+
} | undefined): () => void;
|
|
605
|
+
};
|
|
606
|
+
}, "setState"> & {
|
|
607
|
+
setState(nextStateOrUpdater: AuthStoreState | Partial<AuthStoreState> | ((state: immer.WritableDraft<AuthStoreState>) => void), shouldReplace?: false, action?: (string | {
|
|
608
|
+
[x: string]: unknown;
|
|
609
|
+
[x: number]: unknown;
|
|
610
|
+
[x: symbol]: unknown;
|
|
611
|
+
type: string;
|
|
612
|
+
}) | undefined): unknown;
|
|
613
|
+
setState(nextStateOrUpdater: AuthStoreState | ((state: immer.WritableDraft<AuthStoreState>) => void), shouldReplace: true, action?: (string | {
|
|
614
|
+
[x: string]: unknown;
|
|
615
|
+
[x: number]: unknown;
|
|
616
|
+
[x: symbol]: unknown;
|
|
617
|
+
type: string;
|
|
618
|
+
}) | undefined): unknown;
|
|
619
|
+
}>;
|
|
523
620
|
declare const useAuth: () => {
|
|
524
621
|
setCleanupFunctions: (cleanupFunctions: Partial<AuthCleanupFunctions>) => void;
|
|
525
622
|
addEventCallbacks: (callbacks: AuthEventCallbacks) => () => void;
|
|
@@ -555,12 +652,14 @@ interface UseGoogleLoginOptions {
|
|
|
555
652
|
onPopupClosed?: () => void;
|
|
556
653
|
}
|
|
557
654
|
interface UseGoogleLoginReturn {
|
|
558
|
-
signIn: () =>
|
|
655
|
+
signIn: () => void;
|
|
559
656
|
isLoading: boolean;
|
|
560
657
|
error: string | null;
|
|
561
658
|
}
|
|
562
659
|
declare function useGoogleLogin(options?: UseGoogleLoginOptions): UseGoogleLoginReturn;
|
|
563
660
|
|
|
661
|
+
declare function useTokenRefresher(): void;
|
|
662
|
+
|
|
564
663
|
declare const userInfoKey = "phygital-user-info";
|
|
565
664
|
declare const accessTokenKey = "accessToken";
|
|
566
665
|
declare const refreshTokenKey = "refreshToken";
|
|
@@ -591,6 +690,9 @@ declare const getUserInfo: () => any;
|
|
|
591
690
|
declare const setUserInfo: (userData: any) => void;
|
|
592
691
|
declare const removeUserInfo: () => void;
|
|
593
692
|
|
|
693
|
+
declare const transformProtoUserData: (user: UserModel, accessToken: string) => UserData;
|
|
694
|
+
declare const decodeJWTToken: (token: string) => any;
|
|
695
|
+
|
|
594
696
|
type ScanChipData = {
|
|
595
697
|
externalUrl?: string;
|
|
596
698
|
campaignDetail?: ProjectModel;
|
|
@@ -875,4 +977,4 @@ declare const useAchivementPlusRewardModel: ({ campaignId, }: UseAchivementPlusR
|
|
|
875
977
|
isLoading: boolean;
|
|
876
978
|
};
|
|
877
979
|
|
|
878
|
-
export { ALLOWED_ORIGINS, 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 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, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, useAchivementPlusRewardModel, useAuth, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, userInfoKey };
|
|
980
|
+
export { ALLOWED_ORIGINS, 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 UpdateRewardGroupRequest, type UpdateRewardModelRequest, type UpdateRewardModelResponse, type UpdateUserRewardRequest, type UpdateUserRewardResponse, type UseAuthReturn, type UseGoogleLoginOptions, type UseGoogleLoginReturn, type UseManyAchievementWithProgressParams, type UseManyAchievementWithProgressReturn, type UserCheckinLocationRanking, type UserData$1 as UserData, UserRole, accessTokenKey, checkDeviceUid, chipAuthTokenKey, convertSnakeToCamel, decodeJWTToken, deviceUIDKey, filterLocationsByProperty, generateDeviceId, getAccessToken, getActionsFromAchievementRule, getChipAuthToken, getDeviceUid, getLocationIdsFromAchievementRule, getRefreshToken, getRetryAttemptsRefreshToken, getSessionUserId, getUserInfo, httpMaxRetries, isAchievementCompleted, isBrowser, refreshTokenKey, removeAccessToken, removeChipAuthToken, removeDeviceUid, removeRefreshToken, removeUserInfo, retryAttemptsRefreshToken, setAccessToken, setChipAuthToken, setDeviceUid, setRefreshToken, setRetryAttemptsRefreshToken, setUserInfo, sortLocationsByIndex, transformProtoUserData, useAchivementPlusRewardModel, useAuth, useAuthStore, useDataTracking, useGoogleLogin, useManyAchievementProgress, useScanChip, useSessionReplay, useTokenRefresher, userInfoKey };
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievements,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useManyAchievementProgress,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievements,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import*as Lt from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {createContext,useRef,useCallback,useEffect,useReducer,useContext,useMemo,useState}from'react';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import ur from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {useQuery}from'@tanstack/react-query';import {v4}from'uuid';import Ce from'posthog-js';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import rt from'axios';var $e=Object.defineProperty;var no=Object.getOwnPropertyDescriptor;var so=Object.getOwnPropertyNames;var io=Object.prototype.hasOwnProperty;var Se=(e,s)=>{for(var o in s)$e(e,o,{get:s[o],enumerable:true});},Ke=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of so(s))!io.call(e,t)&&t!==o&&$e(e,t,{get:()=>s[t],enumerable:!(r=no(s,t))||r.enumerable});return e},c=(e,s,o)=>(Ke(e,s,"default"),o);var we={};Se(we,{ALLOWED_ORIGINS:()=>se,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>Ie,AuthProvider:()=>F,CALLBACK_URL:()=>ne,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>oe,RewardClaimStatus:()=>Te,SessionReplayProvider:()=>B,TapquestCoreProvider:()=>Yr,TaskType:()=>Fe,TrackerContext:()=>b,UserSourceType:()=>UserSourceType,accessTokenKey:()=>x,checkDeviceUid:()=>ue,chipAuthTokenKey:()=>M,cn:()=>cn,convertSnakeToCamel:()=>E,deviceUIDKey:()=>L,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Be,generateDeviceId:()=>De,getAccessToken:()=>Pr,getActionsFromAchievementRule:()=>He,getChipAuthToken:()=>yr,getDeviceUid:()=>z,getLocationIdsFromAchievementRule:()=>Ve,getRefreshToken:()=>Sr,getRetryAttemptsRefreshToken:()=>Ar,getSessionUserId:()=>qr,getUserInfo:()=>Er,httpMaxRetries:()=>te,isAchievementCompleted:()=>O,isBrowser:()=>Ae,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>_,removeAccessToken:()=>kr,removeChipAuthToken:()=>Rr,removeDeviceUid:()=>vr,removeRefreshToken:()=>Tr,removeUserInfo:()=>xr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>wr,setChipAuthToken:()=>le,setDeviceUid:()=>Oe,setRefreshToken:()=>Ir,setRetryAttemptsRefreshToken:()=>Cr,setUserInfo:()=>Ur,sortLocationsByIndex:()=>ze,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Pe,useAddFrame:()=>useAddFrame,useAuth:()=>S,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>jr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>de,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>Ze,useManyAchievements:()=>useManyAchievements,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:()=>Gr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>W,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>U,wrapTextWithFont:()=>wrapTextWithFont});var u={};Se(u,{ALLOWED_ORIGINS:()=>se,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>Ie,AuthProvider:()=>F,CALLBACK_URL:()=>ne,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>oe,RewardClaimStatus:()=>Te,SessionReplayProvider:()=>B,TapquestCoreProvider:()=>Yr,TaskType:()=>Fe,TrackerContext:()=>b,UserSourceType:()=>UserSourceType,accessTokenKey:()=>x,checkDeviceUid:()=>ue,chipAuthTokenKey:()=>M,cn:()=>cn,convertSnakeToCamel:()=>E,deviceUIDKey:()=>L,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>Be,generateDeviceId:()=>De,getAccessToken:()=>Pr,getActionsFromAchievementRule:()=>He,getChipAuthToken:()=>yr,getDeviceUid:()=>z,getLocationIdsFromAchievementRule:()=>Ve,getRefreshToken:()=>Sr,getRetryAttemptsRefreshToken:()=>Ar,getSessionUserId:()=>qr,getUserInfo:()=>Er,httpMaxRetries:()=>te,isAchievementCompleted:()=>O,isBrowser:()=>Ae,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>_,removeAccessToken:()=>kr,removeChipAuthToken:()=>Rr,removeDeviceUid:()=>vr,removeRefreshToken:()=>Tr,removeUserInfo:()=>xr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>wr,setChipAuthToken:()=>le,setDeviceUid:()=>Oe,setRefreshToken:()=>Ir,setRetryAttemptsRefreshToken:()=>Cr,setUserInfo:()=>Ur,sortLocationsByIndex:()=>ze,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Pe,useAddFrame:()=>useAddFrame,useAuth:()=>S,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>jr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>de,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>Ze,useManyAchievements:()=>useManyAchievements,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:()=>Gr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>W,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>U,wrapTextWithFont:()=>wrapTextWithFont});var Ve=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(t=>{t.filters&&t.filters.forEach(n=>{n.label==="location_id"&&n.value&&(Array.isArray(n.value)?s.push(...n.value):s.push(n.value));});});});}),Array.from(new Set(s))},He=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.action&&s.push(r.action);});}),Array.from(new Set(s))},O=e=>e.isCompleted||e.overallPercentage===100;function E(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>E(s));if(typeof e=="object"&&e.constructor===Object){let s={};for(let o in e)if(e.hasOwnProperty(o)){let r=o.replace(/_([a-z])/g,(t,n)=>n.toUpperCase());s[r]=E(e[o]);}return s}return e}var Ze=(e,s)=>{let o=!!e.userId,r=o?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return o?useManyAchievementProgress(r,{...s,select:t=>t.map(n=>({...n,isCompleted:O(n)}))}):useManyAchievementProgressByDevice(r,{...s,select:t=>E(t).map(i=>({...i,isCompleted:O(i)}))})};var Ie=(t=>(t.DEFAULT="default",t.MULTIPLE_CHECK_INS="multiple_check_ins",t.RANDOM_CHECK_INS="random_check_ins",t.GROUP_MISSION="group_mission",t))(Ie||{});var Te=(t=>(t.NOT_CLAIMED="not_claimed",t.CLAIMED="claimed",t.IN_PROGRESS="in_progress",t.FAILED="failed",t))(Te||{});var d={};Se(d,{NotificationProvider:()=>oe,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});c(d,Lt);var uo={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},P=uo;var oe=({children:e,autoConnect:s=true,environment:o="dev",user:r,onWebSocketOpen:t,onWebSocketClose:n,onWebSocketMessage:i})=>{let a=P[o]?.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r?.id,accessToken:r?.accessToken??null,webSocketUrl:a,autoConnect:s,onWebSocketOpen:t,onWebSocketClose:n,onWebSocketMessage:i,children:e})};c(u,d);var U="phygital-user-info",x="accessToken",_="refreshToken",te=3,w="retryAttemptsRefreshToken",L="Device-UID",M="chip-auth-token",ne="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",se=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Ro={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},g=create()(devtools(persist(subscribeWithSelector(immer((e,s)=>({...Ro,actions:{setIsLoading:o=>e(r=>{r.isLoading=o;}),setCleanupFunctions:o=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...o};}),addEventCallbacks:o=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};});}),signInWithEmail:async(o,r)=>{let{eventCallbacks:t}=s();e(n=>{n.isLoading=true,n.error=null;});try{let n=await authService.signIn({email:o,password:r});return n?.data?.idToken&&n?.data?.refreshToken&&(tokenStorage.setTokens({idToken:n.data.idToken,refreshToken:n.data.refreshToken}),e(i=>{i.isSignedIn=!0;}),t.onLoginSuccess?.(n.data.idToken)),n}catch(n){let i=n instanceof Error?n.message:"Login failed";throw e(a=>{a.error=i;}),t.onLoginError?.(new Error(i)),n}finally{e(n=>{n.isLoading=false;});}},signInWithGoogle:async()=>{let{eventCallbacks:o}=s();try{let r=ne;return await authService.getOAuthSignInUrl(r)}catch(r){let t=r instanceof Error?r.message:"Google sign in failed";throw e(n=>{n.error=t;}),o.onLoginError?.(new Error(t)),r}},signUpWithEmail:async(o,r)=>{let{eventCallbacks:t}=s();e(n=>{n.isLoading=true,n.error=null;});try{let n=await authService.signUp({email:o,password:r});return n.data&&t.onSignupSuccess?.(),n}catch(n){let i=n instanceof Error?n.message:"Signup failed";throw e(a=>{a.error=i;}),t.onSignupError?.(new Error(i)),n}finally{e(n=>{n.isLoading=false,n.user=null,n.isSignedIn=false;});}},signOut:async()=>{let{eventCallbacks:o,cleanupFunctions:r}=s();e(t=>{t.isLoading=true,t.error=null;});try{e(i=>{i.user=null,i.isSignedIn=!1,i.error=null;});let t=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!t){tokenStorage.clearTokens();return}await authService.logout({refreshToken:t}),tokenStorage.clearTokens();try{r.clearQueryCache?.(),r.clearOrganization?.(),r.clearCustomData?.(),r.clearHeaders?.();}catch(i){console.warn("Error during logout cleanup:",i);}o.onLogoutSuccess?.();}catch(t){console.log(t);let n=t instanceof Error?t.message:"Logout failed";throw e(i=>{i.error=n;}),o.onLogoutError?.(new Error(n)),t}finally{e(t=>{t.isLoading=false;});}},sendPasswordResetEmail:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:o});}catch(r){let t=r instanceof Error?r.message:"Failed to send reset email";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(o)}catch(r){let t=r instanceof Error?r.message:"Failed to reset password";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(o)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(o)}catch(r){let t=r instanceof Error?r.message:"Failed to send reset email";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(o)}catch(r){let t=r instanceof Error?r.message:"Failed to send verify code";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async o=>{let r=await authService.refreshToken({refreshToken:o??tokenStorage.getRefreshToken()??""});return r.data?.idToken&&r.data?.refreshToken&&tokenStorage.setTokens({idToken:r.data?.idToken,refreshToken:r.data?.refreshToken}),r},clearError:()=>e(o=>{o.error=null;}),setUser:o=>e(r=>{r.user=o;}),setIsSignedIn:o=>e(r=>{r.isSignedIn=o;}),setIsInitialized:o=>e(r=>{r.isInitialized=o;}),patchUser:o=>e(r=>{r.user?r.user={...r.user,...o}:r.user=o;}),initialize:()=>{e(o=>{let r=tokenStorage.getAuthToken();o.isSignedIn=!!r,o.isInitialized=true;});},syncAuthState:()=>{e(o=>{let r=tokenStorage.getAuthToken(),t=o.isSignedIn;o.isSignedIn=!!r,t!==o.isSignedIn&&(o.isSignedIn?o.eventCallbacks?.onAuthStateChange?.(o.user,true):o.eventCallbacks?.onAuthStateChange?.(null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),S=()=>{let e=g(i=>i.user),s=g(i=>i.isSignedIn),o=g(i=>i.isInitialized),r=g(i=>i.isLoading),t=g(i=>i.error),n=g(i=>i.actions);return {user:e,isSignedIn:s,isInitialized:o,isLoading:r,error:t,...n}};var lr=(e,s)=>{let o={...e},r={};try{r=ur(s);}catch(t){console.warn("Failed to decode token in transformUserData:",t);}return o.exp=r.exp||0,o.accessToken=s||"",o.roles=r?.roles||["USER"],o.account_type=r?.account_type||0,o.picture=e.picture||"",o},pr=e=>{try{return ur(e)}catch(s){return console.warn("Failed to decode token in decodeJWTToken:",s),null}};function fr(){let{refreshToken:e,signOut:s}=S(),o=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),s();}};useQuery({queryKey:["refresh-token"],queryFn:()=>o(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var Uo=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:s,coreApi:o}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:t}=useRewardService(),{updateHeaders:n}=useGenerateCertificateService();return useEffect(()=>{g.getState().actions.initialize();let i=tokenStorage.getAuthToken();if(i){e({Authorization:`Bearer ${i}`}),s({Authorization:`Bearer ${i}`}),r({Authorization:`Bearer ${i}`}),t({Authorization:`Bearer ${i}`}),n({Authorization:`Bearer ${i}`});let{user:p}=g.getState();p&&p.accessToken!==i&&g.getState().actions.setUser({...p,accessToken:i});}let a=g.getState().isSignedIn,l=g.subscribe(p=>[p.isSignedIn,p.user],async([p])=>{if(p!==a)if(a=p,p){let m=tokenStorage.getAuthToken();if(m){e({Authorization:`Bearer ${m}`}),s({Authorization:`Bearer ${m}`}),r({Authorization:`Bearer ${m}`}),t({Authorization:`Bearer ${m}`}),n({Authorization:`Bearer ${m}`});try{let h=await userService(o).getMyProfile(),R=lr(h,m);g.getState().actions.setUser(R);}catch{g.getState().actions.signOut();}}let{eventCallbacks:f,user:C}=g.getState();f?.onAuthStateChange?.(C,true);}else {e({}),s({}),r({Authorization:""}),t({Authorization:""}),n({Authorization:""});let{eventCallbacks:m}=g.getState();m?.onAuthStateChange?.(null,false);}}),T=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:p,user:m}=g.getState();if(p){let f=tokenStorage.getAuthToken();f?(e({Authorization:`Bearer ${f}`}),s({Authorization:`Bearer ${f}`}),r({Authorization:`Bearer ${f}`}),t({Authorization:`Bearer ${f}`}),n({Authorization:`Bearer ${f}`}),m&&m.accessToken!==f&&g.getState().actions.setUser({...m,accessToken:f})):(g.getState().actions.signOut(),e({}),s({}),r({Authorization:""}),t({Authorization:""}),n({Authorization:""}));}});return ()=>{l(),T();}},[e,s,r,t,n,o]),null},xo=()=>(fr(),null),F=({children:e,baseURL:s,queryClient:o})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:s,queryClient:o,children:[jsx(Uo,{}),jsx(xo,{}),e]});function de(e={}){let{onSuccess:s,onError:o,onPopupBlocked:r,onPopupClosed:t}=e,{signInWithGoogle:n,refreshToken:i,setIsSignedIn:a,setIsLoading:l,isLoading:T}=S(),p=useRef(null),m=useRef(false),f=useRef(null),C=useRef(null),D=useCallback(async v=>{if(v)try{let y=await i(v);if(y.data?.idToken&&y.data?.refreshToken){tokenStorage.setTokens({idToken:y.data.idToken,refreshToken:y.data.refreshToken});let A=pr(y.data.idToken);a(!0),l(!1),s?.(A);}}catch(y){let A=y instanceof Error?y.message:"Token refresh failed";C.current=A,o?.(A),l(false);}},[i,a,l,s,o]),h=useCallback(()=>{f.current&&(clearInterval(f.current),f.current=null),m.current=false;},[]),R=useCallback(v=>{let y=se.concat(window?.location?.origin);if(v.origin!=="*"&&!y.includes(v.origin)){console.warn("Rejected message from untrusted origin:",v.origin);return}if(!v.data||typeof v.data!="object"){console.warn("Invalid message data received");return}if(v.data.type==="LOGIN_SUCCESS"){let{refreshToken:A}=v.data;A&&D(A),m.current=true,h();}else if(v.data.type==="LOGIN_ERROR"){let A=v.data.error||"Login failed";C.current=A,o?.(A),l(false),m.current=true,h();}},[D,l,h,o]),ke=useCallback(async()=>{let A=window.screenX+(window.outerWidth-500)/2,to=window.screenY+(window.outerHeight-600)/2;try{C.current=null,l(!0);let $=await n();if(p.current=window.open(`${$.statusMessage}`,"oauthPopup",`width=500,height=600,left=${A},top=${to},resizable,scrollbars`),!p.current){l(!1);let I="Popup blocked. Please allow popups for this site.";C.current=I,r?.(),o?.(I);return}f.current=setInterval(()=>{if(p.current&&p.current.closed&&(f.current&&(clearInterval(f.current),f.current=null),!m.current)){let I="Authentication popup was closed";C.current=I,t?.(),o?.(I),l(!1);}},500);}catch($){let I=$ instanceof Error?$.message:"Google sign in failed";C.current=I,o?.(I),l(false);}},[n,l,R,o,r,t]);return useEffect(()=>(window.addEventListener("message",R),()=>{window.removeEventListener("message",R);}),[R]),useEffect(()=>()=>{h();},[h,R]),{signIn:ke,isLoading:T,error:C.current}}var De=async()=>{try{return await bo()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},bo=async()=>{let e=new Date().toISOString(),s=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(s),t=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(t)).map(a=>a.toString(16).padStart(2,"0")).join("")};var z=()=>typeof window>"u"?null:localStorage.getItem(L),Oe=e=>{typeof window>"u"||localStorage.setItem(L,e);},vr=()=>{typeof window>"u"||localStorage.removeItem(L);},ue=async()=>{let e=z();return e||(e=await De(),Oe(e)),e},yr=()=>typeof window>"u"?null:localStorage.getItem(M),le=e=>{typeof window>"u"||localStorage.setItem(M,e);},Rr=()=>{typeof window>"u"||localStorage.removeItem(M);},Ar=()=>typeof window>"u"?null:localStorage.getItem(w),Cr=e=>{typeof window>"u"||localStorage.setItem(w,e);},Pr=()=>typeof window>"u"?null:localStorage.getItem(x),wr=e=>{typeof window>"u"||localStorage.setItem(x,e);},kr=()=>{typeof window>"u"||localStorage.removeItem(x);},Sr=()=>typeof window>"u"?null:localStorage.getItem(_),Ir=e=>{typeof window>"u"||localStorage.setItem(_,e);},Tr=()=>{typeof window>"u"||localStorage.removeItem(_);},Er=()=>{if(typeof window>"u")return null;let e=localStorage.getItem(U);if(!e)return null;try{return JSON.parse(e)}catch(s){return console.error("Failed to parse stored user data:",s),null}},Ur=e=>{typeof window>"u"||localStorage.setItem(U,JSON.stringify(e));},xr=()=>{typeof window>"u"||localStorage.removeItem(U);};function Gr({token:e,id:s,onScanChipError:o}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let l={"Chip-Authorization":e};le(e),r(l);}},[e,r]);let{data:t,isLoading:n,isError:i,isSuccess:a}=useChipScanStory({token:e,id:s});return useEffect(()=>{i&&o?.();},[i,o]),t?{data:{externalUrl:t?.external_url,campaignDetail:t?.project,locationDetail:t?.location,scanCounter:t?.scan_counter,campaignId:t?.campaign_id,chipModelId:t?.chip_model_id,organizationId:t?.organization_id,projectId:t?.project_id,locationId:t?.location_id,chipUid:t?.uid},isLoading:n,isError:i,isSuccess:a}:{data:null,isLoading:n,isError:i,isSuccess:a}}var Fe=(t=>(t.CHECK_IN="check_in",t.CREATE_MEMORY="create_memory",t.FILL_FORM="fill_form",t.SHARE="share",t))(Fe||{});var ze=e=>[...e].sort((s,o)=>(s.index??0)-(o.index??0)),Be=(e,s,o)=>e.filter(r=>r[s]===o);var qr=e=>e||z(),Ae=()=>typeof window<"u";var b=createContext(null);function Fo(){return v4()}async function zo(e){try{let s=(await import('@openreplay/tracker')).default,o=e?.userIdEnabled&&e?.getUserId?e.getUserId:Fo,r={projectKey:e?.projectKey||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e?.ingestPoint,captureExceptions:e.captureExceptions??!0,capturePerformance:e.capturePerformance??!0,network:e.network||{capturePayload:!0,sanitizer:n=>n},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:e.obscureTextEmails??!0,obscureTextNumbers:e.obscureTextNumbers??!1,obscureInputEmails:e.obscureInputEmails??!0,__DISABLE_SECURE_MODE:e.__DISABLE_SECURE_MODE??(typeof process<"u"&&process.env?.NODE_ENV==="development")},t=new s(r);if(e?.userIdEnabled){let n=o();t.setUserID(n),console.log("User ID set:",n);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",r.projectKey),console.log("Ingest Point:",r.ingestPoint),t}catch(s){throw console.error("Failed to create tracker:",s),s}}function Bo(e,s){let{debug:o=false}=e.config;switch(s.type){case "init":return !e.tracker&&Ae()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(o,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:zo(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(o,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(s.payload),console.log(o,"User ID updated:",s.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{Object.entries(s.payload||{})?.forEach(([t,n])=>{r.setMetadata(t,n);}),console.log(o,"Metadata updated:",s.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var B=({children:e,config:s={}})=>{let[,o]=useReducer(Bo,{tracker:null,config:s}),r=()=>o({type:"init"}),t=()=>o({type:"start"}),n=a=>o({type:"setUserId",payload:a}),i=a=>o({type:"setMetadata",payload:a});return useEffect(()=>{r(),t();},[]),jsx(b.Provider,{value:{initTracker:r,startTracking:t,setUserId:n,setMetadata:i},children:e})};function W(){let e=useContext(b);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var $o=(e,s)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...s});}catch(o){console.error(o);}},Vo=(e,s)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,s);},Ho=(e,s)=>{Ce.capture(e,s);};function jr(){let{setUserId:e,setMetadata:s}=W();return {trackEvent:(n,i,a)=>{console.log("trackEvent ",n,i),a=a||["gtm"],a.includes("gtm")&&typeof window<"u"&&$o(n,i),a.includes("ga")&&typeof gtag=="function"&&Vo(n,i),a.includes("posthog")&&typeof Ce=="function"&&Ho(n,i);},trackUserIdentify:n=>{Ce.identify(n.email,{email:n.email,name:n.name,avatar:n.avatar,uid:n.uid}),e(n.id),s({user_email:n.email});},trackLogoutEvent:()=>{Ce.capture("user_signed_out");}}}var Jr=({children:e,queryClient:s,apiConfig:o={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:t}=S(),{environment:n,version:i}=o,[a,l]=useState(null);return useEffect(()=>{(async()=>{try{let p=await ue();l({queryClient:s,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":p}},responseInterceptors:{onFulfilled:h=>h,onRejected:async h=>{let R=h.config,ke=tokenStorage.getAuthToken();if(h.response?.status===401&&!R._retry){let v=parseInt(getFromLS(w)||"0",10);if(v>=3)return await r(),setToLS(w,0),Promise.reject(h);if(setToLS(w,`${v+1}`),R._retry=!0,ke)try{let y=await t();if(y?.data?.idToken)return R.headers.Authorization=`Bearer ${y?.data?.idToken}`,rt(R)}catch(y){console.log("Failed to refresh token:",y);}}}},requestInterceptors:{onFulfilled:h=>h,onRejected:h=>Promise.reject(h)},useDevTool:!0});}catch(p){console.error(p);}})();},[s]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${P[n].API_BASE_URL}/${i}`,baseCoreURL:`${P[n].API_BASE_CORE_URL}/${i}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${P[n].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${P[n].API_ACHIEVEMENT_URL}/${i}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${P[n].API_GENERATE_CERTIFICATE_URL}/v1`,children:e})})})}):jsx(Fragment,{})};var Yr=({children:e,queryClient:s,apiConfig:o})=>{let{environment:r}=o,t=useMemo(()=>{let n=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(n)return {projectKey:n,ingestPoint:process.env.NEXT_PUBLIC_OPENREPLAY_INGEST_POINT,debug:process.env.NODE_ENV==="development",captureExceptions:true,capturePerformance:true,obscureTextEmails:true,obscureInputEmails:true}},[]);return jsx(B,{config:t,children:jsx(Jr,{queryClient:s,apiConfig:o,children:jsx(F,{baseURL:`${P[r].API_BASE_URL}`,queryClient:s,children:e})})})};function at(e,s){if(!s?.reward_models)return [];let o=s.reward_models;return e.map((r,t)=>{let n=o[t]?.[0]||null,i=r.subAchievementIds?.map((a,l)=>{let T=o[t*(r.subAchievementIds?.length||0)+l+1]?.[0]||null;return {id:a,reward_model:T}})||[];return {id:r.id,name:r.name,reward_model:n,subAchievements:i}})}var ct=({campaignId:e})=>{let{data:s,isLoading:o}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>s?.data?s.data.map(l=>l.groupRewardId).filter(l=>l!==void 0):[],[s?.data]),{mutate:t,data:n,isPending:i}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&t({group_reward_ids:r});},[r,t]),{mappedAchievements:useMemo(()=>!n?.data||!s?.data?[]:at(s.data,n.data),[n,s?.data]),isLoading:o||i}},Pe=ct;c(we,u);
|
|
2
|
-
export{
|
|
1
|
+
import {useUserAchievementAction,useOneAchievement,useManyChildrenAchievements,useManyAchievementsRewardModels,useManyAchievements,useAchievementProgress,AchievementServiceProvider,AchievementRuleActionType,useManyAchievementProgress,useAchievementService}from'@phygitallabs/achievement';export{AchievementRuleActionType,AchievementServiceProvider,useAchievementProgress,useManyAchievements,useManyAchievementsRewardModels,useManyChildrenAchievements,useOneAchievement,useUserAchievementAction}from'@phygitallabs/achievement';import {useUserCampaignAction,useUploadMedia,useUpdateMyProfile,useSyncCheckin,useSendEmail,usePGLCoreService,useOneUserCampaign,useOneMemory,useMyProfile,useManyUserActionLocations,useManyMemory,useManyLocations,useUserCampaignsCompletedLocation,useOneLocation,useInfiniteMemories,useCreateMemory,useChipScanStory,useCancelUserRewardsRequest,useOneCampaign,resetMemoriesQuery,memoriesKey,locationQueryKeys,UserSourceType,CampaignState,useManyAchievementProgressByDevice,userService,PGLCoreServiceProvider}from'@phygitallabs/api-core';export{CampaignState,UserSourceType,locationQueryKeys,memoriesKey,resetMemoriesQuery,useOneCampaign as useCampaignDetail,useCancelUserRewardsRequest,useChipScanStory,useCreateMemory,useInfiniteMemories,useOneLocation as useLocationDetail,useUserCampaignsCompletedLocation as useLocationProgress,useManyLocations as useLocationsList,useManyMemory,useManyUserActionLocations,useMyProfile,useOneMemory,useOneUserCampaign,usePGLCoreService,useSendEmail,useSyncCheckin,useUpdateMyProfile,useUploadMedia,useUserCampaignAction}from'@phygitallabs/api-core';import {useV1ListRewards,useUpdateRewardModel,useManyUserRewards,useListRewardModels,useGetUserRewards,useGetRewardModel,useDeleteRewardModel,useCreateRewardModel,useCreateModelGroupReward,useClearUserRewardCache,useClaimUserReward,CmentityRewardType,useRewardService,RewardServiceProvider}from'@phygitallabs/reward';export{CmentityRewardType,useClaimUserReward,useClearUserRewardCache,useCreateModelGroupReward,useCreateRewardModel,useDeleteRewardModel,useGetRewardModel,useGetUserRewards,useListRewardModels,useManyUserRewards,useUpdateRewardModel,useV1ListRewards}from'@phygitallabs/reward';import*as Dt from'@phygitallabs/notification-api';import {useWebSocket,useTCVNotificationRewardHandler,usePageVisibility,useNotificationStore,useNotificationRewardHandler,useDefaultServicePostPoll,useDefaultServiceGetPollStats,NotificationProvider}from'@phygitallabs/notification-api';export{useDefaultServiceGetPollStats,useDefaultServicePostPoll,useNotificationRewardHandler,useNotificationStore,usePageVisibility,useTCVNotificationRewardHandler,useWebSocket}from'@phygitallabs/notification-api';import {jsxs,jsx,Fragment}from'react/jsx-runtime';import {tokenStorage,authService,verifyCodeService,AuthenticationProvider,useAuthenticationHeaders}from'@phygitallabs/authentication';import {createContext,useState,useRef,useCallback,useEffect,useReducer,useContext,useMemo}from'react';import {create}from'zustand';import {immer}from'zustand/middleware/immer';import {devtools,persist,subscribeWithSelector,createJSONStorage}from'zustand/middleware';import {jwtDecode}from'jwt-decode';import {wrapTextWithFont,useGenerateThaocamvienCertificate,useGenerateTemplateCertificate,useGenerateFansipanCertificate,useCreateCertificateWithMask,useCreateCertificateAnonymous,useCreateCertificate,useAddFrame,useGenerateCertificateService,GenerateCertificateServiceProvider}from'@phygitallabs/generate-certificate';export{useAddFrame,useCreateCertificate,useCreateCertificateAnonymous,useCreateCertificateWithMask,useGenerateFansipanCertificate,useGenerateTemplateCertificate,useGenerateThaocamvienCertificate,wrapTextWithFont}from'@phygitallabs/generate-certificate';import {useQuery}from'@tanstack/react-query';import {v4}from'uuid';import Ie from'posthog-js';import {parse,fileToBase64,cn,getFromLS,setToLS}from'@phygitallabs/helpers';export{cn,fileToBase64,parse}from'@phygitallabs/helpers';import nt from'axios';var Je=Object.defineProperty;var io=Object.getOwnPropertyDescriptor;var ao=Object.getOwnPropertyNames;var co=Object.prototype.hasOwnProperty;var Ue=(e,s)=>{for(var o in s)Je(e,o,{get:s[o],enumerable:true});},Qe=(e,s,o,r)=>{if(s&&typeof s=="object"||typeof s=="function")for(let t of ao(s))!co.call(e,t)&&t!==o&&Je(e,t,{get:()=>s[t],enumerable:!(r=io(s,t))||r.enumerable});return e},c=(e,s,o)=>(Qe(e,s,"default"),o);var Ee={};Ue(Ee,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>xe,AuthProvider:()=>K,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>_e,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>Zr,TaskType:()=>$e,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>He,generateDeviceId:()=>ze,getAccessToken:()=>wr,getActionsFromAchievementRule:()=>Xe,getChipAuthToken:()=>Ar,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Ye,getRefreshToken:()=>Tr,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>Qr,getUserInfo:()=>xr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>z,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>Rr,removeRefreshToken:()=>Ur,removeUserInfo:()=>Lr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Sr,setChipAuthToken:()=>he,setDeviceUid:()=>Be,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>_r,sortLocationsByIndex:()=>Ve,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Jr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>sr,useManyAchievements:()=>useManyAchievements,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:()=>Fr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>H,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var u={};Ue(u,{ALLOWED_ORIGINS:()=>ce,AchievementRuleActionType:()=>AchievementRuleActionType,AchievementServiceProvider:()=>AchievementServiceProvider,AchievementType:()=>xe,AuthProvider:()=>K,CALLBACK_URL:()=>ae,CampaignState:()=>CampaignState,CmentityRewardType:()=>CmentityRewardType,NotificationProvider:()=>se,RewardClaimStatus:()=>_e,SessionReplayProvider:()=>V,TapquestCoreProvider:()=>Zr,TaskType:()=>$e,TrackerContext:()=>F,UserSourceType:()=>UserSourceType,accessTokenKey:()=>b,checkDeviceUid:()=>ge,chipAuthTokenKey:()=>G,cn:()=>cn,convertSnakeToCamel:()=>L,decodeJWTToken:()=>ue,deviceUIDKey:()=>O,fileToBase64:()=>fileToBase64,filterLocationsByProperty:()=>He,generateDeviceId:()=>ze,getAccessToken:()=>wr,getActionsFromAchievementRule:()=>Xe,getChipAuthToken:()=>Ar,getDeviceUid:()=>$,getLocationIdsFromAchievementRule:()=>Ye,getRefreshToken:()=>Tr,getRetryAttemptsRefreshToken:()=>Pr,getSessionUserId:()=>Qr,getUserInfo:()=>xr,httpMaxRetries:()=>ie,isAchievementCompleted:()=>z,isBrowser:()=>Se,locationQueryKeys:()=>locationQueryKeys,memoriesKey:()=>memoriesKey,parse:()=>parse,refreshTokenKey:()=>D,removeAccessToken:()=>Ir,removeChipAuthToken:()=>Cr,removeDeviceUid:()=>Rr,removeRefreshToken:()=>Ur,removeUserInfo:()=>Lr,resetMemoriesQuery:()=>resetMemoriesQuery,retryAttemptsRefreshToken:()=>w,setAccessToken:()=>Sr,setChipAuthToken:()=>he,setDeviceUid:()=>Be,setRefreshToken:()=>Er,setRetryAttemptsRefreshToken:()=>kr,setUserInfo:()=>_r,sortLocationsByIndex:()=>Ve,transformProtoUserData:()=>de,useAchievementProgress:()=>useAchievementProgress,useAchivementPlusRewardModel:()=>Te,useAddFrame:()=>useAddFrame,useAuth:()=>I,useAuthStore:()=>p,useCampaignDetail:()=>useOneCampaign,useCancelUserRewardsRequest:()=>useCancelUserRewardsRequest,useChipScanStory:()=>useChipScanStory,useClaimUserReward:()=>useClaimUserReward,useClearUserRewardCache:()=>useClearUserRewardCache,useCreateCertificate:()=>useCreateCertificate,useCreateCertificateAnonymous:()=>useCreateCertificateAnonymous,useCreateCertificateWithMask:()=>useCreateCertificateWithMask,useCreateMemory:()=>useCreateMemory,useCreateModelGroupReward:()=>useCreateModelGroupReward,useCreateRewardModel:()=>useCreateRewardModel,useDataTracking:()=>Jr,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useDeleteRewardModel:()=>useDeleteRewardModel,useGenerateFansipanCertificate:()=>useGenerateFansipanCertificate,useGenerateTemplateCertificate:()=>useGenerateTemplateCertificate,useGenerateThaocamvienCertificate:()=>useGenerateThaocamvienCertificate,useGetRewardModel:()=>useGetRewardModel,useGetUserRewards:()=>useGetUserRewards,useGoogleLogin:()=>fe,useInfiniteMemories:()=>useInfiniteMemories,useListRewardModels:()=>useListRewardModels,useLocationDetail:()=>useOneLocation,useLocationProgress:()=>useUserCampaignsCompletedLocation,useLocationsList:()=>useManyLocations,useManyAchievementProgress:()=>sr,useManyAchievements:()=>useManyAchievements,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:()=>Fr,useSendEmail:()=>useSendEmail,useSessionReplay:()=>H,useSyncCheckin:()=>useSyncCheckin,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useTokenRefresher:()=>N,useUpdateMyProfile:()=>useUpdateMyProfile,useUpdateRewardModel:()=>useUpdateRewardModel,useUploadMedia:()=>useUploadMedia,useUserAchievementAction:()=>useUserAchievementAction,useUserCampaignAction:()=>useUserCampaignAction,useV1ListRewards:()=>useV1ListRewards,useWebSocket:()=>useWebSocket,userInfoKey:()=>M,wrapTextWithFont:()=>wrapTextWithFont});var Ye=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.filter&&Object.values(r.filter).forEach(t=>{t.filters&&t.filters.forEach(n=>{n.label==="location_id"&&n.value&&(Array.isArray(n.value)?s.push(...n.value):s.push(n.value));});});});}),Array.from(new Set(s))},Xe=e=>{if(!e.rule)return [];let s=[];return Object.values(e.rule).forEach(o=>{o.rules&&o.rules.forEach(r=>{r.action&&s.push(r.action);});}),Array.from(new Set(s))},z=e=>e.isCompleted||e.overallPercentage===100;function L(e){if(e==null)return e;if(Array.isArray(e))return e.map(s=>L(s));if(typeof e=="object"&&e.constructor===Object){let s={};for(let o in e)if(e.hasOwnProperty(o)){let r=o.replace(/_([a-z])/g,(t,n)=>n.toUpperCase());s[r]=L(e[o]);}return s}return e}var sr=(e,s)=>{let o=!!e.userId,r=o?{achievementIds:e.achievementIds,userId:e.userId,applicationId:e.applicationId}:{achievement_ids:e.achievementIds,device_uid:e.deviceUid,applicationId:e.applicationId};return o?useManyAchievementProgress(r,{...s,select:t=>t.map(n=>({...n,isCompleted:z(n)}))}):useManyAchievementProgressByDevice(r,{...s,select:t=>L(t).map(i=>({...i,isCompleted:z(i)}))})};var xe=(t=>(t.DEFAULT="default",t.MULTIPLE_CHECK_INS="multiple_check_ins",t.RANDOM_CHECK_INS="random_check_ins",t.GROUP_MISSION="group_mission",t))(xe||{});var _e=(t=>(t.NOT_CLAIMED="not_claimed",t.CLAIMED="claimed",t.IN_PROGRESS="in_progress",t.FAILED="failed",t))(_e||{});var d={};Ue(d,{NotificationProvider:()=>se,useDefaultServiceGetPollStats:()=>useDefaultServiceGetPollStats,useDefaultServicePostPoll:()=>useDefaultServicePostPoll,useNotificationRewardHandler:()=>useNotificationRewardHandler,useNotificationStore:()=>useNotificationStore,usePageVisibility:()=>usePageVisibility,useTCVNotificationRewardHandler:()=>useTCVNotificationRewardHandler,useWebSocket:()=>useWebSocket});c(d,Dt);var po={dev:{API_BASE_URL:"https://backend-dev.nomion.io",API_BASE_CORE_URL:"https://backend-dev.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-dev.nomion.io/achievement",API_REWARD_URL:"https://backend-dev.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-dev.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend-dev.nomion.io/notification-ws/ws"},staging:{API_BASE_URL:"https://backend-staging.nomion.io",API_BASE_CORE_URL:"https://backend-staging.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend-staging.nomion.io/achievement",API_REWARD_URL:"https://backend-staging.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc-staging.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend-staging.nomion.io/notification-ws/ws"},production:{API_BASE_URL:"https://backend.nomion.io",API_BASE_CORE_URL:"https://backend.nomion.io/core",API_ACHIEVEMENT_URL:"https://backend.nomion.io/achievement",API_REWARD_URL:"https://backend.nomion.io/reward",API_GENERATE_CERTIFICATE_URL:"https://media-prc.nomion.io/api",API_NOTIFICATION_SOCKET_URL:"https://backend.nomion.io/notification-ws/ws"}},P=po;var se=({children:e,autoConnect:s=true,environment:o="dev",user:r,onWebSocketOpen:t,onWebSocketClose:n,onWebSocketMessage:i})=>{let a=P[o]?.API_NOTIFICATION_SOCKET_URL;return jsx(NotificationProvider,{userUid:r?.id,accessToken:r?.accessToken??null,webSocketUrl:a,autoConnect:s,onWebSocketOpen:t,onWebSocketClose:n,onWebSocketMessage:i,children:e})};c(u,d);var M="phygital-user-info",b="accessToken",D="refreshToken",ie=3,w="retryAttemptsRefreshToken",O="Device-UID",G="chip-auth-token",ae="https://s3-sgn10.fptcloud.com/nomion-assets/platform/callback.html",ce=["https://s3-sgn10.fptcloud.com","https://accounts.google.com/"];var Co={user:null,isSignedIn:false,isInitialized:false,isLoading:false,error:null,cleanupFunctions:{},eventCallbacks:{}},p=create()(devtools(persist(subscribeWithSelector(immer((e,s)=>({...Co,actions:{setIsLoading:o=>e(r=>{r.isLoading=o;}),setCleanupFunctions:o=>e(r=>{r.cleanupFunctions={...r.cleanupFunctions,...o};}),addEventCallbacks:o=>(e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};}),()=>{e(r=>{r.eventCallbacks={...r.eventCallbacks,...o};});}),signInWithEmail:async(o,r)=>{let{eventCallbacks:t}=s();e(n=>{n.isLoading=true,n.error=null;});try{let n=await authService.signIn({email:o,password:r});return n?.data?.idToken&&n?.data?.refreshToken&&(tokenStorage.setTokens({idToken:n.data.idToken,refreshToken:n.data.refreshToken}),e(i=>{i.isSignedIn=!0;}),t.onLoginSuccess?.(n.data.idToken)),n}catch(n){let i=n instanceof Error?n.message:"Login failed";throw e(a=>{a.error=i;}),t.onLoginError?.(new Error(i)),n}finally{e(n=>{n.isLoading=false;});}},signInWithGoogle:async()=>{let{eventCallbacks:o}=s();try{let r=ae;return await authService.getOAuthSignInUrl(r)}catch(r){let t=r instanceof Error?r.message:"Google sign in failed";throw e(n=>{n.error=t;}),o.onLoginError?.(new Error(t)),r}},signUpWithEmail:async(o,r)=>{let{eventCallbacks:t}=s();e(n=>{n.isLoading=true,n.error=null;});try{let n=await authService.signUp({email:o,password:r});return n.data&&t.onSignupSuccess?.(),n}catch(n){let i=n instanceof Error?n.message:"Signup failed";throw e(a=>{a.error=i;}),t.onSignupError?.(new Error(i)),n}finally{e(n=>{n.isLoading=false,n.user=null,n.isSignedIn=false;});}},signOut:async()=>{let{eventCallbacks:o,cleanupFunctions:r}=s();e(t=>{t.isLoading=true,t.error=null;});try{e(i=>{i.user=null,i.isSignedIn=!1,i.error=null;});let t=tokenStorage.getRefreshToken();if(tokenStorage.isTokenExpired()||!t){tokenStorage.clearTokens();return}await authService.logout({refreshToken:t}),tokenStorage.clearTokens();try{r.clearQueryCache?.(),r.clearOrganization?.(),r.clearCustomData?.(),r.clearHeaders?.();}catch(i){console.warn("Error during logout cleanup:",i);}o.onLogoutSuccess?.();}catch(t){console.log(t);let n=t instanceof Error?t.message:"Logout failed";throw e(i=>{i.error=n;}),o.onLogoutError?.(new Error(n)),t}finally{e(t=>{t.isLoading=false;});}},sendPasswordResetEmail:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{await verifyCodeService.forgotPassword({email:o});}catch(r){let t=r instanceof Error?r.message:"Failed to send reset email";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},resetPassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.resetPassword(o)}catch(r){let t=r instanceof Error?r.message:"Failed to reset password";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},changePassword:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.changePassword(o)}catch(r){throw r}finally{e(r=>{r.isLoading=false;});}},verifyEmailCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.verifyEmail(o)}catch(r){let t=r instanceof Error?r.message:"Failed to send reset email";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},sendVerifyCode:async o=>{e(r=>{r.isLoading=true,r.error=null;});try{return await verifyCodeService.sendVerifyCode(o)}catch(r){let t=r instanceof Error?r.message:"Failed to send verify code";throw e(n=>{n.error=t;}),r}finally{e(r=>{r.isLoading=false;});}},refreshToken:async o=>{let r=await authService.refreshToken({refreshToken:o??tokenStorage.getRefreshToken()??""});return r.data?.idToken&&r.data?.refreshToken&&tokenStorage.setTokens({idToken:r.data?.idToken,refreshToken:r.data?.refreshToken}),r},clearError:()=>e(o=>{o.error=null;}),setUser:o=>e(r=>{r.user=o;}),setIsSignedIn:o=>e(r=>{r.isSignedIn=o;}),setIsInitialized:o=>e(r=>{r.isInitialized=o;}),patchUser:o=>e(r=>{r.user?r.user={...r.user,...o}:r.user=o;}),initialize:()=>{e(o=>{let r=tokenStorage.getAuthToken();o.isSignedIn=!!r,o.isInitialized=true;});},syncAuthState:()=>{e(o=>{let r=tokenStorage.getAuthToken(),t=o.isSignedIn;o.isSignedIn=!!r,t!==o.isSignedIn&&(o.isSignedIn?o.eventCallbacks?.onAuthStateChange?.(o.user,true):o.eventCallbacks?.onAuthStateChange?.(null,false));});}}}))),{version:1,name:"auth-store",storage:createJSONStorage(()=>localStorage),partialize:e=>({isSignedIn:e.isSignedIn,user:e.user})}))),I=()=>{let e=p(i=>i.user),s=p(i=>i.isSignedIn),o=p(i=>i.isInitialized),r=p(i=>i.isLoading),t=p(i=>i.error),n=p(i=>i.actions);return {user:e,isSignedIn:s,isInitialized:o,isLoading:r,error:t,...n}};var de=(e,s)=>{let o={...e},r={};try{r=jwtDecode(s);}catch(t){console.warn("Failed to decode token in transformUserData:",t);}return o.exp=r.exp||0,o.accessToken=s||"",o.roles=r?.roles||["USER"],o.account_type=r?.account_type||0,o.picture=e.picture||"",o},ue=e=>{try{return jwtDecode(e)}catch(s){return console.warn("Failed to decode token in decodeJWTToken:",s),null}};function N(){let{refreshToken:e,signOut:s}=I(),o=async()=>{try{if(!tokenStorage.isTokenExpired())return;await e();}catch(r){console.error("Failed to refresh token:",r),s();}};useQuery({queryKey:["refresh-token"],queryFn:()=>o(),refetchInterval:1800*1e3,refetchIntervalInBackground:false,refetchOnWindowFocus:true,retry:false,enabled:!!tokenStorage.getAuthToken()});}var _o=()=>{let{updateHeaders:e}=useAuthenticationHeaders(),{updateHeaders:s,coreApi:o}=usePGLCoreService(),{updateHeaders:r}=useAchievementService(),{updateHeaders:t}=useRewardService(),{updateHeaders:n}=useGenerateCertificateService();return useEffect(()=>{p.getState().actions.initialize();let i=tokenStorage.getAuthToken();if(i){e({Authorization:`Bearer ${i}`}),s({Authorization:`Bearer ${i}`}),r({Authorization:`Bearer ${i}`}),t({Authorization:`Bearer ${i}`}),n({Authorization:`Bearer ${i}`});let{user:m}=p.getState();m&&m.accessToken!==i&&p.getState().actions.setUser({...m,accessToken:i});}let a=p.getState().isSignedIn,l=p.subscribe(m=>[m.isSignedIn,m.user],async([m])=>{if(m!==a)if(a=m,m){let g=tokenStorage.getAuthToken();if(g){e({Authorization:`Bearer ${g}`}),s({Authorization:`Bearer ${g}`}),r({Authorization:`Bearer ${g}`}),t({Authorization:`Bearer ${g}`}),n({Authorization:`Bearer ${g}`});try{let f=await userService(o).getMyProfile(),k=de(f,g);p.getState().actions.setUser(k);}catch{p.getState().actions.signOut();}}let{eventCallbacks:h,user:T}=p.getState();h?.onAuthStateChange?.(T,true);}else {e({}),s({}),r({Authorization:""}),t({Authorization:""}),n({Authorization:""});let{eventCallbacks:g}=p.getState();g?.onAuthStateChange?.(null,false);}}),_=tokenStorage.addTokenChangeListener(async()=>{let{isSignedIn:m,user:g}=p.getState();if(m){let h=tokenStorage.getAuthToken();h?(e({Authorization:`Bearer ${h}`}),s({Authorization:`Bearer ${h}`}),r({Authorization:`Bearer ${h}`}),t({Authorization:`Bearer ${h}`}),n({Authorization:`Bearer ${h}`}),g&&g.accessToken!==h&&p.getState().actions.setUser({...g,accessToken:h})):(p.getState().actions.signOut(),e({}),s({}),r({Authorization:""}),t({Authorization:""}),n({Authorization:""}));}});return ()=>{l(),_();}},[e,s,r,t,n,o]),null},Lo=()=>(N(),null),K=({children:e,baseURL:s,queryClient:o})=>jsxs(AuthenticationProvider,{axiosConfig:{headers:{"Content-Type":"application/json"}},baseURL:s,queryClient:o,children:[jsx(_o,{}),jsx(Lo,{}),e]});function fe(e={}){let{onSuccess:s,onError:o,onPopupBlocked:r,onPopupClosed:t}=e,{signInWithGoogle:n,refreshToken:i,setIsSignedIn:a,setIsLoading:l,isLoading:_}=I(),[m,g]=useState(null),h=useRef(null),T=useRef(false),C=useRef(null),f=useRef(null),k=useCallback(async y=>{if(y)try{let v=await i(y);if(v.data?.idToken&&v.data?.refreshToken){tokenStorage.setTokens({idToken:v.data.idToken,refreshToken:v.data.refreshToken});let R=ue(v.data.idToken);a(!0),l(!1),s?.(R);}}catch(v){let R=v instanceof Error?v.message:"Token refresh failed";f.current=R,o?.(R),l(false);}},[i,a,l,s,o]),E=useCallback(()=>{C.current&&(clearInterval(C.current),C.current=null),T.current=false;},[]),U=useCallback(y=>{let v=ce.concat(window?.location?.origin);if(y.origin!=="*"&&!v.includes(y.origin)){console.warn("Rejected message from untrusted origin:",y.origin);return}if(!y.data||typeof y.data!="object"){console.warn("Invalid message data received");return}if(y.data.type==="LOGIN_SUCCESS"){let{refreshToken:R}=y.data;R&&k(R),T.current=true,E();}else if(y.data.type==="LOGIN_ERROR"){let R=y.data.error||"Login failed";f.current=R,o?.(R),l(false),T.current=true,E();}},[k,l,E,o]);useEffect(()=>{(async()=>{try{let v=await n();g(v.statusMessage||"");}catch(v){console.error("error",v),g("");}})();},[]);let x=useCallback(()=>{let R=window.screenX+(window.outerWidth-500)/2,so=window.screenY+(window.outerHeight-600)/2;try{if(m===null)return;if(m===""){let A="Google sign in failed. Please try again later.";f.current=A,o?.(A);return}if(f.current=null,l(!0),h.current=window.open(m,"oauthPopup",`width=500,height=600,left=${R},top=${so},resizable,scrollbars`),!h.current){l(!1);let A="Popup blocked. Please allow popups for this site.";f.current=A,r?.(),o?.(A);return}C.current=setInterval(()=>{if(h.current&&h.current.closed&&(C.current&&(clearInterval(C.current),C.current=null),!T.current)){let A="Authentication popup was closed";f.current=A,t?.(),o?.(A),l(!1);}},500);}catch(A){let je=A instanceof Error?A.message:"Google sign in failed";f.current=je,o?.(je),l(false);}},[n,l,U,o,r,t,m]);return useEffect(()=>(window.addEventListener("message",U),()=>{window.removeEventListener("message",U);}),[U]),useEffect(()=>()=>{E();},[E]),{signIn:x,isLoading:_,error:f.current}}var ze=async()=>{try{return await Go()}catch(e){return console.error("Error generating device fingerprint:",e),v4()}},Go=async()=>{let e=new Date().toISOString(),s=[navigator.userAgent,navigator.language,screen.width,screen.height,screen.colorDepth,Intl.DateTimeFormat().resolvedOptions().timeZone,navigator.platform,navigator.hardwareConcurrency,e].join("::"),r=new TextEncoder().encode(s),t=await crypto.subtle.digest("SHA-256",r);return Array.from(new Uint8Array(t)).map(a=>a.toString(16).padStart(2,"0")).join("")};var $=()=>typeof window>"u"?null:localStorage.getItem(O),Be=e=>{typeof window>"u"||localStorage.setItem(O,e);},Rr=()=>{typeof window>"u"||localStorage.removeItem(O);},ge=async()=>{let e=$();return e||(e=await ze(),Be(e)),e},Ar=()=>typeof window>"u"?null:localStorage.getItem(G),he=e=>{typeof window>"u"||localStorage.setItem(G,e);},Cr=()=>{typeof window>"u"||localStorage.removeItem(G);},Pr=()=>typeof window>"u"?null:localStorage.getItem(w),kr=e=>{typeof window>"u"||localStorage.setItem(w,e);},wr=()=>typeof window>"u"?null:localStorage.getItem(b),Sr=e=>{typeof window>"u"||localStorage.setItem(b,e);},Ir=()=>{typeof window>"u"||localStorage.removeItem(b);},Tr=()=>typeof window>"u"?null:localStorage.getItem(D),Er=e=>{typeof window>"u"||localStorage.setItem(D,e);},Ur=()=>{typeof window>"u"||localStorage.removeItem(D);},xr=()=>{if(typeof window>"u")return null;let e=localStorage.getItem(M);if(!e)return null;try{return JSON.parse(e)}catch(s){return console.error("Failed to parse stored user data:",s),null}},_r=e=>{typeof window>"u"||localStorage.setItem(M,JSON.stringify(e));},Lr=()=>{typeof window>"u"||localStorage.removeItem(M);};function Fr({token:e,id:s,onScanChipError:o}){let{updateHeaders:r}=usePGLCoreService();useEffect(()=>{if(e){let l={"Chip-Authorization":e};he(e),r(l);}},[e,r]);let{data:t,isLoading:n,isError:i,isSuccess:a}=useChipScanStory({token:e,id:s});return useEffect(()=>{i&&o?.();},[i,o]),t?{data:{externalUrl:t?.external_url,campaignDetail:t?.project,locationDetail:t?.location,scanCounter:t?.scan_counter,campaignId:t?.campaign_id,chipModelId:t?.chip_model_id,organizationId:t?.organization_id,projectId:t?.project_id,locationId:t?.location_id,chipUid:t?.uid},isLoading:n,isError:i,isSuccess:a}:{data:null,isLoading:n,isError:i,isSuccess:a}}var $e=(t=>(t.CHECK_IN="check_in",t.CREATE_MEMORY="create_memory",t.FILL_FORM="fill_form",t.SHARE="share",t))($e||{});var Ve=e=>[...e].sort((s,o)=>(s.index??0)-(o.index??0)),He=(e,s,o)=>e.filter(r=>r[s]===o);var Qr=e=>e||$(),Se=()=>typeof window<"u";var F=createContext(null);function Wo(){return v4()}async function Ko(e){try{let s=(await import('@openreplay/tracker')).default,o=e?.userIdEnabled&&e?.getUserId?e.getUserId:Wo,r={projectKey:e?.projectKey||process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY,ingestPoint:e?.ingestPoint,captureExceptions:e.captureExceptions??!0,capturePerformance:e.capturePerformance??!0,network:e.network||{capturePayload:!0,sanitizer:n=>n},console:e.console||{levels:["error","warn","log"]},obscureTextEmails:e.obscureTextEmails??!0,obscureTextNumbers:e.obscureTextNumbers??!1,obscureInputEmails:e.obscureInputEmails??!0,__DISABLE_SECURE_MODE:e.__DISABLE_SECURE_MODE??(typeof process<"u"&&process.env?.NODE_ENV==="development")},t=new s(r);if(e?.userIdEnabled){let n=o();t.setUserID(n),console.log("User ID set:",n);}return console.log("OpenReplay tracker initialized"),console.log("Project Key:",r.projectKey),console.log("Ingest Point:",r.ingestPoint),t}catch(s){throw console.error("Failed to create tracker:",s),s}}function $o(e,s){let{debug:o=false}=e.config;switch(s.type){case "init":return !e.tracker&&Se()?!e.config.projectKey&&!process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY?(console.warn(o,"Project key not found. Skipping session replay initialization."),e):{...e,tracker:Ko(e.config)}:e;case "start":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.start(),console.log(o,"Session replay tracker started");}).catch(r=>{console.error("Failed to start tracker:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setUserId":return e.tracker?Promise.resolve(e.tracker).then(r=>{r.setUserID(s.payload),console.log(o,"User ID updated:",s.payload);}).catch(r=>{console.error("Failed to set user ID:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;case "setMetadata":return e.tracker?Promise.resolve(e.tracker).then(r=>{Object.entries(s.payload||{})?.forEach(([t,n])=>{r.setMetadata(t,n);}),console.log(o,"Metadata updated:",s.payload.metadata);}).catch(r=>{console.error("Failed to set metadata:",r);}):console.warn(o,"Tracker not initialized. Call initTracker() first."),e;default:return e}}var V=({children:e,config:s={}})=>{let[,o]=useReducer($o,{tracker:null,config:s}),r=()=>o({type:"init"}),t=()=>o({type:"start"}),n=a=>o({type:"setUserId",payload:a}),i=a=>o({type:"setMetadata",payload:a});return useEffect(()=>{r(),t();},[]),jsx(F.Provider,{value:{initTracker:r,startTracking:t,setUserId:n,setMetadata:i},children:e})};function H(){let e=useContext(F);if(!e)throw new Error("useSessionReplay must be used within a SessionReplayProvider. Make sure your component is wrapped with <SessionReplayProvider>.");return e}var qo=(e,s)=>{try{window.dataLayer=window.dataLayer||[],window.dataLayer.push({event:e,...s});}catch(o){console.error(o);}},jo=(e,s)=>{if(typeof gtag!="function"){console.error("gtag is not a function");return}gtag("event",e,s);},Qo=(e,s)=>{Ie.capture(e,s);};function Jr(){let{setUserId:e,setMetadata:s}=H();return {trackEvent:(n,i,a)=>{console.log("trackEvent ",n,i),a=a||["gtm"],a.includes("gtm")&&typeof window<"u"&&qo(n,i),a.includes("ga")&&typeof gtag=="function"&&jo(n,i),a.includes("posthog")&&typeof Ie=="function"&&Qo(n,i);},trackUserIdentify:n=>{Ie.identify(n.email,{email:n.email,name:n.name,avatar:n.avatar,uid:n.uid}),e(n.id),s({user_email:n.email});},trackLogoutEvent:()=>{Ie.capture("user_signed_out");}}}var Xr=({children:e,queryClient:s,apiConfig:o={environment:"dev",version:"v1"}})=>{let{signOut:r,refreshToken:t}=I(),{environment:n,version:i}=o,[a,l]=useState(null);return useEffect(()=>{(async()=>{try{let m=await ge();l({queryClient:s,axiosConfig:{headers:{"Content-Type":"application/json","Device-UID":m}},responseInterceptors:{onFulfilled:f=>f,onRejected:async f=>{let k=f.config,E=tokenStorage.getAuthToken();if(f.response?.status===401&&!k._retry){let U=parseInt(getFromLS(w)||"0",10);if(U>=3)return await r(),setToLS(w,0),Promise.reject(f);if(setToLS(w,`${U+1}`),k._retry=!0,E)try{let x=await t();if(x?.data?.idToken)return k.headers.Authorization=`Bearer ${x?.data?.idToken}`,nt(k)}catch(x){return console.error("Failed to refresh token:",x),await r(),Promise.reject(x)}}}},requestInterceptors:{onFulfilled:f=>f,onRejected:f=>Promise.reject(f)},useDevTool:!0});}catch(m){console.error(m);}})();},[s]),a?jsx(PGLCoreServiceProvider,{...a,baseURL:`${P[n].API_BASE_URL}/${i}`,baseCoreURL:`${P[n].API_BASE_CORE_URL}/${i}`,children:jsx(RewardServiceProvider,{...a,baseURL:`${P[n].API_REWARD_URL}/v1`,children:jsx(AchievementServiceProvider,{...a,baseURL:`${P[n].API_ACHIEVEMENT_URL}/${i}`,children:jsx(GenerateCertificateServiceProvider,{...a,baseURL:`${P[n].API_GENERATE_CERTIFICATE_URL}/v1`,children:e})})})}):jsx(Fragment,{})};var Zr=({children:e,queryClient:s,apiConfig:o})=>{let{environment:r}=o,t=useMemo(()=>{let n=process.env.NEXT_PUBLIC_OPENREPLAY_PROJECT_KEY;if(n)return {projectKey:n,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:t,children:jsx(Xr,{queryClient:s,apiConfig:o,children:jsx(K,{baseURL:`${P[r].API_BASE_URL}`,queryClient:s,children:e})})})};function ut(e,s){if(!s?.reward_models)return [];let o=s.reward_models;return e.map((r,t)=>{let n=o[t]?.[0]||null,i=r.subAchievementIds?.map((a,l)=>{let _=o[t*(r.subAchievementIds?.length||0)+l+1]?.[0]||null;return {id:a,reward_model:_}})||[];return {id:r.id,name:r.name,reward_model:n,subAchievements:i}})}var lt=({campaignId:e})=>{let{data:s,isLoading:o}=useManyAchievements({"filter.labels":{campaign_id:e},"filter.type":"group_mission","pagination.limit":200},{enabled:!!e}),r=useMemo(()=>s?.data?s.data.map(l=>l.groupRewardId).filter(l=>l!==void 0):[],[s?.data]),{mutate:t,data:n,isPending:i}=useCreateModelGroupReward();return useEffect(()=>{r.length>0&&t({group_reward_ids:r});},[r,t]),{mappedAchievements:useMemo(()=>!n?.data||!s?.data?[]:ut(s.data,n.data),[n,s?.data]),isLoading:o||i}},Te=lt;c(Ee,u);
|
|
2
|
+
export{ce as ALLOWED_ORIGINS,xe as AchievementType,K as AuthProvider,ae as CALLBACK_URL,se as NotificationProvider,_e as RewardClaimStatus,V as SessionReplayProvider,Zr as TapquestCoreProvider,$e as TaskType,F as TrackerContext,b as accessTokenKey,ge as checkDeviceUid,G as chipAuthTokenKey,L as convertSnakeToCamel,ue as decodeJWTToken,O as deviceUIDKey,He as filterLocationsByProperty,ze as generateDeviceId,wr as getAccessToken,Xe as getActionsFromAchievementRule,Ar as getChipAuthToken,$ as getDeviceUid,Ye as getLocationIdsFromAchievementRule,Tr as getRefreshToken,Pr as getRetryAttemptsRefreshToken,Qr as getSessionUserId,xr as getUserInfo,ie as httpMaxRetries,z as isAchievementCompleted,Se as isBrowser,D as refreshTokenKey,Ir as removeAccessToken,Cr as removeChipAuthToken,Rr as removeDeviceUid,Ur as removeRefreshToken,Lr as removeUserInfo,w as retryAttemptsRefreshToken,Sr as setAccessToken,he as setChipAuthToken,Be as setDeviceUid,Er as setRefreshToken,kr as setRetryAttemptsRefreshToken,_r as setUserInfo,Ve as sortLocationsByIndex,de as transformProtoUserData,Te as useAchivementPlusRewardModel,I as useAuth,p as useAuthStore,Jr as useDataTracking,fe as useGoogleLogin,sr as useManyAchievementProgress,Fr as useScanChip,H as useSessionReplay,N as useTokenRefresher,M as userInfoKey};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|