@oxy.so/core 1.16.0 → 1.18.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (109) hide show
  1. package/dist/cjs/.tsbuildinfo +1 -1
  2. package/dist/cjs/HttpService.js +30 -1
  3. package/dist/cjs/crypto/identityLink.js +18 -0
  4. package/dist/cjs/i18n/locales/ar-SA.json +78 -3
  5. package/dist/cjs/i18n/locales/ca-ES.json +78 -3
  6. package/dist/cjs/i18n/locales/de-DE.json +78 -3
  7. package/dist/cjs/i18n/locales/en-US.json +75 -28
  8. package/dist/cjs/i18n/locales/es-ES.json +75 -28
  9. package/dist/cjs/i18n/locales/fr-FR.json +78 -3
  10. package/dist/cjs/i18n/locales/it-IT.json +78 -3
  11. package/dist/cjs/i18n/locales/ja-JP.json +78 -3
  12. package/dist/cjs/i18n/locales/ko-KR.json +78 -3
  13. package/dist/cjs/i18n/locales/locales/ar-SA.json +78 -3
  14. package/dist/cjs/i18n/locales/locales/ca-ES.json +78 -3
  15. package/dist/cjs/i18n/locales/locales/de-DE.json +78 -3
  16. package/dist/cjs/i18n/locales/locales/en-US.json +75 -28
  17. package/dist/cjs/i18n/locales/locales/es-ES.json +75 -28
  18. package/dist/cjs/i18n/locales/locales/fr-FR.json +78 -3
  19. package/dist/cjs/i18n/locales/locales/it-IT.json +78 -3
  20. package/dist/cjs/i18n/locales/locales/ja-JP.json +78 -3
  21. package/dist/cjs/i18n/locales/locales/ko-KR.json +78 -3
  22. package/dist/cjs/i18n/locales/locales/pt-PT.json +78 -3
  23. package/dist/cjs/i18n/locales/locales/zh-CN.json +78 -3
  24. package/dist/cjs/i18n/locales/pt-PT.json +78 -3
  25. package/dist/cjs/i18n/locales/zh-CN.json +78 -3
  26. package/dist/cjs/index.js +9 -42
  27. package/dist/cjs/mixins/OxyServices.auth.js +110 -17
  28. package/dist/cjs/mixins/OxyServices.identity.js +128 -8
  29. package/dist/cjs/mixins/OxyServices.user.js +42 -7
  30. package/dist/cjs/utils/authWebUrl.js +4 -5
  31. package/dist/esm/.tsbuildinfo +1 -1
  32. package/dist/esm/HttpService.js +30 -1
  33. package/dist/esm/crypto/identityLink.js +15 -0
  34. package/dist/esm/i18n/locales/ar-SA.json +78 -3
  35. package/dist/esm/i18n/locales/ca-ES.json +78 -3
  36. package/dist/esm/i18n/locales/de-DE.json +78 -3
  37. package/dist/esm/i18n/locales/en-US.json +75 -28
  38. package/dist/esm/i18n/locales/es-ES.json +75 -28
  39. package/dist/esm/i18n/locales/fr-FR.json +78 -3
  40. package/dist/esm/i18n/locales/it-IT.json +78 -3
  41. package/dist/esm/i18n/locales/ja-JP.json +78 -3
  42. package/dist/esm/i18n/locales/ko-KR.json +78 -3
  43. package/dist/esm/i18n/locales/locales/ar-SA.json +78 -3
  44. package/dist/esm/i18n/locales/locales/ca-ES.json +78 -3
  45. package/dist/esm/i18n/locales/locales/de-DE.json +78 -3
  46. package/dist/esm/i18n/locales/locales/en-US.json +75 -28
  47. package/dist/esm/i18n/locales/locales/es-ES.json +75 -28
  48. package/dist/esm/i18n/locales/locales/fr-FR.json +78 -3
  49. package/dist/esm/i18n/locales/locales/it-IT.json +78 -3
  50. package/dist/esm/i18n/locales/locales/ja-JP.json +78 -3
  51. package/dist/esm/i18n/locales/locales/ko-KR.json +78 -3
  52. package/dist/esm/i18n/locales/locales/pt-PT.json +78 -3
  53. package/dist/esm/i18n/locales/locales/zh-CN.json +78 -3
  54. package/dist/esm/i18n/locales/pt-PT.json +78 -3
  55. package/dist/esm/i18n/locales/zh-CN.json +78 -3
  56. package/dist/esm/index.js +4 -4
  57. package/dist/esm/mixins/OxyServices.auth.js +110 -17
  58. package/dist/esm/mixins/OxyServices.identity.js +128 -8
  59. package/dist/esm/mixins/OxyServices.user.js +42 -7
  60. package/dist/esm/utils/authWebUrl.js +4 -5
  61. package/dist/types/.tsbuildinfo +1 -1
  62. package/dist/types/HttpService.d.ts +21 -0
  63. package/dist/types/crypto/identityLink.d.ts +8 -0
  64. package/dist/types/index.d.ts +2 -5
  65. package/dist/types/mixins/OxyServices.auth.d.ts +68 -25
  66. package/dist/types/mixins/OxyServices.identity.d.ts +34 -34
  67. package/dist/types/mixins/OxyServices.user.d.ts +29 -6
  68. package/dist/types/models/interfaces.d.ts +67 -13
  69. package/dist/types/server/securityHeaders.d.ts +3 -3
  70. package/dist/types/utils/authWebUrl.d.ts +4 -5
  71. package/package.json +3 -3
  72. package/src/HttpService.ts +35 -1
  73. package/src/__tests__/serviceIdentityWhenAnonymous.test.ts +159 -0
  74. package/src/crypto/__tests__/identityLink.test.ts +18 -0
  75. package/src/crypto/__tests__/identityProof.test.ts +6 -6
  76. package/src/crypto/identityLink.ts +18 -0
  77. package/src/i18n/locales/ar-SA.json +78 -3
  78. package/src/i18n/locales/ca-ES.json +78 -3
  79. package/src/i18n/locales/de-DE.json +78 -3
  80. package/src/i18n/locales/en-US.json +75 -28
  81. package/src/i18n/locales/es-ES.json +75 -28
  82. package/src/i18n/locales/fr-FR.json +78 -3
  83. package/src/i18n/locales/it-IT.json +78 -3
  84. package/src/i18n/locales/ja-JP.json +78 -3
  85. package/src/i18n/locales/ko-KR.json +78 -3
  86. package/src/i18n/locales/pt-PT.json +78 -3
  87. package/src/i18n/locales/zh-CN.json +78 -3
  88. package/src/index.ts +6 -48
  89. package/src/mixins/OxyServices.auth.ts +127 -24
  90. package/src/mixins/OxyServices.identity.ts +126 -8
  91. package/src/mixins/OxyServices.user.ts +51 -10
  92. package/src/mixins/__tests__/identityLink.test.ts +89 -0
  93. package/src/mixins/__tests__/notifications.read.test.ts +82 -0
  94. package/src/mixins/__tests__/preSessionSkipAuth.test.ts +1 -1
  95. package/src/mixins/__tests__/webauthnAuth.test.ts +75 -1
  96. package/src/models/interfaces.ts +67 -12
  97. package/src/server/securityHeaders.ts +3 -3
  98. package/src/utils/authWebUrl.ts +4 -5
  99. package/dist/cjs/crypto/identityMove.js +0 -142
  100. package/dist/cjs/crypto/webIdentityCarrier.js +0 -325
  101. package/dist/esm/crypto/identityMove.js +0 -128
  102. package/dist/esm/crypto/webIdentityCarrier.js +0 -303
  103. package/dist/types/crypto/identityMove.d.ts +0 -75
  104. package/dist/types/crypto/webIdentityCarrier.d.ts +0 -150
  105. package/src/crypto/__tests__/identityMove.test.ts +0 -146
  106. package/src/crypto/__tests__/webIdentityCarrier.test.ts +0 -169
  107. package/src/crypto/__tests__/webIdentityRecoveryMaterial.test.ts +0 -117
  108. package/src/crypto/identityMove.ts +0 -167
  109. package/src/crypto/webIdentityCarrier.ts +0 -394
