@oxy.so/core 4.5.0-oxy-one.1 → 4.6.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 (283) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/HttpService.js +63 -19
  3. package/dist/cjs/api/accounts.js +10 -3
  4. package/dist/cjs/api/agency.js +3 -1
  5. package/dist/cjs/api/apps.js +15 -4
  6. package/dist/cjs/api/assets.js +39 -11
  7. package/dist/cjs/api/auth.js +28 -8
  8. package/dist/cjs/api/billing.js +24 -7
  9. package/dist/cjs/api/civic.js +14 -4
  10. package/dist/cjs/api/follows.js +9 -2
  11. package/dist/cjs/api/identity.js +31 -9
  12. package/dist/cjs/api/nodes.js +3 -1
  13. package/dist/cjs/api/privacy.js +8 -2
  14. package/dist/cjs/api/session.js +15 -4
  15. package/dist/cjs/api/store.js +15 -5
  16. package/dist/cjs/api/topics.js +10 -3
  17. package/dist/cjs/api/users.js +16 -4
  18. package/dist/cjs/boot/sessionColdBoot.js +40 -13
  19. package/dist/cjs/constants/version.js +6 -6
  20. package/dist/cjs/crypto/identityMarker.js +3 -1
  21. package/dist/cjs/crypto/identityProof.js +6 -1
  22. package/dist/cjs/crypto/keyManager.js +87 -32
  23. package/dist/cjs/crypto/recoveryPhrase.js +2 -2
  24. package/dist/cjs/crypto/signatureService.js +3 -4
  25. package/dist/cjs/i18n/index.js +16 -3
  26. package/dist/cjs/i18n/locales/ar-SA.js +366 -366
  27. package/dist/cjs/i18n/locales/ca-ES.js +366 -366
  28. package/dist/cjs/i18n/locales/de-DE.js +366 -366
  29. package/dist/cjs/i18n/locales/en-US.js +1994 -1994
  30. package/dist/cjs/i18n/locales/es-ES.js +1994 -1994
  31. package/dist/cjs/i18n/locales/fr-FR.js +366 -366
  32. package/dist/cjs/i18n/locales/it-IT.js +366 -366
  33. package/dist/cjs/i18n/locales/ja-JP.js +366 -366
  34. package/dist/cjs/i18n/locales/ko-KR.js +366 -366
  35. package/dist/cjs/i18n/locales/pt-PT.js +366 -366
  36. package/dist/cjs/i18n/locales/zh-CN.js +366 -366
  37. package/dist/cjs/inference/OxyInferenceClient.js +12 -18
  38. package/dist/cjs/models/interfaces.js +11 -11
  39. package/dist/cjs/server/OxyServer.js +86 -28
  40. package/dist/cjs/server/agentAccount.js +6 -2
  41. package/dist/cjs/server/aliaMachineCredential.js +39 -14
  42. package/dist/cjs/server/auth.js +5 -4
  43. package/dist/cjs/server/capabilityTicket.js +5 -5
  44. package/dist/cjs/server/index.js +2 -1
  45. package/dist/cjs/server/liveCapabilityTicket.js +4 -1
  46. package/dist/cjs/server/middleware.js +61 -42
  47. package/dist/cjs/server/namespaces.js +28 -7
  48. package/dist/cjs/server/requesterAssertion.js +36 -30
  49. package/dist/cjs/server/serviceTokenLifetime.js +7 -4
  50. package/dist/cjs/server/traffic.js +53 -14
  51. package/dist/cjs/server/trafficNodeHttp.js +33 -8
  52. package/dist/cjs/server/workloadIdentity.client.js +4 -0
  53. package/dist/cjs/server/workloadIdentity.js +28 -1
  54. package/dist/cjs/session/SessionClient.js +54 -17
  55. package/dist/cjs/session/accountDelegationAccess.js +4 -6
  56. package/dist/cjs/session/accountDialogController.js +1 -1
  57. package/dist/cjs/session/authStateStore.js +18 -9
  58. package/dist/cjs/session/identityPin.js +6 -2
  59. package/dist/cjs/session/refresh.js +81 -23
  60. package/dist/cjs/session/sharedDeviceCredential.js +28 -15
  61. package/dist/cjs/shared/utils/errorUtils.js +1 -1
  62. package/dist/cjs/shared/utils/networkUtils.js +1 -1
  63. package/dist/cjs/shared/utils/themeUtils.js +1 -1
  64. package/dist/cjs/utils/accountCacheSweep.js +3 -1
  65. package/dist/cjs/utils/accountUtils.js +1 -3
  66. package/dist/cjs/utils/asyncUtils.js +1 -1
  67. package/dist/cjs/utils/authHelpers.js +2 -1
  68. package/dist/cjs/utils/avatarUtils.js +4 -2
  69. package/dist/cjs/utils/cache.js +1 -1
  70. package/dist/cjs/utils/cacheKey.js +3 -1
  71. package/dist/cjs/utils/deviceManager.js +4 -4
  72. package/dist/cjs/utils/errorUtils.js +6 -4
  73. package/dist/cjs/utils/languageUtils.js +404 -57
  74. package/dist/cjs/utils/profileLinks.js +1 -3
  75. package/dist/cjs/utils/requestUtils.js +7 -1
  76. package/dist/cjs/utils/userIdentity.js +1 -1
  77. package/dist/cjs/utils/validationUtils.js +5 -6
  78. package/dist/esm/HttpService.js +64 -20
  79. package/dist/esm/api/accounts.js +11 -4
  80. package/dist/esm/api/agency.js +3 -1
  81. package/dist/esm/api/apps.js +15 -4
  82. package/dist/esm/api/assets.js +39 -11
  83. package/dist/esm/api/auth.js +28 -8
  84. package/dist/esm/api/billing.js +25 -8
  85. package/dist/esm/api/civic.js +14 -4
  86. package/dist/esm/api/follows.js +9 -2
  87. package/dist/esm/api/identity.js +31 -9
  88. package/dist/esm/api/nodes.js +3 -1
  89. package/dist/esm/api/privacy.js +8 -2
  90. package/dist/esm/api/session.js +15 -4
  91. package/dist/esm/api/store.js +15 -5
  92. package/dist/esm/api/topics.js +10 -3
  93. package/dist/esm/api/users.js +16 -4
  94. package/dist/esm/boot/sessionColdBoot.js +41 -14
  95. package/dist/esm/constants/version.js +6 -6
  96. package/dist/esm/crypto/identityMarker.js +3 -1
  97. package/dist/esm/crypto/identityProof.js +6 -1
  98. package/dist/esm/crypto/internal.js +1 -1
  99. package/dist/esm/crypto/keyManager.js +87 -32
  100. package/dist/esm/crypto/recoveryPhrase.js +2 -2
  101. package/dist/esm/crypto/signatureService.js +3 -4
  102. package/dist/esm/i18n/index.js +16 -3
  103. package/dist/esm/i18n/locales/ar-SA.js +366 -366
  104. package/dist/esm/i18n/locales/ca-ES.js +366 -366
  105. package/dist/esm/i18n/locales/de-DE.js +366 -366
  106. package/dist/esm/i18n/locales/en-US.js +1994 -1994
  107. package/dist/esm/i18n/locales/es-ES.js +1994 -1994
  108. package/dist/esm/i18n/locales/fr-FR.js +366 -366
  109. package/dist/esm/i18n/locales/it-IT.js +366 -366
  110. package/dist/esm/i18n/locales/ja-JP.js +366 -366
  111. package/dist/esm/i18n/locales/ko-KR.js +366 -366
  112. package/dist/esm/i18n/locales/pt-PT.js +366 -366
  113. package/dist/esm/i18n/locales/zh-CN.js +366 -366
  114. package/dist/esm/index.js +1 -1
  115. package/dist/esm/inference/OxyInferenceClient.js +13 -19
  116. package/dist/esm/models/interfaces.js +11 -11
  117. package/dist/esm/server/OxyServer.js +87 -29
  118. package/dist/esm/server/agentAccount.js +6 -2
  119. package/dist/esm/server/aliaMachineCredential.js +39 -14
  120. package/dist/esm/server/auth.js +6 -5
  121. package/dist/esm/server/capabilityTicket.js +6 -6
  122. package/dist/esm/server/index.js +5 -5
  123. package/dist/esm/server/liveCapabilityTicket.js +6 -3
  124. package/dist/esm/server/middleware.js +62 -43
  125. package/dist/esm/server/namespaces.js +31 -10
  126. package/dist/esm/server/requesterAssertion.js +36 -30
  127. package/dist/esm/server/serviceTokenLifetime.js +7 -4
  128. package/dist/esm/server/traffic.js +55 -16
  129. package/dist/esm/server/trafficNodeHttp.js +34 -9
  130. package/dist/esm/server/userInvalidation.js +1 -1
  131. package/dist/esm/server/workloadIdentity.client.js +3 -0
  132. package/dist/esm/server/workloadIdentity.js +27 -1
  133. package/dist/esm/session/SessionClient.js +54 -17
  134. package/dist/esm/session/accountDelegationAccess.js +5 -7
  135. package/dist/esm/session/accountDialogController.js +1 -1
  136. package/dist/esm/session/authStateStore.js +18 -9
  137. package/dist/esm/session/identityPin.js +6 -2
  138. package/dist/esm/session/refresh.js +82 -24
  139. package/dist/esm/session/sharedDeviceCredential.js +28 -15
  140. package/dist/esm/shared/utils/errorUtils.js +1 -1
  141. package/dist/esm/shared/utils/networkUtils.js +1 -1
  142. package/dist/esm/shared/utils/themeUtils.js +1 -1
  143. package/dist/esm/utils/accountCacheSweep.js +3 -1
  144. package/dist/esm/utils/accountUtils.js +1 -3
  145. package/dist/esm/utils/asyncUtils.js +1 -1
  146. package/dist/esm/utils/authHelpers.js +2 -1
  147. package/dist/esm/utils/avatarUtils.js +4 -2
  148. package/dist/esm/utils/cache.js +1 -1
  149. package/dist/esm/utils/cacheKey.js +3 -1
  150. package/dist/esm/utils/deviceManager.js +4 -4
  151. package/dist/esm/utils/errorUtils.js +6 -4
  152. package/dist/esm/utils/languageUtils.js +404 -57
  153. package/dist/esm/utils/profileLinks.js +1 -3
  154. package/dist/esm/utils/requestUtils.js +7 -1
  155. package/dist/esm/utils/userIdentity.js +1 -1
  156. package/dist/esm/utils/validationUtils.js +5 -6
  157. package/dist/types/HttpService.d.ts +1 -1
  158. package/dist/types/api/accounts.d.ts +16 -3
  159. package/dist/types/api/apps.d.ts +4 -4
  160. package/dist/types/crypto/internal.d.ts +1 -1
  161. package/dist/types/index.d.ts +4 -4
  162. package/dist/types/models/interfaces.d.ts +9 -1
  163. package/dist/types/server/index.d.ts +6 -6
  164. package/dist/types/server/workloadIdentity.client.d.ts +5 -1
  165. package/dist/types/server/workloadIdentity.d.ts +26 -0
  166. package/dist/types/session/accountDelegationAccess.d.ts +1 -1
  167. package/dist/types/session/index.d.ts +1 -1
  168. package/dist/types/utils/userIdentity.d.ts +1 -1
  169. package/dist/types/utils/validationUtils.d.ts +4 -5
  170. package/package.json +3 -4
  171. package/src/HttpService.ts +183 -53
  172. package/src/OxyServices.errors.ts +7 -3
  173. package/src/OxyServices.ts +6 -2
  174. package/src/api/accounts.ts +96 -28
  175. package/src/api/agency.ts +24 -9
  176. package/src/api/appData.ts +12 -2
  177. package/src/api/apps.ts +81 -31
  178. package/src/api/assets.ts +113 -43
  179. package/src/api/auth.ts +145 -77
  180. package/src/api/billing.ts +112 -65
  181. package/src/api/civic.ts +61 -19
  182. package/src/api/contacts.ts +4 -1
  183. package/src/api/devices.ts +54 -21
  184. package/src/api/follows.ts +88 -31
  185. package/src/api/identity.ts +101 -33
  186. package/src/api/linkedAccounts.ts +26 -8
  187. package/src/api/nodes.ts +18 -6
  188. package/src/api/notifications.ts +26 -6
  189. package/src/api/privacy.ts +42 -8
  190. package/src/api/reputation.ts +18 -7
  191. package/src/api/session.ts +23 -5
  192. package/src/api/store.ts +81 -31
  193. package/src/api/topics.ts +18 -6
  194. package/src/api/users.ts +98 -35
  195. package/src/boot/sessionColdBoot.ts +60 -19
  196. package/src/civic/payloads.ts +1 -4
  197. package/src/client/context.ts +6 -1
  198. package/src/constants/version.ts +7 -6
  199. package/src/crypto/aead.ts +1 -5
  200. package/src/crypto/ecdh.ts +1 -4
  201. package/src/crypto/identityDerivations.ts +5 -1
  202. package/src/crypto/identityMarker.ts +3 -1
  203. package/src/crypto/identityProof.ts +6 -1
  204. package/src/crypto/index.ts +11 -11
  205. package/src/crypto/internal.ts +6 -1
  206. package/src/crypto/keyManager.ts +348 -98
  207. package/src/crypto/recoveryPhrase.ts +14 -9
  208. package/src/crypto/registrationPow.ts +1 -1
  209. package/src/crypto/signatureService.ts +14 -6
  210. package/src/i18n/accountCategoryLabels.ts +1 -4
  211. package/src/i18n/accountRoleLabels.ts +1 -4
  212. package/src/i18n/index.ts +25 -7
  213. package/src/i18n/locales/ar-SA.ts +375 -366
  214. package/src/i18n/locales/ca-ES.ts +382 -366
  215. package/src/i18n/locales/de-DE.ts +387 -366
  216. package/src/i18n/locales/en-US.ts +2034 -1994
  217. package/src/i18n/locales/es-ES.ts +2043 -1994
  218. package/src/i18n/locales/fr-FR.ts +387 -366
  219. package/src/i18n/locales/it-IT.ts +380 -366
  220. package/src/i18n/locales/ja-JP.ts +380 -366
  221. package/src/i18n/locales/ko-KR.ts +377 -366
  222. package/src/i18n/locales/pt-PT.ts +383 -366
  223. package/src/i18n/locales/zh-CN.ts +373 -366
  224. package/src/i18n/trustTierLabels.ts +1 -4
  225. package/src/index.ts +371 -349
  226. package/src/inference/OxyInferenceClient.ts +784 -780
  227. package/src/models/interfaces.ts +39 -27
  228. package/src/server/OxyServer.ts +227 -68
  229. package/src/server/agentAccount.ts +8 -2
  230. package/src/server/aliaMachineCredential.ts +57 -16
  231. package/src/server/auth.ts +9 -5
  232. package/src/server/capabilityTicket.ts +30 -21
  233. package/src/server/index.ts +29 -6
  234. package/src/server/liveCapabilityTicket.ts +31 -9
  235. package/src/server/middleware.ts +212 -121
  236. package/src/server/namespaces.ts +247 -94
  237. package/src/server/rateLimit.ts +2 -4
  238. package/src/server/requesterAssertion.ts +93 -54
  239. package/src/server/serviceTokenLifetime.ts +9 -4
  240. package/src/server/traffic.ts +117 -23
  241. package/src/server/trafficNodeHttp.ts +61 -14
  242. package/src/server/userInvalidation.ts +1 -4
  243. package/src/server/workloadIdentity.client.ts +12 -1
  244. package/src/server/workloadIdentity.ts +52 -5
  245. package/src/session/SessionClient.ts +170 -49
  246. package/src/session/accountDelegationAccess.ts +24 -31
  247. package/src/session/accountDialogController.ts +59 -14
  248. package/src/session/accountSwitchTargets.ts +10 -15
  249. package/src/session/authStateStore.ts +121 -81
  250. package/src/session/deviceDirectory.ts +1 -3
  251. package/src/session/identityPin.ts +10 -11
  252. package/src/session/identitySession.ts +3 -1
  253. package/src/session/index.ts +87 -82
  254. package/src/session/refresh.ts +138 -44
  255. package/src/session/sessionClientHost.ts +1 -3
  256. package/src/session/sharedDeviceCredential.ts +35 -14
  257. package/src/session/socketLoader.ts +9 -2
  258. package/src/shared/utils/errorUtils.ts +5 -2
  259. package/src/shared/utils/networkUtils.ts +5 -8
  260. package/src/shared/utils/themeUtils.ts +2 -6
  261. package/src/types/buffer.d.ts +66 -21
  262. package/src/types/expo-secure-store.d.ts +5 -1
  263. package/src/utils/accountCacheSweep.ts +4 -5
  264. package/src/utils/accountUtils.ts +107 -108
  265. package/src/utils/apiUtils.ts +3 -3
  266. package/src/utils/asyncUtils.ts +2 -2
  267. package/src/utils/authHelpers.ts +10 -5
  268. package/src/utils/avatarUtils.ts +11 -6
  269. package/src/utils/cache.ts +9 -10
  270. package/src/utils/cacheKey.ts +5 -1
  271. package/src/utils/coldBoot.ts +1 -3
  272. package/src/utils/commonsDelivery.ts +1 -4
  273. package/src/utils/deviceManager.ts +15 -14
  274. package/src/utils/errorUtils.ts +68 -86
  275. package/src/utils/languageUtils.ts +407 -58
  276. package/src/utils/oauthPkce.ts +1 -4
  277. package/src/utils/platform.ts +0 -1
  278. package/src/utils/profileLinks.ts +2 -5
  279. package/src/utils/requestUtils.ts +18 -14
  280. package/src/utils/sessionUtils.ts +34 -33
  281. package/src/utils/userHandle.ts +3 -1
  282. package/src/utils/userIdentity.ts +1 -1
  283. package/src/utils/validationUtils.ts +11 -9
