@oxyhq/services 5.16.39 → 5.16.41

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.
Files changed (267) hide show
  1. package/lib/commonjs/adapters/expo/crypto.js +56 -0
  2. package/lib/commonjs/adapters/expo/crypto.js.map +1 -0
  3. package/lib/commonjs/adapters/expo/fetch.js +30 -0
  4. package/lib/commonjs/adapters/expo/fetch.js.map +1 -0
  5. package/lib/commonjs/adapters/expo/index.js +48 -0
  6. package/lib/commonjs/adapters/expo/index.js.map +1 -0
  7. package/lib/commonjs/adapters/expo/storage.js +201 -0
  8. package/lib/commonjs/adapters/expo/storage.js.map +1 -0
  9. package/lib/commonjs/adapters/index.js +41 -0
  10. package/lib/commonjs/adapters/index.js.map +1 -0
  11. package/lib/commonjs/adapters/node/crypto.js +40 -0
  12. package/lib/commonjs/adapters/node/crypto.js.map +1 -0
  13. package/lib/commonjs/adapters/node/fetch.js +62 -0
  14. package/lib/commonjs/adapters/node/fetch.js.map +1 -0
  15. package/lib/commonjs/adapters/node/index.js +34 -0
  16. package/lib/commonjs/adapters/node/index.js.map +1 -0
  17. package/lib/commonjs/adapters/node/storage.js +163 -0
  18. package/lib/commonjs/adapters/node/storage.js.map +1 -0
  19. package/lib/commonjs/core/identity-session/DeviceManager.js +237 -0
  20. package/lib/commonjs/core/identity-session/DeviceManager.js.map +1 -0
  21. package/lib/commonjs/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  22. package/lib/commonjs/core/identity-session/IdentityManager.js +400 -0
  23. package/lib/commonjs/core/identity-session/IdentityManager.js.map +1 -0
  24. package/lib/commonjs/core/identity-session/IdentitySessionCore.js +394 -0
  25. package/lib/commonjs/core/identity-session/IdentitySessionCore.js.map +1 -0
  26. package/lib/commonjs/core/identity-session/RefreshManager.js +137 -0
  27. package/lib/commonjs/core/identity-session/RefreshManager.js.map +1 -0
  28. package/lib/commonjs/core/identity-session/SessionManager.js +427 -0
  29. package/lib/commonjs/core/identity-session/SessionManager.js.map +1 -0
  30. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js +24 -0
  31. package/lib/commonjs/core/identity-session/createIdentitySessionCore.js.map +1 -0
  32. package/lib/commonjs/core/identity-session/errors.js +176 -0
  33. package/lib/commonjs/core/identity-session/errors.js.map +1 -0
  34. package/lib/commonjs/core/identity-session/index.js +80 -0
  35. package/lib/commonjs/core/identity-session/index.js.map +1 -0
  36. package/lib/commonjs/core/identity-session/types.js +2 -0
  37. package/lib/commonjs/core/identity-session/types.js.map +1 -0
  38. package/lib/commonjs/core/index.js +2 -21
  39. package/lib/commonjs/core/index.js.map +1 -1
  40. package/lib/commonjs/index.js +58 -8
  41. package/lib/commonjs/index.js.map +1 -1
  42. package/lib/commonjs/models/interfaces.js +7 -0
  43. package/lib/commonjs/models/interfaces.js.map +1 -1
  44. package/lib/commonjs/ui/context/OxyContext.js +434 -820
  45. package/lib/commonjs/ui/context/OxyContext.js.map +1 -1
  46. package/lib/commonjs/ui/hooks/useAvatarPicker.js +52 -0
  47. package/lib/commonjs/ui/hooks/useAvatarPicker.js.map +1 -0
  48. package/lib/commonjs/ui/hooks/useIdentityTransfer.js +125 -0
  49. package/lib/commonjs/ui/hooks/useIdentityTransfer.js.map +1 -0
  50. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js +81 -0
  51. package/lib/commonjs/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  52. package/lib/commonjs/ui/screens/AccountCenterScreen.js +7 -2
  53. package/lib/commonjs/ui/screens/AccountCenterScreen.js.map +1 -1
  54. package/lib/commonjs/ui/screens/AccountSettingsScreen.js +12 -5
  55. package/lib/commonjs/ui/screens/AccountSettingsScreen.js.map +1 -1
  56. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js +2 -2
  57. package/lib/commonjs/ui/screens/AccountSwitcherScreen.js.map +1 -1
  58. package/lib/commonjs/ui/screens/ProfileScreen.js +6 -6
  59. package/lib/commonjs/ui/screens/ProfileScreen.js.map +1 -1
  60. package/lib/commonjs/ui/utils/sessionHelpers.js +7 -1
  61. package/lib/commonjs/ui/utils/sessionHelpers.js.map +1 -1
  62. package/lib/commonjs/utils/index.js +0 -7
  63. package/lib/commonjs/utils/index.js.map +1 -1
  64. package/lib/commonjs/utils/sessionUtils.js +8 -1
  65. package/lib/commonjs/utils/sessionUtils.js.map +1 -1
  66. package/lib/module/adapters/expo/crypto.js +51 -0
  67. package/lib/module/adapters/expo/crypto.js.map +1 -0
  68. package/lib/module/adapters/expo/fetch.js +26 -0
  69. package/lib/module/adapters/expo/fetch.js.map +1 -0
  70. package/lib/module/adapters/expo/index.js +45 -0
  71. package/lib/module/adapters/expo/index.js.map +1 -0
  72. package/lib/module/adapters/expo/storage.js +198 -0
  73. package/lib/module/adapters/expo/storage.js.map +1 -0
  74. package/lib/module/adapters/index.js +38 -0
  75. package/lib/module/adapters/index.js.map +1 -0
  76. package/lib/module/adapters/node/crypto.js +36 -0
  77. package/lib/module/adapters/node/crypto.js.map +1 -0
  78. package/lib/module/adapters/node/fetch.js +57 -0
  79. package/lib/module/adapters/node/fetch.js.map +1 -0
  80. package/lib/module/adapters/node/index.js +31 -0
  81. package/lib/module/adapters/node/index.js.map +1 -0
  82. package/lib/module/adapters/node/storage.js +159 -0
  83. package/lib/module/adapters/node/storage.js.map +1 -0
  84. package/lib/module/core/identity-session/DeviceManager.js +232 -0
  85. package/lib/module/core/identity-session/DeviceManager.js.map +1 -0
  86. package/lib/module/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  87. package/lib/module/core/identity-session/IdentityManager.js +395 -0
  88. package/lib/module/core/identity-session/IdentityManager.js.map +1 -0
  89. package/lib/module/core/identity-session/IdentitySessionCore.js +390 -0
  90. package/lib/module/core/identity-session/IdentitySessionCore.js.map +1 -0
  91. package/lib/module/core/identity-session/RefreshManager.js +132 -0
  92. package/lib/module/core/identity-session/RefreshManager.js.map +1 -0
  93. package/lib/module/core/identity-session/SessionManager.js +422 -0
  94. package/lib/module/core/identity-session/SessionManager.js.map +1 -0
  95. package/lib/module/core/identity-session/createIdentitySessionCore.js +21 -0
  96. package/lib/module/core/identity-session/createIdentitySessionCore.js.map +1 -0
  97. package/lib/module/core/identity-session/errors.js +170 -0
  98. package/lib/module/core/identity-session/errors.js.map +1 -0
  99. package/lib/module/core/identity-session/index.js +17 -0
  100. package/lib/module/core/identity-session/index.js.map +1 -0
  101. package/lib/module/core/identity-session/types.js +2 -0
  102. package/lib/module/core/identity-session/types.js.map +1 -0
  103. package/lib/module/core/index.js +2 -3
  104. package/lib/module/core/index.js.map +1 -1
  105. package/lib/module/index.js +12 -2
  106. package/lib/module/index.js.map +1 -1
  107. package/lib/module/models/interfaces.js +7 -0
  108. package/lib/module/models/interfaces.js.map +1 -1
  109. package/lib/module/ui/context/OxyContext.js +436 -822
  110. package/lib/module/ui/context/OxyContext.js.map +1 -1
  111. package/lib/module/ui/hooks/useAvatarPicker.js +48 -0
  112. package/lib/module/ui/hooks/useAvatarPicker.js.map +1 -0
  113. package/lib/module/ui/hooks/useIdentityTransfer.js +121 -0
  114. package/lib/module/ui/hooks/useIdentityTransfer.js.map +1 -0
  115. package/lib/module/ui/hooks/useTransferCodesPersistence.js +77 -0
  116. package/lib/module/ui/hooks/useTransferCodesPersistence.js.map +1 -0
  117. package/lib/module/ui/screens/AccountCenterScreen.js +7 -2
  118. package/lib/module/ui/screens/AccountCenterScreen.js.map +1 -1
  119. package/lib/module/ui/screens/AccountSettingsScreen.js +12 -5
  120. package/lib/module/ui/screens/AccountSettingsScreen.js.map +1 -1
  121. package/lib/module/ui/screens/AccountSwitcherScreen.js +2 -2
  122. package/lib/module/ui/screens/AccountSwitcherScreen.js.map +1 -1
  123. package/lib/module/ui/screens/ProfileScreen.js +6 -6
  124. package/lib/module/ui/screens/ProfileScreen.js.map +1 -1
  125. package/lib/module/ui/utils/sessionHelpers.js +7 -1
  126. package/lib/module/ui/utils/sessionHelpers.js.map +1 -1
  127. package/lib/module/utils/index.js +2 -1
  128. package/lib/module/utils/index.js.map +1 -1
  129. package/lib/module/utils/sessionUtils.js +8 -1
  130. package/lib/module/utils/sessionUtils.js.map +1 -1
  131. package/lib/typescript/adapters/expo/crypto.d.ts +17 -0
  132. package/lib/typescript/adapters/expo/crypto.d.ts.map +1 -0
  133. package/lib/typescript/adapters/expo/fetch.d.ts +16 -0
  134. package/lib/typescript/adapters/expo/fetch.d.ts.map +1 -0
  135. package/lib/typescript/adapters/expo/index.d.ts +23 -0
  136. package/lib/typescript/adapters/expo/index.d.ts.map +1 -0
  137. package/lib/typescript/adapters/expo/storage.d.ts +23 -0
  138. package/lib/typescript/adapters/expo/storage.d.ts.map +1 -0
  139. package/lib/typescript/adapters/index.d.ts +13 -0
  140. package/lib/typescript/adapters/index.d.ts.map +1 -0
  141. package/lib/typescript/adapters/node/crypto.d.ts +17 -0
  142. package/lib/typescript/adapters/node/crypto.d.ts.map +1 -0
  143. package/lib/typescript/adapters/node/fetch.d.ts +16 -0
  144. package/lib/typescript/adapters/node/fetch.d.ts.map +1 -0
  145. package/lib/typescript/adapters/node/index.d.ts +23 -0
  146. package/lib/typescript/adapters/node/index.d.ts.map +1 -0
  147. package/lib/typescript/adapters/node/storage.d.ts +23 -0
  148. package/lib/typescript/adapters/node/storage.d.ts.map +1 -0
  149. package/lib/typescript/core/identity-session/DeviceManager.d.ts +64 -0
  150. package/lib/typescript/core/identity-session/DeviceManager.d.ts.map +1 -0
  151. package/lib/typescript/core/identity-session/IdentityManager.d.ts +88 -0
  152. package/lib/typescript/core/identity-session/IdentityManager.d.ts.map +1 -0
  153. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts +141 -0
  154. package/lib/typescript/core/identity-session/IdentitySessionCore.d.ts.map +1 -0
  155. package/lib/typescript/core/identity-session/RefreshManager.d.ts +36 -0
  156. package/lib/typescript/core/identity-session/RefreshManager.d.ts.map +1 -0
  157. package/lib/typescript/core/identity-session/SessionManager.d.ts +104 -0
  158. package/lib/typescript/core/identity-session/SessionManager.d.ts.map +1 -0
  159. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts +11 -0
  160. package/lib/typescript/core/identity-session/createIdentitySessionCore.d.ts.map +1 -0
  161. package/lib/typescript/core/identity-session/errors.d.ts +63 -0
  162. package/lib/typescript/core/identity-session/errors.d.ts.map +1 -0
  163. package/lib/typescript/core/identity-session/index.d.ts +14 -0
  164. package/lib/typescript/core/identity-session/index.d.ts.map +1 -0
  165. package/lib/typescript/core/identity-session/types.d.ts +196 -0
  166. package/lib/typescript/core/identity-session/types.d.ts.map +1 -0
  167. package/lib/typescript/core/index.d.ts +1 -3
  168. package/lib/typescript/core/index.d.ts.map +1 -1
  169. package/lib/typescript/core/mixins/index.d.ts +2 -2
  170. package/lib/typescript/index.d.ts +3 -2
  171. package/lib/typescript/index.d.ts.map +1 -1
  172. package/lib/typescript/models/interfaces.d.ts +5 -36
  173. package/lib/typescript/models/interfaces.d.ts.map +1 -1
  174. package/lib/typescript/models/session.d.ts +3 -16
  175. package/lib/typescript/models/session.d.ts.map +1 -1
  176. package/lib/typescript/ui/context/OxyContext.d.ts +2 -25
  177. package/lib/typescript/ui/context/OxyContext.d.ts.map +1 -1
  178. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts +7 -8
  179. package/lib/typescript/ui/hooks/mutations/useAccountMutations.d.ts.map +1 -1
  180. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts +1 -1
  181. package/lib/typescript/ui/hooks/mutations/useServicesMutations.d.ts.map +1 -1
  182. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts +5 -5
  183. package/lib/typescript/ui/hooks/queries/useAccountQueries.d.ts.map +1 -1
  184. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts +18 -0
  185. package/lib/typescript/ui/hooks/useAvatarPicker.d.ts.map +1 -0
  186. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts +24 -0
  187. package/lib/typescript/ui/hooks/useIdentityTransfer.d.ts.map +1 -0
  188. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts +6 -0
  189. package/lib/typescript/ui/hooks/useTransferCodesPersistence.d.ts.map +1 -0
  190. package/lib/typescript/ui/screens/AccountCenterScreen.d.ts.map +1 -1
  191. package/lib/typescript/ui/screens/AccountSettingsScreen.d.ts.map +1 -1
  192. package/lib/typescript/ui/utils/sessionHelpers.d.ts +1 -0
  193. package/lib/typescript/ui/utils/sessionHelpers.d.ts.map +1 -1
  194. package/lib/typescript/utils/index.d.ts +0 -2
  195. package/lib/typescript/utils/index.d.ts.map +1 -1
  196. package/lib/typescript/utils/sessionUtils.d.ts.map +1 -1
  197. package/package.json +1 -1
  198. package/src/adapters/expo/crypto.ts +55 -0
  199. package/src/adapters/expo/fetch.ts +28 -0
  200. package/src/adapters/expo/index.ts +51 -0
  201. package/src/adapters/expo/storage.ts +228 -0
  202. package/src/adapters/index.ts +40 -0
  203. package/src/adapters/node/crypto.ts +39 -0
  204. package/src/adapters/node/fetch.ts +59 -0
  205. package/src/adapters/node/index.ts +37 -0
  206. package/src/adapters/node/storage.ts +170 -0
  207. package/src/core/identity-session/DeviceManager.ts +273 -0
  208. package/src/core/identity-session/INTEGRATION_GUIDE.md +287 -0
  209. package/src/core/identity-session/IdentityManager.ts +474 -0
  210. package/src/core/identity-session/IdentitySessionCore.ts +464 -0
  211. package/src/core/identity-session/RefreshManager.ts +189 -0
  212. package/src/core/identity-session/SessionManager.ts +500 -0
  213. package/src/core/identity-session/createIdentitySessionCore.ts +19 -0
  214. package/src/core/identity-session/errors.ts +197 -0
  215. package/src/core/identity-session/index.ts +15 -0
  216. package/src/core/identity-session/types.ts +188 -0
  217. package/src/core/index.ts +3 -4
  218. package/src/index.ts +28 -3
  219. package/src/models/interfaces.ts +12 -39
  220. package/src/models/session.ts +6 -16
  221. package/src/ui/context/OxyContext.tsx +442 -871
  222. package/src/ui/hooks/auth/index.ts +1 -0
  223. package/src/ui/hooks/useAvatarPicker.ts +62 -0
  224. package/src/ui/hooks/useIdentityTransfer.ts +135 -0
  225. package/src/ui/hooks/useTransferCodesPersistence.ts +80 -0
  226. package/src/ui/screens/AccountCenterScreen.tsx +7 -2
  227. package/src/ui/screens/AccountSettingsScreen.tsx +15 -8
  228. package/src/ui/screens/AccountSwitcherScreen.tsx +2 -2
  229. package/src/ui/screens/ProfileScreen.tsx +10 -10
  230. package/src/ui/utils/sessionHelpers.ts +7 -0
  231. package/src/utils/index.ts +1 -2
  232. package/src/utils/sessionUtils.ts +8 -0
  233. package/lib/commonjs/ui/context/hooks/useAuthOperations.js +0 -704
  234. package/lib/commonjs/ui/context/hooks/useAuthOperations.js.map +0 -1
  235. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js +0 -73
  236. package/lib/commonjs/ui/context/hooks/useDeviceManagement.js.map +0 -1
  237. package/lib/commonjs/ui/hooks/useDeviceManagement.js +0 -73
  238. package/lib/commonjs/ui/hooks/useDeviceManagement.js.map +0 -1
  239. package/lib/commonjs/ui/hooks/useSessionManagement.js +0 -281
  240. package/lib/commonjs/ui/hooks/useSessionManagement.js.map +0 -1
  241. package/lib/commonjs/utils/deviceManager.js +0 -177
  242. package/lib/commonjs/utils/deviceManager.js.map +0 -1
  243. package/lib/module/ui/context/hooks/useAuthOperations.js +0 -698
  244. package/lib/module/ui/context/hooks/useAuthOperations.js.map +0 -1
  245. package/lib/module/ui/context/hooks/useDeviceManagement.js +0 -68
  246. package/lib/module/ui/context/hooks/useDeviceManagement.js.map +0 -1
  247. package/lib/module/ui/hooks/useDeviceManagement.js +0 -68
  248. package/lib/module/ui/hooks/useDeviceManagement.js.map +0 -1
  249. package/lib/module/ui/hooks/useSessionManagement.js +0 -276
  250. package/lib/module/ui/hooks/useSessionManagement.js.map +0 -1
  251. package/lib/module/utils/deviceManager.js +0 -171
  252. package/lib/module/utils/deviceManager.js.map +0 -1
  253. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts +0 -59
  254. package/lib/typescript/ui/context/hooks/useAuthOperations.d.ts.map +0 -1
  255. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts +0 -27
  256. package/lib/typescript/ui/context/hooks/useDeviceManagement.d.ts.map +0 -1
  257. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts +0 -27
  258. package/lib/typescript/ui/hooks/useDeviceManagement.d.ts.map +0 -1
  259. package/lib/typescript/ui/hooks/useSessionManagement.d.ts +0 -41
  260. package/lib/typescript/ui/hooks/useSessionManagement.d.ts.map +0 -1
  261. package/lib/typescript/utils/deviceManager.d.ts +0 -66
  262. package/lib/typescript/utils/deviceManager.d.ts.map +0 -1
  263. package/src/ui/context/hooks/useAuthOperations.ts +0 -773
  264. package/src/ui/context/hooks/useDeviceManagement.ts +0 -108
  265. package/src/ui/hooks/useDeviceManagement.ts +0 -108
  266. package/src/ui/hooks/useSessionManagement.ts +0 -401
  267. package/src/utils/deviceManager.ts +0 -198