@@ -58,7 +58,26 @@
58
58
  "createInCommons": "Create your identity in Commons",
59
59
  "createAccount": "Create account",
60
60
  "backToSignInLink": "Already have an account? Sign in",
61
- "webSubtitle": "No password. Your device creates a passkey, and your account gets a recovery phrase only you keep."
61
+ "webSubtitle": "No password: your device makes a passkey, and a recovery email gets you back in if you lose it.",
62
+ "username": {
63
+ "label": "Username",
64
+ "placeholder": "yourname",
65
+ "required": "Choose a username.",
66
+ "taken": "That username is taken."
67
+ },
68
+ "email": {
69
+ "title": "Your recovery email",
70
+ "subtitle": "If you lose your passkey, we send a code here to get you back in. It's used for nothing else.",
71
+ "label": "Email",
72
+ "placeholder": "you@example.com",
73
+ "invalid": "Enter a valid email address."
74
+ },
75
+ "passkey": {
76
+ "title": "Create your passkey",
77
+ "subtitle": "You sign in with it: your fingerprint, face or screen lock. There's nothing to remember.",
78
+ "action": "Create passkey"
79
+ },
80
+ "commonsInstead": "Want to hold your own key? Use Commons instead"
62
81
  },
63
82
  "welcomeNew": {
64
83
  "navTitle": "Welcome",
@@ -206,30 +225,20 @@
206
225
  "subtitle": "Tell us what you think"
207
226
  },
