@oxy.so/core 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (673) hide show
  1. package/LICENSE +202 -0
  2. package/NOTICE +16 -0
  3. package/README.md +221 -0
  4. package/dist/cjs/.tsbuildinfo +1 -0
  5. package/dist/cjs/HttpService.js +1270 -0
  6. package/dist/cjs/OxyServices.base.js +390 -0
  7. package/dist/cjs/OxyServices.errors.js +95 -0
  8. package/dist/cjs/OxyServices.js +72 -0
  9. package/dist/cjs/boot/sessionColdBoot.js +395 -0
  10. package/dist/cjs/constants/version.js +16 -0
  11. package/dist/cjs/crypto/aead.js +79 -0
  12. package/dist/cjs/crypto/ecdh.js +35 -0
  13. package/dist/cjs/crypto/identityMarker.js +255 -0
  14. package/dist/cjs/crypto/kdf.js +39 -0
  15. package/dist/cjs/crypto/keyManager.js +2234 -0
  16. package/dist/cjs/crypto/polyfill.js +131 -0
  17. package/dist/cjs/crypto/recoveryPhrase.js +242 -0
  18. package/dist/cjs/crypto/signatureService.js +273 -0
  19. package/dist/cjs/i18n/accountCategoryLabels.js +44 -0
  20. package/dist/cjs/i18n/accountRoleLabels.js +27 -0
  21. package/dist/cjs/i18n/index.js +90 -0
  22. package/dist/cjs/i18n/locales/ar-SA.json +282 -0
  23. package/dist/cjs/i18n/locales/ca-ES.json +282 -0
  24. package/dist/cjs/i18n/locales/de-DE.json +282 -0
  25. package/dist/cjs/i18n/locales/en-US.json +2161 -0
  26. package/dist/cjs/i18n/locales/es-ES.json +2161 -0
  27. package/dist/cjs/i18n/locales/fr-FR.json +282 -0
  28. package/dist/cjs/i18n/locales/it-IT.json +282 -0
  29. package/dist/cjs/i18n/locales/ja-JP.json +282 -0
  30. package/dist/cjs/i18n/locales/ko-KR.json +282 -0
  31. package/dist/cjs/i18n/locales/locales/ar-SA.json +282 -0
  32. package/dist/cjs/i18n/locales/locales/ca-ES.json +282 -0
  33. package/dist/cjs/i18n/locales/locales/de-DE.json +282 -0
  34. package/dist/cjs/i18n/locales/locales/en-US.json +2161 -0
  35. package/dist/cjs/i18n/locales/locales/es-ES.json +2161 -0
  36. package/dist/cjs/i18n/locales/locales/fr-FR.json +282 -0
  37. package/dist/cjs/i18n/locales/locales/it-IT.json +282 -0
  38. package/dist/cjs/i18n/locales/locales/ja-JP.json +282 -0
  39. package/dist/cjs/i18n/locales/locales/ko-KR.json +282 -0
  40. package/dist/cjs/i18n/locales/locales/pt-PT.json +282 -0
  41. package/dist/cjs/i18n/locales/locales/zh-CN.json +282 -0
  42. package/dist/cjs/i18n/locales/pt-PT.json +282 -0
  43. package/dist/cjs/i18n/locales/zh-CN.json +282 -0
  44. package/dist/cjs/i18n/reputationCategoryLabels.js +20 -0
  45. package/dist/cjs/i18n/trustTierLabels.js +19 -0
  46. package/dist/cjs/index.js +498 -0
  47. package/dist/cjs/inference/OxyInferenceClient.js +544 -0
  48. package/dist/cjs/logger/index.js +149 -0
  49. package/dist/cjs/mixins/OxyServices.accounts.js +555 -0
  50. package/dist/cjs/mixins/OxyServices.analytics.js +49 -0
  51. package/dist/cjs/mixins/OxyServices.appData.js +108 -0
  52. package/dist/cjs/mixins/OxyServices.assets.js +764 -0
  53. package/dist/cjs/mixins/OxyServices.auth.js +1254 -0
  54. package/dist/cjs/mixins/OxyServices.chains.js +73 -0
  55. package/dist/cjs/mixins/OxyServices.civic.js +611 -0
  56. package/dist/cjs/mixins/OxyServices.connectedApps.js +78 -0
  57. package/dist/cjs/mixins/OxyServices.contacts.js +50 -0
  58. package/dist/cjs/mixins/OxyServices.deviceBoot.js +191 -0
  59. package/dist/cjs/mixins/OxyServices.deviceTransfer.js +314 -0
  60. package/dist/cjs/mixins/OxyServices.devices.js +116 -0
  61. package/dist/cjs/mixins/OxyServices.features.js +335 -0
  62. package/dist/cjs/mixins/OxyServices.followGraph.js +221 -0
  63. package/dist/cjs/mixins/OxyServices.identity.js +461 -0
  64. package/dist/cjs/mixins/OxyServices.identityBackup.js +172 -0
  65. package/dist/cjs/mixins/OxyServices.inference.js +59 -0
  66. package/dist/cjs/mixins/OxyServices.language.js +125 -0
  67. package/dist/cjs/mixins/OxyServices.links.js +72 -0
  68. package/dist/cjs/mixins/OxyServices.location.js +43 -0
  69. package/dist/cjs/mixins/OxyServices.nodes.js +175 -0
  70. package/dist/cjs/mixins/OxyServices.notifications.js +63 -0
  71. package/dist/cjs/mixins/OxyServices.payment.js +158 -0
  72. package/dist/cjs/mixins/OxyServices.privacy.js +199 -0
  73. package/dist/cjs/mixins/OxyServices.reputation.js +289 -0
  74. package/dist/cjs/mixins/OxyServices.security.js +89 -0
  75. package/dist/cjs/mixins/OxyServices.store.js +266 -0
  76. package/dist/cjs/mixins/OxyServices.topics.js +137 -0
  77. package/dist/cjs/mixins/OxyServices.user.js +902 -0
  78. package/dist/cjs/mixins/OxyServices.utility.js +1098 -0
  79. package/dist/cjs/mixins/index.js +135 -0
  80. package/dist/cjs/mixins/mixinHelpers.js +53 -0
  81. package/dist/cjs/models/Topic.js +16 -0
  82. package/dist/cjs/models/interfaces.js +20 -0
  83. package/dist/cjs/models/session.js +2 -0
  84. package/dist/cjs/server/auth.js +167 -0
  85. package/dist/cjs/server/capabilityTicket.js +192 -0
  86. package/dist/cjs/server/cors.js +225 -0
  87. package/dist/cjs/server/index.js +97 -0
  88. package/dist/cjs/server/rateLimit.js +207 -0
  89. package/dist/cjs/server/safeFetch.js +458 -0
  90. package/dist/cjs/server/securityHeaders.js +377 -0
  91. package/dist/cjs/server/userInvalidation.js +156 -0
  92. package/dist/cjs/server/verifySecret.js +50 -0
  93. package/dist/cjs/session/SessionClient.js +865 -0
  94. package/dist/cjs/session/accountDelegationAccess.js +48 -0
  95. package/dist/cjs/session/accountDialogController.js +1131 -0
  96. package/dist/cjs/session/accountSwitchTargets.js +81 -0
  97. package/dist/cjs/session/authStateStore.js +404 -0
  98. package/dist/cjs/session/createSessionClient.js +32 -0
  99. package/dist/cjs/session/deviceDirectory.js +143 -0
  100. package/dist/cjs/session/deviceSwitcherRows.js +76 -0
  101. package/dist/cjs/session/identityPin.js +256 -0
  102. package/dist/cjs/session/identitySession.js +135 -0
  103. package/dist/cjs/session/projectSessionState.js +121 -0
  104. package/dist/cjs/session/refresh.js +398 -0
  105. package/dist/cjs/session/sessionClientHost.js +34 -0
  106. package/dist/cjs/session/sharedDeviceCredential.js +247 -0
  107. package/dist/cjs/session/socketLoader.js +55 -0
  108. package/dist/cjs/shared/utils/colorUtils.js +153 -0
  109. package/dist/cjs/shared/utils/errorUtils.js +183 -0
  110. package/dist/cjs/shared/utils/index.js +49 -0
  111. package/dist/cjs/shared/utils/networkUtils.js +183 -0
  112. package/dist/cjs/shared/utils/themeUtils.js +106 -0
  113. package/dist/cjs/utils/accountCacheSweep.js +80 -0
  114. package/dist/cjs/utils/accountUtils.js +140 -0
  115. package/dist/cjs/utils/activityId.js +6 -0
  116. package/dist/cjs/utils/apiUtils.js +91 -0
  117. package/dist/cjs/utils/asyncUtils.js +222 -0
  118. package/dist/cjs/utils/authHelpers.js +120 -0
  119. package/dist/cjs/utils/authWebUrl.js +19 -0
  120. package/dist/cjs/utils/avatarUtils.js +29 -0
  121. package/dist/cjs/utils/cache.js +235 -0
  122. package/dist/cjs/utils/cacheKey.js +85 -0
  123. package/dist/cjs/utils/coldBoot.js +122 -0
  124. package/dist/cjs/utils/commonsApproval.js +31 -0
  125. package/dist/cjs/utils/commonsDelivery.js +59 -0
  126. package/dist/cjs/utils/deviceManager.js +174 -0
  127. package/dist/cjs/utils/displayNamePolicyRanges.generated.js +60 -0
  128. package/dist/cjs/utils/edgeRegion.js +6 -0
  129. package/dist/cjs/utils/errorUtils.js +243 -0
  130. package/dist/cjs/utils/identityCacheSweep.js +97 -0
  131. package/dist/cjs/utils/languageUtils.js +224 -0
  132. package/dist/cjs/utils/oauthPkce.js +311 -0
  133. package/dist/cjs/utils/officialOrigins.js +64 -0
  134. package/dist/cjs/utils/oxyServiceEnvironment.js +19 -0
  135. package/dist/cjs/utils/platform.js +119 -0
  136. package/dist/cjs/utils/profileLinks.js +63 -0
  137. package/dist/cjs/utils/redactUrl.js +29 -0
  138. package/dist/cjs/utils/registrableApex.js +45 -0
  139. package/dist/cjs/utils/requestUtils.js +209 -0
  140. package/dist/cjs/utils/sessionUtils.js +181 -0
  141. package/dist/cjs/utils/textNormalization.js +158 -0
  142. package/dist/cjs/utils/userHandle.js +37 -0
  143. package/dist/cjs/utils/userIdentity.js +50 -0
  144. package/dist/cjs/utils/validationUtils.js +370 -0
  145. package/dist/cjs/utils/webauthnOrigin.js +51 -0
  146. package/dist/esm/.tsbuildinfo +1 -0
  147. package/dist/esm/HttpService.js +1266 -0
  148. package/dist/esm/OxyServices.base.js +386 -0
  149. package/dist/esm/OxyServices.errors.js +88 -0
  150. package/dist/esm/OxyServices.js +66 -0
  151. package/dist/esm/boot/sessionColdBoot.js +392 -0
  152. package/dist/esm/constants/version.js +13 -0
  153. package/dist/esm/crypto/aead.js +74 -0
  154. package/dist/esm/crypto/ecdh.js +32 -0
  155. package/dist/esm/crypto/identityMarker.js +248 -0
  156. package/dist/esm/crypto/kdf.js +36 -0
  157. package/dist/esm/crypto/keyManager.js +2227 -0
  158. package/dist/esm/crypto/polyfill.js +129 -0
  159. package/dist/esm/crypto/recoveryPhrase.js +238 -0
  160. package/dist/esm/crypto/signatureService.js +269 -0
  161. package/dist/esm/i18n/accountCategoryLabels.js +37 -0
  162. package/dist/esm/i18n/accountRoleLabels.js +20 -0
  163. package/dist/esm/i18n/index.js +83 -0
  164. package/dist/esm/i18n/locales/ar-SA.json +282 -0
  165. package/dist/esm/i18n/locales/ca-ES.json +282 -0
  166. package/dist/esm/i18n/locales/de-DE.json +282 -0
  167. package/dist/esm/i18n/locales/en-US.json +2161 -0
  168. package/dist/esm/i18n/locales/es-ES.json +2161 -0
  169. package/dist/esm/i18n/locales/fr-FR.json +282 -0
  170. package/dist/esm/i18n/locales/it-IT.json +282 -0
  171. package/dist/esm/i18n/locales/ja-JP.json +282 -0
  172. package/dist/esm/i18n/locales/ko-KR.json +282 -0
  173. package/dist/esm/i18n/locales/locales/ar-SA.json +282 -0
  174. package/dist/esm/i18n/locales/locales/ca-ES.json +282 -0
  175. package/dist/esm/i18n/locales/locales/de-DE.json +282 -0
  176. package/dist/esm/i18n/locales/locales/en-US.json +2161 -0
  177. package/dist/esm/i18n/locales/locales/es-ES.json +2161 -0
  178. package/dist/esm/i18n/locales/locales/fr-FR.json +282 -0
  179. package/dist/esm/i18n/locales/locales/it-IT.json +282 -0
  180. package/dist/esm/i18n/locales/locales/ja-JP.json +282 -0
  181. package/dist/esm/i18n/locales/locales/ko-KR.json +282 -0
  182. package/dist/esm/i18n/locales/locales/pt-PT.json +282 -0
  183. package/dist/esm/i18n/locales/locales/zh-CN.json +282 -0
  184. package/dist/esm/i18n/locales/pt-PT.json +282 -0
  185. package/dist/esm/i18n/locales/zh-CN.json +282 -0
  186. package/dist/esm/i18n/reputationCategoryLabels.js +13 -0
  187. package/dist/esm/i18n/trustTierLabels.js +12 -0
  188. package/dist/esm/index.js +254 -0
  189. package/dist/esm/inference/OxyInferenceClient.js +538 -0
  190. package/dist/esm/logger/index.js +140 -0
  191. package/dist/esm/mixins/OxyServices.accounts.js +543 -0
  192. package/dist/esm/mixins/OxyServices.analytics.js +46 -0
  193. package/dist/esm/mixins/OxyServices.appData.js +103 -0
  194. package/dist/esm/mixins/OxyServices.assets.js +761 -0
  195. package/dist/esm/mixins/OxyServices.auth.js +1247 -0
  196. package/dist/esm/mixins/OxyServices.chains.js +70 -0
  197. package/dist/esm/mixins/OxyServices.civic.js +605 -0
  198. package/dist/esm/mixins/OxyServices.connectedApps.js +75 -0
  199. package/dist/esm/mixins/OxyServices.contacts.js +47 -0
  200. package/dist/esm/mixins/OxyServices.deviceBoot.js +186 -0
  201. package/dist/esm/mixins/OxyServices.deviceTransfer.js +311 -0
  202. package/dist/esm/mixins/OxyServices.devices.js +113 -0
  203. package/dist/esm/mixins/OxyServices.features.js +332 -0
  204. package/dist/esm/mixins/OxyServices.followGraph.js +218 -0
  205. package/dist/esm/mixins/OxyServices.identity.js +457 -0
  206. package/dist/esm/mixins/OxyServices.identityBackup.js +169 -0
  207. package/dist/esm/mixins/OxyServices.inference.js +56 -0
  208. package/dist/esm/mixins/OxyServices.language.js +122 -0
  209. package/dist/esm/mixins/OxyServices.links.js +69 -0
  210. package/dist/esm/mixins/OxyServices.location.js +40 -0
  211. package/dist/esm/mixins/OxyServices.nodes.js +172 -0
  212. package/dist/esm/mixins/OxyServices.notifications.js +60 -0
  213. package/dist/esm/mixins/OxyServices.payment.js +155 -0
  214. package/dist/esm/mixins/OxyServices.privacy.js +196 -0
  215. package/dist/esm/mixins/OxyServices.reputation.js +286 -0
  216. package/dist/esm/mixins/OxyServices.security.js +86 -0
  217. package/dist/esm/mixins/OxyServices.store.js +263 -0
  218. package/dist/esm/mixins/OxyServices.topics.js +134 -0
  219. package/dist/esm/mixins/OxyServices.user.js +899 -0
  220. package/dist/esm/mixins/OxyServices.utility.js +1095 -0
  221. package/dist/esm/mixins/index.js +132 -0
  222. package/dist/esm/mixins/mixinHelpers.js +48 -0
  223. package/dist/esm/models/Topic.js +13 -0
  224. package/dist/esm/models/interfaces.js +17 -0
  225. package/dist/esm/models/session.js +1 -0
  226. package/dist/esm/server/auth.js +154 -0
  227. package/dist/esm/server/capabilityTicket.js +183 -0
  228. package/dist/esm/server/cors.js +220 -0
  229. package/dist/esm/server/index.js +47 -0
  230. package/dist/esm/server/rateLimit.js +201 -0
  231. package/dist/esm/server/safeFetch.js +447 -0
  232. package/dist/esm/server/securityHeaders.js +364 -0
  233. package/dist/esm/server/userInvalidation.js +152 -0
  234. package/dist/esm/server/verifySecret.js +47 -0
  235. package/dist/esm/session/SessionClient.js +861 -0
  236. package/dist/esm/session/accountDelegationAccess.js +45 -0
  237. package/dist/esm/session/accountDialogController.js +1126 -0
  238. package/dist/esm/session/accountSwitchTargets.js +77 -0
  239. package/dist/esm/session/authStateStore.js +398 -0
  240. package/dist/esm/session/createSessionClient.js +29 -0
  241. package/dist/esm/session/deviceDirectory.js +135 -0
  242. package/dist/esm/session/deviceSwitcherRows.js +72 -0
  243. package/dist/esm/session/identityPin.js +249 -0
  244. package/dist/esm/session/identitySession.js +131 -0
  245. package/dist/esm/session/projectSessionState.js +114 -0
  246. package/dist/esm/session/refresh.js +390 -0
  247. package/dist/esm/session/sessionClientHost.js +31 -0
  248. package/dist/esm/session/sharedDeviceCredential.js +239 -0
  249. package/dist/esm/session/socketLoader.js +19 -0
  250. package/dist/esm/shared/utils/colorUtils.js +143 -0
  251. package/dist/esm/shared/utils/errorUtils.js +170 -0
  252. package/dist/esm/shared/utils/index.js +15 -0
  253. package/dist/esm/shared/utils/networkUtils.js +173 -0
  254. package/dist/esm/shared/utils/themeUtils.js +98 -0
  255. package/dist/esm/utils/accountCacheSweep.js +75 -0
  256. package/dist/esm/utils/accountUtils.js +131 -0
  257. package/dist/esm/utils/activityId.js +2 -0
  258. package/dist/esm/utils/apiUtils.js +84 -0
  259. package/dist/esm/utils/asyncUtils.js +207 -0
  260. package/dist/esm/utils/authHelpers.js +111 -0
  261. package/dist/esm/utils/authWebUrl.js +16 -0
  262. package/dist/esm/utils/avatarUtils.js +26 -0
  263. package/dist/esm/utils/cache.js +227 -0
  264. package/dist/esm/utils/cacheKey.js +80 -0
  265. package/dist/esm/utils/coldBoot.js +119 -0
  266. package/dist/esm/utils/commonsApproval.js +27 -0
  267. package/dist/esm/utils/commonsDelivery.js +54 -0
  268. package/dist/esm/utils/deviceManager.js +170 -0
  269. package/dist/esm/utils/displayNamePolicyRanges.generated.js +57 -0
  270. package/dist/esm/utils/edgeRegion.js +2 -0
  271. package/dist/esm/utils/errorUtils.js +232 -0
  272. package/dist/esm/utils/identityCacheSweep.js +92 -0
  273. package/dist/esm/utils/languageUtils.js +212 -0
  274. package/dist/esm/utils/oauthPkce.js +297 -0
  275. package/dist/esm/utils/officialOrigins.js +59 -0
  276. package/dist/esm/utils/oxyServiceEnvironment.js +16 -0
  277. package/dist/esm/utils/platform.js +110 -0
  278. package/dist/esm/utils/profileLinks.js +60 -0
  279. package/dist/esm/utils/redactUrl.js +26 -0
  280. package/dist/esm/utils/registrableApex.js +42 -0
  281. package/dist/esm/utils/requestUtils.js +203 -0
  282. package/dist/esm/utils/sessionUtils.js +171 -0
  283. package/dist/esm/utils/textNormalization.js +154 -0
  284. package/dist/esm/utils/userHandle.js +33 -0
  285. package/dist/esm/utils/userIdentity.js +45 -0
  286. package/dist/esm/utils/validationUtils.js +350 -0
  287. package/dist/esm/utils/webauthnOrigin.js +48 -0
  288. package/dist/types/.tsbuildinfo +1 -0
  289. package/dist/types/HttpService.d.ts +413 -0
  290. package/dist/types/OxyServices.base.d.ts +187 -0
  291. package/dist/types/OxyServices.d.ts +139 -0
  292. package/dist/types/OxyServices.errors.d.ts +84 -0
  293. package/dist/types/boot/sessionColdBoot.d.ts +140 -0
  294. package/dist/types/constants/version.d.ts +13 -0
  295. package/dist/types/crypto/aead.d.ts +56 -0
  296. package/dist/types/crypto/ecdh.d.ts +29 -0
  297. package/dist/types/crypto/identityMarker.d.ts +94 -0
  298. package/dist/types/crypto/kdf.d.ts +25 -0
  299. package/dist/types/crypto/keyManager.d.ts +582 -0
  300. package/dist/types/crypto/polyfill.d.ts +25 -0
  301. package/dist/types/crypto/recoveryPhrase.d.ts +173 -0
  302. package/dist/types/crypto/signatureService.d.ts +136 -0
  303. package/dist/types/i18n/accountCategoryLabels.d.ts +34 -0
  304. package/dist/types/i18n/accountRoleLabels.d.ts +10 -0
  305. package/dist/types/i18n/index.d.ts +3 -0
  306. package/dist/types/i18n/reputationCategoryLabels.d.ts +10 -0
  307. package/dist/types/i18n/trustTierLabels.d.ts +9 -0
  308. package/dist/types/index.d.ts +145 -0
  309. package/dist/types/inference/OxyInferenceClient.d.ts +342 -0
  310. package/dist/types/logger/index.d.ts +104 -0
  311. package/dist/types/mixins/OxyServices.accounts.d.ts +868 -0
  312. package/dist/types/mixins/OxyServices.analytics.d.ts +72 -0
  313. package/dist/types/mixins/OxyServices.appData.d.ts +108 -0
  314. package/dist/types/mixins/OxyServices.assets.d.ts +329 -0
  315. package/dist/types/mixins/OxyServices.auth.d.ts +908 -0
  316. package/dist/types/mixins/OxyServices.chains.d.ts +156 -0
  317. package/dist/types/mixins/OxyServices.civic.d.ts +510 -0
  318. package/dist/types/mixins/OxyServices.connectedApps.d.ts +169 -0
  319. package/dist/types/mixins/OxyServices.contacts.d.ts +100 -0
  320. package/dist/types/mixins/OxyServices.deviceBoot.d.ts +185 -0
  321. package/dist/types/mixins/OxyServices.deviceTransfer.d.ts +149 -0
  322. package/dist/types/mixins/OxyServices.devices.d.ts +103 -0
  323. package/dist/types/mixins/OxyServices.features.d.ts +250 -0
  324. package/dist/types/mixins/OxyServices.followGraph.d.ts +223 -0
  325. package/dist/types/mixins/OxyServices.identity.d.ts +351 -0
  326. package/dist/types/mixins/OxyServices.identityBackup.d.ts +129 -0
  327. package/dist/types/mixins/OxyServices.inference.d.ts +95 -0
  328. package/dist/types/mixins/OxyServices.language.d.ts +87 -0
  329. package/dist/types/mixins/OxyServices.links.d.ts +104 -0
  330. package/dist/types/mixins/OxyServices.location.d.ts +70 -0
  331. package/dist/types/mixins/OxyServices.nodes.d.ts +198 -0
  332. package/dist/types/mixins/OxyServices.notifications.d.ts +143 -0
  333. package/dist/types/mixins/OxyServices.payment.d.ts +117 -0
  334. package/dist/types/mixins/OxyServices.privacy.d.ts +146 -0
  335. package/dist/types/mixins/OxyServices.reputation.d.ts +202 -0
  336. package/dist/types/mixins/OxyServices.security.d.ts +84 -0
  337. package/dist/types/mixins/OxyServices.store.d.ts +334 -0
  338. package/dist/types/mixins/OxyServices.topics.d.ts +110 -0
  339. package/dist/types/mixins/OxyServices.user.d.ts +558 -0
  340. package/dist/types/mixins/OxyServices.utility.d.ts +393 -0
  341. package/dist/types/mixins/index.d.ts +87 -0
  342. package/dist/types/mixins/mixinHelpers.d.ts +31 -0
  343. package/dist/types/models/Topic.d.ts +42 -0
  344. package/dist/types/models/interfaces.d.ts +675 -0
  345. package/dist/types/models/session.d.ts +51 -0
  346. package/dist/types/server/auth.d.ts +130 -0
  347. package/dist/types/server/capabilityTicket.d.ts +41 -0
  348. package/dist/types/server/cors.d.ts +98 -0
  349. package/dist/types/server/index.d.ts +35 -0
  350. package/dist/types/server/rateLimit.d.ts +40 -0
  351. package/dist/types/server/safeFetch.d.ts +137 -0
  352. package/dist/types/server/securityHeaders.d.ts +221 -0
  353. package/dist/types/server/userInvalidation.d.ts +114 -0
  354. package/dist/types/server/verifySecret.d.ts +29 -0
  355. package/dist/types/session/SessionClient.d.ts +418 -0
  356. package/dist/types/session/accountDelegationAccess.d.ts +40 -0
  357. package/dist/types/session/accountDialogController.d.ts +648 -0
  358. package/dist/types/session/accountSwitchTargets.d.ts +70 -0
  359. package/dist/types/session/authStateStore.d.ts +153 -0
  360. package/dist/types/session/createSessionClient.d.ts +30 -0
  361. package/dist/types/session/deviceDirectory.d.ts +182 -0
  362. package/dist/types/session/deviceSwitcherRows.d.ts +92 -0
  363. package/dist/types/session/identityPin.d.ts +87 -0
  364. package/dist/types/session/identitySession.d.ts +105 -0
  365. package/dist/types/session/projectSessionState.d.ts +74 -0
  366. package/dist/types/session/refresh.d.ts +179 -0
  367. package/dist/types/session/sessionClientHost.d.ts +18 -0
  368. package/dist/types/session/sharedDeviceCredential.d.ts +202 -0
  369. package/dist/types/session/socketLoader.d.ts +11 -0
  370. package/dist/types/shared/utils/colorUtils.d.ts +104 -0
  371. package/dist/types/shared/utils/errorUtils.d.ts +97 -0
  372. package/dist/types/shared/utils/index.d.ts +13 -0
  373. package/dist/types/shared/utils/networkUtils.d.ts +139 -0
  374. package/dist/types/shared/utils/themeUtils.d.ts +90 -0
  375. package/dist/types/utils/accountCacheSweep.d.ts +75 -0
  376. package/dist/types/utils/accountUtils.d.ts +100 -0
  377. package/dist/types/utils/activityId.d.ts +2 -0
  378. package/dist/types/utils/apiUtils.d.ts +95 -0
  379. package/dist/types/utils/asyncUtils.d.ts +62 -0
  380. package/dist/types/utils/authHelpers.d.ts +58 -0
  381. package/dist/types/utils/authWebUrl.d.ts +16 -0
  382. package/dist/types/utils/avatarUtils.d.ts +16 -0
  383. package/dist/types/utils/cache.d.ts +130 -0
  384. package/dist/types/utils/cacheKey.d.ts +66 -0
  385. package/dist/types/utils/coldBoot.d.ts +131 -0
  386. package/dist/types/utils/commonsApproval.d.ts +13 -0
  387. package/dist/types/utils/commonsDelivery.d.ts +105 -0
  388. package/dist/types/utils/deviceManager.d.ts +65 -0
  389. package/dist/types/utils/displayNamePolicyRanges.generated.d.ts +57 -0
  390. package/dist/types/utils/edgeRegion.d.ts +2 -0
  391. package/dist/types/utils/errorUtils.d.ts +125 -0
  392. package/dist/types/utils/identityCacheSweep.d.ts +80 -0
  393. package/dist/types/utils/languageUtils.d.ts +100 -0
  394. package/dist/types/utils/oauthPkce.d.ts +157 -0
  395. package/dist/types/utils/officialOrigins.d.ts +13 -0
  396. package/dist/types/utils/oxyServiceEnvironment.d.ts +17 -0
  397. package/dist/types/utils/platform.d.ts +49 -0
  398. package/dist/types/utils/profileLinks.d.ts +44 -0
  399. package/dist/types/utils/redactUrl.d.ts +17 -0
  400. package/dist/types/utils/registrableApex.d.ts +27 -0
  401. package/dist/types/utils/requestUtils.d.ts +123 -0
  402. package/dist/types/utils/sessionUtils.d.ts +54 -0
  403. package/dist/types/utils/textNormalization.d.ts +103 -0
  404. package/dist/types/utils/userHandle.d.ts +26 -0
  405. package/dist/types/utils/userIdentity.d.ts +21 -0
  406. package/dist/types/utils/validationUtils.d.ts +268 -0
  407. package/dist/types/utils/webauthnOrigin.d.ts +32 -0
  408. package/package.json +168 -0
  409. package/src/HttpService.ts +1553 -0
  410. package/src/OxyServices.base.ts +478 -0
  411. package/src/OxyServices.errors.ts +122 -0
  412. package/src/OxyServices.ts +172 -0
  413. package/src/__tests__/authSocket.test.ts +96 -0
  414. package/src/__tests__/httpServiceActivityId.test.ts +49 -0
  415. package/src/__tests__/httpServiceAuthSelfAwait.test.ts +108 -0
  416. package/src/__tests__/httpServiceCache.test.ts +318 -0
  417. package/src/__tests__/httpServiceCsrf.test.ts +235 -0
  418. package/src/__tests__/httpServiceFormEncoded.test.ts +142 -0
  419. package/src/__tests__/httpServiceQueueDeadlock.test.ts +128 -0
  420. package/src/__tests__/httpServiceUnwrapEnvelope.test.ts +115 -0
  421. package/src/__tests__/inSessionRefresh.test.ts +260 -0
  422. package/src/__tests__/linkedClient.test.ts +370 -0
  423. package/src/__tests__/parseHttpErrorBody.test.ts +116 -0
  424. package/src/__tests__/serverValueImportsDeclared.test.ts +120 -0
  425. package/src/__tests__/userIdentity.test.ts +143 -0
  426. package/src/boot/__tests__/sessionColdBoot.identity.test.ts +393 -0
  427. package/src/boot/__tests__/sessionColdBoot.sharedDevice.test.ts +325 -0
  428. package/src/boot/__tests__/sessionColdBoot.test.ts +570 -0
  429. package/src/boot/sessionColdBoot.ts +529 -0
  430. package/src/constants/version.ts +15 -0
  431. package/src/crypto/__tests__/backupMaterial.test.ts +86 -0
  432. package/src/crypto/__tests__/cryptoPrimitives.test.ts +226 -0
  433. package/src/crypto/__tests__/identityMocks.ts +125 -0
  434. package/src/crypto/__tests__/keyManager.atomicity.test.ts +272 -0
  435. package/src/crypto/__tests__/keyManager.cacheSafety.test.ts +175 -0
  436. package/src/crypto/__tests__/keyManager.identityStatus.test.ts +217 -0
  437. package/src/crypto/__tests__/keyManager.recoveryLadder.test.ts +179 -0
  438. package/src/crypto/__tests__/keyManager.recoveryMnemonic.test.ts +138 -0
  439. package/src/crypto/__tests__/keyManager.storageMigration.test.ts +227 -0
  440. package/src/crypto/__tests__/keyManager.test.ts +329 -0
  441. package/src/crypto/__tests__/polyfill.test.ts +109 -0
  442. package/src/crypto/__tests__/recoveryPhrase.test.ts +61 -0
  443. package/src/crypto/__tests__/scopedSeed.test.ts +126 -0
  444. package/src/crypto/__tests__/signChallengeShared.test.ts +63 -0
  445. package/src/crypto/__tests__/signedRecord.test.ts +230 -0
  446. package/src/crypto/aead.ts +97 -0
  447. package/src/crypto/ecdh.ts +37 -0
  448. package/src/crypto/identityMarker.ts +291 -0
  449. package/src/crypto/kdf.ts +43 -0
  450. package/src/crypto/keyManager.ts +2607 -0
  451. package/src/crypto/polyfill.ts +143 -0
  452. package/src/crypto/recoveryPhrase.ts +337 -0
  453. package/src/crypto/signatureService.ts +350 -0
  454. package/src/i18n/__tests__/accountCategoryLabels.test.ts +62 -0
  455. package/src/i18n/__tests__/accountRoleLabels.test.ts +54 -0
  456. package/src/i18n/__tests__/reputationCategoryLabels.test.ts +56 -0
  457. package/src/i18n/__tests__/trustTierLabels.test.ts +47 -0
  458. package/src/i18n/accountCategoryLabels.ts +44 -0
  459. package/src/i18n/accountRoleLabels.ts +26 -0
  460. package/src/i18n/index.ts +88 -0
  461. package/src/i18n/locales/ar-SA.json +282 -0
  462. package/src/i18n/locales/ca-ES.json +282 -0
  463. package/src/i18n/locales/de-DE.json +282 -0
  464. package/src/i18n/locales/en-US.json +2161 -0
  465. package/src/i18n/locales/es-ES.json +2161 -0
  466. package/src/i18n/locales/fr-FR.json +282 -0
  467. package/src/i18n/locales/it-IT.json +282 -0
  468. package/src/i18n/locales/ja-JP.json +282 -0
  469. package/src/i18n/locales/ko-KR.json +282 -0
  470. package/src/i18n/locales/pt-PT.json +282 -0
  471. package/src/i18n/locales/zh-CN.json +282 -0
  472. package/src/i18n/reputationCategoryLabels.ts +20 -0
  473. package/src/i18n/trustTierLabels.ts +18 -0
  474. package/src/index.ts +881 -0
  475. package/src/inference/OxyInferenceClient.ts +888 -0
  476. package/src/inference/__tests__/OxyInferenceClient.test.ts +834 -0
  477. package/src/logger/__tests__/logger.test.ts +207 -0
  478. package/src/logger/index.ts +217 -0
  479. package/src/mixins/OxyServices.accounts.ts +1330 -0
  480. package/src/mixins/OxyServices.analytics.ts +53 -0
  481. package/src/mixins/OxyServices.appData.ts +158 -0
  482. package/src/mixins/OxyServices.assets.ts +861 -0
  483. package/src/mixins/OxyServices.auth.ts +1858 -0
  484. package/src/mixins/OxyServices.chains.ts +134 -0
  485. package/src/mixins/OxyServices.civic.ts +945 -0
  486. package/src/mixins/OxyServices.connectedApps.ts +174 -0
  487. package/src/mixins/OxyServices.contacts.ts +73 -0
  488. package/src/mixins/OxyServices.deviceBoot.ts +210 -0
  489. package/src/mixins/OxyServices.deviceTransfer.ts +393 -0
  490. package/src/mixins/OxyServices.devices.ts +120 -0
  491. package/src/mixins/OxyServices.features.ts +454 -0
  492. package/src/mixins/OxyServices.followGraph.ts +293 -0
  493. package/src/mixins/OxyServices.identity.ts +705 -0
  494. package/src/mixins/OxyServices.identityBackup.ts +250 -0
  495. package/src/mixins/OxyServices.inference.ts +57 -0
  496. package/src/mixins/OxyServices.language.ts +144 -0
  497. package/src/mixins/OxyServices.links.ts +107 -0
  498. package/src/mixins/OxyServices.location.ts +46 -0
  499. package/src/mixins/OxyServices.nodes.ts +337 -0
  500. package/src/mixins/OxyServices.notifications.ts +142 -0
  501. package/src/mixins/OxyServices.payment.ts +163 -0
  502. package/src/mixins/OxyServices.privacy.ts +219 -0
  503. package/src/mixins/OxyServices.reputation.ts +436 -0
  504. package/src/mixins/OxyServices.security.ts +110 -0
  505. package/src/mixins/OxyServices.store.ts +585 -0
  506. package/src/mixins/OxyServices.topics.ts +169 -0
  507. package/src/mixins/OxyServices.user.ts +1137 -0
  508. package/src/mixins/OxyServices.utility.ts +1370 -0
  509. package/src/mixins/__tests__/OxyServices.civic.test.ts +1095 -0
  510. package/src/mixins/__tests__/OxyServices.deviceBoot.test.ts +124 -0
  511. package/src/mixins/__tests__/OxyServices.deviceTransfer.test.ts +271 -0
  512. package/src/mixins/__tests__/OxyServices.identity.test.ts +376 -0
  513. package/src/mixins/__tests__/OxyServices.links.test.ts +154 -0
  514. package/src/mixins/__tests__/OxyServices.nodes.test.ts +341 -0
  515. package/src/mixins/__tests__/OxyServices.rotateKey.test.ts +276 -0
  516. package/src/mixins/__tests__/OxyServices.serviceAssetMetadata.test.ts +192 -0
  517. package/src/mixins/__tests__/OxyServices.serviceAssetMetadataBySha.test.ts +135 -0
  518. package/src/mixins/__tests__/accounts.test.ts +727 -0
  519. package/src/mixins/__tests__/appData.test.ts +203 -0
  520. package/src/mixins/__tests__/assetCredentials.test.ts +47 -0
  521. package/src/mixins/__tests__/assetUpload.test.ts +191 -0
  522. package/src/mixins/__tests__/backgroundCredential.httpIntegration.test.ts +135 -0
  523. package/src/mixins/__tests__/chains.test.ts +113 -0
  524. package/src/mixins/__tests__/commonsSignIn.test.ts +1144 -0
  525. package/src/mixins/__tests__/connectedApps.test.ts +123 -0
  526. package/src/mixins/__tests__/deviceTokenMintPinned.test.ts +113 -0
  527. package/src/mixins/__tests__/discoveryErrorHandling.test.ts +266 -0
  528. package/src/mixins/__tests__/followCacheInvalidation.test.ts +173 -0
  529. package/src/mixins/__tests__/followGraph.test.ts +147 -0
  530. package/src/mixins/__tests__/followGraphPagination.test.ts +271 -0
  531. package/src/mixins/__tests__/getFileDownloadUrl.test.ts +346 -0
  532. package/src/mixins/__tests__/getFollowStatuses.test.ts +95 -0
  533. package/src/mixins/__tests__/getUsersByIds.test.ts +149 -0
  534. package/src/mixins/__tests__/identityBackup.test.ts +315 -0
  535. package/src/mixins/__tests__/identityWriteCacheInvalidation.test.ts +407 -0
  536. package/src/mixins/__tests__/inferenceFactory.test.ts +58 -0
  537. package/src/mixins/__tests__/onTokensChanged.test.ts +129 -0
  538. package/src/mixins/__tests__/preSessionSkipAuth.test.ts +284 -0
  539. package/src/mixins/__tests__/privacyCacheInvalidation.test.ts +155 -0
  540. package/src/mixins/__tests__/reputation.test.ts +522 -0
  541. package/src/mixins/__tests__/serviceAuth.test.ts +832 -0
  542. package/src/mixins/__tests__/serviceTokenJwks.test.ts +208 -0
  543. package/src/mixins/__tests__/store.test.ts +304 -0
  544. package/src/mixins/__tests__/topics.test.ts +156 -0
  545. package/src/mixins/__tests__/userReadCacheBypass.test.ts +129 -0
  546. package/src/mixins/__tests__/userTokenAuth.test.ts +746 -0
  547. package/src/mixins/__tests__/verifyChallenge.test.ts +130 -0
  548. package/src/mixins/__tests__/verifyServiceActingAs.test.ts +167 -0
  549. package/src/mixins/__tests__/webauthnAuth.test.ts +205 -0
  550. package/src/mixins/index.ts +201 -0
  551. package/src/mixins/mixinHelpers.ts +69 -0
  552. package/src/models/Topic.ts +46 -0
  553. package/src/models/interfaces.ts +786 -0
  554. package/src/models/session.ts +55 -0
  555. package/src/server/__tests__/auth.test.ts +78 -0
  556. package/src/server/__tests__/capabilityTicket.test.ts +111 -0
  557. package/src/server/__tests__/cors.socket.test.ts +225 -0
  558. package/src/server/__tests__/cors.test.ts +158 -0
  559. package/src/server/__tests__/rateLimit.test.ts +257 -0
  560. package/src/server/__tests__/safeFetch.test.ts +232 -0
  561. package/src/server/__tests__/securityHeaders.test.ts +348 -0
  562. package/src/server/__tests__/serviceTokenAttribution.test.ts +396 -0
  563. package/src/server/__tests__/userInvalidation.test.ts +203 -0
  564. package/src/server/__tests__/verifySecret.test.ts +40 -0
  565. package/src/server/auth.ts +271 -0
  566. package/src/server/capabilityTicket.ts +258 -0
  567. package/src/server/cors.ts +277 -0
  568. package/src/server/index.ts +136 -0
  569. package/src/server/rateLimit.ts +313 -0
  570. package/src/server/safeFetch.ts +586 -0
  571. package/src/server/securityHeaders.ts +467 -0
  572. package/src/server/userInvalidation.ts +199 -0
  573. package/src/server/verifySecret.ts +52 -0
  574. package/src/session/SessionClient.ts +1001 -0
  575. package/src/session/__tests__/SessionClient.additive.test.ts +153 -0
  576. package/src/session/__tests__/SessionClient.broadcastChannel.test.ts +114 -0
  577. package/src/session/__tests__/SessionClient.diagnostics.test.ts +91 -0
  578. package/src/session/__tests__/SessionClient.directory.test.ts +688 -0
  579. package/src/session/__tests__/SessionClient.httpIntegration.test.ts +65 -0
  580. package/src/session/__tests__/SessionClient.identityPin.test.ts +175 -0
  581. package/src/session/__tests__/SessionClient.rest.test.ts +119 -0
  582. package/src/session/__tests__/SessionClient.serverEvents.test.ts +72 -0
  583. package/src/session/__tests__/SessionClient.socket.test.ts +202 -0
  584. package/src/session/__tests__/SessionClient.socketFactory.test.ts +81 -0
  585. package/src/session/__tests__/SessionClient.state.test.ts +78 -0
  586. package/src/session/__tests__/SessionClient.switchTokenOrder.test.ts +170 -0
  587. package/src/session/__tests__/accountDelegationAccess.test.ts +104 -0
  588. package/src/session/__tests__/accountDialogController.test.ts +1969 -0
  589. package/src/session/__tests__/accountDialogShape.test.ts +118 -0
  590. package/src/session/__tests__/accountSwitchTargets.test.ts +137 -0
  591. package/src/session/__tests__/authStateStore.test.ts +451 -0
  592. package/src/session/__tests__/deviceDirectory.test.ts +422 -0
  593. package/src/session/__tests__/deviceSwitcherRows.test.ts +223 -0
  594. package/src/session/__tests__/identityPin.test.ts +131 -0
  595. package/src/session/__tests__/identitySession.test.ts +194 -0
  596. package/src/session/__tests__/projectSessionState.test.ts +105 -0
  597. package/src/session/__tests__/refresh.identityPin.test.ts +307 -0
  598. package/src/session/__tests__/refresh.test.ts +443 -0
  599. package/src/session/__tests__/sessionIntegration.test.ts +209 -0
  600. package/src/session/__tests__/sharedDeviceCredential.test.ts +300 -0
  601. package/src/session/accountDelegationAccess.ts +72 -0
  602. package/src/session/accountDialogController.ts +1494 -0
  603. package/src/session/accountSwitchTargets.ts +93 -0
  604. package/src/session/authStateStore.ts +502 -0
  605. package/src/session/createSessionClient.ts +39 -0
  606. package/src/session/deviceDirectory.ts +269 -0
  607. package/src/session/deviceSwitcherRows.ts +145 -0
  608. package/src/session/identityPin.ts +310 -0
  609. package/src/session/identitySession.ts +206 -0
  610. package/src/session/projectSessionState.ts +137 -0
  611. package/src/session/refresh.ts +517 -0
  612. package/src/session/sessionClientHost.ts +39 -0
  613. package/src/session/sharedDeviceCredential.ts +349 -0
  614. package/src/session/socketLoader.ts +30 -0
  615. package/src/shared/utils/colorUtils.ts +155 -0
  616. package/src/shared/utils/errorUtils.ts +181 -0
  617. package/src/shared/utils/index.ts +59 -0
  618. package/src/shared/utils/networkUtils.ts +248 -0
  619. package/src/shared/utils/themeUtils.ts +115 -0
  620. package/src/types/buffer.d.ts +97 -0
  621. package/src/types/expo-crypto.d.ts +16 -0
  622. package/src/types/expo-secure-store.d.ts +17 -0
  623. package/src/utils/__tests__/accountUtils.test.ts +151 -0
  624. package/src/utils/__tests__/activityId.test.ts +45 -0
  625. package/src/utils/__tests__/asyncUtils.test.ts +187 -0
  626. package/src/utils/__tests__/authWebUrl.test.ts +15 -0
  627. package/src/utils/__tests__/cacheKey.test.ts +0 -0
  628. package/src/utils/__tests__/coldBoot.test.ts +496 -0
  629. package/src/utils/__tests__/commonsApproval.test.ts +60 -0
  630. package/src/utils/__tests__/identityCacheSweep.test.ts +151 -0
  631. package/src/utils/__tests__/languageUtils.test.ts +219 -0
  632. package/src/utils/__tests__/oauthPkce.test.ts +272 -0
  633. package/src/utils/__tests__/officialOrigins.test.ts +31 -0
  634. package/src/utils/__tests__/oxyServiceEnvironment.test.ts +7 -0
  635. package/src/utils/__tests__/profileLinks.test.ts +180 -0
  636. package/src/utils/__tests__/redactUrl.test.ts +33 -0
  637. package/src/utils/__tests__/registrableApex.test.ts +62 -0
  638. package/src/utils/__tests__/textNormalization.test.ts +205 -0
  639. package/src/utils/__tests__/validationUtils.test.ts +703 -0
  640. package/src/utils/__tests__/webauthnOrigin.test.ts +83 -0
  641. package/src/utils/accountCacheSweep.ts +93 -0
  642. package/src/utils/accountUtils.ts +194 -0
  643. package/src/utils/activityId.ts +2 -0
  644. package/src/utils/apiUtils.ts +137 -0
  645. package/src/utils/asyncUtils.ts +280 -0
  646. package/src/utils/authHelpers.ts +148 -0
  647. package/src/utils/authWebUrl.ts +17 -0
  648. package/src/utils/avatarUtils.ts +39 -0
  649. package/src/utils/cache.ts +273 -0
  650. package/src/utils/cacheKey.ts +93 -0
  651. package/src/utils/coldBoot.ts +218 -0
  652. package/src/utils/commonsApproval.ts +39 -0
  653. package/src/utils/commonsDelivery.ts +132 -0
  654. package/src/utils/deviceManager.ts +203 -0
  655. package/src/utils/displayNamePolicyRanges.generated.ts +69 -0
  656. package/src/utils/edgeRegion.ts +2 -0
  657. package/src/utils/errorUtils.ts +352 -0
  658. package/src/utils/identityCacheSweep.ts +104 -0
  659. package/src/utils/languageUtils.ts +256 -0
  660. package/src/utils/oauthPkce.ts +392 -0
  661. package/src/utils/officialOrigins.ts +62 -0
  662. package/src/utils/oxyServiceEnvironment.ts +17 -0
  663. package/src/utils/platform.ts +139 -0
  664. package/src/utils/profileLinks.ts +91 -0
  665. package/src/utils/redactUrl.ts +28 -0
  666. package/src/utils/registrableApex.ts +41 -0
  667. package/src/utils/requestUtils.ts +237 -0
  668. package/src/utils/sessionUtils.ts +206 -0
  669. package/src/utils/textNormalization.ts +162 -0
  670. package/src/utils/userHandle.ts +49 -0
  671. package/src/utils/userIdentity.ts +60 -0
  672. package/src/utils/validationUtils.ts +390 -0
  673. package/src/utils/webauthnOrigin.ts +52 -0