@@ -40,87 +40,434 @@ export interface SupportedLanguage {
40
40
  */
41
41
  export const SUPPORTED_LANGUAGES: readonly SupportedLanguage[] = [
42
42
  // English
43
- { code: 'en-US', language: 'en', region: 'US', name: 'English (United States)', nativeName: 'English (United States)' },
44
- { code: 'en-GB', language: 'en', region: 'GB', name: 'English (United Kingdom)', nativeName: 'English (United Kingdom)' },
45
- { code: 'en-AU', language: 'en', region: 'AU', name: 'English (Australia)', nativeName: 'English (Australia)' },
46
- { code: 'en-CA', language: 'en', region: 'CA', name: 'English (Canada)', nativeName: 'English (Canada)' },
47
- { code: 'en-IN', language: 'en', region: 'IN', name: 'English (India)', nativeName: 'English (India)' },
43
+ {
44
+ code: 'en-US',
45
+ language: 'en',
46
+ region: 'US',
47
+ name: 'English (United States)',
48
+ nativeName: 'English (United States)',
49
+ },
50
+ {
51
+ code: 'en-GB',
52
+ language: 'en',
53
+ region: 'GB',
54
+ name: 'English (United Kingdom)',
55
+ nativeName: 'English (United Kingdom)',
56
+ },
57
+ {
58
+ code: 'en-AU',
59
+ language: 'en',
60
+ region: 'AU',
61
+ name: 'English (Australia)',
62
+ nativeName: 'English (Australia)',
63
+ },
64
+ {
65
+ code: 'en-CA',
66
+ language: 'en',
67
+ region: 'CA',
68
+ name: 'English (Canada)',
69
+ nativeName: 'English (Canada)',
70
+ },
71
+ {
72
+ code: 'en-IN',
73
+ language: 'en',
74
+ region: 'IN',
75
+ name: 'English (India)',
76
+ nativeName: 'English (India)',
77
+ },
48
78
 
49
79
  // Spanish
50
- { code: 'es-ES', language: 'es', region: 'ES', name: 'Spanish (Spain)', nativeName: 'Español (España)' },
51
- { code: 'es-MX', language: 'es', region: 'MX', name: 'Spanish (Mexico)', nativeName: 'Español (México)' },
52
- { code: 'es-US', language: 'es', region: 'US', name: 'Spanish (United States)', nativeName: 'Español (Estados Unidos)' },
53
- { code: 'es-AR', language: 'es', region: 'AR', name: 'Spanish (Argentina)', nativeName: 'Español (Argentina)' },
54
- { code: 'es-CO', language: 'es', region: 'CO', name: 'Spanish (Colombia)', nativeName: 'Español (Colombia)' },
80
+ {
81
+ code: 'es-ES',
82
+ language: 'es',
83
+ region: 'ES',
84
+ name: 'Spanish (Spain)',
85
+ nativeName: 'Español (España)',
86
+ },
87
+ {
88
+ code: 'es-MX',
89
+ language: 'es',
90
+ region: 'MX',
91
+ name: 'Spanish (Mexico)',
92
+ nativeName: 'Español (México)',
93
+ },
94
+ {
95
+ code: 'es-US',
96
+ language: 'es',
97
+ region: 'US',
98
+ name: 'Spanish (United States)',
99
+ nativeName: 'Español (Estados Unidos)',
100
+ },
101
+ {
102
+ code: 'es-AR',
103
+ language: 'es',
104
+ region: 'AR',
105
+ name: 'Spanish (Argentina)',
106
+ nativeName: 'Español (Argentina)',
107
+ },
108
+ {
109
+ code: 'es-CO',
110
+ language: 'es',
111
+ region: 'CO',
112
+ name: 'Spanish (Colombia)',
113
+ nativeName: 'Español (Colombia)',
114
+ },
55
115
 
56
116
  // Portuguese
57
- { code: 'pt-BR', language: 'pt', region: 'BR', name: 'Portuguese (Brazil)', nativeName: 'Português (Brasil)' },
58
- { code: 'pt-PT', language: 'pt', region: 'PT', name: 'Portuguese (Portugal)', nativeName: 'Português (Portugal)' },
117
+ {
118
+ code: 'pt-BR',
119
+ language: 'pt',
120
+ region: 'BR',
121
+ name: 'Portuguese (Brazil)',
122
+ nativeName: 'Português (Brasil)',
123
+ },
124
+ {
125
+ code: 'pt-PT',
126
+ language: 'pt',
127
+ region: 'PT',
128
+ name: 'Portuguese (Portugal)',
129
+ nativeName: 'Português (Portugal)',
130
+ },
59
131
 
60
132
  // French
61
- { code: 'fr-FR', language: 'fr', region: 'FR', name: 'French (France)', nativeName: 'Français (France)' },
62
- { code: 'fr-CA', language: 'fr', region: 'CA', name: 'French (Canada)', nativeName: 'Français (Canada)' },
133
+ {
134
+ code: 'fr-FR',
135
+ language: 'fr',
136
+ region: 'FR',
137
+ name: 'French (France)',
138
+ nativeName: 'Français (France)',
139
+ },
140
+ {
141
+ code: 'fr-CA',
142
+ language: 'fr',
143
+ region: 'CA',
144
+ name: 'French (Canada)',
145
+ nativeName: 'Français (Canada)',
146
+ },
63
147
 
64
148
  // German
65
- { code: 'de-DE', language: 'de', region: 'DE', name: 'German (Germany)', nativeName: 'Deutsch (Deutschland)' },
66
- { code: 'de-AT', language: 'de', region: 'AT', name: 'German (Austria)', nativeName: 'Deutsch (Österreich)' },
67
- { code: 'de-CH', language: 'de', region: 'CH', name: 'German (Switzerland)', nativeName: 'Deutsch (Schweiz)' },
149
+ {
150
+ code: 'de-DE',
151
+ language: 'de',
152
+ region: 'DE',
153
+ name: 'German (Germany)',
154
+ nativeName: 'Deutsch (Deutschland)',
155
+ },
156
+ {
157
+ code: 'de-AT',
158
+ language: 'de',
159
+ region: 'AT',
160
+ name: 'German (Austria)',
161
+ nativeName: 'Deutsch (Österreich)',
162
+ },
163
+ {
164
+ code: 'de-CH',
165
+ language: 'de',
166
+ region: 'CH',
167
+ name: 'German (Switzerland)',
168
+ nativeName: 'Deutsch (Schweiz)',
169
+ },
68
170
 
69
171
  // Italian
70
- { code: 'it-IT', language: 'it', region: 'IT', name: 'Italian (Italy)', nativeName: 'Italiano (Italia)' },
172
+ {
173
+ code: 'it-IT',
174
+ language: 'it',
175
+ region: 'IT',
176
+ name: 'Italian (Italy)',
177
+ nativeName: 'Italiano (Italia)',
178
+ },
71
179
 
72
180
  // Dutch
73
- { code: 'nl-NL', language: 'nl', region: 'NL', name: 'Dutch (Netherlands)', nativeName: 'Nederlands (Nederland)' },
74
- { code: 'nl-BE', language: 'nl', region: 'BE', name: 'Dutch (Belgium)', nativeName: 'Nederlands (België)' },
181
+ {
182
+ code: 'nl-NL',
183
+ language: 'nl',
184
+ region: 'NL',
185
+ name: 'Dutch (Netherlands)',
186
+ nativeName: 'Nederlands (Nederland)',
187
+ },
188
+ {
189
+ code: 'nl-BE',
190
+ language: 'nl',
191
+ region: 'BE',
192
+ name: 'Dutch (Belgium)',
193
+ nativeName: 'Nederlands (België)',
194
+ },
75
195
 
76
196
  // Nordic
77
- { code: 'sv-SE', language: 'sv', region: 'SE', name: 'Swedish (Sweden)', nativeName: 'Svenska (Sverige)' },
78
- { code: 'nb-NO', language: 'nb', region: 'NO', name: 'Norwegian Bokmål (Norway)', nativeName: 'Norsk bokmål (Norge)' },
79
- { code: 'da-DK', language: 'da', region: 'DK', name: 'Danish (Denmark)', nativeName: 'Dansk (Danmark)' },
80
- { code: 'fi-FI', language: 'fi', region: 'FI', name: 'Finnish (Finland)', nativeName: 'Suomi (Suomi)' },
197
+ {
198
+ code: 'sv-SE',
199
+ language: 'sv',
200
+ region: 'SE',
201
+ name: 'Swedish (Sweden)',
202
+ nativeName: 'Svenska (Sverige)',
203
+ },
204
+ {
205
+ code: 'nb-NO',
206
+ language: 'nb',
207
+ region: 'NO',
208
+ name: 'Norwegian Bokmål (Norway)',
209
+ nativeName: 'Norsk bokmål (Norge)',
210
+ },
211
+ {
212
+ code: 'da-DK',
213
+ language: 'da',
214
+ region: 'DK',
215
+ name: 'Danish (Denmark)',
216
+ nativeName: 'Dansk (Danmark)',
217
+ },
218
+ {
219
+ code: 'fi-FI',
220
+ language: 'fi',
221
+ region: 'FI',
222
+ name: 'Finnish (Finland)',
223
+ nativeName: 'Suomi (Suomi)',
224
+ },
81
225
 
82
226
  // Central & Eastern Europe
83
- { code: 'pl-PL', language: 'pl', region: 'PL', name: 'Polish (Poland)', nativeName: 'Polski (Polska)' },
84
- { code: 'cs-CZ', language: 'cs', region: 'CZ', name: 'Czech (Czechia)', nativeName: 'Čeština (Česko)' },
85
- { code: 'sk-SK', language: 'sk', region: 'SK', name: 'Slovak (Slovakia)', nativeName: 'Slovenčina (Slovensko)' },
86
- { code: 'hu-HU', language: 'hu', region: 'HU', name: 'Hungarian (Hungary)', nativeName: 'Magyar (Magyarország)' },
87
- { code: 'ro-RO', language: 'ro', region: 'RO', name: 'Romanian (Romania)', nativeName: 'Română (România)' },
88
- { code: 'bg-BG', language: 'bg', region: 'BG', name: 'Bulgarian (Bulgaria)', nativeName: 'Български (България)' },
89
- { code: 'hr-HR', language: 'hr', region: 'HR', name: 'Croatian (Croatia)', nativeName: 'Hrvatski (Hrvatska)' },
90
- { code: 'sr-RS', language: 'sr', region: 'RS', name: 'Serbian (Serbia)', nativeName: 'Српски (Србија)' },
91
- { code: 'sl-SI', language: 'sl', region: 'SI', name: 'Slovenian (Slovenia)', nativeName: 'Slovenščina (Slovenija)' },
92
- { code: 'lt-LT', language: 'lt', region: 'LT', name: 'Lithuanian (Lithuania)', nativeName: 'Lietuvių (Lietuva)' },
93
- { code: 'lv-LV', language: 'lv', region: 'LV', name: 'Latvian (Latvia)', nativeName: 'Latviešu (Latvija)' },
94
- { code: 'et-EE', language: 'et', region: 'EE', name: 'Estonian (Estonia)', nativeName: 'Eesti (Eesti)' },
95
- { code: 'uk-UA', language: 'uk', region: 'UA', name: 'Ukrainian (Ukraine)', nativeName: 'Українська (Україна)' },
96
- { code: 'ru-RU', language: 'ru', region: 'RU', name: 'Russian (Russia)', nativeName: 'Русский (Россия)' },
97
- { code: 'el-GR', language: 'el', region: 'GR', name: 'Greek (Greece)', nativeName: 'Ελληνικά (Ελλάδα)' },
227
+ {
228
+ code: 'pl-PL',
229
+ language: 'pl',
230
+ region: 'PL',
231
+ name: 'Polish (Poland)',
232
+ nativeName: 'Polski (Polska)',
233
+ },
234
+ {
235
+ code: 'cs-CZ',
236
+ language: 'cs',
237
+ region: 'CZ',
238
+ name: 'Czech (Czechia)',
239
+ nativeName: 'Čeština (Česko)',
240
+ },
241
+ {
242
+ code: 'sk-SK',
243
+ language: 'sk',
244
+ region: 'SK',
245
+ name: 'Slovak (Slovakia)',
246
+ nativeName: 'Slovenčina (Slovensko)',
247
+ },
248
+ {
249
+ code: 'hu-HU',
250
+ language: 'hu',
251
+ region: 'HU',
252
+ name: 'Hungarian (Hungary)',
253
+ nativeName: 'Magyar (Magyarország)',
254
+ },
255
+ {
256
+ code: 'ro-RO',
257
+ language: 'ro',
258
+ region: 'RO',
259
+ name: 'Romanian (Romania)',
260
+ nativeName: 'Română (România)',
261
+ },
262
+ {
263
+ code: 'bg-BG',
264
+ language: 'bg',
265
+ region: 'BG',
266
+ name: 'Bulgarian (Bulgaria)',
267
+ nativeName: 'Български (България)',
268
+ },
269
+ {
270
+ code: 'hr-HR',
271
+ language: 'hr',
272
+ region: 'HR',
273
+ name: 'Croatian (Croatia)',
274
+ nativeName: 'Hrvatski (Hrvatska)',
275
+ },
276
+ {
277
+ code: 'sr-RS',
278
+ language: 'sr',
279
+ region: 'RS',
280
+ name: 'Serbian (Serbia)',
281
+ nativeName: 'Српски (Србија)',
282
+ },
283
+ {
284
+ code: 'sl-SI',
285
+ language: 'sl',
286
+ region: 'SI',
287
+ name: 'Slovenian (Slovenia)',
288
+ nativeName: 'Slovenščina (Slovenija)',
289
+ },
290
+ {
291
+ code: 'lt-LT',
292
+ language: 'lt',
293
+ region: 'LT',
294
+ name: 'Lithuanian (Lithuania)',
295
+ nativeName: 'Lietuvių (Lietuva)',
296
+ },
297
+ {
298
+ code: 'lv-LV',
299
+ language: 'lv',
300
+ region: 'LV',
301
+ name: 'Latvian (Latvia)',
302
+ nativeName: 'Latviešu (Latvija)',
303
+ },
304
+ {
305
+ code: 'et-EE',
306
+ language: 'et',
307
+ region: 'EE',
308
+ name: 'Estonian (Estonia)',
309
+ nativeName: 'Eesti (Eesti)',
310
+ },
311
+ {
312
+ code: 'uk-UA',
313
+ language: 'uk',
314
+ region: 'UA',
315
+ name: 'Ukrainian (Ukraine)',
316
+ nativeName: 'Українська (Україна)',
317
+ },
318
+ {
319
+ code: 'ru-RU',
320
+ language: 'ru',
321
+ region: 'RU',
322
+ name: 'Russian (Russia)',
323
+ nativeName: 'Русский (Россия)',
324
+ },
325
+ {
326
+ code: 'el-GR',
327
+ language: 'el',
328
+ region: 'GR',
329
+ name: 'Greek (Greece)',
330
+ nativeName: 'Ελληνικά (Ελλάδα)',
331
+ },
98
332
 
99
333
  // Turkish
100
- { code: 'tr-TR', language: 'tr', region: 'TR', name: 'Turkish (Türkiye)', nativeName: 'Türkçe (Türkiye)' },
334
+ {
335
+ code: 'tr-TR',
336
+ language: 'tr',
337
+ region: 'TR',
338
+ name: 'Turkish (Türkiye)',
339
+ nativeName: 'Türkçe (Türkiye)',
340
+ },
101
341
 
102
342
  // Catalan
103
- { code: 'ca-ES', language: 'ca', region: 'ES', name: 'Catalan (Spain)', nativeName: 'Català (Espanya)' },
343
+ {
344
+ code: 'ca-ES',
345
+ language: 'ca',
346
+ region: 'ES',
347
+ name: 'Catalan (Spain)',
348
+ nativeName: 'Català (Espanya)',
349
+ },
104
350
 
105
351
  // East, South & Southeast Asia
106
- { code: 'ja-JP', language: 'ja', region: 'JP', name: 'Japanese (Japan)', nativeName: '日本語 (日本)' },
107
- { code: 'ko-KR', language: 'ko', region: 'KR', name: 'Korean (South Korea)', nativeName: '한국어 (대한민국)' },
108
- { code: 'zh-CN', language: 'zh', region: 'CN', name: 'Chinese (Simplified, China)', nativeName: '中文 (中国)' },
109
- { code: 'zh-TW', language: 'zh', region: 'TW', name: 'Chinese (Traditional, Taiwan)', nativeName: '中文 (台灣)' },
110
- { code: 'zh-HK', language: 'zh', region: 'HK', name: 'Chinese (Traditional, Hong Kong)', nativeName: '中文 (香港)' },
111
- { code: 'hi-IN', language: 'hi', region: 'IN', name: 'Hindi (India)', nativeName: 'हिन्दी (भारत)' },
112
- { code: 'bn-BD', language: 'bn', region: 'BD', name: 'Bengali (Bangladesh)', nativeName: 'বাংলা (বাংলাদেশ)' },
113
- { code: 'id-ID', language: 'id', region: 'ID', name: 'Indonesian (Indonesia)', nativeName: 'Bahasa Indonesia (Indonesia)' },
114
- { code: 'ms-MY', language: 'ms', region: 'MY', name: 'Malay (Malaysia)', nativeName: 'Bahasa Melayu (Malaysia)' },
115
- { code: 'th-TH', language: 'th', region: 'TH', name: 'Thai (Thailand)', nativeName: 'ไทย (ประเทศไทย)' },
116
- { code: 'vi-VN', language: 'vi', region: 'VN', name: 'Vietnamese (Vietnam)', nativeName: 'Tiếng Việt (Việt Nam)' },
352
+ {
353
+ code: 'ja-JP',
354
+ language: 'ja',
355
+ region: 'JP',
356
+ name: 'Japanese (Japan)',
357
+ nativeName: '日本語 (日本)',
358
+ },
359
+ {
360
+ code: 'ko-KR',
361
+ language: 'ko',
362
+ region: 'KR',
363
+ name: 'Korean (South Korea)',
364
+ nativeName: '한국어 (대한민국)',
365
+ },
366
+ {
367
+ code: 'zh-CN',
368
+ language: 'zh',
369
+ region: 'CN',
370
+ name: 'Chinese (Simplified, China)',
371
+ nativeName: '中文 (中国)',
372
+ },
373
+ {
374
+ code: 'zh-TW',
375
+ language: 'zh',
376
+ region: 'TW',
377
+ name: 'Chinese (Traditional, Taiwan)',
378
+ nativeName: '中文 (台灣)',
379
+ },
380
+ {
381
+ code: 'zh-HK',
382
+ language: 'zh',
383
+ region: 'HK',
384
+ name: 'Chinese (Traditional, Hong Kong)',
385
+ nativeName: '中文 (香港)',
386
+ },
387
+ {
388
+ code: 'hi-IN',
389
+ language: 'hi',
390
+ region: 'IN',
391
+ name: 'Hindi (India)',
392
+ nativeName: 'हिन्दी (भारत)',
393
+ },
394
+ {
395
+ code: 'bn-BD',
396
+ language: 'bn',
397
+ region: 'BD',
398
+ name: 'Bengali (Bangladesh)',
399
+ nativeName: 'বাংলা (বাংলাদেশ)',
400
+ },
401
+ {
402
+ code: 'id-ID',
403
+ language: 'id',
404
+ region: 'ID',
405
+ name: 'Indonesian (Indonesia)',
406
+ nativeName: 'Bahasa Indonesia (Indonesia)',
407
+ },
408
+ {
409
+ code: 'ms-MY',
410
+ language: 'ms',
411
+ region: 'MY',
412
+ name: 'Malay (Malaysia)',
413
+ nativeName: 'Bahasa Melayu (Malaysia)',
414
+ },
415
+ {
416
+ code: 'th-TH',
417
+ language: 'th',
418
+ region: 'TH',
419
+ name: 'Thai (Thailand)',
420
+ nativeName: 'ไทย (ประเทศไทย)',
421
+ },
422
+ {
423
+ code: 'vi-VN',
424
+ language: 'vi',
425
+ region: 'VN',
426
+ name: 'Vietnamese (Vietnam)',
427
+ nativeName: 'Tiếng Việt (Việt Nam)',
428
+ },
117
429
 
118
430
  // Right-to-left
119
- { code: 'ar-SA', language: 'ar', region: 'SA', name: 'Arabic (Saudi Arabia)', nativeName: 'العربية (السعودية)', rtl: true },
120
- { code: 'ar-EG', language: 'ar', region: 'EG', name: 'Arabic (Egypt)', nativeName: 'العربية (مصر)', rtl: true },
121
- { code: 'he-IL', language: 'he', region: 'IL', name: 'Hebrew (Israel)', nativeName: 'עברית (ישראל)', rtl: true },
122
- { code: 'fa-IR', language: 'fa', region: 'IR', name: 'Persian (Iran)', nativeName: 'فارسی (ایران)', rtl: true },
123
- { code: 'ur-PK', language: 'ur', region: 'PK', name: 'Urdu (Pakistan)', nativeName: 'اردو (پاکستان)', rtl: true },
431
+ {
432
+ code: 'ar-SA',
433
+ language: 'ar',
434
+ region: 'SA',
435
+ name: 'Arabic (Saudi Arabia)',
436
+ nativeName: 'العربية (السعودية)',
437
+ rtl: true,
438
+ },
439
+ {
440
+ code: 'ar-EG',
441
+ language: 'ar',
442
+ region: 'EG',
443
+ name: 'Arabic (Egypt)',
444
+ nativeName: 'العربية (مصر)',
445
+ rtl: true,
446
+ },
447
+ {
448
+ code: 'he-IL',
449
+ language: 'he',
450
+ region: 'IL',
451
+ name: 'Hebrew (Israel)',
452
+ nativeName: 'עברית (ישראל)',
453
+ rtl: true,
454
+ },
455
+ {
456
+ code: 'fa-IR',
457
+ language: 'fa',
458
+ region: 'IR',
459
+ name: 'Persian (Iran)',
460
+ nativeName: 'فارسی (ایران)',
461
+ rtl: true,
462
+ },
463
+ {
464
+ code: 'ur-PK',
465
+ language: 'ur',
466
+ region: 'PK',
467
+ name: 'Urdu (Pakistan)',
468
+ nativeName: 'اردو (پاکستان)',
469
+ rtl: true,
470
+ },
124
471
  ];
125
472
 
126
473
  /** Canonical fallback locale used when a display value cannot be resolved. */
@@ -251,7 +598,9 @@ export function getUserLanguages(user: Pick<User, 'languages'> | null | undefine
251
598
  * {@link getUserLanguages}), or `undefined` when the user has no supported
252
599
  * locale.
253
600
  */
254
- export function getPrimaryLanguage(user: Pick<User, 'languages'> | null | undefined): string | undefined {
601
+ export function getPrimaryLanguage(
602
+ user: Pick<User, 'languages'> | null | undefined,
603
+ ): string | undefined {
255
604
  return getUserLanguages(user)[0];
256
605
  }
257
606
 
@@ -360,10 +360,7 @@ export function persistOAuthHandshake(
360
360
  store.setItem(OXY_OAUTH_STATE_STORAGE_KEY, state);
361
361
  store.setItem(OXY_OAUTH_CODE_VERIFIER_STORAGE_KEY, codeVerifier);
362
362
  if (redirectUri) {
363
- store.setItem(
364
- OXY_OAUTH_REDIRECT_URI_STORAGE_KEY,
365
- canonicalizeOAuthRedirectUri(redirectUri),
366
- );
363
+ store.setItem(OXY_OAUTH_REDIRECT_URI_STORAGE_KEY, canonicalizeOAuthRedirectUri(redirectUri));
367
364
  }
368
365
  return true;
369
366
  } catch (error) {
@@ -136,4 +136,3 @@ export function isWebBrowser(): boolean {
136
136
  typeof document.documentElement !== 'undefined'
137
137
  );
138
138
  }
139
-
@@ -59,12 +59,9 @@ export function normalizeProfileLinks(
59
59
  const url = cleanUrl(entry?.url);
60
60
  if (!url) return;
61
61
  const id =
62
- typeof entry?.id === 'string' && entry.id.trim().length > 0
63
- ? entry.id
64
- : String(index);
62
+ typeof entry?.id === 'string' && entry.id.trim().length > 0 ? entry.id : String(index);
65
63
  const title = typeof entry?.title === 'string' ? entry.title : undefined;
66
- const description =
67
- typeof entry?.description === 'string' ? entry.description : undefined;
64
+ const description = typeof entry?.description === 'string' ? entry.description : undefined;
68
65
  const image = typeof entry?.image === 'string' ? entry.image : undefined;
69
66
  result.push({
70
67
  id,
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Request utilities for HTTP clients
3
- *
3
+ *
4
4
  * Provides reusable components for request deduplication, queuing, and logging
5
5
  */
6
6
 
@@ -47,7 +47,10 @@ function abortReason(signal: AbortSignal): unknown {
47
47
  * ```
48
48
  */
49
49
  export class RequestDeduplicator {
50
- private pending = new Map<string, { promise: Promise<unknown>; controller: AbortController; waiters: number }>();
50
+ private pending = new Map<
51
+ string,
52
+ { promise: Promise<unknown>; controller: AbortController; waiters: number }
53
+ >();
51
54
 
52
55
  /**
53
56
  * Deduplicate a request by key
@@ -58,7 +61,7 @@ export class RequestDeduplicator {
58
61
  async deduplicate<T>(
59
62
  key: string,
60
63
  requestFn: (signal: AbortSignal) => Promise<T>,
61
- signal?: AbortSignal
64
+ signal?: AbortSignal,
62
65
  ): Promise<T> {
63
66
  if (signal?.aborted) {
64
67
  throw abortReason(signal);
@@ -95,8 +98,14 @@ export class RequestDeduplicator {
95
98
  };
96
99
  signal.addEventListener('abort', onAbort, { once: true });
97
100
  (shared.promise as Promise<T>).then(
98
- (value) => { signal.removeEventListener('abort', onAbort); resolve(value); },
99
- (error) => { signal.removeEventListener('abort', onAbort); reject(error); },
101
+ (value) => {
102
+ signal.removeEventListener('abort', onAbort);
103
+ resolve(value);
104
+ },
105
+ (error) => {
106
+ signal.removeEventListener('abort', onAbort);
107
+ reject(error);
108
+ },
100
109
  );
101
110
  });
102
111
  }
@@ -118,14 +127,14 @@ export class RequestDeduplicator {
118
127
 
119
128
  /**
120
129
  * Request queue with concurrency control
121
- *
130
+ *
122
131
  * Limits the number of concurrent requests and queues excess requests.
123
132
  * Useful for rate limiting and preventing request flooding.
124
- *
133
+ *
125
134
  * @example
126
135
  * ```typescript
127
136
  * const queue = new RequestQueue(5, 100); // Max 5 concurrent, queue up to 100
128
- *
137
+ *
129
138
  * // All requests will be queued and processed with max 5 concurrent
130
139
  * await queue.enqueue(() => fetchUser('1'));
131
140
  * await queue.enqueue(() => fetchUser('2'));
@@ -285,11 +294,7 @@ export class SimpleLogger {
285
294
  * @param level Minimum log level
286
295
  * @param prefix Prefix for log messages (default: '')
287
296
  */
288
- constructor(
289
- enabled = false,
290
- level: LogLevel = 'error',
291
- prefix = ''
292
- ) {
297
+ constructor(enabled = false, level: LogLevel = 'error', prefix = '') {
293
298
  this.enabled = enabled;
294
299
  this.level = level;
295
300
  this.prefix = prefix;
@@ -329,4 +334,3 @@ export class SimpleLogger {
329
334
  }
330
335
  }
331
336
  }
332
-