@oxy.so/core 4.5.0-oxy-one.0 → 4.5.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 (285) 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 +49 -12
  7. package/dist/cjs/api/auth.js +37 -11
  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 +49 -12
  83. package/dist/esm/api/auth.js +37 -11
  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 +1 -1
  159. package/dist/types/api/apps.d.ts +4 -4
  160. package/dist/types/api/assets.d.ts +2 -0
  161. package/dist/types/api/auth.d.ts +8 -3
  162. package/dist/types/crypto/internal.d.ts +1 -1
  163. package/dist/types/index.d.ts +4 -4
  164. package/dist/types/server/index.d.ts +6 -6
  165. package/dist/types/server/requesterAssertion.d.ts +2 -2
  166. package/dist/types/server/workloadIdentity.client.d.ts +5 -1
  167. package/dist/types/server/workloadIdentity.d.ts +26 -0
  168. package/dist/types/session/accountDelegationAccess.d.ts +1 -1
  169. package/dist/types/session/index.d.ts +1 -1
  170. package/dist/types/utils/userIdentity.d.ts +1 -1
  171. package/dist/types/utils/validationUtils.d.ts +4 -5
  172. package/package.json +2 -3
  173. package/src/HttpService.ts +183 -53
  174. package/src/OxyServices.errors.ts +7 -3
  175. package/src/OxyServices.ts +6 -2
  176. package/src/api/accounts.ts +76 -26
  177. package/src/api/agency.ts +24 -9
  178. package/src/api/appData.ts +12 -2
  179. package/src/api/apps.ts +81 -31
  180. package/src/api/assets.ts +122 -40
  181. package/src/api/auth.ts +154 -79
  182. package/src/api/billing.ts +112 -65
  183. package/src/api/civic.ts +61 -19
  184. package/src/api/contacts.ts +4 -1
  185. package/src/api/devices.ts +54 -21
  186. package/src/api/follows.ts +88 -31
  187. package/src/api/identity.ts +101 -33
  188. package/src/api/linkedAccounts.ts +26 -8
  189. package/src/api/nodes.ts +18 -6
  190. package/src/api/notifications.ts +26 -6
  191. package/src/api/privacy.ts +42 -8
  192. package/src/api/reputation.ts +18 -7
  193. package/src/api/session.ts +23 -5
  194. package/src/api/store.ts +81 -31
  195. package/src/api/topics.ts +18 -6
  196. package/src/api/users.ts +98 -35
  197. package/src/boot/sessionColdBoot.ts +60 -19
  198. package/src/civic/payloads.ts +1 -4
  199. package/src/client/context.ts +6 -1
  200. package/src/constants/version.ts +7 -6
  201. package/src/crypto/aead.ts +1 -5
  202. package/src/crypto/ecdh.ts +1 -4
  203. package/src/crypto/identityDerivations.ts +5 -1
  204. package/src/crypto/identityMarker.ts +3 -1
  205. package/src/crypto/identityProof.ts +6 -1
  206. package/src/crypto/index.ts +11 -11
  207. package/src/crypto/internal.ts +6 -1
  208. package/src/crypto/keyManager.ts +348 -98
  209. package/src/crypto/recoveryPhrase.ts +14 -9
  210. package/src/crypto/registrationPow.ts +1 -1
  211. package/src/crypto/signatureService.ts +14 -6
  212. package/src/i18n/accountCategoryLabels.ts +1 -4
  213. package/src/i18n/accountRoleLabels.ts +1 -4
  214. package/src/i18n/index.ts +25 -7
  215. package/src/i18n/locales/ar-SA.ts +375 -366
  216. package/src/i18n/locales/ca-ES.ts +382 -366
  217. package/src/i18n/locales/de-DE.ts +387 -366
  218. package/src/i18n/locales/en-US.ts +2034 -1994
  219. package/src/i18n/locales/es-ES.ts +2043 -1994
  220. package/src/i18n/locales/fr-FR.ts +387 -366
  221. package/src/i18n/locales/it-IT.ts +380 -366
  222. package/src/i18n/locales/ja-JP.ts +380 -366
  223. package/src/i18n/locales/ko-KR.ts +377 -366
  224. package/src/i18n/locales/pt-PT.ts +383 -366
  225. package/src/i18n/locales/zh-CN.ts +373 -366
  226. package/src/i18n/trustTierLabels.ts +1 -4
  227. package/src/index.ts +371 -349
  228. package/src/inference/OxyInferenceClient.ts +784 -780
  229. package/src/models/interfaces.ts +30 -27
  230. package/src/server/OxyServer.ts +227 -68
  231. package/src/server/agentAccount.ts +8 -2
  232. package/src/server/aliaMachineCredential.ts +57 -16
  233. package/src/server/auth.ts +9 -5
  234. package/src/server/capabilityTicket.ts +30 -21
  235. package/src/server/index.ts +29 -6
  236. package/src/server/liveCapabilityTicket.ts +31 -9
  237. package/src/server/middleware.ts +212 -121
  238. package/src/server/namespaces.ts +247 -94
  239. package/src/server/rateLimit.ts +2 -4
  240. package/src/server/requesterAssertion.ts +93 -54
  241. package/src/server/serviceTokenLifetime.ts +9 -4
  242. package/src/server/traffic.ts +117 -23
  243. package/src/server/trafficNodeHttp.ts +61 -14
  244. package/src/server/userInvalidation.ts +1 -4
  245. package/src/server/workloadIdentity.client.ts +12 -1
  246. package/src/server/workloadIdentity.ts +52 -5
  247. package/src/session/SessionClient.ts +170 -49
  248. package/src/session/accountDelegationAccess.ts +24 -31
  249. package/src/session/accountDialogController.ts +59 -14
  250. package/src/session/accountSwitchTargets.ts +10 -15
  251. package/src/session/authStateStore.ts +121 -81
  252. package/src/session/deviceDirectory.ts +1 -3
  253. package/src/session/identityPin.ts +10 -11
  254. package/src/session/identitySession.ts +3 -1
  255. package/src/session/index.ts +87 -82
  256. package/src/session/refresh.ts +138 -44
  257. package/src/session/sessionClientHost.ts +1 -3
  258. package/src/session/sharedDeviceCredential.ts +35 -14
  259. package/src/session/socketLoader.ts +9 -2
  260. package/src/shared/utils/errorUtils.ts +5 -2
  261. package/src/shared/utils/networkUtils.ts +5 -8
  262. package/src/shared/utils/themeUtils.ts +2 -6
  263. package/src/types/buffer.d.ts +66 -21
  264. package/src/types/expo-secure-store.d.ts +5 -1
  265. package/src/utils/accountCacheSweep.ts +4 -5
  266. package/src/utils/accountUtils.ts +107 -108
  267. package/src/utils/apiUtils.ts +3 -3
  268. package/src/utils/asyncUtils.ts +2 -2
  269. package/src/utils/authHelpers.ts +10 -5
  270. package/src/utils/avatarUtils.ts +11 -6
  271. package/src/utils/cache.ts +9 -10
  272. package/src/utils/cacheKey.ts +5 -1
  273. package/src/utils/coldBoot.ts +1 -3
  274. package/src/utils/commonsDelivery.ts +1 -4
  275. package/src/utils/deviceManager.ts +15 -14
  276. package/src/utils/errorUtils.ts +68 -86
  277. package/src/utils/languageUtils.ts +407 -58
  278. package/src/utils/oauthPkce.ts +1 -4
  279. package/src/utils/platform.ts +0 -1
  280. package/src/utils/profileLinks.ts +2 -5
  281. package/src/utils/requestUtils.ts +18 -14
  282. package/src/utils/sessionUtils.ts +34 -33
  283. package/src/utils/userHandle.ts +3 -1
  284. package/src/utils/userIdentity.ts +1 -1
  285. package/src/utils/validationUtils.ts +11 -9