@@ -0,0 +1,675 @@
1
+ import type { AccountKind, AccountCategoryId, UserNameResponse, UserRelationship, ThemePreference } from '@oxy.so/contracts';
2
+ export interface OxyConfig {
3
+ baseURL: string;
4
+ cloudURL?: string;
5
+ authWebUrl?: string;
6
+ authRedirectUri?: string;
7
+ /**
8
+ * The app's Oxy OAuth client id (ApplicationCredential publicKey).
9
+ *
10
+ * Identifies this app in OAuth authorize / consent flows (issue #214). Purely
11
+ * declarative: the SDK stores it on `OxyServices.config.clientId` for later
12
+ * OAuth-authorize use. It is unrelated to the cross-domain `/sso?client_id=…`
13
+ * bounce (which uses the RP origin, not this registered client id).
14
+ */
15
+ clientId?: string;
16
+ /**
17
+ * Enable the per-instance GET response cache. Defaults to `true` (5-minute
18
+ * TTL). Set to `false` to disable caching entirely for this instance — GET
19
+ * responses are then never stored and never served from cache, so every read
20
+ * hits the network. Useful for a linked backend client where another layer
21
+ * (e.g. React Query) is the single cache authority and the SDK's own cache
22
+ * would otherwise serve stale data after a write.
23
+ */
24
+ enableCache?: boolean;
25
+ /**
26
+ * Cache TTL in milliseconds (default: 5 minutes). A value `<= 0` disables the
27
+ * per-instance GET response cache, equivalent to `enableCache: false`.
28
+ */
29
+ cacheTTL?: number;
30
+ enableRequestDeduplication?: boolean;
31
+ enableRetry?: boolean;
32
+ maxRetries?: number;
33
+ retryDelay?: number;
34
+ requestTimeout?: number;
35
+ maxConcurrentRequests?: number;
36
+ requestQueueSize?: number;
37
+ enableLogging?: boolean;
38
+ logLevel?: 'none' | 'error' | 'warn' | 'info' | 'debug';
39
+ onRequestStart?: (url: string, method: string) => void;
40
+ onRequestEnd?: (url: string, method: string, duration: number, success: boolean) => void;
41
+ onRequestError?: (url: string, method: string, error: Error) => void;
42
+ }
43
+ /**
44
+ * Privacy settings for a user account.
45
+ *
46
+ * All fields are optional because:
47
+ * - Updates are dot-path partial PATCHes — clients send only changed keys.
48
+ * - The server may return a partial subdocument depending on the API
49
+ * build (older builds returned only the field that changed).
50
+ * - User accounts created before a new toggle was introduced won't
51
+ * have that key persisted yet.
52
+ *
53
+ * Mirrors `IPrivacySettings` from `packages/api/src/types/privacy.types.ts`,
54
+ * but with every field marked optional.
55
+ */
56
+ export interface PrivacySettings {
57
+ isPrivateAccount?: boolean;
58
+ hideOnlineStatus?: boolean;
59
+ hideLastSeen?: boolean;
60
+ profileVisibility?: boolean;
61
+ loginAlerts?: boolean;
62
+ blockScreenshots?: boolean;
63
+ login?: boolean;
64
+ biometricLogin?: boolean;
65
+ showActivity?: boolean;
66
+ allowTagging?: boolean;
67
+ allowMentions?: boolean;
68
+ hideReadReceipts?: boolean;
69
+ allowDirectMessages?: boolean;
70
+ dataSharing?: boolean;
71
+ locationSharing?: boolean;
72
+ analyticsSharing?: boolean;
73
+ sensitiveContent?: boolean;
74
+ autoFilter?: boolean;
75
+ muteKeywords?: boolean;
76
+ /** Allow sharing this user's content on the fediverse. Defaults to true. */
77
+ fediverseSharing?: boolean;
78
+ }
79
+ export interface User {
80
+ id: string;
81
+ publicKey: string;
82
+ username: string;
83
+ email?: string;
84
+ avatar?: string | null;
85
+ color?: string | null;
86
+ privacySettings?: PrivacySettings;
87
+ /**
88
+ * Structured human name. `name.displayName` is the canonical display string
89
+ * resolved by the API when present; consumers render it directly instead of
90
+ * recomposing names from `first` / `last` / `full` / `username`. It is now
91
+ * OPTIONAL (see `UserNameResponse`) — when absent, fall back to a handle
92
+ * (e.g. `getNormalizedUserHandle`) rather than recomposing a name locally.
93
+ */
94
+ name: UserNameResponse;
95
+ bio?: string;
96
+ /**
97
+ * Longer public profile text. Emitted alongside `bio` by every user DTO the
98
+ * API produces (single profile, `getUsersByIds`, follower/following/mutual
99
+ * lists, profile search) — the two are separate fields on the User document.
100
+ */
101
+ description?: string;
102
+ phone?: string;
103
+ address?: string;
104
+ birthday?: string;
105
+ website?: string;
106
+ createdAt?: string;
107
+ updatedAt?: string;
108
+ links?: string[];
109
+ linksMetadata?: Array<{
110
+ url: string;
111
+ title?: string;
112
+ description?: string;
113
+ image?: string;
114
+ id?: string;
115
+ }>;
116
+ _count?: {
117
+ followers?: number;
118
+ following?: number;
119
+ };
120
+ accountExpiresAfterInactivityDays?: number | null;
121
+ /**
122
+ * Account-graph classification — WHAT this account is.
123
+ *
124
+ * ORTHOGONAL to `type` below, and easy to confuse with it: `type` says where
125
+ * the account lives and how it is driven (`local` / `federated` / `agent` /
126
+ * `automated`), `kind` says what it IS (`personal` / `organization` /
127
+ * `project` / `bot` / `channel`). A federated channel is `type: 'federated'`
128
+ * AND `kind: 'channel'`; neither value substitutes for the other.
129
+ *
130
+ * This is what a consumer rendering authored content reads to tell a
131
+ * channel's post from a person's — a channel is the author, so there is no
132
+ * second identity to carry alongside the user.
133
+ *
134
+ * Absent should be read as `personal` (the column's default), not as unknown.
135
+ */
136
+ kind?: AccountKind;
137
+ type?: 'local' | 'federated' | 'agent' | 'automated';
138
+ isFederated?: boolean;
139
+ /** Allow sharing this user's content on the fediverse. Defaults to true. */
140
+ fediverseSharing?: boolean;
141
+ isAgent?: boolean;
142
+ isAutomated?: boolean;
143
+ instance?: string;
144
+ federation?: {
145
+ actorUri?: string;
146
+ domain?: string;
147
+ actorId?: string;
148
+ };
149
+ automation?: {
150
+ ownerId?: string;
151
+ };
152
+ isManagedAccount?: boolean;
153
+ managedBy?: string;
154
+ /**
155
+ * What this account is about, for any NON-personal account. ORDERED — the
156
+ * first element is the primary category, and nothing may reorder it.
157
+ *
158
+ * Stable ids, not labels: render each through the
159
+ * `accounts.accountCategory.<id>` translation key so the reader sees their own
160
+ * language rather than the language of whoever chose it. Absent when the
161
+ * account has none.
162
+ */
163
+ accountCategories?: AccountCategoryId[];
164
+ /**
165
+ * The account's languages as full BCP-47 locales (`language-REGION`, e.g.
166
+ * `en-US`, `es-MX`, `pt-BR`), ordered with the PRIMARY (UI) locale first.
167
+ * `languages[0]` is the primary locale — there is no singular `language`
168
+ * field. Resolve via `getUserLanguages` / `getPrimaryLanguage`, which
169
+ * normalize, validate against the supported catalog, and de-duplicate.
170
+ */
171
+ languages?: string[];
172
+ notificationPreferences?: NotificationPreferences;
173
+ userPreferences?: UserPreferences;
174
+ /**
175
+ * Portable theme preference (mode + Bloom color-preset key). Rides the
176
+ * self/session payload so it is present on the current-user DTO at cold boot
177
+ * (`useAuth().user.themePreference`) with no extra fetch. Absent until the
178
+ * user sets it. Updated via `updateThemePreference` / `updateProfile`.
179
+ */
180
+ themePreference?: ThemePreference;
181
+ /**
182
+ * The authenticated viewer's relationship to THIS profile. Populated ONLY on
183
+ * single-profile fetches (`getProfileByUsername` / `getUserById`) when the
184
+ * request is authenticated; absent for anonymous requests, self-views, and
185
+ * bulk fetches — so `undefined` means "unknown", not "not following".
186
+ */
187
+ relationship?: UserRelationship;
188
+ [key: string]: unknown;
189
+ }
190
+ /**
191
+ * User-controlled notification channels. Persisted on the User document.
192
+ */
193
+ export interface NotificationPreferences {
194
+ /** Push notifications on registered devices. */
195
+ pushEnabled?: boolean;
196
+ /** Periodic email digest of activity. */
197
+ emailDigest?: boolean;
198
+ /** Security/account alerts (sign-ins, recovery, key changes). */
199
+ securityAlerts?: boolean;
200
+ /** Marketing / product update emails. */
201
+ marketingEmails?: boolean;
202
+ }
203
+ /**
204
+ * General per-user preferences applied across all Oxy apps for the user.
205
+ * Persisted on the User document.
206
+ */
207
+ export interface UserPreferences {
208
+ /** BCP-47 language tag, e.g. "en-US", "es-ES". Empty string = follow device. */
209
+ language?: string;
210
+ /** Theme mode preference. */
211
+ theme?: 'light' | 'dark' | 'system';
212
+ /** Mirror of OS reduce-motion preference, persisted server-side. */
213
+ reduceMotion?: boolean;
214
+ /** IANA timezone, e.g. "Europe/Madrid". Empty string = follow device. */
215
+ timezone?: string;
216
+ }
217
+ export interface LoginResponse {
218
+ accessToken?: string;
219
+ user: User;
220
+ message?: string;
221
+ }
222
+ export interface Notification {
223
+ id: string;
224
+ message: string;
225
+ }
226
+ export interface Wallet {
227
+ id: string;
228
+ balance: number;
229
+ }
230
+ export interface Transaction {
231
+ id: string;
232
+ amount: number;
233
+ type: string;
234
+ timestamp: string;
235
+ }
236
+ export interface BlockedUser {
237
+ _id?: string;
238
+ blockedId: string | {
239
+ _id: string;
240
+ username: string;
241
+ avatar?: string;
242
+ name?: {
243
+ displayName?: string;
244
+ };
245
+ };
246
+ userId: string;
247
+ createdAt?: string;
248
+ blockedAt?: string;
249
+ username?: string;
250
+ avatar?: string;
251
+ }
252
+ export interface RestrictedUser {
253
+ _id?: string;
254
+ restrictedId: string | {
255
+ _id: string;
256
+ username: string;
257
+ avatar?: string;
258
+ name?: {
259
+ displayName?: string;
260
+ };
261
+ };
262
+ userId: string;
263
+ createdAt?: string;
264
+ restrictedAt?: string;
265
+ username?: string;
266
+ avatar?: string;
267
+ }
268
+ export interface TransferFundsRequest {
269
+ fromUserId: string;
270
+ toUserId: string;
271
+ amount: number;
272
+ }
273
+ export interface PurchaseRequest {
274
+ userId: string;
275
+ itemId: string;
276
+ amount: number;
277
+ }
278
+ export interface WithdrawalRequest {
279
+ userId: string;
280
+ amount: number;
281
+ address: string;
282
+ }
283
+ export interface TransactionResponse {
284
+ success: boolean;
285
+ transaction: Transaction;
286
+ }
287
+ export interface PaginationInfo {
288
+ total: number;
289
+ limit: number;
290
+ offset: number;
291
+ hasMore: boolean;
292
+ }
293
+ export interface SearchProfilesResponse {
294
+ data: User[];
295
+ pagination: PaginationInfo;
296
+ }
297
+ export interface ApiError {
298
+ message: string;
299
+ code: string;
300
+ status: number;
301
+ details?: Record<string, unknown>;
302
+ }
303
+ export interface PaymentMethod {
304
+ id: string;
305
+ type: string;
306
+ }
307
+ export interface PaymentRequest {
308
+ userId: string;
309
+ planId: string;
310
+ paymentMethodId: string;
311
+ }
312
+ export interface PaymentResponse {
313
+ transactionId: string;
314
+ status: string;
315
+ }
316
+ export interface AnalyticsData {
317
+ userId: string;
318
+ }
319
+ export interface FollowerDetails {
320
+ userId: string;
321
+ followers: number;
322
+ }
323
+ export interface ContentViewer {
324
+ userId: string;
325
+ viewedAt: string;
326
+ }
327
+ /**
328
+ * File management interfaces
329
+ */
330
+ export interface FileMetadata {
331
+ id: string;
332
+ filename: string;
333
+ contentType: string;
334
+ length: number;
335
+ chunkSize: number;
336
+ uploadDate: string;
337
+ metadata?: {
338
+ userId?: string;
339
+ description?: string;
340
+ title?: string;
341
+ tags?: string[];
342
+ [key: string]: unknown;
343
+ };
344
+ variants?: Array<{
345
+ type: string;
346
+ key: string;
347
+ width?: number;
348
+ height?: number;
349
+ readyAt?: string;
350
+ metadata?: Record<string, unknown>;
351
+ }>;
352
+ }
353
+ export interface FileUploadResponse {
354
+ files: FileMetadata[];
355
+ }
356
+ export interface FileListResponse {
357
+ files: FileMetadata[];
358
+ total: number;
359
+ hasMore: boolean;
360
+ }
361
+ export interface FileUpdateRequest {
362
+ filename?: string;
363
+ metadata?: {
364
+ description?: string;
365
+ title?: string;
366
+ tags?: string[];
367
+ [key: string]: unknown;
368
+ };
369
+ }
370
+ export interface FileDeleteResponse {
371
+ success: boolean;
372
+ message: string;
373
+ fileId: string;
374
+ }
375
+ /**
376
+ * React Native file descriptor accepted by FormData.
377
+ *
378
+ * On React Native, the multipart upload reads the file from disk via the URI
379
+ * during the network request — no in-JS Blob construction is required (and
380
+ * doing so would fail on Hermes since RN's BlobManager cannot wrap an
381
+ * ArrayBuffer/ArrayBufferView).
382
+ *
383
+ * This shape matches what `expo-document-picker` and `expo-image-picker`
384
+ * return for selected assets, and is what `OxyServices.assetUpload` accepts
385
+ * on native platforms.
386
+ */
387
+ export interface RNFileDescriptor {
388
+ uri: string;
389
+ type?: string;
390
+ name?: string;
391
+ size?: number;
392
+ }
393
+ /**
394
+ * Asset upload input — accepted by `OxyServices.assetUpload` and `uploadRawFile`.
395
+ *
396
+ * - `File` / `Blob`: standard web browser path. `assetUpload` appends the
397
+ * Blob to FormData directly.
398
+ * - {@link RNFileDescriptor}: React Native path. FormData reads the file from
399
+ * disk via the URI during the multipart request.
400
+ */
401
+ export type AssetUploadInput = File | Blob | RNFileDescriptor;
402
+ /**
403
+ * Central Asset Service interfaces
404
+ */
405
+ /**
406
+ * File visibility levels
407
+ * - private: Only accessible by owner (default)
408
+ * - public: Accessible by anyone without authentication (e.g., avatars, public profile content)
409
+ * - unlisted: Accessible with direct link but not listed publicly
410
+ */
411
+ export type FileVisibility = 'private' | 'public' | 'unlisted';
412
+ export interface AssetLink {
413
+ app: string;
414
+ entityType: string;
415
+ entityId: string;
416
+ createdBy: string;
417
+ createdAt: string;
418
+ }
419
+ export type AssetMetadata = Record<string, string | number | boolean | null | undefined>;
420
+ export interface AssetVariant {
421
+ type: string;
422
+ key: string;
423
+ width?: number;
424
+ height?: number;
425
+ readyAt?: string;
426
+ size?: number;
427
+ metadata?: AssetMetadata;
428
+ }
429
+ export interface Asset {
430
+ id: string;
431
+ sha256: string;
432
+ size: number;
433
+ mime: string;
434
+ ext: string;
435
+ originalName?: string;
436
+ ownerUserId: string;
437
+ status: 'active' | 'trash' | 'deleted';
438
+ visibility: FileVisibility;
439
+ usageCount: number;
440
+ createdAt: string;
441
+ updatedAt: string;
442
+ links: AssetLink[];
443
+ variants: AssetVariant[];
444
+ metadata?: AssetMetadata;
445
+ }
446
+ export interface AssetInitRequest {
447
+ sha256: string;
448
+ size: number;
449
+ mime: string;
450
+ }
451
+ export interface AssetInitResponse {
452
+ uploadUrl: string;
453
+ fileId: string;
454
+ sha256: string;
455
+ }
456
+ export interface AssetCompleteRequest {
457
+ fileId: string;
458
+ originalName: string;
459
+ size: number;
460
+ mime: string;
461
+ visibility?: FileVisibility;
462
+ metadata?: AssetMetadata;
463
+ }
464
+ export interface AssetLinkRequest {
465
+ app: string;
466
+ entityType: string;
467
+ entityId: string;
468
+ visibility?: FileVisibility;
469
+ }
470
+ export interface AssetUnlinkRequest {
471
+ app: string;
472
+ entityType: string;
473
+ entityId: string;
474
+ }
475
+ export interface AssetUrlResponse {
476
+ success: boolean;
477
+ url: string;
478
+ variant?: string;
479
+ expiresIn: number;
480
+ }
481
+ /**
482
+ * Per-file result of `POST /assets/batch-access`. `allowed` is authoritative:
483
+ * when `false` the entry carries an `error` string (e.g. `'Access denied'`,
484
+ * `'File not found'`) and no `url`. When `true`, `url` is a caller-scoped,
485
+ * `<img src>`-ready URL — the public CDN form for a public asset or an
486
+ * API-origin stream URL carrying a short-lived media token for a private one.
487
+ */
488
+ export interface BatchFileAccessEntry {
489
+ allowed: boolean;
490
+ url?: string;
491
+ visibility?: FileVisibility;
492
+ mime?: string;
493
+ error?: string;
494
+ }
495
+ /** Envelope returned by `POST /assets/batch-access`, keyed by file id. */
496
+ export interface BatchFileAccessResponse {
497
+ results: Record<string, BatchFileAccessEntry>;
498
+ }
499
+ export interface AssetDeleteSummary {
500
+ fileId: string;
501
+ wouldDelete: boolean;
502
+ affectedApps: string[];
503
+ remainingLinks: number;
504
+ variants: string[];
505
+ }
506
+ export interface AssetUpdateVisibilityRequest {
507
+ visibility: FileVisibility;
508
+ }
509
+ export interface AssetUpdateVisibilityResponse {
510
+ success: boolean;
511
+ file: {
512
+ id: string;
513
+ visibility: FileVisibility;
514
+ updatedAt: string;
515
+ };
516
+ }
517
+ /**
518
+ * Minimal, service-token-scoped asset metadata returned by
519
+ * `POST /assets/service/by-ids`.
520
+ *
521
+ * Resolves an Oxy asset `id` to its content-addressed identity (`sha256`),
522
+ * MIME type, byte `size`, and storage `status`. Used by server-to-server
523
+ * callers (e.g. Mention's MTN Protocol blob-ref resolution) that hold a
524
+ * `files:read`-scoped service token rather than a user session. Unknown or
525
+ * deleted ids are omitted from the response (never error the whole batch),
526
+ * so the result may be shorter than the requested id list.
527
+ */
528
+ export interface ServiceAssetMetadata {
529
+ id: string;
530
+ sha256: string;
531
+ mime: string;
532
+ size: number;
533
+ status: 'active' | 'trash';
534
+ /** Intrinsic width in pixels when variant/metadata extraction has run. */
535
+ width?: number;
536
+ /** Intrinsic height in pixels when variant/metadata extraction has run. */
537
+ height?: number;
538
+ /** Playback duration in seconds for video/audio assets. */
539
+ durationSec?: number;
540
+ /** Derived once from width/height at asset processing time. */
541
+ orientation?: 'portrait' | 'landscape' | 'square';
542
+ /** width / height, derived at asset processing time. */
543
+ aspectRatio?: number;
544
+ /**
545
+ * When the adaptive HLS ladder for this asset finished transcoding.
546
+ *
547
+ * ABSENT when there is none. Transcoding runs after the upload call returns
548
+ * and per-rendition failures are swallowed, so a video may get its ladder
549
+ * minutes later or never. The `?variant=hls_master` URL is derivable from the
550
+ * `id` alone, which is exactly the trap: a consumer that builds it without
551
+ * this field hands the player a URL that 403s until the ladder exists, and
552
+ * the player pays a failed request before falling back — once per video, per
553
+ * play. Treat absence as "no adaptive stream, play the progressive original".
554
+ */
555
+ hlsReadyAt?: string;
556
+ }
557
+ /**
558
+ * Reverse-lookup asset metadata returned by `POST /assets/service/by-sha256`.
559
+ *
560
+ * Resolves a content-addressed `sha256` digest back to the live Oxy asset that
561
+ * holds those bytes: its file `id`, MIME type, byte `size`, storage `status`,
562
+ * and — for active, public, CDN-reachable assets only — a public `url`
563
+ * (`cloud.oxy.so`). This is the inverse of {@link ServiceAssetMetadata}: it lets
564
+ * a `files:read`-scoped service-to-server caller (e.g. Mention's MTN materializer
565
+ * / node-blob sync) turn a record's `blob.sha256` into a servable asset.
566
+ *
567
+ * `url` is omitted for private/unlisted assets (and for public assets whose
568
+ * bytes are not yet CDN-reachable) — those must be streamed through the origin.
569
+ * Unknown or deleted hashes are omitted from the response (never error the whole
570
+ * batch), so the result may be shorter than the requested hash list.
571
+ */
572
+ export interface ServiceAssetMetadataBySha {
573
+ sha256: string;
574
+ id: string;
575
+ mime: string;
576
+ size: number;
577
+ status: 'active' | 'trash';
578
+ url?: string;
579
+ width?: number;
580
+ height?: number;
581
+ durationSec?: number;
582
+ orientation?: 'portrait' | 'landscape' | 'square';
583
+ aspectRatio?: number;
584
+ }
585
+ /**
586
+ * Account storage usage (server-side usage, not local AsyncStorage)
587
+ */
588
+ export interface AccountStorageCategoryUsage {
589
+ bytes: number;
590
+ count: number;
591
+ }
592
+ export interface AccountStorageUsageResponse {
593
+ plan: 'basic' | 'pro' | 'business';
594
+ totalUsedBytes: number;
595
+ totalLimitBytes: number;
596
+ categories: {
597
+ documents: AccountStorageCategoryUsage;
598
+ mail: AccountStorageCategoryUsage;
599
+ photosVideos: AccountStorageCategoryUsage;
600
+ recordings: AccountStorageCategoryUsage;
601
+ family: AccountStorageCategoryUsage;
602
+ other: AccountStorageCategoryUsage;
603
+ };
604
+ updatedAt: string;
605
+ }
606
+ /**
607
+ * Security activity event types
608
+ */
609
+ export type SecurityEventType = 'sign_in' | 'sign_out' | 'email_changed' | 'profile_updated' | 'device_added' | 'device_removed' | 'account_recovery' | 'security_settings_changed' | 'private_key_exported' | 'backup_created' | 'suspicious_activity';
610
+ /**
611
+ * Security event severity levels
612
+ */
613
+ export type SecurityEventSeverity = 'low' | 'medium' | 'high' | 'critical';
614
+ /**
615
+ * Security event severity mapping (single source of truth)
616
+ * Maps each event type to its default severity level
617
+ */
618
+ export declare const SECURITY_EVENT_SEVERITY_MAP: Record<SecurityEventType, SecurityEventSeverity>;
619
+ /**
620
+ * Security activity event
621
+ */
622
+ export interface SecurityActivity {
623
+ id: string;
624
+ userId: string;
625
+ eventType: SecurityEventType;
626
+ eventDescription: string;
627
+ metadata?: Record<string, any>;
628
+ userAgent?: string;
629
+ deviceId?: string;
630
+ timestamp: string;
631
+ severity: SecurityEventSeverity;
632
+ createdAt: string;
633
+ }
634
+ /**
635
+ * Security activity response with pagination
636
+ */
637
+ export interface SecurityActivityResponse {
638
+ data: SecurityActivity[];
639
+ total: number;
640
+ limit: number;
641
+ offset: number;
642
+ hasMore: boolean;
643
+ }
644
+ export interface AssetUploadProgress {
645
+ fileId: string;
646
+ uploaded: number;
647
+ total: number;
648
+ percentage: number;
649
+ status: 'uploading' | 'processing' | 'complete' | 'error';
650
+ error?: string;
651
+ }
652
+ export interface DeviceLinkedSession {
653
+ sessionId: string;
654
+ deviceId: string;
655
+ deviceName: string;
656
+ isActive: boolean;
657
+ lastActive: string;
658
+ expiresAt: string;
659
+ isCurrent: boolean;
660
+ user?: User;
661
+ createdAt?: string;
662
+ }
663
+ export interface DeviceLinkedSessionsResponse {
664
+ deviceId: string;
665
+ sessions: DeviceLinkedSession[];
666
+ }
667
+ export interface DeviceLinkedSessionLogoutResponse {
668
+ message: string;
669
+ deviceId: string;
670
+ sessionsTerminated: number;
671
+ }
672
+ export interface UpdateDeviceNameResponse {
673
+ message: string;
674
+ deviceName: string;
675
+ }