208
227
  "recover": {
209
- "title": "Recover Account",
210
- "username": {
211
- "label": "Username",
212
- "placeholder": "Enter your username",
213
- "errorRequired": "Please enter your username.",
214
- "helper": "Enter your username or email"
215
- },
216
- "verify": {
217
- "title": "Verify Code",
218
- "action": "Verify Code"
219
- },
220
- "enterCode": "Enter the 6‑digit code from your authenticator app.",
221
- "newPassword": "Set New Password",
222
- "resetSuccess": "Your password has been reset! You can now sign in.",
223
- "noEmail": "We no longer send recovery emails. Please use your recovery phrase to restore your identity. Contact support if you need assistance.",
224
- "password": {
225
- "minLength": "Password must be at least 8 characters long",
226
- "mismatch": "Passwords do not match",
227
- "resetFailed": "Failed to reset password"
228
- },
229
- "missingCode": "Missing code",
230
- "whatsNextTitle": "What's next?",
231
- "whatsNextBody": "You can now reset your password or return to sign in with your existing credentials.",
232
- "completeSecure": "Your account recovery is complete and secure."
228
+ "title": "Recover your account",
229
+ "subtitle": "Enter your username or recovery email. We'll send a code to the account's recovery email.",
230
+ "identifier": {
231
+ "label": "Username or email",
232
+ "placeholder": "yourname",
233
+ "required": "Enter your username or email."
234
+ },
235
+ "commonsNote": "Does your account use Commons? Recover it in Commons with your recovery phrase.",
236
+ "passkey": {
237
+ "title": "Add a new passkey",
238
+ "subtitle": "For @{{username}}. Remove lost passkeys later in your account's security settings.",
239
+ "action": "Create passkey"
240
+ },
241
+ "backToSignIn": "Back to sign in"
233
242
  },
234
243
  "accountCenter": {
235
244
  "sections": {
@@ -1617,8 +1626,7 @@
1617
1626
  "help": "Help & feedback",
1618
1627
  "signOut": "Sign out",
1619
1628
  "privacy": "Privacy Policy",
1620
- "terms": "Terms of Service",
1621
- "identity": "Your identity"
1629
+ "terms": "Terms of Service"
1622
1630
  },
1623
1631
  "accounts": {
1624
1632
  "activeAccount": {
@@ -1835,9 +1843,16 @@
1835
1843
  "openCommons": "Open Oxy Commons",
1836
1844
  "commonsOpenFailed": "Couldn't open Oxy Commons. Open it yourself and go to Settings > Delete account.",
1837
1845
  "elsewhereTitle": "Delete your account where your identity is",
1838
- "elsewhereMessage": "Deleting your account needs your identity key, and it isn't on this device. Open Oxy Commons on the device that holds your identity and go to Settings > Delete account, or open {{site}} in a browser that holds it.",
1846
+ "elsewhereMessage": "Deleting your account needs your identity key, and it isn't on this device. Open Oxy Commons on the device that holds it and go to Settings > Delete account. An account that uses a passkey is deleted at {{site}}.",
1839
1847
  "gotIt": "Got it",
1840
1848
  "identityUnreadable": "Couldn't read this device's identity storage. Unlock your device and try again."
1849
+ },
1850
+ "passkey": {
1851
+ "subtitle": "Confirm with your passkey. @{{username}} and everything in it are deleted for good.",
1852
+ "action": "Delete with passkey",
1853
+ "done": "Your account is deleted.",
1854
+ "closeWindow": "You can close this window.",
1855
+ "commons": "This account uses Commons: delete it in Oxy Commons, Settings > Delete account, with its key."
1841
1856
  }
1842
1857
  },
1843
1858
  "manageAccount": {
@@ -2076,5 +2091,37 @@
2076
2091
  "allow": "Continue to {{app}}",
2077
2092
  "deny": "Cancel",
2078
2093
  "disclaimer": "By continuing, {{app}} will be able to sign in with your Oxy account. You can manage connected apps anytime in your Oxy account settings."
2094
+ },
2095
+ "emailCode": {
2096
+ "title": "Check your email",
2097
+ "sentTo": "We sent a 6-digit code to {{email}}.",
2098
+ "sentIfAccount": "If this account has a recovery email, we sent a 6-digit code to it.",
2099
+ "label": "Code",
2100
+ "resend": "Send a new code",
2101
+ "resent": "We sent a new code.",
2102
+ "changeEmail": "Use another email",
2103
+ "errors": {
2104
+ "codeInvalid": "That code isn't right, or it has expired.",
2105
+ "tooManyAttempts": "Too many wrong codes. Ask for a new one.",
2106
+ "expired": "This took too long. Start again.",
2107
+ "unavailable": "Oxy can't send email right now. Try again later.",
2108
+ "rateLimited": "Too many codes. Try again later."
2109
+ }
2110
+ },
2111
+ "linkCommons": {
2112
+ "title": "Link Commons",
2113
+ "subtitle": "Keep your own key: link Commons and this account becomes yours alone. Its recovery email is deleted, and your recovery phrase in Commons is how you get back in.",
2114
+ "scan": "On your phone, open Commons, choose “I have an Oxy account on the web” and scan this code.",
2115
+ "waiting": "Waiting for Commons…",
2116
+ "compareTitle": "Check the code",
2117
+ "compare": "Commons shows the same code. If it doesn’t, cancel.",
2118
+ "confirm": "Yes, link Commons",
2119
+ "cancel": "Cancel",
2120
+ "doneTitle": "Commons is linked",
2121
+ "done": "This account is self-custodied now. Its recovery email was deleted: your recovery phrase in Commons is how you get back in.",
2122
+ "already": "This account already uses Commons.",
2123
+ "expired": "This code expired.",
2124
+ "renew": "Show a new code",
2125
+ "failed": "Commons couldn’t be linked. Try again."
2079
2126
  }
2080
2127
  }