@@ -32,75 +32,422 @@ exports.coerceToSupportedLocale = coerceToSupportedLocale;
32
32
  */
33
33
  exports.SUPPORTED_LANGUAGES = [
34
34
  // English
35
- { code: 'en-US', language: 'en', region: 'US', name: 'English (United States)', nativeName: 'English (United States)' },
36
- { code: 'en-GB', language: 'en', region: 'GB', name: 'English (United Kingdom)', nativeName: 'English (United Kingdom)' },
37
- { code: 'en-AU', language: 'en', region: 'AU', name: 'English (Australia)', nativeName: 'English (Australia)' },
38
- { code: 'en-CA', language: 'en', region: 'CA', name: 'English (Canada)', nativeName: 'English (Canada)' },
39
- { code: 'en-IN', language: 'en', region: 'IN', name: 'English (India)', nativeName: 'English (India)' },
35
+ {
36
+ code: 'en-US',
37
+ language: 'en',
38
+ region: 'US',
39
+ name: 'English (United States)',
40
+ nativeName: 'English (United States)',
41
+ },
42
+ {
43
+ code: 'en-GB',
44
+ language: 'en',
45
+ region: 'GB',
46
+ name: 'English (United Kingdom)',
47
+ nativeName: 'English (United Kingdom)',
48
+ },
49
+ {
50
+ code: 'en-AU',
51
+ language: 'en',
52
+ region: 'AU',
53
+ name: 'English (Australia)',
54
+ nativeName: 'English (Australia)',
55
+ },
56
+ {
57
+ code: 'en-CA',
58
+ language: 'en',
59
+ region: 'CA',
60
+ name: 'English (Canada)',
61
+ nativeName: 'English (Canada)',
62
+ },
63
+ {
64
+ code: 'en-IN',
65
+ language: 'en',
66
+ region: 'IN',
67
+ name: 'English (India)',
68
+ nativeName: 'English (India)',
69
+ },
40
70
  // Spanish
41
- { code: 'es-ES', language: 'es', region: 'ES', name: 'Spanish (Spain)', nativeName: 'Español (España)' },
42
- { code: 'es-MX', language: 'es', region: 'MX', name: 'Spanish (Mexico)', nativeName: 'Español (México)' },
43
- { code: 'es-US', language: 'es', region: 'US', name: 'Spanish (United States)', nativeName: 'Español (Estados Unidos)' },
44
- { code: 'es-AR', language: 'es', region: 'AR', name: 'Spanish (Argentina)', nativeName: 'Español (Argentina)' },
45
- { code: 'es-CO', language: 'es', region: 'CO', name: 'Spanish (Colombia)', nativeName: 'Español (Colombia)' },
71
+ {
72
+ code: 'es-ES',
73
+ language: 'es',
74
+ region: 'ES',
75
+ name: 'Spanish (Spain)',
76
+ nativeName: 'Español (España)',
77
+ },
78
+ {
79
+ code: 'es-MX',
80
+ language: 'es',
81
+ region: 'MX',
82
+ name: 'Spanish (Mexico)',
83
+ nativeName: 'Español (México)',
84
+ },
85
+ {
86
+ code: 'es-US',
87
+ language: 'es',
88
+ region: 'US',
89
+ name: 'Spanish (United States)',
90
+ nativeName: 'Español (Estados Unidos)',
91
+ },
92
+ {
93
+ code: 'es-AR',
94
+ language: 'es',
95
+ region: 'AR',
96
+ name: 'Spanish (Argentina)',
97
+ nativeName: 'Español (Argentina)',
98
+ },
99
+ {
100
+ code: 'es-CO',
101
+ language: 'es',
102
+ region: 'CO',
103
+ name: 'Spanish (Colombia)',
104
+ nativeName: 'Español (Colombia)',
105
+ },
46
106
  // Portuguese
47
- { code: 'pt-BR', language: 'pt', region: 'BR', name: 'Portuguese (Brazil)', nativeName: 'Português (Brasil)' },
48
- { code: 'pt-PT', language: 'pt', region: 'PT', name: 'Portuguese (Portugal)', nativeName: 'Português (Portugal)' },
107
+ {
108
+ code: 'pt-BR',
109
+ language: 'pt',
110
+ region: 'BR',
111
+ name: 'Portuguese (Brazil)',
112
+ nativeName: 'Português (Brasil)',
113
+ },
114
+ {
115
+ code: 'pt-PT',
116
+ language: 'pt',
117
+ region: 'PT',
118
+ name: 'Portuguese (Portugal)',
119
+ nativeName: 'Português (Portugal)',
120
+ },
49
121
  // French
50
- { code: 'fr-FR', language: 'fr', region: 'FR', name: 'French (France)', nativeName: 'Français (France)' },
51
- { code: 'fr-CA', language: 'fr', region: 'CA', name: 'French (Canada)', nativeName: 'Français (Canada)' },
122
+ {
123
+ code: 'fr-FR',
124
+ language: 'fr',
125
+ region: 'FR',
126
+ name: 'French (France)',
127
+ nativeName: 'Français (France)',
128
+ },
129
+ {
130
+ code: 'fr-CA',
131
+ language: 'fr',
132
+ region: 'CA',
133
+ name: 'French (Canada)',
134
+ nativeName: 'Français (Canada)',
135
+ },
52
136
  // German
53
- { code: 'de-DE', language: 'de', region: 'DE', name: 'German (Germany)', nativeName: 'Deutsch (Deutschland)' },
54
- { code: 'de-AT', language: 'de', region: 'AT', name: 'German (Austria)', nativeName: 'Deutsch (Österreich)' },
55
- { code: 'de-CH', language: 'de', region: 'CH', name: 'German (Switzerland)', nativeName: 'Deutsch (Schweiz)' },
137
+ {
138
+ code: 'de-DE',
139
+ language: 'de',
140
+ region: 'DE',
141
+ name: 'German (Germany)',
142
+ nativeName: 'Deutsch (Deutschland)',
143
+ },
144
+ {
145
+ code: 'de-AT',
146
+ language: 'de',
147
+ region: 'AT',
148
+ name: 'German (Austria)',
149
+ nativeName: 'Deutsch (Österreich)',
150
+ },
151
+ {
152
+ code: 'de-CH',
153
+ language: 'de',
154
+ region: 'CH',
155
+ name: 'German (Switzerland)',
156
+ nativeName: 'Deutsch (Schweiz)',
157
+ },
56
158
  // Italian
57
- { code: 'it-IT', language: 'it', region: 'IT', name: 'Italian (Italy)', nativeName: 'Italiano (Italia)' },
159
+ {
160
+ code: 'it-IT',
161
+ language: 'it',
162
+ region: 'IT',
163
+ name: 'Italian (Italy)',
164
+ nativeName: 'Italiano (Italia)',
165
+ },
58
166
  // Dutch
59
- { code: 'nl-NL', language: 'nl', region: 'NL', name: 'Dutch (Netherlands)', nativeName: 'Nederlands (Nederland)' },
60
- { code: 'nl-BE', language: 'nl', region: 'BE', name: 'Dutch (Belgium)', nativeName: 'Nederlands (België)' },
167
+ {
168
+ code: 'nl-NL',
169
+ language: 'nl',
170
+ region: 'NL',
171
+ name: 'Dutch (Netherlands)',
172
+ nativeName: 'Nederlands (Nederland)',
173
+ },
174
+ {
175
+ code: 'nl-BE',
176
+ language: 'nl',
177
+ region: 'BE',
178
+ name: 'Dutch (Belgium)',
179
+ nativeName: 'Nederlands (België)',
180
+ },
61
181
  // Nordic
62
- { code: 'sv-SE', language: 'sv', region: 'SE', name: 'Swedish (Sweden)', nativeName: 'Svenska (Sverige)' },
63
- { code: 'nb-NO', language: 'nb', region: 'NO', name: 'Norwegian Bokmål (Norway)', nativeName: 'Norsk bokmål (Norge)' },
64
- { code: 'da-DK', language: 'da', region: 'DK', name: 'Danish (Denmark)', nativeName: 'Dansk (Danmark)' },
65
- { code: 'fi-FI', language: 'fi', region: 'FI', name: 'Finnish (Finland)', nativeName: 'Suomi (Suomi)' },
182
+ {
183
+ code: 'sv-SE',
184
+ language: 'sv',
185
+ region: 'SE',
186
+ name: 'Swedish (Sweden)',
187
+ nativeName: 'Svenska (Sverige)',
188
+ },
189
+ {
190
+ code: 'nb-NO',
191
+ language: 'nb',
192
+ region: 'NO',
193
+ name: 'Norwegian Bokmål (Norway)',
194
+ nativeName: 'Norsk bokmål (Norge)',
195
+ },
196
+ {
197
+ code: 'da-DK',
198
+ language: 'da',
199
+ region: 'DK',
200
+ name: 'Danish (Denmark)',
201
+ nativeName: 'Dansk (Danmark)',
202
+ },
203
+ {
204
+ code: 'fi-FI',
205
+ language: 'fi',
206
+ region: 'FI',
207
+ name: 'Finnish (Finland)',
208
+ nativeName: 'Suomi (Suomi)',
209
+ },
66
210
  // Central & Eastern Europe
67
- { code: 'pl-PL', language: 'pl', region: 'PL', name: 'Polish (Poland)', nativeName: 'Polski (Polska)' },
68
- { code: 'cs-CZ', language: 'cs', region: 'CZ', name: 'Czech (Czechia)', nativeName: 'Čeština (Česko)' },
69
- { code: 'sk-SK', language: 'sk', region: 'SK', name: 'Slovak (Slovakia)', nativeName: 'Slovenčina (Slovensko)' },
70
- { code: 'hu-HU', language: 'hu', region: 'HU', name: 'Hungarian (Hungary)', nativeName: 'Magyar (Magyarország)' },
71
- { code: 'ro-RO', language: 'ro', region: 'RO', name: 'Romanian (Romania)', nativeName: 'Română (România)' },
72
- { code: 'bg-BG', language: 'bg', region: 'BG', name: 'Bulgarian (Bulgaria)', nativeName: 'Български (България)' },
73
- { code: 'hr-HR', language: 'hr', region: 'HR', name: 'Croatian (Croatia)', nativeName: 'Hrvatski (Hrvatska)' },
74
- { code: 'sr-RS', language: 'sr', region: 'RS', name: 'Serbian (Serbia)', nativeName: 'Српски (Србија)' },
75
- { code: 'sl-SI', language: 'sl', region: 'SI', name: 'Slovenian (Slovenia)', nativeName: 'Slovenščina (Slovenija)' },
76
- { code: 'lt-LT', language: 'lt', region: 'LT', name: 'Lithuanian (Lithuania)', nativeName: 'Lietuvių (Lietuva)' },
77
- { code: 'lv-LV', language: 'lv', region: 'LV', name: 'Latvian (Latvia)', nativeName: 'Latviešu (Latvija)' },
78
- { code: 'et-EE', language: 'et', region: 'EE', name: 'Estonian (Estonia)', nativeName: 'Eesti (Eesti)' },
79
- { code: 'uk-UA', language: 'uk', region: 'UA', name: 'Ukrainian (Ukraine)', nativeName: 'Українська (Україна)' },
80
- { code: 'ru-RU', language: 'ru', region: 'RU', name: 'Russian (Russia)', nativeName: 'Русский (Россия)' },
81
- { code: 'el-GR', language: 'el', region: 'GR', name: 'Greek (Greece)', nativeName: 'Ελληνικά (Ελλάδα)' },
211
+ {
212
+ code: 'pl-PL',
213
+ language: 'pl',
214
+ region: 'PL',
215
+ name: 'Polish (Poland)',
216
+ nativeName: 'Polski (Polska)',
217
+ },
218
+ {
219
+ code: 'cs-CZ',
220
+ language: 'cs',
221
+ region: 'CZ',
222
+ name: 'Czech (Czechia)',
223
+ nativeName: 'Čeština (Česko)',
224
+ },
225
+ {
226
+ code: 'sk-SK',
227
+ language: 'sk',
228
+ region: 'SK',
229
+ name: 'Slovak (Slovakia)',
230
+ nativeName: 'Slovenčina (Slovensko)',
231
+ },
232
+ {
233
+ code: 'hu-HU',
234
+ language: 'hu',
235
+ region: 'HU',
236
+ name: 'Hungarian (Hungary)',
237
+ nativeName: 'Magyar (Magyarország)',
238
+ },
239
+ {
240
+ code: 'ro-RO',
241
+ language: 'ro',
242
+ region: 'RO',
243
+ name: 'Romanian (Romania)',
244
+ nativeName: 'Română (România)',
245
+ },
246
+ {
247
+ code: 'bg-BG',
248
+ language: 'bg',
249
+ region: 'BG',
250
+ name: 'Bulgarian (Bulgaria)',
251
+ nativeName: 'Български (България)',
252
+ },
253
+ {
254
+ code: 'hr-HR',
255
+ language: 'hr',
256
+ region: 'HR',
257
+ name: 'Croatian (Croatia)',
258
+ nativeName: 'Hrvatski (Hrvatska)',
259
+ },
260
+ {
261
+ code: 'sr-RS',
262
+ language: 'sr',
263
+ region: 'RS',
264
+ name: 'Serbian (Serbia)',
265
+ nativeName: 'Српски (Србија)',
266
+ },
267
+ {
268
+ code: 'sl-SI',
269
+ language: 'sl',
270
+ region: 'SI',
271
+ name: 'Slovenian (Slovenia)',
272
+ nativeName: 'Slovenščina (Slovenija)',
273
+ },
274
+ {
275
+ code: 'lt-LT',
276
+ language: 'lt',
277
+ region: 'LT',
278
+ name: 'Lithuanian (Lithuania)',
279
+ nativeName: 'Lietuvių (Lietuva)',
280
+ },
281
+ {
282
+ code: 'lv-LV',
283
+ language: 'lv',
284
+ region: 'LV',
285
+ name: 'Latvian (Latvia)',
286
+ nativeName: 'Latviešu (Latvija)',
287
+ },
288
+ {
289
+ code: 'et-EE',
290
+ language: 'et',
291
+ region: 'EE',
292
+ name: 'Estonian (Estonia)',
293
+ nativeName: 'Eesti (Eesti)',
294
+ },
295
+ {
296
+ code: 'uk-UA',
297
+ language: 'uk',
298
+ region: 'UA',
299
+ name: 'Ukrainian (Ukraine)',
300
+ nativeName: 'Українська (Україна)',
301
+ },
302
+ {
303
+ code: 'ru-RU',
304
+ language: 'ru',
305
+ region: 'RU',
306
+ name: 'Russian (Russia)',
307
+ nativeName: 'Русский (Россия)',
308
+ },
309
+ {
310
+ code: 'el-GR',
311
+ language: 'el',
312
+ region: 'GR',
313
+ name: 'Greek (Greece)',
314
+ nativeName: 'Ελληνικά (Ελλάδα)',
315
+ },
82
316
  // Turkish
83
- { code: 'tr-TR', language: 'tr', region: 'TR', name: 'Turkish (Türkiye)', nativeName: 'Türkçe (Türkiye)' },
317
+ {
318
+ code: 'tr-TR',
319
+ language: 'tr',
320
+ region: 'TR',
321
+ name: 'Turkish (Türkiye)',
322
+ nativeName: 'Türkçe (Türkiye)',
323
+ },
84
324
  // Catalan
85
- { code: 'ca-ES', language: 'ca', region: 'ES', name: 'Catalan (Spain)', nativeName: 'Català (Espanya)' },
325
+ {
326
+ code: 'ca-ES',
327
+ language: 'ca',
328
+ region: 'ES',
329
+ name: 'Catalan (Spain)',
330
+ nativeName: 'Català (Espanya)',
331
+ },
86
332
  // East, South & Southeast Asia
87
- { code: 'ja-JP', language: 'ja', region: 'JP', name: 'Japanese (Japan)', nativeName: '日本語 (日本)' },
88
- { code: 'ko-KR', language: 'ko', region: 'KR', name: 'Korean (South Korea)', nativeName: '한국어 (대한민국)' },
89
- { code: 'zh-CN', language: 'zh', region: 'CN', name: 'Chinese (Simplified, China)', nativeName: '中文 (中国)' },
90
- { code: 'zh-TW', language: 'zh', region: 'TW', name: 'Chinese (Traditional, Taiwan)', nativeName: '中文 (台灣)' },
91
- { code: 'zh-HK', language: 'zh', region: 'HK', name: 'Chinese (Traditional, Hong Kong)', nativeName: '中文 (香港)' },
92
- { code: 'hi-IN', language: 'hi', region: 'IN', name: 'Hindi (India)', nativeName: 'हिन्दी (भारत)' },
93
- { code: 'bn-BD', language: 'bn', region: 'BD', name: 'Bengali (Bangladesh)', nativeName: 'বাংলা (বাংলাদেশ)' },
94
- { code: 'id-ID', language: 'id', region: 'ID', name: 'Indonesian (Indonesia)', nativeName: 'Bahasa Indonesia (Indonesia)' },
95
- { code: 'ms-MY', language: 'ms', region: 'MY', name: 'Malay (Malaysia)', nativeName: 'Bahasa Melayu (Malaysia)' },
96
- { code: 'th-TH', language: 'th', region: 'TH', name: 'Thai (Thailand)', nativeName: 'ไทย (ประเทศไทย)' },
97
- { code: 'vi-VN', language: 'vi', region: 'VN', name: 'Vietnamese (Vietnam)', nativeName: 'Tiếng Việt (Việt Nam)' },
333
+ {
334
+ code: 'ja-JP',
335
+ language: 'ja',
336
+ region: 'JP',
337
+ name: 'Japanese (Japan)',
338
+ nativeName: '日本語 (日本)',
339
+ },
340
+ {
341
+ code: 'ko-KR',
342
+ language: 'ko',
343
+ region: 'KR',
344
+ name: 'Korean (South Korea)',
345
+ nativeName: '한국어 (대한민국)',
346
+ },
347
+ {
348
+ code: 'zh-CN',
349
+ language: 'zh',
350
+ region: 'CN',
351
+ name: 'Chinese (Simplified, China)',
352
+ nativeName: '中文 (中国)',
353
+ },
354
+ {
355
+ code: 'zh-TW',
356
+ language: 'zh',
357
+ region: 'TW',
358
+ name: 'Chinese (Traditional, Taiwan)',
359
+ nativeName: '中文 (台灣)',
360
+ },
361
+ {
362
+ code: 'zh-HK',
363
+ language: 'zh',
364
+ region: 'HK',
365
+ name: 'Chinese (Traditional, Hong Kong)',
366
+ nativeName: '中文 (香港)',
367
+ },
368
+ {
369
+ code: 'hi-IN',
370
+ language: 'hi',
371
+ region: 'IN',
372
+ name: 'Hindi (India)',
373
+ nativeName: 'हिन्दी (भारत)',
374
+ },
375
+ {
376
+ code: 'bn-BD',
377
+ language: 'bn',
378
+ region: 'BD',
379
+ name: 'Bengali (Bangladesh)',
380
+ nativeName: 'বাংলা (বাংলাদেশ)',
381
+ },
382
+ {
383
+ code: 'id-ID',
384
+ language: 'id',
385
+ region: 'ID',
386
+ name: 'Indonesian (Indonesia)',
387
+ nativeName: 'Bahasa Indonesia (Indonesia)',
388
+ },
389
+ {
390
+ code: 'ms-MY',
391
+ language: 'ms',
392
+ region: 'MY',
393
+ name: 'Malay (Malaysia)',
394
+ nativeName: 'Bahasa Melayu (Malaysia)',
395
+ },
396
+ {
397
+ code: 'th-TH',
398
+ language: 'th',
399
+ region: 'TH',
400
+ name: 'Thai (Thailand)',
401
+ nativeName: 'ไทย (ประเทศไทย)',
402
+ },
403
+ {
404
+ code: 'vi-VN',
405
+ language: 'vi',
406
+ region: 'VN',
407
+ name: 'Vietnamese (Vietnam)',
408
+ nativeName: 'Tiếng Việt (Việt Nam)',
409
+ },
98
410
  // Right-to-left
99
- { code: 'ar-SA', language: 'ar', region: 'SA', name: 'Arabic (Saudi Arabia)', nativeName: 'العربية (السعودية)', rtl: true },
100
- { code: 'ar-EG', language: 'ar', region: 'EG', name: 'Arabic (Egypt)', nativeName: 'العربية (مصر)', rtl: true },
101
- { code: 'he-IL', language: 'he', region: 'IL', name: 'Hebrew (Israel)', nativeName: 'עברית (ישראל)', rtl: true },
102
- { code: 'fa-IR', language: 'fa', region: 'IR', name: 'Persian (Iran)', nativeName: 'فارسی (ایران)', rtl: true },
103
- { code: 'ur-PK', language: 'ur', region: 'PK', name: 'Urdu (Pakistan)', nativeName: 'اردو (پاکستان)', rtl: true },
411
+ {
412
+ code: 'ar-SA',
413
+ language: 'ar',
414
+ region: 'SA',
415
+ name: 'Arabic (Saudi Arabia)',
416
+ nativeName: 'العربية (السعودية)',
417
+ rtl: true,
418
+ },
419
+ {
420
+ code: 'ar-EG',
421
+ language: 'ar',
422
+ region: 'EG',
423
+ name: 'Arabic (Egypt)',
424
+ nativeName: 'العربية (مصر)',
425
+ rtl: true,
426
+ },
427
+ {
428
+ code: 'he-IL',
429
+ language: 'he',
430
+ region: 'IL',
431
+ name: 'Hebrew (Israel)',
432
+ nativeName: 'עברית (ישראל)',
433
+ rtl: true,
434
+ },
435
+ {
436
+ code: 'fa-IR',
437
+ language: 'fa',
438
+ region: 'IR',
439
+ name: 'Persian (Iran)',
440
+ nativeName: 'فارسی (ایران)',
441
+ rtl: true,
442
+ },
443
+ {
444
+ code: 'ur-PK',
445
+ language: 'ur',
446
+ region: 'PK',
447
+ name: 'Urdu (Pakistan)',
448
+ nativeName: 'اردو (پاکستان)',
449
+ rtl: true,
450
+ },
104
451
  ];