@@ -0,0 +1 @@
1
+ {"version":3,"names":["createIdentitySessionError","IdentitySessionErrorCodes","isValidPublicKey","isValidPrivateKey","derivePublicKey","getEllipticCurve","ec","STORAGE_KEYS","PRIVATE_KEY","PUBLIC_KEY","BACKUP_PRIVATE_KEY","BACKUP_PUBLIC_KEY","BACKUP_TIMESTAMP","IdentityManager","cachedPublicKey","cachedHasIdentity","constructor","adapter","invalidateCache","ensureNativePlatform","platform","IDENTITY_NOT_AVAILABLE_ON_WEB","storage","isSecureStorageAvailable","SECURE_STORAGE_NOT_AVAILABLE","uint8ArrayToHex","bytes","Array","from","map","b","toString","padStart","join","generateKeyPair","randomBytes","crypto","getRandomBytes","privateKeyHex","keyPair","keyFromPrivate","privateKey","getPrivate","publicKey","getPublic","createIdentity","secureSet","importKeyPair","INVALID_PRIVATE_KEY","INVALID_PUBLIC_KEY","getPrivateKey","secureGet","error","console","warn","getPublicKey","hasIdentity","deleteIdentity","skipBackup","force","userConfirmed","IDENTITY_DELETE_FAILED","backupSuccess","backupIdentity","backupError","secureDelete","remove","set","Date","now","restoreIdentityFromBackup","backupPrivateKey","backupPublicKey","derivedPublicKey","restored","verifyIdentityIntegrity","getKeyPairObject","decryptAndImportBackup","backupData","password","saltBytes","Uint8Array","salt","match","byte","parseInt","ivBytes","iv","saltHex","key","i","digestStringAsync","keyBytes","length","substring","encryptedBytes","Buffer","encrypted","decryptedBytes","TextDecoder","decode","BACKUP_DECRYPTION_FAILED","Error","message","String","signChallenge","challenge","IDENTITY_NOT_FOUND","messageHash","signature","sign","toDER"],"sourceRoot":"../../../../src","sources":["core/identity-session/IdentityManager.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;;AAMA,SACEA,0BAA0B,EAC1BC,yBAAyB,QACpB,UAAU;AACjB,SACEC,gBAAgB,EAChBC,iBAAiB,EACjBC,eAAe,EACfC,gBAAgB,QACX,mBAAmB;AAE1B,MAAMC,EAAE,GAAGD,gBAAgB,CAAC,CAAC;AAE7B,MAAME,YAAY,GAAG;EACnBC,WAAW,EAAE,0BAA0B;EACvCC,UAAU,EAAE,yBAAyB;EACrCC,kBAAkB,EAAE,iCAAiC;EACrDC,iBAAiB,EAAE,gCAAgC;EACnDC,gBAAgB,EAAE;AACpB,CAAU;;AAEV;AACA;AACA;AACA,OAAO,MAAMC,eAAe,CAAC;EAEnBC,eAAe,GAAkB,IAAI;EACrCC,iBAAiB,GAAmB,IAAI;EAEhDC,WAAWA,CAACC,OAAwB,EAAE;IACpC,IAAI,CAACA,OAAO,GAAGA,OAAO;EACxB;;EAEA;AACF;AACA;EACEC,eAAeA,CAAA,EAAS;IACtB,IAAI,CAACJ,eAAe,GAAG,IAAI;IAC3B,IAAI,CAACC,iBAAiB,GAAG,IAAI;EAC/B;;EAEA;AACF;AACA;EACUI,oBAAoBA,CAAA,EAAS;IACnC,IAAI,IAAI,CAACF,OAAO,CAACG,QAAQ,KAAK,QAAQ,EAAE;MACtC,MAAMpB,0BAA0B,CAC9BC,yBAAyB,CAACoB,6BAA6B,EACvD,0EACF,CAAC;IACH;IAEA,IAAI,CAAC,IAAI,CAACJ,OAAO,CAACK,OAAO,CAACC,wBAAwB,CAAC,CAAC,EAAE;MACpD,MAAMvB,0BAA0B,CAC9BC,yBAAyB,CAACuB,4BAA4B,EACtD,kDACF,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACUC,eAAeA,CAACC,KAAiB,EAAU;IACjD,OAAOC,KAAK,CAACC,IAAI,CAACF,KAAK,CAAC,CACrBG,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CACzCC,IAAI,CAAC,EAAE,CAAC;EACb;;EAEA;AACF;AACA;EACE,MAAMC,eAAeA,CAAA,EAAuD;IAC1E,IAAI,CAACf,oBAAoB,CAAC,CAAC;IAE3B,MAAMgB,WAAW,GAAG,MAAM,IAAI,CAAClB,OAAO,CAACmB,MAAM,CAACC,cAAc,CAAC,EAAE,CAAC;IAChE,MAAMC,aAAa,GAAG,IAAI,CAACb,eAAe,CAACU,WAAW,CAAC;IACvD,MAAMI,OAAO,GAAGjC,EAAE,CAACkC,cAAc,CAACF,aAAa,CAAC;IAEhD,OAAO;MACLG,UAAU,EAAEF,OAAO,CAACG,UAAU,CAAC,KAAK,CAAC;MACrCC,SAAS,EAAEJ,OAAO,CAACK,SAAS,CAAC,KAAK;IACpC,CAAC;EACH;;EAEA;AACF;AACA;EACE,MAAMC,cAAcA,CAAA,EAAoB;IACtC,IAAI,CAAC1B,oBAAoB,CAAC,CAAC;IAE3B,MAAM;MAAEsB,UAAU;MAAEE;IAAU,CAAC,GAAG,MAAM,IAAI,CAACT,eAAe,CAAC,CAAC;IAE9D,MAAM,IAAI,CAACjB,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACC,WAAW,EAAEiC,UAAU,CAAC;IAC1E,MAAM,IAAI,CAACxB,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACE,UAAU,EAAEkC,SAAS,CAAC;;IAExE;IACA,IAAI,CAAC7B,eAAe,GAAG6B,SAAS;IAChC,IAAI,CAAC5B,iBAAiB,GAAG,IAAI;IAE7B,OAAO4B,SAAS;EAClB;;EAEA;AACF;AACA;EACE,MAAMI,aAAaA,CAACN,UAAkB,EAAmB;IACvD,IAAI,CAACtB,oBAAoB,CAAC,CAAC;IAE3B,IAAI,CAAChB,iBAAiB,CAACsC,UAAU,CAAC,EAAE;MAClC,MAAMzC,0BAA0B,CAC9BC,yBAAyB,CAAC+C,mBAAmB,EAC7C,4BACF,CAAC;IACH;IAEA,MAAMT,OAAO,GAAGjC,EAAE,CAACkC,cAAc,CAACC,UAAU,CAAC;IAC7C,MAAME,SAAS,GAAGJ,OAAO,CAACK,SAAS,CAAC,KAAK,CAAC;IAE1C,IAAI,CAAC1C,gBAAgB,CAACyC,SAAS,CAAC,EAAE;MAChC,MAAM3C,0BAA0B,CAC9BC,yBAAyB,CAACgD,kBAAkB,EAC5C,oDACF,CAAC;IACH;IAEA,MAAM,IAAI,CAAChC,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACC,WAAW,EAAEiC,UAAU,CAAC;IAC1E,MAAM,IAAI,CAACxB,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACE,UAAU,EAAEkC,SAAS,CAAC;;IAExE;IACA,IAAI,CAAC7B,eAAe,GAAG6B,SAAS;IAChC,IAAI,CAAC5B,iBAAiB,GAAG,IAAI;IAE7B,OAAO4B,SAAS;EAClB;;EAEA;AACF;AACA;AACA;EACE,MAAMO,aAAaA,CAAA,EAA2B;IAC5C,IAAI,CAAC/B,oBAAoB,CAAC,CAAC;IAE3B,IAAI;MACF,OAAO,MAAM,IAAI,CAACF,OAAO,CAACK,OAAO,CAAC6B,SAAS,CAAC5C,YAAY,CAACC,WAAW,CAAC;IACvE,CAAC,CAAC,OAAO4C,KAAK,EAAE;MACdC,OAAO,CAACC,IAAI,CAAC,kDAAkD,EAAEF,KAAK,CAAC;MACvE,OAAO,IAAI;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMG,YAAYA,CAAA,EAA2B;IAC3C,IAAI,IAAI,CAACtC,OAAO,CAACG,QAAQ,KAAK,QAAQ,EAAE;MACtC,OAAO,IAAI,CAAC,CAAC;IACf;IAEA,IAAI,IAAI,CAACN,eAAe,KAAK,IAAI,EAAE;MACjC,OAAO,IAAI,CAACA,eAAe;IAC7B;IAEA,IAAI;MACF,MAAM6B,SAAS,GAAG,MAAM,IAAI,CAAC1B,OAAO,CAACK,OAAO,CAAC6B,SAAS,CAAC5C,YAAY,CAACE,UAAU,CAAC;;MAE/E;MACA,IAAI,CAACK,eAAe,GAAG6B,SAAS;MAEhC,OAAOA,SAAS;IAClB,CAAC,CAAC,OAAOS,KAAK,EAAE;MACd;MACA,IAAI,CAACtC,eAAe,GAAG,IAAI;MAC3BuC,OAAO,CAACC,IAAI,CAAC,kDAAkD,EAAEF,KAAK,CAAC;MACvE,OAAO,IAAI;IACb;EACF;;EAEA;AACF;AACA;EACE,MAAMI,WAAWA,CAAA,EAAqB;IACpC,IAAI,IAAI,CAACvC,OAAO,CAACG,QAAQ,KAAK,QAAQ,EAAE;MACtC,OAAO,KAAK,CAAC,CAAC;IAChB;IAEA,IAAI,IAAI,CAACL,iBAAiB,KAAK,IAAI,EAAE;MACnC,OAAO,IAAI,CAACA,iBAAiB;IAC/B;IAEA,IAAI;MACF,MAAM0B,UAAU,GAAG,MAAM,IAAI,CAACS,aAAa,CAAC,CAAC;MAC7C,MAAMM,WAAW,GAAGf,UAAU,KAAK,IAAI;;MAEvC;MACA,IAAI,CAAC1B,iBAAiB,GAAGyC,WAAW;MAEpC,OAAOA,WAAW;IACpB,CAAC,CAAC,OAAOJ,KAAK,EAAE;MACd;MACA,IAAI,CAACrC,iBAAiB,GAAG,KAAK;MAC9BsC,OAAO,CAACC,IAAI,CAAC,6CAA6C,EAAEF,KAAK,CAAC;MAClE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,MAAMK,cAAcA,CAClBC,UAAmB,GAAG,KAAK,EAC3BC,KAAc,GAAG,KAAK,EACtBC,aAAsB,GAAG,KAAK,EACf;IACf,IAAI,CAACzC,oBAAoB,CAAC,CAAC;;IAE3B;IACA,IAAI,CAACwC,KAAK,IAAI,CAACC,aAAa,EAAE;MAC5B,MAAM5D,0BAA0B,CAC9BC,yBAAyB,CAAC4D,sBAAsB,EAChD,uDACF,CAAC;IACH;IAEA,IAAI,CAACF,KAAK,EAAE;MACV,MAAMH,WAAW,GAAG,MAAM,IAAI,CAACA,WAAW,CAAC,CAAC;MAC5C,IAAI,CAACA,WAAW,EAAE;QAChB,OAAO,CAAC;MACV;IACF;;IAEA;IACA,IAAI,CAACE,UAAU,EAAE;MACf,IAAI;QACF,MAAMI,aAAa,GAAG,MAAM,IAAI,CAACC,cAAc,CAAC,CAAC;QACjD,IAAI,CAACD,aAAa,EAAE;UAClBT,OAAO,CAACC,IAAI,CAAC,iFAAiF,CAAC;QACjG;MACF,CAAC,CAAC,OAAOU,WAAW,EAAE;QACpBX,OAAO,CAACC,IAAI,CAAC,8DAA8D,EAAEU,WAAW,CAAC;MAC3F;IACF;IAEA,MAAM,IAAI,CAAC/C,OAAO,CAACK,OAAO,CAAC2C,YAAY,CAAC1D,YAAY,CAACC,WAAW,CAAC;IACjE,MAAM,IAAI,CAACS,OAAO,CAACK,OAAO,CAAC2C,YAAY,CAAC1D,YAAY,CAACE,UAAU,CAAC;;IAEhE;IACA,IAAI,CAACS,eAAe,CAAC,CAAC;;IAEtB;IACA,IAAIyC,KAAK,EAAE;MACT,IAAI;QACF,MAAM,IAAI,CAAC1C,OAAO,CAACK,OAAO,CAAC2C,YAAY,CAAC1D,YAAY,CAACG,kBAAkB,CAAC;QACxE,MAAM,IAAI,CAACO,OAAO,CAACK,OAAO,CAAC2C,YAAY,CAAC1D,YAAY,CAACI,iBAAiB,CAAC;QACvE,MAAM,IAAI,CAACM,OAAO,CAACK,OAAO,CAAC4C,MAAM,CAAC3D,YAAY,CAACK,gBAAgB,CAAC;MAClE,CAAC,CAAC,OAAOwC,KAAK,EAAE;QACd;MAAA;IAEJ;EACF;;EAEA;AACF;AACA;EACE,MAAMW,cAAcA,CAAA,EAAqB;IACvC,IAAI,CAAC5C,oBAAoB,CAAC,CAAC;IAE3B,IAAI;MACF,MAAMsB,UAAU,GAAG,MAAM,IAAI,CAACS,aAAa,CAAC,CAAC;MAC7C,MAAMP,SAAS,GAAG,MAAM,IAAI,CAACY,YAAY,CAAC,CAAC;MAE3C,IAAI,CAACd,UAAU,IAAI,CAACE,SAAS,EAAE;QAC7B,OAAO,KAAK,CAAC,CAAC;MAChB;;MAEA;MACA,MAAM,IAAI,CAAC1B,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACG,kBAAkB,EAAE+B,UAAU,CAAC;MACjF,MAAM,IAAI,CAACxB,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACI,iBAAiB,EAAEgC,SAAS,CAAC;MAC/E,MAAM,IAAI,CAAC1B,OAAO,CAACK,OAAO,CAAC6C,GAAG,CAAC5D,YAAY,CAACK,gBAAgB,EAAEwD,IAAI,CAACC,GAAG,CAAC,CAAC,CAACtC,QAAQ,CAAC,CAAC,CAAC;MAEpF,OAAO,IAAI;IACb,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,8CAA8C,EAAEA,KAAK,CAAC;MACpE,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,MAAMkB,yBAAyBA,CAAA,EAAqB;IAClD,IAAI,CAACnD,oBAAoB,CAAC,CAAC;IAE3B,IAAI;MACF;MACA,IAAI,CAACD,eAAe,CAAC,CAAC;;MAEtB;MACA,MAAMqD,gBAAgB,GAAG,MAAM,IAAI,CAACtD,OAAO,CAACK,OAAO,CAAC6B,SAAS,CAAC5C,YAAY,CAACG,kBAAkB,CAAC;MAC9F,MAAM8D,eAAe,GAAG,MAAM,IAAI,CAACvD,OAAO,CAACK,OAAO,CAAC6B,SAAS,CAAC5C,YAAY,CAACI,iBAAiB,CAAC;MAE5F,IAAI,CAAC4D,gBAAgB,IAAI,CAACC,eAAe,EAAE;QACzC,OAAO,KAAK,CAAC,CAAC;MAChB;;MAEA;MACA,IAAI,CAACrE,iBAAiB,CAACoE,gBAAgB,CAAC,EAAE;QACxC,OAAO,KAAK;MACd;MAEA,IAAI,CAACrE,gBAAgB,CAACsE,eAAe,CAAC,EAAE;QACtC,OAAO,KAAK;MACd;;MAEA;MACA,MAAMC,gBAAgB,GAAGrE,eAAe,CAACmE,gBAAgB,CAAC;MAC1D,IAAIE,gBAAgB,KAAKD,eAAe,EAAE;QACxC,OAAO,KAAK,CAAC,CAAC;MAChB;MAEA,MAAM,IAAI,CAACvD,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACC,WAAW,EAAE+D,gBAAgB,CAAC;MAChF,MAAM,IAAI,CAACtD,OAAO,CAACK,OAAO,CAACwB,SAAS,CAACvC,YAAY,CAACE,UAAU,EAAE+D,eAAe,CAAC;MAE9E,MAAME,QAAQ,GAAG,MAAM,IAAI,CAACC,uBAAuB,CAAC,CAAC;MACrD,IAAID,QAAQ,EAAE;QACZ;QACA,IAAI,CAAC5D,eAAe,GAAG0D,eAAe;QACtC,IAAI,CAACzD,iBAAiB,GAAG,IAAI;QAE7B,MAAM,IAAI,CAACE,OAAO,CAACK,OAAO,CAAC6C,GAAG,CAAC5D,YAAY,CAACK,gBAAgB,EAAEwD,IAAI,CAACC,GAAG,CAAC,CAAC,CAACtC,QAAQ,CAAC,CAAC,CAAC;QACpF,OAAO,IAAI;MACb;MAEA,OAAO,KAAK;IACd,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,2DAA2D,EAAEA,KAAK,CAAC;MACjF,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;EACE,MAAMuB,uBAAuBA,CAAA,EAAqB;IAChD,IAAI,CAACxD,oBAAoB,CAAC,CAAC;IAE3B,IAAI;MACF,MAAMsB,UAAU,GAAG,MAAM,IAAI,CAACS,aAAa,CAAC,CAAC;MAC7C,MAAMP,SAAS,GAAG,MAAM,IAAI,CAACY,YAAY,CAAC,CAAC;MAE3C,IAAI,CAACd,UAAU,IAAI,CAACE,SAAS,EAAE;QAC7B,OAAO,KAAK;MACd;;MAEA;MACA,IAAI,CAACxC,iBAAiB,CAACsC,UAAU,CAAC,EAAE;QAClC,OAAO,KAAK;MACd;;MAEA;MACA,IAAI,CAACvC,gBAAgB,CAACyC,SAAS,CAAC,EAAE;QAChC,OAAO,KAAK;MACd;;MAEA;MACA,MAAM8B,gBAAgB,GAAGrE,eAAe,CAACqC,UAAU,CAAC;MACpD,IAAIgC,gBAAgB,KAAK9B,SAAS,EAAE;QAClC,OAAO,KAAK,CAAC,CAAC;MAChB;;MAEA;MACA,MAAMJ,OAAO,GAAG,MAAM,IAAI,CAACqC,gBAAgB,CAAC,CAAC;MAC7C,IAAI,CAACrC,OAAO,EAAE;QACZ,OAAO,KAAK;MACd;MAEA,OAAO,IAAI;IACb,CAAC,CAAC,OAAOa,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,oDAAoD,EAAEA,KAAK,CAAC;MAC1E,OAAO,KAAK;IACd;EACF;;EAEA;AACF;AACA;AACA;EACE,MAAMwB,gBAAgBA,CAAA,EAA8B;IAClD,IAAI,CAACzD,oBAAoB,CAAC,CAAC;IAE3B,MAAMsB,UAAU,GAAG,MAAM,IAAI,CAACS,aAAa,CAAC,CAAC;IAC7C,IAAI,CAACT,UAAU,EAAE,OAAO,IAAI;IAE5B,OAAOnC,EAAE,CAACkC,cAAc,CAACC,UAAU,CAAC;EACtC;;EAEA;AACF;AACA;EACE,MAAMoC,sBAAsBA,CAACC,UAAsB,EAAEC,QAAgB,EAAmB;IACtF,IAAI,CAAC5D,oBAAoB,CAAC,CAAC;IAE3B,IAAI;MACF;MACA,MAAM6D,SAAS,GAAG,IAAIC,UAAU,CAC9BH,UAAU,CAACI,IAAI,CAACC,KAAK,CAAC,SAAS,CAAC,EAAEtD,GAAG,CAACuD,IAAI,IAAIC,QAAQ,CAACD,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EACvE,CAAC;MACD,MAAME,OAAO,GAAG,IAAIL,UAAU,CAC5BH,UAAU,CAACS,EAAE,CAACJ,KAAK,CAAC,SAAS,CAAC,EAAEtD,GAAG,CAACuD,IAAI,IAAIC,QAAQ,CAACD,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,EACrE,CAAC;;MAED;MACA,MAAMI,OAAO,GAAG7D,KAAK,CAACC,IAAI,CAACoD,SAAS,CAAC,CAACnD,GAAG,CAACC,CAAC,IAAIA,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC,CAACC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAACC,IAAI,CAAC,EAAE,CAAC;MACxF,IAAIwD,GAAG,GAAGV,QAAQ,GAAGS,OAAO;MAC5B,KAAK,IAAIE,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,KAAK,EAAEA,CAAC,EAAE,EAAE;QAC9BD,GAAG,GAAG,MAAM,IAAI,CAACxE,OAAO,CAACmB,MAAM,CAACuD,iBAAiB,CAAC,QAAQ,EAAEF,GAAG,CAAC;MAClE;MACA,MAAMG,QAAQ,GAAG,IAAIX,UAAU,CAAC,EAAE,CAAC;MACnC,KAAK,IAAIS,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAG,EAAE,IAAIA,CAAC,GAAGD,GAAG,CAACI,MAAM,EAAEH,CAAC,IAAI,CAAC,EAAE;QAChDE,QAAQ,CAACF,CAAC,GAAG,CAAC,CAAC,GAAGL,QAAQ,CAACI,GAAG,CAACK,SAAS,CAACJ,CAAC,EAAEA,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,CAAC;MACzD;;MAEA;MACA,MAAMK,cAAc,GAAGC,MAAM,CAACpE,IAAI,CAACkD,UAAU,CAACmB,SAAS,EAAE,QAAQ,CAAC;MAClE,MAAMC,cAAc,GAAG,IAAIjB,UAAU,CAACc,cAAc,CAACF,MAAM,CAAC;MAC5D,KAAK,IAAIH,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGK,cAAc,CAACF,MAAM,EAAEH,CAAC,EAAE,EAAE;QAC9CQ,cAAc,CAACR,CAAC,CAAC,GAAGK,cAAc,CAACL,CAAC,CAAC,GAAGE,QAAQ,CAACF,CAAC,GAAGE,QAAQ,CAACC,MAAM,CAAC,GAAGP,OAAO,CAACI,CAAC,GAAGJ,OAAO,CAACO,MAAM,CAAC;MACrG;MACA,MAAMpD,UAAU,GAAG,IAAI0D,WAAW,CAAC,CAAC,CAACC,MAAM,CAACF,cAAc,CAAC;;MAE3D;MACA,OAAO,MAAM,IAAI,CAACnD,aAAa,CAACN,UAAU,CAAC;IAC7C,CAAC,CAAC,OAAOW,KAAK,EAAE;MACd,MAAMpD,0BAA0B,CAC9BC,yBAAyB,CAACoG,wBAAwB,EAClD,6BAA6BjD,KAAK,YAAYkD,KAAK,GAAGlD,KAAK,CAACmD,OAAO,GAAGC,MAAM,CAACpD,KAAK,CAAC,EACrF,CAAC;IACH;EACF;;EAEA;AACF;AACA;EACE,MAAMqD,aAAaA,CAACC,SAAiB,EAAmB;IACtD,IAAI,CAACvF,oBAAoB,CAAC,CAAC;IAE3B,MAAMoB,OAAO,GAAG,MAAM,IAAI,CAACqC,gBAAgB,CAAC,CAAC;IAC7C,IAAI,CAACrC,OAAO,EAAE;MACZ,MAAMvC,0BAA0B,CAC9BC,yBAAyB,CAAC0G,kBAAkB,EAC5C,+DACF,CAAC;IACH;;IAEA;IACA,MAAMC,WAAW,GAAG,MAAM,IAAI,CAAC3F,OAAO,CAACmB,MAAM,CAACuD,iBAAiB,CAAC,QAAQ,EAAEe,SAAS,CAAC;;IAEpF;IACA,MAAMG,SAAS,GAAGtE,OAAO,CAACuE,IAAI,CAACF,WAAW,CAAC;IAC3C,OAAOC,SAAS,CAACE,KAAK,CAAC,KAAK,CAAC;EAC/B;AACF","ignoreList":[]}
@@ -0,0 +1,390 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Identity Session Core
5
+ *
6
+ * Main orchestrator for identity and session management.
7
+ * Provides a unified API for all identity and session operations.
8
+ */
9
+
10
+ import { IdentityManager } from './IdentityManager';
11
+ import { SessionManager } from './SessionManager';
12
+ import { DeviceManager } from './DeviceManager';
13
+ import { RefreshManager } from './RefreshManager';
14
+ import { createIdentitySessionError, IdentitySessionErrorCodes } from './errors';
15
+
16
+ /**
17
+ * Identity Session Core Class
18
+ */
19
+ export class IdentitySessionCore {
20
+ baseURL = null;
21
+ eventListeners = new Set();
22
+ initialized = false;
23
+ constructor(adapter, baseURL) {
24
+ this.adapter = adapter;
25
+ this.baseURL = baseURL || null;
26
+
27
+ // Initialize managers
28
+ this.identityManager = new IdentityManager(adapter);
29
+ this.deviceManager = new DeviceManager(adapter);
30
+ this.refreshManager = new RefreshManager(adapter, baseURL);
31
+ this.sessionManager = new SessionManager(adapter, this.deviceManager, this.refreshManager, baseURL);
32
+ }
33
+
34
+ /**
35
+ * Set base URL for API requests
36
+ */
37
+ setBaseURL(baseURL) {
38
+ this.baseURL = baseURL;
39
+ this.sessionManager.setBaseURL(baseURL);
40
+ this.refreshManager.setBaseURL(baseURL);
41
+ }
42
+
43
+ /**
44
+ * Initialize the core (load data from storage)
45
+ */
46
+ async initialize() {
47
+ if (this.initialized) {
48
+ return;
49
+ }
50
+ await this.sessionManager.initialize();
51
+ this.initialized = true;
52
+ }
53
+
54
+ /**
55
+ * Emit an event to all subscribers
56
+ */
57
+ emit(event) {
58
+ this.eventListeners.forEach(listener => {
59
+ try {
60
+ listener(event);
61
+ } catch (error) {
62
+ console.error('[IdentitySessionCore] Error in event listener:', error);
63
+ }
64
+ });
65
+ }
66
+
67
+ // ==================== Identity Operations ====================
68
+
69
+ /**
70
+ * Get current identity (SOLO NATIVE)
71
+ */
72
+ async getCurrentIdentity() {
73
+ if (this.adapter.platform !== 'native') {
74
+ return null; // Identity only exists on native
75
+ }
76
+ const publicKey = await this.identityManager.getPublicKey();
77
+ if (!publicKey) {
78
+ return null;
79
+ }
80
+
81
+ // Identity object would need to be fetched from server
82
+ // For now, return a minimal identity object
83
+ return {
84
+ id: '',
85
+ // Would be fetched from server
86
+ publicKey
87
+ };
88
+ }
89
+
90
+ /**
91
+ * Create a new identity (SOLO NATIVE)
92
+ */
93
+ async createIdentity(username) {
94
+ if (this.adapter.platform !== 'native') {
95
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Identity creation is only available on native platforms');
96
+ }
97
+ try {
98
+ const publicKey = await this.identityManager.createIdentity();
99
+ const identity = {
100
+ id: '',
101
+ // Will be set after sync with server
102
+ publicKey,
103
+ username
104
+ };
105
+ this.emit({
106
+ type: 'identity:created',
107
+ identity
108
+ });
109
+ return identity;
110
+ } catch (error) {
111
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_CREATION_FAILED, `Failed to create identity: ${error instanceof Error ? error.message : String(error)}`);
112
+ }
113
+ }
114
+
115
+ /**
116
+ * Import identity from backup (SOLO NATIVE)
117
+ */
118
+ async importIdentity(backupData, password) {
119
+ if (this.adapter.platform !== 'native') {
120
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Identity import is only available on native platforms');
121
+ }
122
+ try {
123
+ const publicKey = await this.identityManager.decryptAndImportBackup(backupData, password);
124
+ const identity = {
125
+ id: '',
126
+ // Will be set after sync with server
127
+ publicKey
128
+ };
129
+ this.emit({
130
+ type: 'identity:imported',
131
+ identity
132
+ });
133
+ return identity;
134
+ } catch (error) {
135
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_IMPORT_FAILED, `Failed to import identity: ${error instanceof Error ? error.message : String(error)}`);
136
+ }
137
+ }
138
+
139
+ /**
140
+ * Delete identity (SOLO NATIVE)
141
+ */
142
+ async deleteIdentity(skipBackup = false, force = false, userConfirmed = false) {
143
+ if (this.adapter.platform !== 'native') {
144
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Identity deletion is only available on native platforms');
145
+ }
146
+ try {
147
+ await this.identityManager.deleteIdentity(skipBackup, force, userConfirmed);
148
+ this.emit({
149
+ type: 'identity:deleted'
150
+ });
151
+ } catch (error) {
152
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_DELETE_FAILED, `Failed to delete identity: ${error instanceof Error ? error.message : String(error)}`);
153
+ }
154
+ }
155
+
156
+ /**
157
+ * Sign a challenge (SOLO NATIVE)
158
+ */
159
+ async signChallenge(challenge) {
160
+ if (this.adapter.platform !== 'native') {
161
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Challenge signing is only available on native platforms');
162
+ }
163
+ try {
164
+ return await this.identityManager.signChallenge(challenge);
165
+ } catch (error) {
166
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_FOUND, `Failed to sign challenge: ${error instanceof Error ? error.message : String(error)}`);
167
+ }
168
+ }
169
+
170
+ /**
171
+ * Generate a random challenge string
172
+ */
173
+ async generateChallenge() {
174
+ const randomBytes = await this.adapter.crypto.getRandomBytes(32);
175
+ return Array.from(randomBytes, byte => byte.toString(16).padStart(2, '0')).join('');
176
+ }
177
+
178
+ /**
179
+ * Create a registration signature (SOLO NATIVE)
180
+ */
181
+ async createRegistrationSignature() {
182
+ if (this.adapter.platform !== 'native') {
183
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Registration signature is only available on native platforms');
184
+ }
185
+ const publicKey = await this.identityManager.getPublicKey();
186
+ if (!publicKey) {
187
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_FOUND, 'No identity found. Please create or import an identity first.');
188
+ }
189
+ const timestamp = Date.now();
190
+ const message = `oxy:register:${publicKey}:${timestamp}`;
191
+ const messageHash = await this.adapter.crypto.digestStringAsync('SHA256', message);
192
+ const signature = await this.identityManager.signChallenge(messageHash);
193
+ return {
194
+ signature,
195
+ publicKey,
196
+ timestamp
197
+ };
198
+ }
199
+
200
+ /**
201
+ * Sign challenge for authentication (SOLO NATIVE)
202
+ * Returns AuthChallenge object with signature, publicKey, and timestamp
203
+ */
204
+ async signChallengeForAuth(challenge) {
205
+ if (this.adapter.platform !== 'native') {
206
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Challenge signing is only available on native platforms');
207
+ }
208
+ const publicKey = await this.identityManager.getPublicKey();
209
+ if (!publicKey) {
210
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_FOUND, 'No identity found. Please create or import an identity first.');
211
+ }
212
+ const timestamp = Date.now();
213
+ const message = `auth:${publicKey}:${challenge}:${timestamp}`;
214
+ const messageHash = await this.adapter.crypto.digestStringAsync('SHA256', message);
215
+ const signature = await this.identityManager.signChallenge(messageHash);
216
+ return {
217
+ challenge,
218
+ signature,
219
+ publicKey,
220
+ timestamp
221
+ };
222
+ }
223
+
224
+ /**
225
+ * Check if identity exists
226
+ */
227
+ async hasIdentity() {
228
+ return await this.identityManager.hasIdentity();
229
+ }
230
+
231
+ /**
232
+ * Get public key
233
+ */
234
+ async getPublicKey() {
235
+ return await this.identityManager.getPublicKey();
236
+ }
237
+
238
+ // ==================== Session Operations ====================
239
+
240
+ /**
241
+ * Get current session (Native + Web)
242
+ */
243
+ async getSession() {
244
+ return await this.sessionManager.getSession();
245
+ }
246
+
247
+ /**
248
+ * Get all sessions (Native + Web)
249
+ */
250
+ async getAllSessions() {
251
+ return await this.sessionManager.getAllSessions();
252
+ }
253
+
254
+ /**
255
+ * Get active session ID (Native + Web)
256
+ */
257
+ async getActiveSessionId() {
258
+ return await this.sessionManager.getActiveSessionId();
259
+ }
260
+
261
+ /**
262
+ * Create a new session (sign in) (Native + Web)
263
+ */
264
+ async createSession(deviceName) {
265
+ if (this.adapter.platform !== 'native') {
266
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_AVAILABLE_ON_WEB, 'Session creation requires identity, which is only available on native platforms');
267
+ }
268
+ const publicKey = await this.identityManager.getPublicKey();
269
+ if (!publicKey) {
270
+ throw createIdentitySessionError(IdentitySessionErrorCodes.IDENTITY_NOT_FOUND, 'No identity found. Please create or import an identity first.');
271
+ }
272
+
273
+ // Generate challenge and sign it
274
+ const timestamp = Date.now();
275
+ const challenge = `auth:${publicKey}:${timestamp}`;
276
+ const signature = await this.identityManager.signChallenge(challenge);
277
+ try {
278
+ const session = await this.sessionManager.createSession(publicKey, signature, timestamp, deviceName);
279
+ this.emit({
280
+ type: 'session:created',
281
+ session
282
+ });
283
+ return session;
284
+ } catch (error) {
285
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_CREATION_FAILED, `Failed to create session: ${error instanceof Error ? error.message : String(error)}`);
286
+ }
287
+ }
288
+
289
+ /**
290
+ * Refresh current session (Native + Web)
291
+ */
292
+ async refreshSession() {
293
+ try {
294
+ const session = await this.sessionManager.refreshSession();
295
+ this.emit({
296
+ type: 'session:refreshed',
297
+ session
298
+ });
299
+ return session;
300
+ } catch (error) {
301
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, `Failed to refresh session: ${error instanceof Error ? error.message : String(error)}`);
302
+ }
303
+ }
304
+
305
+ /**
306
+ * Invalidate a session (Native + Web)
307
+ */
308
+ async invalidateSession(sessionId) {
309
+ try {
310
+ await this.sessionManager.invalidateSession(sessionId);
311
+ const targetSessionId = sessionId || (await this.sessionManager.getActiveSessionId());
312
+ if (targetSessionId) {
313
+ this.emit({
314
+ type: 'session:invalidated',
315
+ sessionId: targetSessionId
316
+ });
317
+ }
318
+ } catch (error) {
319
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_INVALID, `Failed to invalidate session: ${error instanceof Error ? error.message : String(error)}`);
320
+ }
321
+ }
322
+
323
+ /**
324
+ * Invalidate all sessions (Native + Web)
325
+ */
326
+ async invalidateAllSessions() {
327
+ try {
328
+ await this.sessionManager.invalidateAllSessions();
329
+ this.emit({
330
+ type: 'session:all-invalidated'
331
+ });
332
+ } catch (error) {
333
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_INVALID, `Failed to invalidate all sessions: ${error instanceof Error ? error.message : String(error)}`);
334
+ }
335
+ }
336
+
337
+ // ==================== Device Operations ====================
338
+
339
+ /**
340
+ * Get current device (Native + Web)
341
+ */
342
+ async getCurrentDevice() {
343
+ return await this.deviceManager.getCurrentDevice();
344
+ }
345
+
346
+ // ==================== Subscriptions ====================
347
+
348
+ /**
349
+ * Subscribe to identity and session events
350
+ */
351
+ subscribe(callback) {
352
+ this.eventListeners.add(callback);
353
+
354
+ // Return unsubscribe function
355
+ return () => {
356
+ this.eventListeners.delete(callback);
357
+ };
358
+ }
359
+
360
+ // ==================== Internal Access ====================
361
+
362
+ /**
363
+ * Get identity manager (for advanced operations)
364
+ */
365
+ getIdentityManager() {
366
+ return this.identityManager;
367
+ }
368
+
369
+ /**
370
+ * Get session manager (for advanced operations)
371
+ */
372
+ getSessionManager() {
373
+ return this.sessionManager;
374
+ }
375
+
376
+ /**
377
+ * Get device manager (for advanced operations)
378
+ */
379
+ getDeviceManager() {
380
+ return this.deviceManager;
381
+ }
382
+
383
+ /**
384
+ * Get refresh manager (for advanced operations)
385
+ */
386
+ getRefreshManager() {
387
+ return this.refreshManager;
388
+ }
389
+ }
390
+ //# sourceMappingURL=IdentitySessionCore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["IdentityManager","SessionManager","DeviceManager","RefreshManager","createIdentitySessionError","IdentitySessionErrorCodes","IdentitySessionCore","baseURL","eventListeners","Set","initialized","constructor","adapter","identityManager","deviceManager","refreshManager","sessionManager","setBaseURL","initialize","emit","event","forEach","listener","error","console","getCurrentIdentity","platform","publicKey","getPublicKey","id","createIdentity","username","IDENTITY_NOT_AVAILABLE_ON_WEB","identity","type","IDENTITY_CREATION_FAILED","Error","message","String","importIdentity","backupData","password","decryptAndImportBackup","IDENTITY_IMPORT_FAILED","deleteIdentity","skipBackup","force","userConfirmed","IDENTITY_DELETE_FAILED","signChallenge","challenge","IDENTITY_NOT_FOUND","generateChallenge","randomBytes","crypto","getRandomBytes","Array","from","byte","toString","padStart","join","createRegistrationSignature","timestamp","Date","now","messageHash","digestStringAsync","signature","signChallengeForAuth","hasIdentity","getSession","getAllSessions","getActiveSessionId","createSession","deviceName","session","SESSION_CREATION_FAILED","refreshSession","SESSION_REFRESH_FAILED","invalidateSession","sessionId","targetSessionId","SESSION_INVALID","invalidateAllSessions","getCurrentDevice","subscribe","callback","add","delete","getIdentityManager","getSessionManager","getDeviceManager","getRefreshManager"],"sourceRoot":"../../../../src","sources":["core/identity-session/IdentitySessionCore.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,132 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Refresh Manager
5
+ *
6
+ * Manages token refresh operations (Native + Web)
7
+ */
8
+
9
+ import { jwtDecode } from 'jwt-decode';
10
+ import { createIdentitySessionError, IdentitySessionErrorCodes } from './errors';
11
+ /**
12
+ * Refresh Manager Class
13
+ */
14
+ export class RefreshManager {
15
+ baseURL = null;
16
+ refreshPromise = null;
17
+ constructor(adapter, baseURL) {
18
+ this.adapter = adapter;
19
+ this.baseURL = baseURL || null;
20
+ }
21
+
22
+ /**
23
+ * Set base URL for API requests
24
+ */
25
+ setBaseURL(baseURL) {
26
+ this.baseURL = baseURL;
27
+ }
28
+
29
+ /**
30
+ * Check if token is expiring soon (within 60 seconds)
31
+ */
32
+ isTokenExpiringSoon(accessToken) {
33
+ if (!accessToken) return false;
34
+ try {
35
+ const decoded = jwtDecode(accessToken);
36
+ if (!decoded.exp) return false;
37
+ const currentTime = Math.floor(Date.now() / 1000);
38
+ return decoded.exp - currentTime < 60; // Expiring within 60 seconds
39
+ } catch {
40
+ return false;
41
+ }
42
+ }
43
+
44
+ /**
45
+ * Get userId from access token
46
+ */
47
+ getUserIdFromToken(accessToken) {
48
+ if (!accessToken) return null;
49
+ try {
50
+ const decoded = jwtDecode(accessToken);
51
+ return decoded.userId || null;
52
+ } catch {
53
+ return null;
54
+ }
55
+ }
56
+
57
+ /**
58
+ * Refresh access token if expiring soon
59
+ */
60
+ async refreshTokenIfNeeded(getAccessToken, setTokens, clearTokens) {
61
+ // If already refreshing, wait for that promise
62
+ if (this.refreshPromise) {
63
+ return this.refreshPromise;
64
+ }
65
+ const accessToken = getAccessToken();
66
+ if (!accessToken) {
67
+ return; // No token to refresh
68
+ }
69
+
70
+ // If token not expiring soon, no refresh needed
71
+ if (!this.isTokenExpiringSoon(accessToken)) {
72
+ return;
73
+ }
74
+
75
+ // Start refresh
76
+ this.refreshPromise = this._performRefresh(accessToken, setTokens, clearTokens).finally(() => {
77
+ this.refreshPromise = null;
78
+ });
79
+ return this.refreshPromise;
80
+ }
81
+
82
+ /**
83
+ * Perform token refresh
84
+ */
85
+ async _performRefresh(accessToken, setTokens, clearTokens) {
86
+ if (!this.baseURL) {
87
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, 'Base URL not set for refresh operations');
88
+ }
89
+ try {
90
+ const decoded = jwtDecode(accessToken);
91
+ if (!decoded.sessionId) {
92
+ throw createIdentitySessionError(IdentitySessionErrorCodes.MALFORMED_TOKEN, 'Token missing sessionId');
93
+ }
94
+ const refreshUrl = `${this.baseURL}/api/session/token/${decoded.sessionId}`;
95
+ const response = await this.adapter.fetch.fetch(refreshUrl, {
96
+ method: 'GET',
97
+ headers: {
98
+ 'Accept': 'application/json'
99
+ },
100
+ signal: AbortSignal.timeout(5000)
101
+ });
102
+ if (!response.ok) {
103
+ if (response.status === 401 || response.status === 403) {
104
+ // Token is invalid, clear it
105
+ clearTokens();
106
+ throw createIdentitySessionError(IdentitySessionErrorCodes.TOKEN_EXPIRED, 'Token refresh failed: token is invalid');
107
+ }
108
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, `Token refresh failed: ${response.status}`);
109
+ }
110
+ const data = await response.json();
111
+ const newAccessToken = data.accessToken;
112
+ if (!newAccessToken) {
113
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, 'No access token in refresh response');
114
+ }
115
+
116
+ // Validate new token has correct userId format (ObjectId)
117
+ const newDecoded = jwtDecode(newAccessToken);
118
+ if (newDecoded.userId && !/^[0-9a-fA-F]{24}$/.test(newDecoded.userId)) {
119
+ throw createIdentitySessionError(IdentitySessionErrorCodes.MALFORMED_TOKEN, `Invalid userId format in refreshed token: ${newDecoded.userId.substring(0, 20)}...`);
120
+ }
121
+ setTokens(newAccessToken, data.refreshToken);
122
+ } catch (error) {
123
+ // Clear tokens on refresh failure (likely expired or invalid)
124
+ clearTokens();
125
+ if (error instanceof Error && error.name === 'IdentitySessionError') {
126
+ throw error;
127
+ }
128
+ throw createIdentitySessionError(IdentitySessionErrorCodes.SESSION_REFRESH_FAILED, `Token refresh failed: ${error instanceof Error ? error.message : String(error)}`);
129
+ }
130
+ }
131
+ }
132
+ //# sourceMappingURL=RefreshManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["jwtDecode","createIdentitySessionError","IdentitySessionErrorCodes","RefreshManager","baseURL","refreshPromise","constructor","adapter","setBaseURL","isTokenExpiringSoon","accessToken","decoded","exp","currentTime","Math","floor","Date","now","getUserIdFromToken","userId","refreshTokenIfNeeded","getAccessToken","setTokens","clearTokens","_performRefresh","finally","SESSION_REFRESH_FAILED","sessionId","MALFORMED_TOKEN","refreshUrl","response","fetch","method","headers","signal","AbortSignal","timeout","ok","status","TOKEN_EXPIRED","data","json","newAccessToken","newDecoded","test","substring","refreshToken","error","Error","name","message","String"],"sourceRoot":"../../../../src","sources":["core/identity-session/RefreshManager.ts"],"mappings":"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","ignoreList":[]}