@@ -58,7 +58,26 @@
58
58
  "createInCommons": "Crea tu identidad en Commons",
59
59
  "createAccount": "Crear cuenta",
60
60
  "backToSignInLink": "¿Ya tienes cuenta? Inicia sesión",
61
- "webSubtitle": "Sin contraseña. Tu dispositivo crea una passkey y tu cuenta recibe una frase de recuperación que solo guardas tú."
61
+ "webSubtitle": "Sin contraseña: tu dispositivo crea una passkey y un email de recuperación te devuelve el acceso si la pierdes.",
62
+ "username": {
63
+ "label": "Nombre de usuario",
64
+ "placeholder": "tunombre",
65
+ "required": "Elige un nombre de usuario.",
66
+ "taken": "Ese nombre de usuario ya está en uso."
67
+ },
68
+ "email": {
69
+ "title": "Tu email de recuperación",
70
+ "subtitle": "Si pierdes tu passkey, te enviamos aquí un código para volver a entrar. No se usa para nada más.",
71
+ "label": "Email",
72
+ "placeholder": "tu@ejemplo.com",
73
+ "invalid": "Escribe un email válido."
74
+ },
75
+ "passkey": {
76
+ "title": "Crea tu passkey",
77
+ "subtitle": "Con ella inicias sesión: tu huella, tu cara o el bloqueo de pantalla. No hay nada que recordar.",
78
+ "action": "Crear passkey"
79
+ },
80
+ "commonsInstead": "¿Quieres guardar tu propia clave? Usa Commons"
62
81
  },
63
82
  "profile": {
64
83
  "title": "Perfil",
@@ -86,30 +105,20 @@
86
105
  "search": "Buscar idiomas"
87
106
  },
88
107
  "recover": {
89
- "title": "Recuperar cuenta",
90
- "username": {
91
- "label": "Usuario",
92
- "placeholder": "Introduce tu usuario",
93
- "errorRequired": "Por favor, introduce tu usuario.",
94
- "helper": "Introduce tu usuario o correo electrónico"
95
- },
96
- "verify": {
97
- "title": "Verificar código",
98
- "action": "Verificar código"
99
- },
100
- "enterCode": "Introduce el código de 6 dígitos de tu app de autenticación.",
101
- "newPassword": "Establecer nueva contraseña",
102
- "resetSuccess": "¡Tu contraseña ha sido restablecida! Ahora puedes iniciar sesión.",
103
- "noEmail": "Ya no enviamos correos de recuperación. Por favor, usa tu frase de recuperación para restaurar tu identidad. Contacta con soporte si necesitas ayuda.",
104
- "password": {
105
- "minLength": "La contraseña debe tener al menos 8 caracteres",
106
- "mismatch": "Las contraseñas no coinciden",
107
- "resetFailed": "Error al restablecer la contraseña"
108
- },
109
- "missingCode": "Falta el código",
110
- "whatsNextTitle": "¿Qué sigue?",
111
- "whatsNextBody": "Ahora puedes restablecer tu contraseña o volver para iniciar sesión con tus credenciales.",
112
- "completeSecure": "La recuperación de tu cuenta se ha completado de forma segura."
108
+ "title": "Recupera tu cuenta",
109
+ "subtitle": "Escribe tu nombre de usuario o tu email de recuperación. Enviaremos un código al email de recuperación de la cuenta.",
110
+ "identifier": {
111
+ "label": "Usuario o email",
112
+ "placeholder": "tunombre",
113
+ "required": "Escribe tu usuario o tu email."
114
+ },
115
+ "commonsNote": "¿Tu cuenta usa Commons? Recupérala en Commons con tu frase de recuperación.",
116
+ "passkey": {
117
+ "title": "Añade una passkey nueva",
118
+ "subtitle": "Para @{{username}}. Quita las passkeys perdidas después en los ajustes de seguridad de tu cuenta.",
119
+ "action": "Crear passkey"
120
+ },
121
+ "backToSignIn": "Volver a iniciar sesión"
113
122
  },
114
123
  "editProfile": {
115
124
  "title": "Editar perfil",
@@ -1617,8 +1626,7 @@
1617
1626
  "help": "Ayuda y comentarios",
1618
1627
  "signOut": "Cerrar sesión",
1619
1628
  "privacy": "Política de privacidad",
1620
- "terms": "Términos del servicio",
1621
- "identity": "Tu identidad"
1629
+ "terms": "Términos del servicio"
1622
1630
  },