105
452
  /** Canonical fallback locale used when a display value cannot be resolved. */
106
453
  exports.FALLBACK_LOCALE = 'en-US';
@@ -33,9 +33,7 @@ function normalizeProfileLinks(linksMetadata, links) {
33
33
  const url = cleanUrl(entry?.url);
34
34
  if (!url)
35
35
  return;
36
- const id = typeof entry?.id === 'string' && entry.id.trim().length > 0
37
- ? entry.id
38
- : String(index);
36
+ const id = typeof entry?.id === 'string' && entry.id.trim().length > 0 ? entry.id : String(index);
39
37
  const title = typeof entry?.title === 'string' ? entry.title : undefined;
40
38
  const description = typeof entry?.description === 'string' ? entry.description : undefined;
41
39
  const image = typeof entry?.image === 'string' ? entry.image : undefined;
@@ -90,7 +90,13 @@ class RequestDeduplicator {
90
90
  reject(abortReason(signal));
91
91
  };
92
92
  signal.addEventListener('abort', onAbort, { once: true });
93
- shared.promise.then((value) => { signal.removeEventListener('abort', onAbort); resolve(value); }, (error) => { signal.removeEventListener('abort', onAbort); reject(error); });
93
+ shared.promise.then((value) => {
94
+ signal.removeEventListener('abort', onAbort);
95
+ resolve(value);
96
+ }, (error) => {
97
+ signal.removeEventListener('abort', onAbort);
98
+ reject(error);
99
+ });
94
100
  });
