@oxyhq/services 5.15.9 → 5.16.1
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/lib/commonjs/core/OxyServices.js +0 -1
- package/lib/commonjs/core/OxyServices.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.assets.js +15 -0
- package/lib/commonjs/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.auth.js +3 -6
- package/lib/commonjs/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/commonjs/core/mixins/OxyServices.devices.js +1 -1
- package/lib/commonjs/core/mixins/OxyServices.devices.js.map +1 -1
- package/lib/commonjs/core/mixins/index.js +11 -12
- package/lib/commonjs/core/mixins/index.js.map +1 -1
- package/lib/commonjs/crypto/signatureService.js +3 -2
- package/lib/commonjs/crypto/signatureService.js.map +1 -1
- package/lib/commonjs/i18n/locales/ar-SA.json +1 -9
- package/lib/commonjs/i18n/locales/ca-ES.json +1 -9
- package/lib/commonjs/i18n/locales/de-DE.json +1 -9
- package/lib/commonjs/i18n/locales/en-US.json +3 -21
- package/lib/commonjs/i18n/locales/es-ES.json +3 -21
- package/lib/commonjs/i18n/locales/fr-FR.json +1 -9
- package/lib/commonjs/i18n/locales/it-IT.json +1 -9
- package/lib/commonjs/i18n/locales/ja-JP.json +1 -9
- package/lib/commonjs/i18n/locales/ko-KR.json +1 -9
- package/lib/commonjs/i18n/locales/pt-PT.json +1 -9
- package/lib/commonjs/i18n/locales/zh-CN.json +1 -9
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/ui/context/OxyContext.js +24 -4
- package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js +217 -100
- package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js +2 -319
- package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/OxyAuthScreen.js +16 -7
- package/lib/commonjs/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js +0 -1
- package/lib/commonjs/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/commonjs/ui/screens/SessionManagementScreen.js +43 -29
- package/lib/commonjs/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/commonjs/ui/stores/authStore.js +14 -1
- package/lib/commonjs/ui/stores/authStore.js.map +1 -1
- package/lib/module/core/OxyServices.js +0 -1
- package/lib/module/core/OxyServices.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.assets.js +15 -0
- package/lib/module/core/mixins/OxyServices.assets.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.auth.js +3 -6
- package/lib/module/core/mixins/OxyServices.auth.js.map +1 -1
- package/lib/module/core/mixins/OxyServices.devices.js +1 -1
- package/lib/module/core/mixins/OxyServices.devices.js.map +1 -1
- package/lib/module/core/mixins/index.js +1 -2
- package/lib/module/core/mixins/index.js.map +1 -1
- package/lib/module/crypto/signatureService.js +3 -2
- package/lib/module/crypto/signatureService.js.map +1 -1
- package/lib/module/i18n/locales/ar-SA.json +1 -9
- package/lib/module/i18n/locales/ca-ES.json +1 -9
- package/lib/module/i18n/locales/de-DE.json +1 -9
- package/lib/module/i18n/locales/en-US.json +3 -21
- package/lib/module/i18n/locales/es-ES.json +3 -21
- package/lib/module/i18n/locales/fr-FR.json +1 -9
- package/lib/module/i18n/locales/it-IT.json +1 -9
- package/lib/module/i18n/locales/ja-JP.json +1 -9
- package/lib/module/i18n/locales/ko-KR.json +1 -9
- package/lib/module/i18n/locales/pt-PT.json +1 -9
- package/lib/module/i18n/locales/zh-CN.json +1 -9
- package/lib/module/index.js.map +1 -1
- package/lib/module/ui/context/OxyContext.js +24 -4
- package/lib/module/ui/context/OxyContext.js.map +1 -1
- package/lib/module/ui/context/hooks/useAuthOperations.js +217 -100
- package/lib/module/ui/context/hooks/useAuthOperations.js.map +1 -1
- package/lib/module/ui/screens/AccountSettingsScreen.js +2 -319
- package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/OxyAuthScreen.js +16 -7
- package/lib/module/ui/screens/OxyAuthScreen.js.map +1 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js +0 -1
- package/lib/module/ui/screens/PrivacySettingsScreen.js.map +1 -1
- package/lib/module/ui/screens/SessionManagementScreen.js +44 -29
- package/lib/module/ui/screens/SessionManagementScreen.js.map +1 -1
- package/lib/module/ui/stores/authStore.js +14 -1
- package/lib/module/ui/stores/authStore.js.map +1 -1
- package/lib/typescript/core/OxyServices.d.ts +0 -1
- package/lib/typescript/core/OxyServices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts +7 -1
- package/lib/typescript/core/mixins/OxyServices.assets.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts +3 -4
- package/lib/typescript/core/mixins/OxyServices.auth.d.ts.map +1 -1
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts +1 -4
- package/lib/typescript/core/mixins/OxyServices.devices.d.ts.map +1 -1
- package/lib/typescript/core/mixins/index.d.ts +2 -64
- package/lib/typescript/core/mixins/index.d.ts.map +1 -1
- package/lib/typescript/crypto/signatureService.d.ts +2 -1
- package/lib/typescript/crypto/signatureService.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +1 -1
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/models/interfaces.d.ts +22 -1
- package/lib/typescript/models/interfaces.d.ts.map +1 -1
- package/lib/typescript/types/bip39.d.ts +1 -0
- package/lib/typescript/types/buffer.d.ts +1 -0
- package/lib/typescript/types/color.d.ts +1 -0
- package/lib/typescript/types/elliptic.d.ts +1 -0
- package/lib/typescript/types/expo-crypto.d.ts +1 -0
- package/lib/typescript/types/expo-secure-store.d.ts +1 -0
- package/lib/typescript/ui/context/OxyContext.d.ts +11 -3
- package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +13 -5
- package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +1 -1
- package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/OxyAuthScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/PrivacySettingsScreen.d.ts.map +1 -1
- package/lib/typescript/ui/screens/SessionManagementScreen.d.ts.map +1 -1
- package/lib/typescript/ui/stores/authStore.d.ts +4 -0
- package/lib/typescript/ui/stores/authStore.d.ts.map +1 -1
- package/package.json +5 -4
- package/src/core/OxyServices.ts +0 -1
- package/src/core/mixins/OxyServices.assets.ts +16 -1
- package/src/core/mixins/OxyServices.auth.ts +3 -8
- package/src/core/mixins/OxyServices.devices.ts +1 -4
- package/src/core/mixins/index.ts +2 -5
- package/src/crypto/index.ts +1 -0
- package/src/crypto/keyManager.ts +1 -0
- package/src/crypto/polyfill.ts +1 -0
- package/src/crypto/recoveryPhrase.ts +1 -0
- package/src/crypto/signatureService.ts +4 -5
- package/src/i18n/locales/ar-SA.json +1 -9
- package/src/i18n/locales/ca-ES.json +1 -9
- package/src/i18n/locales/de-DE.json +1 -9
- package/src/i18n/locales/en-US.json +3 -21
- package/src/i18n/locales/es-ES.json +3 -21
- package/src/i18n/locales/fr-FR.json +1 -9
- package/src/i18n/locales/it-IT.json +1 -9
- package/src/i18n/locales/ja-JP.json +1 -9
- package/src/i18n/locales/ko-KR.json +1 -9
- package/src/i18n/locales/pt-PT.json +1 -9
- package/src/i18n/locales/zh-CN.json +1 -9
- package/src/index.ts +4 -1
- package/src/models/interfaces.ts +24 -1
- package/src/types/bip39.d.ts +1 -0
- package/src/types/buffer.d.ts +1 -0
- package/src/types/color.d.ts +1 -0
- package/src/types/elliptic.d.ts +1 -0
- package/src/types/expo-crypto.d.ts +1 -0
- package/src/types/expo-secure-store.d.ts +1 -0
- package/src/ui/context/OxyContext.tsx +35 -3
- package/src/ui/context/hooks/useAuthOperations.ts +212 -98
- package/src/ui/screens/AccountSettingsScreen.tsx +1 -201
- package/src/ui/screens/OxyAuthScreen.tsx +16 -8
- package/src/ui/screens/PrivacySettingsScreen.tsx +0 -2
- package/src/ui/screens/SessionManagementScreen.tsx +43 -26
- package/src/ui/stores/authStore.ts +31 -2
- package/lib/commonjs/core/mixins/OxyServices.totp.js +0 -53
- package/lib/commonjs/core/mixins/OxyServices.totp.js.map +0 -1
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js +0 -467
- package/lib/commonjs/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
- package/lib/module/core/mixins/OxyServices.totp.js +0 -49
- package/lib/module/core/mixins/OxyServices.totp.js.map +0 -1
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js +0 -460
- package/lib/module/ui/components/profile/TwoFactorSetupModal.js.map +0 -1
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts +0 -66
- package/lib/typescript/core/mixins/OxyServices.totp.d.ts.map +0 -1
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts +0 -11
- package/lib/typescript/ui/components/profile/TwoFactorSetupModal.d.ts.map +0 -1
- package/src/core/mixins/OxyServices.totp.ts +0 -36
- package/src/ui/components/profile/TwoFactorSetupModal.tsx +0 -442
|
@@ -46,14 +46,6 @@
|
|
|
46
46
|
"status": {
|
|
47
47
|
"accountSwitched": "{{name}}を使用中"
|
|
48
48
|
},
|
|
49
|
-
"totp": {
|
|
50
|
-
"title": "二要素認証コード",
|
|
51
|
-
"subtitle": "@{{username}}の認証アプリから6桁のコードを入力してください",
|
|
52
|
-
"invalidCode": "無効なコードです。もう一度お試しください。",
|
|
53
|
-
"noAccess": "認証アプリにアクセスできませんか?",
|
|
54
|
-
"useBackupCode": "バックアップコードを使用",
|
|
55
|
-
"useRecoveryKey": "回復キーを使用"
|
|
56
|
-
}
|
|
57
49
|
},
|
|
58
50
|
"signup": {
|
|
59
51
|
"welcome": {
|
|
@@ -98,7 +90,7 @@
|
|
|
98
90
|
"password": "パスワード"
|
|
99
91
|
},
|
|
100
92
|
"notSet": "未設定",
|
|
101
|
-
"securityTip": "
|
|
93
|
+
"securityTip": "より強力なセキュリティのため、アカウント作成後、アカウント設定から生体認証を有効にしてください。",
|
|
102
94
|
"legalReminder": "アカウントを作成することで、利用規約とプライバシーポリシーに同意したことになります。"
|
|
103
95
|
}
|
|
104
96
|
},
|
|
@@ -46,14 +46,6 @@
|
|
|
46
46
|
"status": {
|
|
47
47
|
"accountSwitched": "{{name}} 사용 중"
|
|
48
48
|
},
|
|
49
|
-
"totp": {
|
|
50
|
-
"title": "2단계 인증 코드",
|
|
51
|
-
"subtitle": "@{{username}}의 인증 앱에서 6자리 코드를 입력하세요",
|
|
52
|
-
"invalidCode": "잘못된 코드입니다. 다시 시도해주세요.",
|
|
53
|
-
"noAccess": "인증 앱에 액세스할 수 없나요?",
|
|
54
|
-
"useBackupCode": "백업 코드 사용",
|
|
55
|
-
"useRecoveryKey": "복구 키 사용"
|
|
56
|
-
}
|
|
57
49
|
},
|
|
58
50
|
"signup": {
|
|
59
51
|
"welcome": {
|
|
@@ -98,7 +90,7 @@
|
|
|
98
90
|
"password": "비밀번호"
|
|
99
91
|
},
|
|
100
92
|
"notSet": "설정되지 않음",
|
|
101
|
-
"securityTip": "더 강력한 보안을 위해 계정을 만든 후 계정 설정에서
|
|
93
|
+
"securityTip": "더 강력한 보안을 위해 계정을 만든 후 계정 설정에서 생체 인증을 활성화하세요.",
|
|
102
94
|
"legalReminder": "계정을 만들면 서비스 약관 및 개인정보 보호정책에 동의하는 것입니다."
|
|
103
95
|
}
|
|
104
96
|
},
|
|
@@ -46,14 +46,6 @@
|
|
|
46
46
|
"status": {
|
|
47
47
|
"accountSwitched": "Agora a usar {{name}}"
|
|
48
48
|
},
|
|
49
|
-
"totp": {
|
|
50
|
-
"title": "Código de dois fatores",
|
|
51
|
-
"subtitle": "Introduza o código de 6 dígitos da sua app autenticadora para @{{username}}",
|
|
52
|
-
"invalidCode": "Código inválido. Por favor, tente novamente.",
|
|
53
|
-
"noAccess": "Sem acesso ao seu autenticador?",
|
|
54
|
-
"useBackupCode": "Usar código de backup",
|
|
55
|
-
"useRecoveryKey": "Usar chave de recuperação"
|
|
56
|
-
}
|
|
57
49
|
},
|
|
58
50
|
"signup": {
|
|
59
51
|
"welcome": {
|
|
@@ -98,7 +90,7 @@
|
|
|
98
90
|
"password": "Palavra-passe"
|
|
99
91
|
},
|
|
100
92
|
"notSet": "Não definido",
|
|
101
|
-
"securityTip": "Para maior segurança, ative a
|
|
93
|
+
"securityTip": "Para maior segurança, ative a autenticação biométrica nas Definições da conta após criar a sua conta.",
|
|
102
94
|
"legalReminder": "Ao criar uma conta, concorda com os nossos Termos de Serviço e Política de Privacidade."
|
|
103
95
|
}
|
|
104
96
|
},
|
|
@@ -46,14 +46,6 @@
|
|
|
46
46
|
"status": {
|
|
47
47
|
"accountSwitched": "正在使用{{name}}"
|
|
48
48
|
},
|
|
49
|
-
"totp": {
|
|
50
|
-
"title": "双因素验证码",
|
|
51
|
-
"subtitle": "输入@{{username}}的验证器应用中的6位数字代码",
|
|
52
|
-
"invalidCode": "无效的代码。请重试。",
|
|
53
|
-
"noAccess": "无法访问您的验证器?",
|
|
54
|
-
"useBackupCode": "使用备份代码",
|
|
55
|
-
"useRecoveryKey": "使用恢复密钥"
|
|
56
|
-
}
|
|
57
49
|
},
|
|
58
50
|
"signup": {
|
|
59
51
|
"welcome": {
|
|
@@ -98,7 +90,7 @@
|
|
|
98
90
|
"password": "密码"
|
|
99
91
|
},
|
|
100
92
|
"notSet": "未设置",
|
|
101
|
-
"securityTip": "
|
|
93
|
+
"securityTip": "为了更强的安全性,创建账户后,请在账户设置中启用生物识别身份验证。",
|
|
102
94
|
"legalReminder": "创建账户即表示您同意我们的服务条款和隐私政策。"
|
|
103
95
|
}
|
|
104
96
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_crypto","_core","_OxyContext","_OxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_OxySignInButton","_ui","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUAA,OAAA;AAGA,IAAAC,OAAA,GAAAD,OAAA;AAOA,IAAAE,KAAA,GAAAF,OAAA;AAUA,IAAAG,WAAA,GAAAH,OAAA;AAMA,IAAAI,YAAA,GAAAC,sBAAA,CAAAL,OAAA;AAGA,IAAAM,cAAA,GAAAN,OAAA;AAIA,IAAAO,cAAA,GAAAP,OAAA;
|
|
1
|
+
{"version":3,"names":["require","_crypto","_core","_OxyContext","_OxyProvider","_interopRequireDefault","_deviceManager","_languageUtils","_authStore","_assetStore","_useSessionSocket","_useAssets","_useFileDownloadUrl","_OxySignInButton","_ui","_apiUtils","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_errorUtils","_validationUtils","_loggerUtils","_asyncUtils","_hookUtils","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -71,7 +71,12 @@ const OxyProvider = ({
|
|
|
71
71
|
error,
|
|
72
72
|
loginSuccess,
|
|
73
73
|
loginFailure,
|
|
74
|
-
logoutStore
|
|
74
|
+
logoutStore,
|
|
75
|
+
// Identity sync state and actions
|
|
76
|
+
isIdentitySyncedStore,
|
|
77
|
+
isSyncing,
|
|
78
|
+
setIdentitySynced,
|
|
79
|
+
setSyncing
|
|
75
80
|
} = (0, _authStore.useAuthStore)((0, _shallow.useShallow)(state => ({
|
|
76
81
|
user: state.user,
|
|
77
82
|
isAuthenticated: state.isAuthenticated,
|
|
@@ -79,7 +84,12 @@ const OxyProvider = ({
|
|
|
79
84
|
error: state.error,
|
|
80
85
|
loginSuccess: state.loginSuccess,
|
|
81
86
|
loginFailure: state.loginFailure,
|
|
82
|
-
logoutStore: state.logout
|
|
87
|
+
logoutStore: state.logout,
|
|
88
|
+
// Identity sync state and actions
|
|
89
|
+
isIdentitySyncedStore: state.isIdentitySynced,
|
|
90
|
+
isSyncing: state.isSyncing,
|
|
91
|
+
setIdentitySynced: state.setIdentitySynced,
|
|
92
|
+
setSyncing: state.setSyncing
|
|
83
93
|
})));
|
|
84
94
|
const [tokenReady, setTokenReady] = (0, _react.useState)(true);
|
|
85
95
|
const initializedRef = (0, _react.useRef)(false);
|
|
@@ -141,7 +151,9 @@ const OxyProvider = ({
|
|
|
141
151
|
logout,
|
|
142
152
|
logoutAll,
|
|
143
153
|
hasIdentity,
|
|
144
|
-
getPublicKey
|
|
154
|
+
getPublicKey,
|
|
155
|
+
isIdentitySynced,
|
|
156
|
+
syncIdentity
|
|
145
157
|
} = (0, _useAuthOperations.useAuthOperations)({
|
|
146
158
|
oxyServices,
|
|
147
159
|
storage,
|
|
@@ -159,6 +171,8 @@ const OxyProvider = ({
|
|
|
159
171
|
loginFailure,
|
|
160
172
|
logoutStore,
|
|
161
173
|
setAuthState,
|
|
174
|
+
setIdentitySynced,
|
|
175
|
+
setSyncing,
|
|
162
176
|
logger
|
|
163
177
|
});
|
|
164
178
|
const {
|
|
@@ -287,6 +301,12 @@ const OxyProvider = ({
|
|
|
287
301
|
signIn,
|
|
288
302
|
hasIdentity,
|
|
289
303
|
getPublicKey,
|
|
304
|
+
isIdentitySynced,
|
|
305
|
+
syncIdentity,
|
|
306
|
+
identitySyncState: {
|
|
307
|
+
isSynced: isIdentitySyncedStore ?? true,
|
|
308
|
+
isSyncing: isSyncing ?? false
|
|
309
|
+
},
|
|
290
310
|
logout,
|
|
291
311
|
logoutAll,
|
|
292
312
|
switchSession: switchSessionForContext,
|
|
@@ -299,7 +319,7 @@ const OxyProvider = ({
|
|
|
299
319
|
oxyServices,
|
|
300
320
|
useFollow: useFollowHook,
|
|
301
321
|
showBottomSheet: showBottomSheetForContext
|
|
302
|
-
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, updateDeviceName, useFollowHook, user, showBottomSheetForContext]);
|
|
322
|
+
}), [activeSessionId, createIdentity, importIdentity, signIn, hasIdentity, getPublicKey, isIdentitySynced, syncIdentity, isIdentitySyncedStore, isSyncing, currentLanguage, currentLanguageMetadata, currentLanguageName, currentNativeLanguageName, error, getDeviceSessions, isAuthenticated, isLoading, logout, logoutAll, logoutAllDeviceSessions, oxyServices, refreshSessionsWithUser, sessions, setLanguage, switchSessionForContext, tokenReady, updateDeviceName, useFollowHook, user, showBottomSheetForContext]);
|
|
303
323
|
return /*#__PURE__*/(0, _jsxRuntime.jsx)(OxyContext.Provider, {
|
|
304
324
|
value: contextValue,
|
|
305
325
|
children: children
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_react","require","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_jsxRuntime","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","console","warn","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","useAuthStore","useShallow","state","logout","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","storageKeys","useMemo","getStorageKeys","storage","useStorage","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","signIn","logoutAll","hasIdentity","getPublicKey","useAuthOperations","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","getItem","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","length","sessionId","validation","validateSession","useHeaderValidation","valid","now","Date","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","merge","switchError","isInvalidSessionError","removeItem","filter","session","useEffect","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","catch","remoteError","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","contextValue","isTokenReady","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default","default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":";;;;;;AACA,IAAAA,MAAA,GAAAC,OAAA;AAUA,IAAAC,KAAA,GAAAD,OAAA;AAGA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AAEA,IAAAM,WAAA,GAAAN,OAAA;AACA,IAAAO,sBAAA,GAAAP,OAAA;AACA,IAAAQ,qBAAA,GAAAR,OAAA;AACA,IAAAS,kBAAA,GAAAT,OAAA;AACA,IAAAU,oBAAA,GAAAV,OAAA;AACA,IAAAW,eAAA,GAAAX,OAAA;AACA,IAAAY,cAAA,GAAAZ,OAAA;AAEA,IAAAa,mBAAA,GAAAb,OAAA;AAA4F,IAAAc,WAAA,GAAAd,OAAA;AA6C5F,MAAMe,UAAU,gBAAG,IAAAC,oBAAa,EAAyB,IAAI,CAAC;AAW9D,IAAIC,mBAAyC,GAAG,IAAI;AAEpD,MAAMC,iBAAiB,GAAGA,CAAA,KAAqB;EAC7C,IAAID,mBAAmB,EAAE;IACvB,OAAOA,mBAAmB;EAC5B;EAEA,IAAI;IACF;IACA,MAAM;MAAEE;IAAU,CAAC,GAAGnB,OAAO,CAAC,oBAAoB,CAAC;IACnDiB,mBAAmB,GAAGE,SAA0B;IAChD,OAAOF,mBAAmB;EAC5B,CAAC,CAAC,OAAOG,KAAK,EAAE;IACd,IAAIC,OAAO,EAAE;MACXC,OAAO,CAACC,IAAI,CACV,yFAAyF,EACzFH,KACF,CAAC;IACH;IAEA,MAAMI,QAAuB,GAAGA,CAAA,KAAM;MACpC,MAAM,IAAIC,KAAK,CAAC,oFAAoF,CAAC;IACvG,CAAC;IAEDR,mBAAmB,GAAGO,QAAQ;IAC9B,OAAOP,mBAAmB;EAC5B;AACF,CAAC;AAEM,MAAMS,WAA8C,GAAGA,CAAC;EAC7DC,QAAQ;EACRC,WAAW,EAAEC,mBAAmB;EAChCC,OAAO;EACPC,gBAAgB,GAAG,aAAa;EAChCC,iBAAiB;EACjBC;AACF,CAAC,KAAK;EACJ,MAAMC,cAAc,GAAG,IAAAC,aAAM,EAAqB,IAAI,CAAC;EAEvD,IAAI,CAACD,cAAc,CAACE,OAAO,EAAE;IAC3B,IAAIP,mBAAmB,EAAE;MACvBK,cAAc,CAACE,OAAO,GAAGP,mBAAmB;IAC9C,CAAC,MAAM,IAAIC,OAAO,EAAE;MAClBI,cAAc,CAACE,OAAO,GAAG,IAAIC,iBAAW,CAAC;QAAEP;MAAQ,CAAC,CAAC;IACvD,CAAC,MAAM;MACL,MAAM,IAAIL,KAAK,CAAC,sEAAsE,CAAC;IACzF;EACF;EAEA,MAAMG,WAAW,GAAGM,cAAc,CAACE,OAAO;EAE1C,MAAM;IACJE,IAAI;IACJC,eAAe;IACfC,SAAS;IACTpB,KAAK;IACLqB,YAAY;IACZC,YAAY;IACZC;EACF,CAAC,GAAG,IAAAC,uBAAY,EACd,IAAAC,mBAAU,EAAEC,KAAgB,KAAM;IAChCR,IAAI,EAAEQ,KAAK,CAACR,IAAI;IAChBC,eAAe,EAAEO,KAAK,CAACP,eAAe;IACtCC,SAAS,EAAEM,KAAK,CAACN,SAAS;IAC1BpB,KAAK,EAAE0B,KAAK,CAAC1B,KAAK;IAClBqB,YAAY,EAAEK,KAAK,CAACL,YAAY;IAChCC,YAAY,EAAEI,KAAK,CAACJ,YAAY;IAChCC,WAAW,EAAEG,KAAK,CAACC;EACrB,CAAC,CAAC,CACJ,CAAC;EAED,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAG,IAAAC,eAAQ,EAAC,IAAI,CAAC;EAClD,MAAMC,cAAc,GAAG,IAAAhB,aAAM,EAAC,KAAK,CAAC;EACpC,MAAMiB,YAAY,GAAGR,uBAAY,CAACS,QAAQ;EAE1C,MAAMC,MAAM,GAAG,IAAAC,kBAAW,EAAC,CAACC,OAAe,EAAEC,GAAa,KAAK;IAC7D,IAAIpC,OAAO,EAAE;MACXC,OAAO,CAACC,IAAI,CAAC,gBAAgBiC,OAAO,EAAE,EAAEC,GAAG,CAAC;IAC9C;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,WAAW,GAAG,IAAAC,cAAO,EAAC,MAAM,IAAAC,8BAAc,EAAC7B,gBAAgB,CAAC,EAAE,CAACA,gBAAgB,CAAC,CAAC;EAEvF,MAAM;IAAE8B;EAAQ,CAAC,GAAG,IAAAC,sBAAU,EAAC;IAAE7B,OAAO;IAAEqB;EAAO,CAAC,CAAC;EAEnD,MAAM;IACJS,eAAe;IACfC,QAAQ,EAAEC,uBAAuB;IACjCC,YAAY,EAAEC,mBAAmB;IACjCC,kBAAkB,EAAEC,yBAAyB;IAC7CC,WAAW;IACXC;EACF,CAAC,GAAG,IAAAC,4CAAqB,EAAC;IACxBX,OAAO;IACPY,WAAW,EAAEf,WAAW,CAACgB,QAAQ;IACjCzC,OAAO;IACPqB;EACF,CAAC,CAAC;EAEF,MAAM;IACJqB,QAAQ;IACRC,eAAe;IACfC,kBAAkB;IAClBC,cAAc;IACdC,aAAa;IACbC,eAAe;IACfC,iBAAiB;IACjBC,mBAAmB;IACnBC;EACF,CAAC,GAAG,IAAAC,0CAAoB,EAAC;IACvBxD,WAAW;IACXiC,OAAO;IACP9B,gBAAgB;IAChBU,YAAY;IACZE,WAAW;IACX4B,uBAAuB;IACvBvC,iBAAiB;IACjBC,OAAO;IACPoD,YAAY,EAAG7B,OAAO,IAAKJ,YAAY,CAAC;MAAEhC,KAAK,EAAEoC;IAAQ,CAAC,CAAC;IAC3DF,MAAM;IACNL;EACF,CAAC,CAAC;EAEF,MAAM;IACJqC,cAAc;IACdC,cAAc;IACdC,MAAM;IACNzC,MAAM;IACN0C,SAAS;IACTC,WAAW;IACXC;EACF,CAAC,GAAG,IAAAC,oCAAiB,EAAC;IACpBhE,WAAW;IACXiC,OAAO;IACPc,QAAQ;IACRC,eAAe;IACfC,kBAAkB;IAClBC,cAAc;IACdI,mBAAmB;IACnBD,iBAAiB;IACjBF,aAAa;IACbR,uBAAuB;IACvBvC,iBAAiB;IACjBC,OAAO;IACPQ,YAAY;IACZC,YAAY;IACZC,WAAW;IACXS,YAAY;IACZE;EACF,CAAC,CAAC;EAEF,MAAM;IAAEuC,iBAAiB;IAAEC,uBAAuB;IAAEC;EAAiB,CAAC,GAAG,IAAAC,wCAAmB,EAAC;IAC3FpE,WAAW;IACXgD,eAAe;IACf3C,OAAO;IACPgD,iBAAiB;IACjB3B;EACF,CAAC,CAAC;EAEF,MAAM2C,aAAa,GAAG/E,iBAAiB,CAAC,CAAC;EAEzC,MAAMgF,0BAA0B,GAAG,IAAA3C,kBAAW,EAAC,YAA2B;IACxE,IAAI,CAACM,OAAO,EAAE;MACZ;IACF;IAEAZ,aAAa,CAAC,KAAK,CAAC;IAEpB,IAAI;MACF,MAAMkD,oBAAoB,GAAG,MAAMtC,OAAO,CAACuC,OAAO,CAAC1C,WAAW,CAAC2C,UAAU,CAAC;MAC1E,MAAMC,gBAA0B,GAAGH,oBAAoB,GAAGI,IAAI,CAACC,KAAK,CAACL,oBAAoB,CAAC,GAAG,EAAE;MAC/F,MAAMM,qBAAqB,GAAG,MAAM5C,OAAO,CAACuC,OAAO,CAAC1C,WAAW,CAACkB,eAAe,CAAC;MAEhF,MAAM8B,aAA8B,GAAG,EAAE;MAEzC,IAAIJ,gBAAgB,CAACK,MAAM,GAAG,CAAC,EAAE;QAC/B,KAAK,MAAMC,SAAS,IAAIN,gBAAgB,EAAE;UACxC,IAAI;YACF,MAAMO,UAAU,GAAG,MAAMjF,WAAW,CAACkF,eAAe,CAACF,SAAS,EAAE;cAAEG,mBAAmB,EAAE;YAAK,CAAC,CAAC;YAC9F,IAAIF,UAAU,EAAEG,KAAK,IAAIH,UAAU,CAACvE,IAAI,EAAE;cACxC,MAAM2E,GAAG,GAAG,IAAIC,IAAI,CAAC,CAAC;cACtBR,aAAa,CAACS,IAAI,CAAC;gBACjBP,SAAS;gBACTQ,QAAQ,EAAE,EAAE;gBACZC,SAAS,EAAE,IAAIH,IAAI,CAACD,GAAG,CAACK,OAAO,CAAC,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAACC,WAAW,CAAC,CAAC;gBAC1EC,UAAU,EAAEP,GAAG,CAACM,WAAW,CAAC,CAAC;gBAC7BE,MAAM,EAAEZ,UAAU,CAACvE,IAAI,CAACoF,EAAE,EAAEC,QAAQ,CAAC,CAAC,IAAI,EAAE;gBAC5CC,SAAS,EAAEhB,SAAS,KAAKH;cAC3B,CAAC,CAAC;YACJ;UACF,CAAC,CAAC,OAAOoB,eAAe,EAAE;YACxBvE,MAAM,CAAC,uCAAuC,EAAEuE,eAAe,CAAC;UAClE;QACF;QAEA,IAAInB,aAAa,CAACC,MAAM,GAAG,CAAC,EAAE;UAC5B7B,cAAc,CAAC4B,aAAa,EAAE;YAAEoB,KAAK,EAAE;UAAM,CAAC,CAAC;QACjD;MACF;MAEA,IAAIrB,qBAAqB,EAAE;QACzB,IAAI;UACF,MAAM1B,aAAa,CAAC0B,qBAAqB,CAAC;QAC5C,CAAC,CAAC,OAAOsB,WAAW,EAAE;UACpB,IAAI,IAAAC,oCAAqB,EAACD,WAAW,CAAC,EAAE;YACtC,MAAMlE,OAAO,CAACoE,UAAU,CAACvE,WAAW,CAACkB,eAAe,CAAC;YACrDE,cAAc,CACZ4B,aAAa,CAACwB,MAAM,CAAEC,OAAO,IAAKA,OAAO,CAACvB,SAAS,KAAKH,qBAAqB,CAAC,EAC9E;cAAEqB,KAAK,EAAE;YAAM,CACjB,CAAC;UACH,CAAC,MAAM;YACLxE,MAAM,CAAC,iCAAiC,EAAEyE,WAAW,CAAC;UACxD;QACF;MACF;IACF,CAAC,CAAC,OAAO3G,KAAK,EAAE;MACd,IAAIC,OAAO,EAAE;QACXC,OAAO,CAACF,KAAK,CAAC,iBAAiB,EAAEA,KAAK,CAAC;MACzC;MACA,MAAM6D,iBAAiB,CAAC,CAAC;IAC3B,CAAC,SAAS;MACRhC,aAAa,CAAC,IAAI,CAAC;IACrB;EACF,CAAC,EAAE,CACDgC,iBAAiB,EACjB3B,MAAM,EACN1B,WAAW,EACXiC,OAAO,EACPH,WAAW,CAACkB,eAAe,EAC3BlB,WAAW,CAAC2C,UAAU,EACtBtB,aAAa,EACbD,cAAc,CACf,CAAC;EAEF,IAAAsD,gBAAS,EAAC,MAAM;IACd,IAAI,CAACvE,OAAO,IAAIV,cAAc,CAACf,OAAO,EAAE;MACtC;IACF;IAEAe,cAAc,CAACf,OAAO,GAAG,IAAI;IAC7B,KAAK8D,0BAA0B,CAAC,CAAC;EACnC,CAAC,EAAE,CAACA,0BAA0B,EAAErC,OAAO,CAAC,CAAC;EAEzC,MAAMwE,aAAa,GAAGzD,eAAe,GACjCD,QAAQ,CAAC2D,IAAI,CAAEH,OAAO,IAAKA,OAAO,CAACvB,SAAS,KAAKhC,eAAe,CAAC,GACjE2D,SAAS;EACb,MAAMC,eAAe,GAAGH,aAAa,EAAEjB,QAAQ,IAAI,IAAI;EAEvD,MAAMK,MAAM,GAAGnF,IAAI,EAAEoF,EAAE;EAEvB,MAAMe,uBAAuB,GAAG,IAAAlF,kBAAW,EACzC,MAAMyB,eAAe,CAACyC,MAAM,CAAC,EAC7B,CAACzC,eAAe,EAAEyC,MAAM,CAC1B,CAAC;EAED,MAAMiB,oBAAoB,GAAG,IAAAnF,kBAAW,EACrCqD,SAAiB,IAAK;IACrBzB,mBAAmB,CAACyB,SAAS,CAAC;EAChC,CAAC,EACD,CAACzB,mBAAmB,CACtB,CAAC;EAED,MAAMwD,mBAAmB,GAAG,IAAApF,kBAAW,EAAC,MAAM;IAC5CqF,aAAK,CAACC,IAAI,CAAC,oCAAoC,CAAC;IAChD9F,MAAM,CAAC,CAAC,CAAC+F,KAAK,CAAEC,WAAW,IAAKzF,MAAM,CAAC,mCAAmC,EAAEyF,WAAW,CAAC,CAAC;EAC3F,CAAC,EAAE,CAACzF,MAAM,EAAEP,MAAM,CAAC,CAAC;EAEpB,IAAAiG,kCAAgB,EAAC;IACfvB,MAAM;IACN7C,eAAe;IACf4D,eAAe;IACfxD,eAAe,EAAEyD,uBAAuB;IACxC1F,MAAM;IACNkC,iBAAiB;IACjBnD,OAAO,EAAEF,WAAW,CAACqH,UAAU,CAAC,CAAC;IACjCC,eAAe,EAAEP,mBAAmB;IACpCQ,gBAAgB,EAAET;EACpB,CAAC,CAAC;EAEF,MAAMU,uBAAuB,GAAG,IAAA7F,kBAAW,EACzC,MAAOqD,SAAiB,IAAoB;IAC1C,MAAM7B,aAAa,CAAC6B,SAAS,CAAC;EAChC,CAAC,EACD,CAAC7B,aAAa,CAChB,CAAC;;EAED;EACA,MAAMsE,yBAAyB,GAAG,IAAA9F,kBAAW,EAC1C+F,cAAkF,IAAK;IACtF,IAAAC,mCAAqB,EAACD,cAAc,CAAC;EACvC,CAAC,EACD,EACF,CAAC;EAED,MAAME,YAA6B,GAAG,IAAA7F,cAAO,EAAC,OAAO;IACnDrB,IAAI;IACJqC,QAAQ;IACRC,eAAe;IACfrC,eAAe;IACfC,SAAS;IACTiH,YAAY,EAAEzG,UAAU;IACxB5B,KAAK;IACL2C,eAAe;IACfE,uBAAuB;IACvBE,mBAAmB;IACnBE,yBAAyB;IACzBiB,cAAc;IACdC,cAAc;IACdC,MAAM;IACNE,WAAW;IACXC,YAAY;IACZ5C,MAAM;IACN0C,SAAS;IACTV,aAAa,EAAEqE,uBAAuB;IACtCM,aAAa,EAAE3G,MAAM;IACrBiC,eAAe,EAAEyD,uBAAuB;IACxCnE,WAAW;IACXuB,iBAAiB;IACjBC,uBAAuB;IACvBC,gBAAgB;IAChBnE,WAAW;IACXT,SAAS,EAAE8E,aAAa;IACxB0D,eAAe,EAAEN;EACnB,CAAC,CAAC,EAAE,CACFzE,eAAe,EACfU,cAAc,EACdC,cAAc,EACdC,MAAM,EACNE,WAAW,EACXC,YAAY,EACZ5B,eAAe,EACfE,uBAAuB,EACvBE,mBAAmB,EACnBE,yBAAyB,EACzBjD,KAAK,EACLyE,iBAAiB,EACjBtD,eAAe,EACfC,SAAS,EACTO,MAAM,EACN0C,SAAS,EACTK,uBAAuB,EACvBlE,WAAW,EACX6G,uBAAuB,EACvB9D,QAAQ,EACRL,WAAW,EACX8E,uBAAuB,EACvBpG,UAAU,EACV+C,gBAAgB,EAChBE,aAAa,EACb3D,IAAI,EACJ+G,yBAAyB,CAC1B,CAAC;EAEF,oBACE,IAAAvI,WAAA,CAAA8I,GAAA,EAAC7I,UAAU,CAAC8I,QAAQ;IAACC,KAAK,EAAEN,YAAa;IAAA7H,QAAA,EACtCA;EAAQ,CACU,CAAC;AAE1B,CAAC;AAACoI,OAAA,CAAArI,WAAA,GAAAA,WAAA;AAEK,MAAMsI,kBAAkB,GAAAD,OAAA,CAAAC,kBAAA,GAAGtI,WAAW;AAEtC,MAAMuI,MAAM,GAAGA,CAAA,KAAuB;EAC3C,MAAMC,OAAO,GAAG,IAAAC,iBAAU,EAACpJ,UAAU,CAAC;EACtC,IAAI,CAACmJ,OAAO,EAAE;IACZ,MAAM,IAAIzI,KAAK,CAAC,kDAAkD,CAAC;EACrE;EACA,OAAOyI,OAAO;AAChB,CAAC;AAACH,OAAA,CAAAE,MAAA,GAAAA,MAAA;AAAA,IAAAG,QAAA,GAAAL,OAAA,CAAAM,OAAA,GAEatJ,UAAU","ignoreList":[]}
|
|
1
|
+
{"version":3,"names":["_react","require","_core","_sonner","_authStore","_shallow","_useSessionSocket","_useStorage","_useLanguageManagement","_useSessionManagement","_useAuthOperations","_useDeviceManagement","_storageHelpers","_errorHandlers","_bottomSheetManager","_jsxRuntime","OxyContext","createContext","cachedUseFollowHook","loadUseFollowHook","useFollow","error","__DEV__","console","warn","fallback","Error","OxyProvider","children","oxyServices","providedOxyServices","baseURL","storageKeyPrefix","onAuthStateChange","onError","oxyServicesRef","useRef","current","OxyServices","user","isAuthenticated","isLoading","loginSuccess","loginFailure","logoutStore","isIdentitySyncedStore","isSyncing","setIdentitySynced","setSyncing","useAuthStore","useShallow","state","logout","isIdentitySynced","tokenReady","setTokenReady","useState","initializedRef","setAuthState","setState","logger","useCallback","message","err","storageKeys","useMemo","getStorageKeys","storage","useStorage","currentLanguage","metadata","currentLanguageMetadata","languageName","currentLanguageName","nativeLanguageName","currentNativeLanguageName","setLanguage","applyLanguagePreference","useLanguageManagement","languageKey","language","sessions","activeSessionId","setActiveSessionId","updateSessions","switchSession","refreshSessions","clearSessionState","saveActiveSessionId","trackRemovedSession","useSessionManagement","setAuthError","createIdentity","importIdentity","signIn","logoutAll","hasIdentity","getPublicKey","syncIdentity","useAuthOperations","getDeviceSessions","logoutAllDeviceSessions","updateDeviceName","useDeviceManagement","useFollowHook","restoreSessionsFromStorage","storedSessionIdsJson","getItem","sessionIds","storedSessionIds","JSON","parse","storedActiveSessionId","validSessions","length","sessionId","validation","validateSession","useHeaderValidation","valid","now","Date","push","deviceId","expiresAt","getTime","toISOString","lastActive","userId","id","toString","isCurrent","validationError","merge","switchError","isInvalidSessionError","removeItem","filter","session","useEffect","activeSession","find","undefined","currentDeviceId","refreshSessionsWithUser","handleSessionRemoved","handleRemoteSignOut","toast","info","catch","remoteError","useSessionSocket","getBaseURL","onRemoteSignOut","onSessionRemoved","switchSessionForContext","showBottomSheetForContext","screenOrConfig","globalShowBottomSheet","contextValue","isTokenReady","identitySyncState","isSynced","removeSession","showBottomSheet","jsx","Provider","value","exports","OxyContextProvider","useOxy","context","useContext","_default","default"],"sourceRoot":"../../../../src","sources":["ui/context/OxyContext.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -35,45 +35,138 @@ const useAuthOperations = ({
|
|
|
35
35
|
loginFailure,
|
|
36
36
|
logoutStore,
|
|
37
37
|
setAuthState,
|
|
38
|
+
setIdentitySynced,
|
|
39
|
+
setSyncing,
|
|
38
40
|
logger
|
|
39
41
|
}) => {
|
|
40
42
|
/**
|
|
41
|
-
*
|
|
43
|
+
* Internal function to perform challenge-response sign in
|
|
42
44
|
*/
|
|
43
|
-
const
|
|
45
|
+
const performSignIn = (0, _react.useCallback)(async publicKey => {
|
|
46
|
+
const deviceFingerprintObj = _deviceManager.DeviceManager.getDeviceFingerprint();
|
|
47
|
+
const deviceFingerprint = JSON.stringify(deviceFingerprintObj);
|
|
48
|
+
const deviceInfo = await _deviceManager.DeviceManager.getDeviceInfo();
|
|
49
|
+
const deviceName = deviceInfo.deviceName || _deviceManager.DeviceManager.getDefaultDeviceName();
|
|
50
|
+
|
|
51
|
+
// Request challenge
|
|
52
|
+
const {
|
|
53
|
+
challenge
|
|
54
|
+
} = await oxyServices.requestChallenge(publicKey);
|
|
55
|
+
|
|
56
|
+
// Note: Biometric authentication check should be handled by the app layer
|
|
57
|
+
// (e.g., accounts app) before calling signIn. The biometric preference is stored
|
|
58
|
+
// in local storage as 'oxy_biometric_enabled' and can be checked there.
|
|
59
|
+
|
|
60
|
+
// Sign the challenge
|
|
61
|
+
const {
|
|
62
|
+
challenge: signature,
|
|
63
|
+
timestamp
|
|
64
|
+
} = await _crypto.SignatureService.signChallenge(challenge);
|
|
65
|
+
|
|
66
|
+
// Verify and create session
|
|
67
|
+
const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
68
|
+
|
|
69
|
+
// Get token for the session
|
|
70
|
+
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
71
|
+
|
|
72
|
+
// Get full user data
|
|
73
|
+
const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
|
|
74
|
+
await applyLanguagePreference(fullUser);
|
|
75
|
+
loginSuccess(fullUser);
|
|
76
|
+
|
|
77
|
+
// Fetch device sessions
|
|
78
|
+
let allDeviceSessions = [];
|
|
79
|
+
try {
|
|
80
|
+
allDeviceSessions = await (0, _sessionHelpers.fetchSessionsWithFallback)(oxyServices, sessionResponse.sessionId, {
|
|
81
|
+
fallbackDeviceId: sessionResponse.deviceId,
|
|
82
|
+
fallbackUserId: fullUser.id,
|
|
83
|
+
logger
|
|
84
|
+
});
|
|
85
|
+
} catch (error) {
|
|
86
|
+
if (__DEV__) {
|
|
87
|
+
console.warn('Failed to fetch device sessions after login:', error);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
// Check for existing session for same user
|
|
92
|
+
const existingSession = allDeviceSessions.find(session => session.userId?.toString() === fullUser.id?.toString() && session.sessionId !== sessionResponse.sessionId);
|
|
93
|
+
if (existingSession) {
|
|
94
|
+
// Logout duplicate session
|
|
95
|
+
try {
|
|
96
|
+
await oxyServices.logoutSession(sessionResponse.sessionId, sessionResponse.sessionId);
|
|
97
|
+
} catch (logoutError) {
|
|
98
|
+
if (__DEV__) {
|
|
99
|
+
console.warn('Failed to logout duplicate session:', logoutError);
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
await switchSession(existingSession.sessionId);
|
|
103
|
+
updateSessions(allDeviceSessions.filter(session => session.sessionId !== sessionResponse.sessionId), {
|
|
104
|
+
merge: false
|
|
105
|
+
});
|
|
106
|
+
onAuthStateChange?.(fullUser);
|
|
107
|
+
return fullUser;
|
|
108
|
+
}
|
|
109
|
+
setActiveSessionId(sessionResponse.sessionId);
|
|
110
|
+
await saveActiveSessionId(sessionResponse.sessionId);
|
|
111
|
+
updateSessions(allDeviceSessions, {
|
|
112
|
+
merge: true
|
|
113
|
+
});
|
|
114
|
+
onAuthStateChange?.(fullUser);
|
|
115
|
+
return fullUser;
|
|
116
|
+
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
|
|
117
|
+
|
|
118
|
+
/**
|
|
119
|
+
* Create a new identity with recovery phrase (offline-first)
|
|
120
|
+
* Identity is purely cryptographic - no username or email required
|
|
121
|
+
*/
|
|
122
|
+
const createIdentity = (0, _react.useCallback)(async () => {
|
|
44
123
|
if (!storage) throw new Error('Storage not initialized');
|
|
45
124
|
setAuthState({
|
|
46
125
|
isLoading: true,
|
|
47
126
|
error: null
|
|
48
127
|
});
|
|
49
128
|
try {
|
|
50
|
-
// Generate new identity with recovery phrase
|
|
129
|
+
// Generate new identity with recovery phrase (works offline)
|
|
51
130
|
const {
|
|
52
131
|
phrase,
|
|
53
132
|
words,
|
|
54
133
|
publicKey
|
|
55
134
|
} = await _crypto.RecoveryPhraseService.generateIdentityWithRecovery();
|
|
56
135
|
|
|
57
|
-
//
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
timestamp
|
|
61
|
-
} = await _crypto.SignatureService.createRegistrationSignature(username, email);
|
|
136
|
+
// Mark as not synced
|
|
137
|
+
await storage.setItem('oxy_identity_synced', 'false');
|
|
138
|
+
setIdentitySynced(false);
|
|
62
139
|
|
|
63
|
-
//
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
140
|
+
// Try to sync with server (will succeed if online)
|
|
141
|
+
try {
|
|
142
|
+
const {
|
|
143
|
+
signature,
|
|
144
|
+
timestamp
|
|
145
|
+
} = await _crypto.SignatureService.createRegistrationSignature();
|
|
146
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
67
147
|
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
148
|
+
// Mark as synced (Zustand store + storage)
|
|
149
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
150
|
+
setIdentitySynced(true);
|
|
151
|
+
return {
|
|
152
|
+
recoveryPhrase: words,
|
|
153
|
+
synced: true
|
|
154
|
+
};
|
|
155
|
+
} catch (syncError) {
|
|
156
|
+
// Offline or server error - identity is created locally but not synced
|
|
157
|
+
if (__DEV__) {
|
|
158
|
+
console.log('[Auth] Identity created locally, will sync when online:', syncError);
|
|
159
|
+
}
|
|
160
|
+
return {
|
|
161
|
+
recoveryPhrase: words,
|
|
162
|
+
synced: false
|
|
163
|
+
};
|
|
164
|
+
}
|
|
74
165
|
} catch (error) {
|
|
75
|
-
// Clean up identity if
|
|
166
|
+
// Clean up identity if generation failed
|
|
76
167
|
await _crypto.KeyManager.deleteIdentity().catch(() => {});
|
|
168
|
+
await storage.removeItem('oxy_identity_synced').catch(() => {});
|
|
169
|
+
setIdentitySynced(true);
|
|
77
170
|
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
78
171
|
defaultMessage: 'Failed to create identity',
|
|
79
172
|
code: REGISTER_ERROR_CODE,
|
|
@@ -90,43 +183,65 @@ const useAuthOperations = ({
|
|
|
90
183
|
isLoading: false
|
|
91
184
|
});
|
|
92
185
|
}
|
|
93
|
-
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
|
|
186
|
+
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
|
|
94
187
|
|
|
95
188
|
/**
|
|
96
|
-
*
|
|
189
|
+
* Check if identity is synced with server (reads from storage for persistence)
|
|
97
190
|
*/
|
|
98
|
-
const
|
|
191
|
+
const isIdentitySyncedFn = (0, _react.useCallback)(async () => {
|
|
192
|
+
if (!storage) return true;
|
|
193
|
+
const synced = await storage.getItem('oxy_identity_synced');
|
|
194
|
+
const isSynced = synced !== 'false';
|
|
195
|
+
setIdentitySynced(isSynced);
|
|
196
|
+
return isSynced;
|
|
197
|
+
}, [storage, setIdentitySynced]);
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Sync local identity with server (call when online)
|
|
201
|
+
*/
|
|
202
|
+
const syncIdentity = (0, _react.useCallback)(async () => {
|
|
99
203
|
if (!storage) throw new Error('Storage not initialized');
|
|
100
204
|
setAuthState({
|
|
101
205
|
isLoading: true,
|
|
102
206
|
error: null
|
|
103
207
|
});
|
|
208
|
+
setSyncing(true);
|
|
104
209
|
try {
|
|
105
|
-
|
|
106
|
-
|
|
210
|
+
const publicKey = await _crypto.KeyManager.getPublicKey();
|
|
211
|
+
if (!publicKey) {
|
|
212
|
+
throw new Error('No identity found on this device');
|
|
213
|
+
}
|
|
107
214
|
|
|
108
|
-
// Check if
|
|
215
|
+
// Check if already synced
|
|
216
|
+
const alreadySynced = await storage.getItem('oxy_identity_synced');
|
|
217
|
+
if (alreadySynced === 'true') {
|
|
218
|
+
// Already synced, just sign in
|
|
219
|
+
setIdentitySynced(true);
|
|
220
|
+
return await performSignIn(publicKey);
|
|
221
|
+
}
|
|
222
|
+
|
|
223
|
+
// Check if already registered on server
|
|
109
224
|
const {
|
|
110
225
|
registered
|
|
111
226
|
} = await oxyServices.checkPublicKeyRegistered(publicKey);
|
|
112
|
-
if (registered) {
|
|
113
|
-
//
|
|
114
|
-
return await performSignIn(publicKey);
|
|
115
|
-
} else {
|
|
116
|
-
// Need to register this identity
|
|
117
|
-
if (!username) {
|
|
118
|
-
throw new Error('Username is required for new registration');
|
|
119
|
-
}
|
|
227
|
+
if (!registered) {
|
|
228
|
+
// Register with server (identity is just the publicKey)
|
|
120
229
|
const {
|
|
121
230
|
signature,
|
|
122
231
|
timestamp
|
|
123
|
-
} = await _crypto.SignatureService.createRegistrationSignature(
|
|
124
|
-
await oxyServices.register(publicKey,
|
|
125
|
-
return await performSignIn(publicKey);
|
|
232
|
+
} = await _crypto.SignatureService.createRegistrationSignature();
|
|
233
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
126
234
|
}
|
|
235
|
+
|
|
236
|
+
// Mark as synced (Zustand store + storage)
|
|
237
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
238
|
+
setIdentitySynced(true);
|
|
239
|
+
|
|
240
|
+
// Sign in
|
|
241
|
+
return await performSignIn(publicKey);
|
|
127
242
|
} catch (error) {
|
|
128
243
|
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
129
|
-
defaultMessage: 'Failed to
|
|
244
|
+
defaultMessage: 'Failed to sync identity',
|
|
130
245
|
code: REGISTER_ERROR_CODE,
|
|
131
246
|
onError,
|
|
132
247
|
setAuthError: msg => setAuthState({
|
|
@@ -140,80 +255,80 @@ const useAuthOperations = ({
|
|
|
140
255
|
setAuthState({
|
|
141
256
|
isLoading: false
|
|
142
257
|
});
|
|
258
|
+
setSyncing(false);
|
|
143
259
|
}
|
|
144
|
-
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger]);
|
|
260
|
+
}, [oxyServices, storage, setAuthState, performSignIn, loginFailure, onError, logger, setSyncing, setIdentitySynced]);
|
|
145
261
|
|
|
146
262
|
/**
|
|
147
|
-
*
|
|
263
|
+
* Import identity from recovery phrase (offline-first)
|
|
148
264
|
*/
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
// Request challenge
|
|
156
|
-
const {
|
|
157
|
-
challenge
|
|
158
|
-
} = await oxyServices.requestChallenge(publicKey);
|
|
159
|
-
|
|
160
|
-
// Sign the challenge
|
|
161
|
-
const {
|
|
162
|
-
challenge: signature,
|
|
163
|
-
timestamp
|
|
164
|
-
} = await _crypto.SignatureService.signChallenge(challenge);
|
|
165
|
-
|
|
166
|
-
// Verify and create session
|
|
167
|
-
const sessionResponse = await oxyServices.verifyChallenge(publicKey, challenge, signature, timestamp, deviceName, deviceFingerprint);
|
|
168
|
-
|
|
169
|
-
// Get token for the session
|
|
170
|
-
await oxyServices.getTokenBySession(sessionResponse.sessionId);
|
|
171
|
-
|
|
172
|
-
// Get full user data
|
|
173
|
-
const fullUser = await oxyServices.getUserBySession(sessionResponse.sessionId);
|
|
174
|
-
await applyLanguagePreference(fullUser);
|
|
175
|
-
loginSuccess(fullUser);
|
|
176
|
-
|
|
177
|
-
// Fetch device sessions
|
|
178
|
-
let allDeviceSessions = [];
|
|
265
|
+
const importIdentity = (0, _react.useCallback)(async phrase => {
|
|
266
|
+
if (!storage) throw new Error('Storage not initialized');
|
|
267
|
+
setAuthState({
|
|
268
|
+
isLoading: true,
|
|
269
|
+
error: null
|
|
270
|
+
});
|
|
179
271
|
try {
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
fallbackUserId: fullUser.id,
|
|
183
|
-
logger
|
|
184
|
-
});
|
|
185
|
-
} catch (error) {
|
|
186
|
-
if (__DEV__) {
|
|
187
|
-
console.warn('Failed to fetch device sessions after login:', error);
|
|
188
|
-
}
|
|
189
|
-
}
|
|
272
|
+
// Restore identity from phrase (works offline)
|
|
273
|
+
const publicKey = await _crypto.RecoveryPhraseService.restoreFromPhrase(phrase);
|
|
190
274
|
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
275
|
+
// Mark as not synced
|
|
276
|
+
await storage.setItem('oxy_identity_synced', 'false');
|
|
277
|
+
setIdentitySynced(false);
|
|
278
|
+
|
|
279
|
+
// Try to sync with server
|
|
195
280
|
try {
|
|
196
|
-
|
|
197
|
-
|
|
281
|
+
// Check if this identity is already registered
|
|
282
|
+
const {
|
|
283
|
+
registered
|
|
284
|
+
} = await oxyServices.checkPublicKeyRegistered(publicKey);
|
|
285
|
+
if (registered) {
|
|
286
|
+
// Identity exists, mark as synced
|
|
287
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
288
|
+
setIdentitySynced(true);
|
|
289
|
+
return {
|
|
290
|
+
synced: true
|
|
291
|
+
};
|
|
292
|
+
} else {
|
|
293
|
+
// Need to register this identity (identity is just the publicKey)
|
|
294
|
+
const {
|
|
295
|
+
signature,
|
|
296
|
+
timestamp
|
|
297
|
+
} = await _crypto.SignatureService.createRegistrationSignature();
|
|
298
|
+
await oxyServices.register(publicKey, signature, timestamp);
|
|
299
|
+
await storage.setItem('oxy_identity_synced', 'true');
|
|
300
|
+
setIdentitySynced(true);
|
|
301
|
+
return {
|
|
302
|
+
synced: true
|
|
303
|
+
};
|
|
304
|
+
}
|
|
305
|
+
} catch (syncError) {
|
|
306
|
+
// Offline - identity restored locally but not synced
|
|
198
307
|
if (__DEV__) {
|
|
199
|
-
console.
|
|
308
|
+
console.log('[Auth] Identity imported locally, will sync when online:', syncError);
|
|
200
309
|
}
|
|
310
|
+
return {
|
|
311
|
+
synced: false
|
|
312
|
+
};
|
|
201
313
|
}
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
314
|
+
} catch (error) {
|
|
315
|
+
const message = (0, _errorHandlers.handleAuthError)(error, {
|
|
316
|
+
defaultMessage: 'Failed to import identity',
|
|
317
|
+
code: REGISTER_ERROR_CODE,
|
|
318
|
+
onError,
|
|
319
|
+
setAuthError: msg => setAuthState({
|
|
320
|
+
error: msg
|
|
321
|
+
}),
|
|
322
|
+
logger
|
|
323
|
+
});
|
|
324
|
+
loginFailure(message);
|
|
325
|
+
throw error;
|
|
326
|
+
} finally {
|
|
327
|
+
setAuthState({
|
|
328
|
+
isLoading: false
|
|
205
329
|
});
|
|
206
|
-
onAuthStateChange?.(fullUser);
|
|
207
|
-
return fullUser;
|
|
208
330
|
}
|
|
209
|
-
|
|
210
|
-
await saveActiveSessionId(sessionResponse.sessionId);
|
|
211
|
-
updateSessions(allDeviceSessions, {
|
|
212
|
-
merge: true
|
|
213
|
-
});
|
|
214
|
-
onAuthStateChange?.(fullUser);
|
|
215
|
-
return fullUser;
|
|
216
|
-
}, [applyLanguagePreference, logger, loginSuccess, onAuthStateChange, oxyServices, saveActiveSessionId, setActiveSessionId, switchSession, updateSessions]);
|
|
331
|
+
}, [oxyServices, storage, setAuthState, loginFailure, onError, logger, setIdentitySynced]);
|
|
217
332
|
|
|
218
333
|
/**
|
|
219
334
|
* Sign in with existing identity on device
|
|
@@ -342,7 +457,9 @@ const useAuthOperations = ({
|
|
|
342
457
|
logout,
|
|
343
458
|
logoutAll,
|
|
344
459
|
hasIdentity,
|
|
345
|
-
getPublicKey
|
|
460
|
+
getPublicKey,
|
|
461
|
+
isIdentitySynced: isIdentitySyncedFn,
|
|
462
|
+
syncIdentity
|
|
346
463
|
};
|
|
347
464
|
};
|
|
348
465
|
exports.useAuthOperations = useAuthOperations;
|