1623
1631
  "accounts": {
1624
1632
  "activeAccount": {
@@ -1835,9 +1843,16 @@
1835
1843
  "openCommons": "Abrir Oxy Commons",
1836
1844
  "commonsOpenFailed": "No se pudo abrir Oxy Commons. Ábrelo tú y ve a Ajustes > Eliminar cuenta.",
1837
1845
  "elsewhereTitle": "Elimina tu cuenta donde está tu identidad",
1838
- "elsewhereMessage": "Eliminar tu cuenta necesita tu clave de identidad, y no está en este dispositivo. Abre Oxy Commons en el dispositivo que guarda tu identidad y ve a Ajustes > Eliminar cuenta, o abre {{site}} en un navegador que la guarde.",
1846
+ "elsewhereMessage": "Eliminar tu cuenta necesita tu clave de identidad, y no está en este dispositivo. Abre Oxy Commons en el dispositivo que la guarda y ve a Ajustes > Eliminar cuenta. Una cuenta con passkey se elimina en {{site}}.",
1839
1847
  "gotIt": "Entendido",
1840
1848
  "identityUnreadable": "No se pudo leer el almacén de identidad de este dispositivo. Desbloquea el dispositivo e inténtalo de nuevo."
1849
+ },
1850
+ "passkey": {
1851
+ "subtitle": "Confirma con tu passkey. @{{username}} y todo lo que contiene se eliminan para siempre.",
1852
+ "action": "Eliminar con passkey",
1853
+ "done": "Tu cuenta se ha eliminado.",
1854
+ "closeWindow": "Puedes cerrar esta ventana.",
1855
+ "commons": "Esta cuenta usa Commons: elimínala en Oxy Commons, Ajustes > Eliminar cuenta, con su clave."
1841
1856
  }
1842
1857
  },
1843
1858
  "manageAccount": {
@@ -2076,5 +2091,37 @@
2076
2091
  "allow": "Continuar a {{app}}",
2077
2092
  "deny": "Cancelar",
2078
2093
  "disclaimer": "Al continuar, {{app}} podrá iniciar sesión con tu cuenta de Oxy. Puedes gestionar las apps conectadas cuando quieras en los ajustes de tu cuenta de Oxy."
2094
+ },
2095
+ "emailCode": {
2096
+ "title": "Revisa tu email",
2097
+ "sentTo": "Hemos enviado un código de 6 dígitos a {{email}}.",
2098
+ "sentIfAccount": "Si esta cuenta tiene un email de recuperación, le hemos enviado un código de 6 dígitos.",
2099
+ "label": "Código",
2100
+ "resend": "Enviar un código nuevo",
2101
+ "resent": "Te hemos enviado un código nuevo.",
2102
+ "changeEmail": "Usar otro email",
2103
+ "errors": {
2104
+ "codeInvalid": "Ese código no es correcto o ha caducado.",
2105
+ "tooManyAttempts": "Demasiados códigos incorrectos. Pide uno nuevo.",
2106
+ "expired": "Ha pasado demasiado tiempo. Empieza de nuevo.",
2107
+ "unavailable": "Oxy no puede enviar emails ahora. Inténtalo más tarde.",
2108
+ "rateLimited": "Demasiados códigos. Inténtalo más tarde."
2109
+ }
2110
+ },
2111
+ "linkCommons": {
2112
+ "title": "Vincula Commons",
2113
+ "subtitle": "Guarda tu propia clave: vincula Commons y esta cuenta será solo tuya. Su email de recuperación se elimina y tu frase de recuperación en Commons es cómo vuelves a entrar.",
2114
+ "scan": "En tu móvil, abre Commons, elige «Tengo una cuenta de Oxy en la web» y escanea este código.",
2115
+ "waiting": "Esperando a Commons…",
2116
+ "compareTitle": "Comprueba el código",
2117
+ "compare": "Commons muestra el mismo código. Si no es así, cancela.",
2118
+ "confirm": "Sí, vincular Commons",
2119
+ "cancel": "Cancelar",
2120
+ "doneTitle": "Commons está vinculado",
2121
+ "done": "Esta cuenta ahora es de autocustodia. Su email de recuperación se ha eliminado: tu frase de recuperación en Commons es cómo vuelves a entrar.",
2122
+ "already": "Esta cuenta ya usa Commons.",
2123
+ "expired": "Este código ha caducado.",
2124
+ "renew": "Mostrar un código nuevo",
2125
+ "failed": "No se ha podido vincular Commons. Inténtalo de nuevo."
2079
2126
  }
2080
2127
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Créez votre identité dans Commons",
51
51
  "createAccount": "Créer un compte",
52
52
  "backToSignInLink": "Vous avez déjà un compte ? Connectez-vous",