95
101
  }
96
102
  /**
@@ -25,7 +25,7 @@ function stringifyIdentity(value) {
25
25
  }
26
26
  /**
27
27
  * Returns the stable SDK user id from API payloads that may use either `id` or
28
- * Mongo-style `_id`.
28
+ * a raw `_id`.
29
29
  */
30
30
  function getNormalizedUserId(user) {
31
31
  if (!user) {
@@ -92,10 +92,10 @@ function isValidPassword(password) {
92
92
  * — script digits (`٠١٢`, `०१२`), 1082 symbols (`֍ ۞ ৳`), 180 punctuation marks
93
93
  * (`։ ، ؛ ।`), and 9 INVISIBLE format/control characters, among them U+061C
94
94
  * ARABIC LETTER MARK (a bidi control that can visually reorder a name) and
95
- * U+180E MONGOLIAN VOWEL SEPARATOR. Without it the rejections listed above held
95
+ * U+180E (the Mong-script vowel separator). Without it the rejections listed above held
96
96
  * for ASCII input only. It is the set of scripts Unicode UTS #39 marks
97
97
  * "Recommended" for general interchange / identifiers, plus Cherokee and
98
- * Mongolian (both in real modern name use). "Common" script is deliberately
98
+ * the Mong script, ISO 15924 (both in real modern name use). "Common" script is deliberately
99
99
  * EXCLUDED — that is where ASCII digits and general punctuation live, and this
100
100
  * policy excludes those; the space separators, combining marks, and apostrophe a
101
101
  * name needs are added back explicitly. Limited-use / excluded / historic
@@ -334,15 +334,14 @@ function sanitizeHTML(input) {
334
334
  .replace(/'/g, ''');
335
335
  }
336
336
  /**
337
- * Validate MongoDB ObjectId format
338
- * Note: This is a basic format check. For full validation, use mongoose.Types.ObjectId.isValid()
339
- * This function works in environments where mongoose may not be available (e.g., client-side)
337
+ * Validate the legacy 24-hex id format (a format check only; it does not
338
+ * prove the id exists).
340
339
  */
341
340
  function isValidObjectId(id) {
342
341
  if (typeof id !== 'string') {
343
342
  return false;
344
343
  }
345
- // MongoDB ObjectId is 24 hex characters
344
+ // A legacy id is 24 hex characters
346
345
  const OBJECT_ID_REGEX = /^[0-9a-fA-F]{24}$/;
347
346
  return OBJECT_ID_REGEX.test(id);
348
347
  }