53
- "webSubtitle": "Pas de mot de passe. Votre appareil crée une clé d’accès et votre compte reçoit une phrase de récupération que vous seul conservez."
53
+ "webSubtitle": "Sans mot de passe : votre appareil crée une passkey, et un e-mail de récupération vous permet de revenir si vous la perdez.",
54
+ "username": {
55
+ "label": "Nom d'utilisateur",
56
+ "placeholder": "votrenom",
57
+ "required": "Choisissez un nom d'utilisateur.",
58
+ "taken": "Ce nom d'utilisateur est déjà pris."
59
+ },
60
+ "email": {
61
+ "title": "Votre e-mail de récupération",
62
+ "subtitle": "Si vous perdez votre passkey, nous vous y envoyons un code pour revenir. Il ne sert à rien d'autre.",
63
+ "label": "E-mail",
64
+ "placeholder": "vous@exemple.com",
65
+ "invalid": "Saisissez une adresse e-mail valide."
66
+ },
67
+ "passkey": {
68
+ "title": "Créez votre passkey",
69
+ "subtitle": "Elle sert à vous connecter : empreinte, visage ou verrouillage d'écran. Rien à retenir.",
70
+ "action": "Créer la passkey"
71
+ },
72
+ "commonsInstead": "Vous voulez garder votre propre clé ? Utilisez Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "Chargement des comptes...",
@@ -225,7 +244,63 @@
225
244
  "help": "Aide et commentaires",
226
245
  "signOut": "Se déconnecter",
227
246
  "privacy": "Politique de confidentialité",
228
- "terms": "Conditions d'utilisation",
229
- "identity": "Votre identité"
247
+ "terms": "Conditions d'utilisation"
248
+ },
249
+ "recover": {
250
+ "title": "Récupérez votre compte",
251
+ "subtitle": "Saisissez votre nom d'utilisateur ou votre e-mail de récupération. Nous enverrons un code à l'e-mail de récupération du compte.",
252
+ "identifier": {
253
+ "label": "Nom d'utilisateur ou e-mail",
254
+ "placeholder": "votrenom",
255
+ "required": "Saisissez votre nom d'utilisateur ou votre e-mail."
256
+ },
257
+ "commonsNote": "Votre compte utilise Commons ? Récupérez-le dans Commons avec votre phrase de récupération.",
258
+ "passkey": {
259
+ "title": "Ajoutez une nouvelle passkey",
260
+ "subtitle": "Pour @{{username}}. Retirez les passkeys perdues plus tard dans les réglages de sécurité de votre compte.",
261
+ "action": "Créer la passkey"
262
+ },
263
+ "backToSignIn": "Revenir à la connexion"
264
+ },
265
+ "emailCode": {
266
+ "title": "Consultez vos e-mails",
267
+ "sentTo": "Nous avons envoyé un code à 6 chiffres à {{email}}.",
268
+ "sentIfAccount": "Si ce compte a un e-mail de récupération, nous y avons envoyé un code à 6 chiffres.",
269
+ "label": "Code",
270
+ "resend": "Envoyer un nouveau code",
271
+ "resent": "Nous avons envoyé un nouveau code.",
272
+ "changeEmail": "Utiliser un autre e-mail",
273
+ "errors": {
274
+ "codeInvalid": "Ce code n'est pas bon, ou il a expiré.",
275
+ "tooManyAttempts": "Trop de codes erronés. Demandez-en un nouveau.",
276
+ "expired": "Trop de temps a passé. Recommencez.",
277
+ "unavailable": "Oxy ne peut pas envoyer d'e-mails pour le moment. Réessayez plus tard.",
278
+ "rateLimited": "Trop de codes. Réessayez plus tard."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Confirmez avec votre passkey. @{{username}} et tout son contenu sont supprimés définitivement.",
284
+ "action": "Supprimer avec la passkey",
285
+ "done": "Votre compte est supprimé.",
286
+ "closeWindow": "Vous pouvez fermer cette fenêtre.",
287
+ "commons": "Ce compte utilise Commons : supprimez-le dans Oxy Commons, Réglages > Supprimer le compte, avec sa clé."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Associer Commons",
292
+ "subtitle": "Gardez votre propre clé : associez Commons et ce compte n'appartient qu'à vous. Son e-mail de récupération est supprimé, et votre phrase de récupération dans Commons vous permet d'y revenir.",
293
+ "scan": "Sur votre téléphone, ouvrez Commons, choisissez « J’ai un compte Oxy sur le web » et scannez ce code.",
294
+ "waiting": "En attente de Commons…",
295
+ "compareTitle": "Vérifiez le code",
296
+ "compare": "Commons affiche le même code. Sinon, annulez.",
297
+ "confirm": "Oui, associer Commons",
298
+ "cancel": "Annuler",
299
+ "doneTitle": "Commons est associé",
300
+ "done": "Ce compte est désormais en autogarde. Son e-mail de récupération a été supprimé : votre phrase de récupération dans Commons vous permet d’y revenir.",
301
+ "already": "Ce compte utilise déjà Commons.",
302
+ "expired": "Ce code a expiré.",
303
+ "renew": "Afficher un nouveau code",
304
+ "failed": "Commons n'a pas pu être associé. Réessayez."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Crea la tua identità in Commons",
51
51
  "createAccount": "Crea account",
52
52
  "backToSignInLink": "Hai già un account? Accedi",
53
- "webSubtitle": "Nessuna password. Il tuo dispositivo crea una passkey e il tuo account riceve una frase di recupero che conservi solo tu."
53
+ "webSubtitle": "Niente password: il tuo dispositivo crea una passkey e un'email di recupero ti fa rientrare se la perdi.",
54
+ "username": {
55
+ "label": "Nome utente",
56
+ "placeholder": "iltuonome",
57
+ "required": "Scegli un nome utente.",
58
+ "taken": "Questo nome utente è già in uso."
59
+ },
60
+ "email": {
61
+ "title": "La tua email di recupero",
62
+ "subtitle": "Se perdi la passkey, ti mandiamo qui un codice per rientrare. Non viene usata per nient’altro.",
63
+ "label": "Email",
64
+ "placeholder": "tu@esempio.it",
65
+ "invalid": "Inserisci un'email valida."
66
+ },
67
+ "passkey": {
68
+ "title": "Crea la tua passkey",
69
+ "subtitle": "La usi per accedere: impronta, volto o blocco schermo. Niente da ricordare.",
70
+ "action": "Crea passkey"
71
+ },
72
+ "commonsInstead": "Vuoi tenere la tua chiave? Usa Commons"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "Caricamento account...",
@@ -225,7 +244,63 @@
225
244
  "help": "Aiuto e feedback",
226
245
  "signOut": "Esci",
227
246
  "privacy": "Informativa sulla privacy",
228
- "terms": "Termini di servizio",
229
- "identity": "La tua identità"
247
+ "terms": "Termini di servizio"
248
+ },
249
+ "recover": {
250
+ "title": "Recupera il tuo account",
251
+ "subtitle": "Inserisci il nome utente o l'email di recupero. Invieremo un codice all'email di recupero dell'account.",
252
+ "identifier": {
253
+ "label": "Nome utente o email",
254
+ "placeholder": "iltuonome",
255
+ "required": "Inserisci il nome utente o l’email."
256
+ },
257
+ "commonsNote": "Il tuo account usa Commons? Recuperalo in Commons con la frase di recupero.",
258
+ "passkey": {
259
+ "title": "Aggiungi una nuova passkey",
260
+ "subtitle": "Per @{{username}}. Rimuovi più tardi le passkey perse nelle impostazioni di sicurezza dell'account.",
261
+ "action": "Crea passkey"
262
+ },
263
+ "backToSignIn": "Torna all'accesso"
264
+ },
265
+ "emailCode": {
266
+ "title": "Controlla la tua email",
267
+ "sentTo": "Abbiamo inviato un codice di 6 cifre a {{email}}.",
268
+ "sentIfAccount": "Se questo account ha un'email di recupero, le abbiamo inviato un codice di 6 cifre.",
269
+ "label": "Codice",
270
+ "resend": "Invia un nuovo codice",
271
+ "resent": "Abbiamo inviato un nuovo codice.",
272
+ "changeEmail": "Usa un'altra email",
273
+ "errors": {
274
+ "codeInvalid": "Il codice non è corretto o è scaduto.",
275
+ "tooManyAttempts": "Troppi codici errati. Chiedine uno nuovo.",
276
+ "expired": "È passato troppo tempo. Ricomincia.",
277
+ "unavailable": "Oxy non può inviare email ora. Riprova più tardi.",
278
+ "rateLimited": "Troppi codici. Riprova più tardi."
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "Conferma con la tua passkey. @{{username}} e tutto il suo contenuto vengono eliminati per sempre.",
284
+ "action": "Elimina con passkey",
285
+ "done": "Il tuo account è stato eliminato.",
286
+ "closeWindow": "Puoi chiudere questa finestra.",
287
+ "commons": "Questo account usa Commons: eliminalo in Oxy Commons, Impostazioni > Elimina account, con la sua chiave."
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Collega Commons",
292
+ "subtitle": "Tieni la tua chiave: collega Commons e questo account sarà solo tuo. La sua email di recupero viene eliminata e la frase di recupero in Commons è il modo per rientrare.",
293
+ "scan": "Sul telefono, apri Commons, scegli «Ho un account Oxy sul web» e scansiona questo codice.",
294
+ "waiting": "In attesa di Commons…",
295
+ "compareTitle": "Controlla il codice",
296
+ "compare": "Commons mostra lo stesso codice. Se non è così, annulla.",
297
+ "confirm": "Sì, collega Commons",
298
+ "cancel": "Annulla",
299
+ "doneTitle": "Commons è collegato",
300
+ "done": "Questo account ora è in autocustodia. La sua email di recupero è stata eliminata: la frase di recupero in Commons è il modo per rientrare.",
301
+ "already": "Questo account usa già Commons.",
302
+ "expired": "Questo codice è scaduto.",
303
+ "renew": "Mostra un nuovo codice",
304
+ "failed": "Non è stato possibile collegare Commons. Riprova."
230
305
  }
231
306
  }
@@ -50,7 +50,26 @@
50
50
  "createInCommons": "Commonsであなたのアイデンティティを作成",
51
51
  "createAccount": "アカウントを作成",
52
52
  "backToSignInLink": "すでにアカウントをお持ちですか?サインイン",
53
- "webSubtitle": "パスワードは不要です。デバイスがパスキーを作成し、アカウントにはあなただけが保管する復元フレーズが付きます。"
53
+ "webSubtitle": "パスワードは不要です。デバイスがパスキーを作成し、なくした場合は復旧用メールで戻れます。",
54
+ "username": {
55
+ "label": "ユーザー名",
56
+ "placeholder": "yourname",
57
+ "required": "ユーザー名を選んでください。",
58
+ "taken": "そのユーザー名は使われています。"
59
+ },
60
+ "email": {
61
+ "title": "復旧用メール",
62
+ "subtitle": "パスキーをなくしたとき、戻るためのコードをここに送ります。それ以外には使いません。",
63
+ "label": "メール",
64
+ "placeholder": "you@example.com",
65
+ "invalid": "有効なメールアドレスを入力してください。"
66
+ },
67
+ "passkey": {
68
+ "title": "パスキーを作成",
69
+ "subtitle": "指紋、顔、画面ロックでサインインします。覚えることは何もありません。",
70
+ "action": "パスキーを作成"
71
+ },
72
+ "commonsInstead": "自分の鍵を持ちたいですか? Commons を使う"
54
73
  },
55
74
  "accountSwitcher": {
56
75
  "loading": "アカウントを読み込み中...",
@@ -225,7 +244,63 @@
225
244
  "help": "ヘルプとフィードバック",
226
245
  "signOut": "サインアウト",
227
246
  "privacy": "プライバシーポリシー",
228
- "terms": "利用規約",
229
- "identity": "あなたのアイデンティティ"
247
+ "terms": "利用規約"
248
+ },
249
+ "recover": {
250
+ "title": "アカウントを復旧",
251
+ "subtitle": "ユーザー名か復旧用メールを入力してください。アカウントの復旧用メールにコードを送ります。",
252
+ "identifier": {
253
+ "label": "ユーザー名またはメール",
254
+ "placeholder": "yourname",
255
+ "required": "ユーザー名かメールを入力してください。"
256
+ },
257
+ "commonsNote": "Commons を使うアカウントですか? Commons で復旧フレーズを使って復旧してください。",
258
+ "passkey": {
259
+ "title": "新しいパスキーを追加",
260
+ "subtitle": "@{{username}} 用。なくしたパスキーは後でアカウントのセキュリティ設定から削除できます。",
261
+ "action": "パスキーを作成"
262
+ },
263
+ "backToSignIn": "サインインに戻る"
264
+ },
265
+ "emailCode": {
266
+ "title": "メールを確認",
267
+ "sentTo": "{{email}} に6桁のコードを送りました。",
268
+ "sentIfAccount": "このアカウントに復旧用メールがあれば、6桁のコードを送りました。",
269
+ "label": "コード",
270
+ "resend": "新しいコードを送る",
271
+ "resent": "新しいコードを送りました。",
272
+ "changeEmail": "別のメールを使う",
273
+ "errors": {
274
+ "codeInvalid": "コードが正しくないか、有効期限が切れています。",
275
+ "tooManyAttempts": "間違ったコードが多すぎます。新しいコードを請求してください。",
276
+ "expired": "時間がかかりすぎました。最初からやり直してください。",
277
+ "unavailable": "現在 Oxy はメールを送信できません。後でもう一度お試しください。",
278
+ "rateLimited": "コードが多すぎます。後でもう一度お試しください。"
279
+ }
280
+ },
281
+ "deleteAccount": {
282
+ "passkey": {
283
+ "subtitle": "パスキーで確認してください。@{{username}} とそのすべてが完全に削除されます。",
284
+ "action": "パスキーで削除",
285
+ "done": "アカウントを削除しました。",
286
+ "closeWindow": "このウィンドウは閉じてかまいません。",
287
+ "commons": "このアカウントは Commons を使っています。Oxy Commons の 設定 > アカウントを削除 から、その鍵で削除してください。"
288
+ }
289
+ },
290
+ "linkCommons": {
291
+ "title": "Commons をリンク",
292
+ "subtitle": "自分の鍵を持ちましょう。Commons をリンクすると、このアカウントはあなただけのものになります。復旧用メールは削除され、Commons の復旧フレーズで戻れるようになります。",
293
+ "scan": "スマートフォンで Commons を開き、「Web に Oxy アカウントがあります」を選んで、このコードをスキャンしてください。",
294
+ "waiting": "Commons を待っています…",
295
+ "compareTitle": "コードを確認",
296
+ "compare": "Commons に同じコードが表示されます。違う場合はキャンセルしてください。",
297
+ "confirm": "はい、Commons をリンク",
298
+ "cancel": "キャンセル",
299
+ "doneTitle": "Commons をリンクしました",
300
+ "done": "このアカウントは自己管理になりました。復旧用メールは削除されました。Commons の復旧フレーズで戻れます。",
301
+ "already": "このアカウントはすでに Commons を使っています。",
302
+ "expired": "このコードは期限切れです。",
303
+ "renew": "新しいコードを表示",
304
+ "failed": "Commons をリンクできませんでした。もう一度お試しください。"
230
305
  }
231
306
  }