@oxy.so/core 7.7.0 → 7.8.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.
- package/dist/cjs/api/auth.js +1 -0
- package/dist/cjs/i18n/locales/ar-SA.js +3 -0
- package/dist/cjs/i18n/locales/bn-BD.js +3 -0
- package/dist/cjs/i18n/locales/ca-ES.js +3 -0
- package/dist/cjs/i18n/locales/de-DE.js +3 -0
- package/dist/cjs/i18n/locales/en-US.js +3 -0
- package/dist/cjs/i18n/locales/es-ES.js +3 -0
- package/dist/cjs/i18n/locales/fr-FR.js +3 -0
- package/dist/cjs/i18n/locales/hi-IN.js +3 -0
- package/dist/cjs/i18n/locales/id-ID.js +3 -0
- package/dist/cjs/i18n/locales/it-IT.js +3 -0
- package/dist/cjs/i18n/locales/ja-JP.js +3 -0
- package/dist/cjs/i18n/locales/ko-KR.js +3 -0
- package/dist/cjs/i18n/locales/pt-PT.js +3 -0
- package/dist/cjs/i18n/locales/ru-RU.js +3 -0
- package/dist/cjs/i18n/locales/tr-TR.js +3 -0
- package/dist/cjs/i18n/locales/zh-CN.js +3 -0
- package/dist/cjs/session/accountDialogController.js +4 -1
- package/dist/esm/api/auth.js +1 -0
- package/dist/esm/i18n/locales/ar-SA.js +3 -0
- package/dist/esm/i18n/locales/bn-BD.js +3 -0
- package/dist/esm/i18n/locales/ca-ES.js +3 -0
- package/dist/esm/i18n/locales/de-DE.js +3 -0
- package/dist/esm/i18n/locales/en-US.js +3 -0
- package/dist/esm/i18n/locales/es-ES.js +3 -0
- package/dist/esm/i18n/locales/fr-FR.js +3 -0
- package/dist/esm/i18n/locales/hi-IN.js +3 -0
- package/dist/esm/i18n/locales/id-ID.js +3 -0
- package/dist/esm/i18n/locales/it-IT.js +3 -0
- package/dist/esm/i18n/locales/ja-JP.js +3 -0
- package/dist/esm/i18n/locales/ko-KR.js +3 -0
- package/dist/esm/i18n/locales/pt-PT.js +3 -0
- package/dist/esm/i18n/locales/ru-RU.js +3 -0
- package/dist/esm/i18n/locales/tr-TR.js +3 -0
- package/dist/esm/i18n/locales/zh-CN.js +3 -0
- package/dist/esm/session/accountDialogController.js +4 -1
- package/dist/types/api/auth.d.ts +6 -0
- package/dist/types/i18n/locales/ar-SA.d.ts +3 -0
- package/dist/types/i18n/locales/bn-BD.d.ts +3 -0
- package/dist/types/i18n/locales/ca-ES.d.ts +3 -0
- package/dist/types/i18n/locales/de-DE.d.ts +3 -0
- package/dist/types/i18n/locales/en-US.d.ts +3 -0
- package/dist/types/i18n/locales/es-ES.d.ts +3 -0
- package/dist/types/i18n/locales/fr-FR.d.ts +3 -0
- package/dist/types/i18n/locales/hi-IN.d.ts +3 -0
- package/dist/types/i18n/locales/id-ID.d.ts +3 -0
- package/dist/types/i18n/locales/it-IT.d.ts +3 -0
- package/dist/types/i18n/locales/ja-JP.d.ts +3 -0
- package/dist/types/i18n/locales/ko-KR.d.ts +3 -0
- package/dist/types/i18n/locales/pt-PT.d.ts +3 -0
- package/dist/types/i18n/locales/ru-RU.d.ts +3 -0
- package/dist/types/i18n/locales/tr-TR.d.ts +3 -0
- package/dist/types/i18n/locales/zh-CN.d.ts +3 -0
- package/dist/types/session/accountDialogController.d.ts +5 -0
- package/package.json +1 -1
- package/src/api/auth.ts +8 -0
- package/src/i18n/locales/ar-SA.ts +3 -0
- package/src/i18n/locales/bn-BD.ts +3 -0
- package/src/i18n/locales/ca-ES.ts +3 -0
- package/src/i18n/locales/de-DE.ts +3 -0
- package/src/i18n/locales/en-US.ts +3 -0
- package/src/i18n/locales/es-ES.ts +3 -0
- package/src/i18n/locales/fr-FR.ts +3 -0
- package/src/i18n/locales/hi-IN.ts +3 -0
- package/src/i18n/locales/id-ID.ts +3 -0
- package/src/i18n/locales/it-IT.ts +3 -0
- package/src/i18n/locales/ja-JP.ts +3 -0
- package/src/i18n/locales/ko-KR.ts +3 -0
- package/src/i18n/locales/pt-PT.ts +3 -0
- package/src/i18n/locales/ru-RU.ts +3 -0
- package/src/i18n/locales/tr-TR.ts +3 -0
- package/src/i18n/locales/zh-CN.ts +3 -0
- package/src/session/accountDialogController.ts +9 -0
package/dist/cjs/api/auth.js
CHANGED
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'امسح باستخدام Commons لتسجيل الدخول',
|
|
21
21
|
renew: 'عرض رمز جديد',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'تأكد من أن هاتفك يعرض هذا الرمز',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'محاولات كثيرة جدًا. حاول مرة أخرى بعد {{seconds}} ث.',
|
|
25
28
|
invalidCredentials: 'اسم المستخدم أو البريد الإلكتروني أو كلمة المرور غير صحيح. إذا كانت عدة حسابات تستخدم هذا البريد الإلكتروني، فسجّل الدخول باسم المستخدم.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'সাইন ইন করতে Commons দিয়ে স্ক্যান করুন',
|
|
21
21
|
renew: 'নতুন কোড দেখান',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'দেখে নিন আপনার ফোনে এই কোডটিই দেখাচ্ছে',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'অনেকবার চেষ্টা করা হয়েছে। {{seconds}} সেকেন্ড পরে আবার চেষ্টা করুন।',
|
|
25
28
|
invalidCredentials: 'ইউজারনেম, ইমেইল বা পাসওয়ার্ড সঠিক নয়। এই ইমেইলে একাধিক অ্যাকাউন্ট থাকলে ইউজারনেম দিয়ে সাইন ইন করুন।',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Escaneja amb Commons per entrar',
|
|
21
21
|
renew: 'Mostra un codi nou',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Comprova que el mòbil mostra aquest codi',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Massa intents. Torna-ho a provar d’aquí a {{seconds}} s.',
|
|
25
28
|
invalidCredentials: "El nom d'usuari, el correu o la contrasenya no són correctes. Si diversos comptes fan servir aquest correu, entra amb el nom d'usuari.",
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Mit Commons scannen, um dich anzumelden',
|
|
21
21
|
renew: 'Neuen Code anzeigen',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Prüfe, ob dein Smartphone diesen Code anzeigt',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Zu viele Versuche. Versuche es in {{seconds}} s erneut.',
|
|
25
28
|
invalidCredentials: 'Benutzername, E-Mail oder Passwort stimmen nicht. Wenn mehrere Konten diese E-Mail-Adresse nutzen, melde dich mit dem Benutzernamen an.',
|
|
@@ -171,6 +171,9 @@ const dict = {
|
|
|
171
171
|
caption: 'Scan with Commons to sign in',
|
|
172
172
|
renew: 'Show a new code',
|
|
173
173
|
},
|
|
174
|
+
device: {
|
|
175
|
+
codeHint: 'Check that your phone shows this code',
|
|
176
|
+
},
|
|
174
177
|
terms: {
|
|
175
178
|
before: 'By continuing, you agree to our',
|
|
176
179
|
termsLink: 'Terms of Service',
|
|
@@ -171,6 +171,9 @@ const dict = {
|
|
|
171
171
|
caption: 'Escanea con Commons para entrar',
|
|
172
172
|
renew: 'Mostrar un código nuevo',
|
|
173
173
|
},
|
|
174
|
+
device: {
|
|
175
|
+
codeHint: 'Comprueba que tu móvil muestra este código',
|
|
176
|
+
},
|
|
174
177
|
terms: {
|
|
175
178
|
before: 'Al continuar, aceptas nuestros',
|
|
176
179
|
termsLink: 'Términos del servicio',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Scannez avec Commons pour vous connecter',
|
|
21
21
|
renew: 'Afficher un nouveau code',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Vérifiez que votre téléphone affiche ce code',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Trop de tentatives. Réessayez dans {{seconds}} s.',
|
|
25
28
|
invalidCredentials: "Le nom d'utilisateur, l'e-mail ou le mot de passe est incorrect. Si plusieurs comptes utilisent cet e-mail, connectez-vous avec le nom d'utilisateur.",
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'साइन इन करने के लिए Commons से स्कैन करें',
|
|
21
21
|
renew: 'नया कोड दिखाएं',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'जाँचें कि आपके फ़ोन पर यही कोड दिख रहा है',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'बहुत ज़्यादा कोशिशें हो गईं। {{seconds}} सेकंड बाद फिर कोशिश करें।',
|
|
25
28
|
invalidCredentials: 'यूज़रनेम, ईमेल या पासवर्ड सही नहीं है। अगर इस ईमेल से कई अकाउंट जुड़े हैं, तो यूज़रनेम से साइन इन करें।',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Pindai dengan Commons untuk masuk',
|
|
21
21
|
renew: 'Tampilkan kode baru',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Pastikan ponsel Anda menampilkan kode ini',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Terlalu banyak percobaan. Coba lagi dalam {{seconds}} dtk.',
|
|
25
28
|
invalidCredentials: 'Nama pengguna, email, atau sandi tidak benar. Jika beberapa akun menggunakan email ini, masuklah dengan nama pengguna.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Scansiona con Commons per accedere',
|
|
21
21
|
renew: 'Mostra un nuovo codice',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Controlla che il telefono mostri questo codice',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Troppi tentativi. Riprova tra {{seconds}} s.',
|
|
25
28
|
invalidCredentials: 'Nome utente, email o password non corretti. Se più account usano questa email, accedi con il nome utente.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Commons でスキャンしてサインイン',
|
|
21
21
|
renew: '新しいコードを表示',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'スマートフォンに同じコードが表示されていることを確認してください',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: '試行回数が多すぎます。{{seconds}} 秒後にもう一度お試しください。',
|
|
25
28
|
invalidCredentials: 'ユーザー名、メールアドレス、またはパスワードが正しくありません。 複数のアカウントがこのメールアドレスを使っている場合は、ユーザー名でサインインしてください。',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Commons로 스캔하여 로그인',
|
|
21
21
|
renew: '새 코드 표시',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: '휴대폰에 이 코드가 표시되는지 확인하세요',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: '시도 횟수가 너무 많습니다. {{seconds}}초 후에 다시 시도하세요.',
|
|
25
28
|
invalidCredentials: '사용자 이름, 이메일 또는 비밀번호가 올바르지 않습니다. 여러 계정이 이 이메일을 사용하면 사용자 이름으로 로그인하세요.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Lê com o Commons para entrar',
|
|
21
21
|
renew: 'Mostrar um código novo',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Confirme que o telemóvel mostra este código',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Demasiadas tentativas. Tenta novamente dentro de {{seconds}} s.',
|
|
25
28
|
invalidCredentials: 'O nome de utilizador, o email ou a palavra-passe não estão certos. Se várias contas usam este email, entra com o nome de utilizador.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Отсканируйте в Commons, чтобы войти',
|
|
21
21
|
renew: 'Показать новый код',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Убедитесь, что на телефоне тот же код',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Слишком много попыток. Повторите через {{seconds}} с.',
|
|
25
28
|
invalidCredentials: 'Неверное имя пользователя, адрес почты или пароль. Если с этим адресом связано несколько аккаунтов, войдите по имени пользователя.',
|
|
@@ -20,6 +20,9 @@ const dict = {
|
|
|
20
20
|
caption: 'Giriş yapmak için Commons ile tarayın',
|
|
21
21
|
renew: 'Yeni kod göster',
|
|
22
22
|
},
|
|
23
|
+
device: {
|
|
24
|
+
codeHint: 'Telefonunda bu kodun göründüğünü kontrol et',
|
|
25
|
+
},
|
|
23
26
|
errors: {
|
|
24
27
|
rateLimited: 'Çok fazla deneme yapıldı. {{seconds}} sn sonra tekrar deneyin.',
|
|
25
28
|
invalidCredentials: 'Kullanıcı adı, e-posta veya şifre yanlış. Bu e-postayı birden fazla hesap kullanıyorsa kullanıcı adıyla giriş yapın.',
|
|
@@ -108,6 +108,7 @@ const IDLE_SIGN_IN_FACTS = {
|
|
|
108
108
|
phase: 'idle',
|
|
109
109
|
authorizeCode: null,
|
|
110
110
|
qrPayload: null,
|
|
111
|
+
approvalUrl: null,
|
|
111
112
|
expiresAt: null,
|
|
112
113
|
error: null,
|
|
113
114
|
failure: null,
|
|
@@ -753,6 +754,7 @@ class AccountDialogController {
|
|
|
753
754
|
phase: 'waiting',
|
|
754
755
|
authorizeCode: handle.authorizeCode,
|
|
755
756
|
qrPayload: handle.qrPayload,
|
|
757
|
+
approvalUrl: handle.approvalUrl,
|
|
756
758
|
expiresAt: handle.expiresAt,
|
|
757
759
|
// No route yet: the surface shows "Preparing request" until the primary
|
|
758
760
|
// route is resolved below. It is never guessed in the meantime.
|
|
@@ -1249,11 +1251,12 @@ class AccountDialogController {
|
|
|
1249
1251
|
}
|
|
1250
1252
|
/** Update a subset of the device-flow facts, re-deriving `progress`. */
|
|
1251
1253
|
patchSignIn(patch) {
|
|
1252
|
-
const { phase, authorizeCode, qrPayload, expiresAt, error, failure, route, routeFailed, pushSentAt, openedAt, } = this.signIn;
|
|
1254
|
+
const { phase, authorizeCode, qrPayload, approvalUrl, expiresAt, error, failure, route, routeFailed, pushSentAt, openedAt, } = this.signIn;
|
|
1253
1255
|
this.setSignIn({
|
|
1254
1256
|
phase,
|
|
1255
1257
|
authorizeCode,
|
|
1256
1258
|
qrPayload,
|
|
1259
|
+
approvalUrl,
|
|
1257
1260
|
expiresAt,
|
|
1258
1261
|
error,
|
|
1259
1262
|
failure,
|
package/dist/esm/api/auth.js
CHANGED
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'امسح باستخدام Commons لتسجيل الدخول',
|
|
19
19
|
renew: 'عرض رمز جديد',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'تأكد من أن هاتفك يعرض هذا الرمز',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'محاولات كثيرة جدًا. حاول مرة أخرى بعد {{seconds}} ث.',
|
|
23
26
|
invalidCredentials: 'اسم المستخدم أو البريد الإلكتروني أو كلمة المرور غير صحيح. إذا كانت عدة حسابات تستخدم هذا البريد الإلكتروني، فسجّل الدخول باسم المستخدم.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'সাইন ইন করতে Commons দিয়ে স্ক্যান করুন',
|
|
19
19
|
renew: 'নতুন কোড দেখান',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'দেখে নিন আপনার ফোনে এই কোডটিই দেখাচ্ছে',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'অনেকবার চেষ্টা করা হয়েছে। {{seconds}} সেকেন্ড পরে আবার চেষ্টা করুন।',
|
|
23
26
|
invalidCredentials: 'ইউজারনেম, ইমেইল বা পাসওয়ার্ড সঠিক নয়। এই ইমেইলে একাধিক অ্যাকাউন্ট থাকলে ইউজারনেম দিয়ে সাইন ইন করুন।',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Escaneja amb Commons per entrar',
|
|
19
19
|
renew: 'Mostra un codi nou',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Comprova que el mòbil mostra aquest codi',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Massa intents. Torna-ho a provar d’aquí a {{seconds}} s.',
|
|
23
26
|
invalidCredentials: "El nom d'usuari, el correu o la contrasenya no són correctes. Si diversos comptes fan servir aquest correu, entra amb el nom d'usuari.",
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Mit Commons scannen, um dich anzumelden',
|
|
19
19
|
renew: 'Neuen Code anzeigen',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Prüfe, ob dein Smartphone diesen Code anzeigt',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Zu viele Versuche. Versuche es in {{seconds}} s erneut.',
|
|
23
26
|
invalidCredentials: 'Benutzername, E-Mail oder Passwort stimmen nicht. Wenn mehrere Konten diese E-Mail-Adresse nutzen, melde dich mit dem Benutzernamen an.',
|
|
@@ -169,6 +169,9 @@ const dict = {
|
|
|
169
169
|
caption: 'Scan with Commons to sign in',
|
|
170
170
|
renew: 'Show a new code',
|
|
171
171
|
},
|
|
172
|
+
device: {
|
|
173
|
+
codeHint: 'Check that your phone shows this code',
|
|
174
|
+
},
|
|
172
175
|
terms: {
|
|
173
176
|
before: 'By continuing, you agree to our',
|
|
174
177
|
termsLink: 'Terms of Service',
|
|
@@ -169,6 +169,9 @@ const dict = {
|
|
|
169
169
|
caption: 'Escanea con Commons para entrar',
|
|
170
170
|
renew: 'Mostrar un código nuevo',
|
|
171
171
|
},
|
|
172
|
+
device: {
|
|
173
|
+
codeHint: 'Comprueba que tu móvil muestra este código',
|
|
174
|
+
},
|
|
172
175
|
terms: {
|
|
173
176
|
before: 'Al continuar, aceptas nuestros',
|
|
174
177
|
termsLink: 'Términos del servicio',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Scannez avec Commons pour vous connecter',
|
|
19
19
|
renew: 'Afficher un nouveau code',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Vérifiez que votre téléphone affiche ce code',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Trop de tentatives. Réessayez dans {{seconds}} s.',
|
|
23
26
|
invalidCredentials: "Le nom d'utilisateur, l'e-mail ou le mot de passe est incorrect. Si plusieurs comptes utilisent cet e-mail, connectez-vous avec le nom d'utilisateur.",
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'साइन इन करने के लिए Commons से स्कैन करें',
|
|
19
19
|
renew: 'नया कोड दिखाएं',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'जाँचें कि आपके फ़ोन पर यही कोड दिख रहा है',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'बहुत ज़्यादा कोशिशें हो गईं। {{seconds}} सेकंड बाद फिर कोशिश करें।',
|
|
23
26
|
invalidCredentials: 'यूज़रनेम, ईमेल या पासवर्ड सही नहीं है। अगर इस ईमेल से कई अकाउंट जुड़े हैं, तो यूज़रनेम से साइन इन करें।',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Pindai dengan Commons untuk masuk',
|
|
19
19
|
renew: 'Tampilkan kode baru',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Pastikan ponsel Anda menampilkan kode ini',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Terlalu banyak percobaan. Coba lagi dalam {{seconds}} dtk.',
|
|
23
26
|
invalidCredentials: 'Nama pengguna, email, atau sandi tidak benar. Jika beberapa akun menggunakan email ini, masuklah dengan nama pengguna.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Scansiona con Commons per accedere',
|
|
19
19
|
renew: 'Mostra un nuovo codice',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Controlla che il telefono mostri questo codice',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Troppi tentativi. Riprova tra {{seconds}} s.',
|
|
23
26
|
invalidCredentials: 'Nome utente, email o password non corretti. Se più account usano questa email, accedi con il nome utente.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Commons でスキャンしてサインイン',
|
|
19
19
|
renew: '新しいコードを表示',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'スマートフォンに同じコードが表示されていることを確認してください',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: '試行回数が多すぎます。{{seconds}} 秒後にもう一度お試しください。',
|
|
23
26
|
invalidCredentials: 'ユーザー名、メールアドレス、またはパスワードが正しくありません。 複数のアカウントがこのメールアドレスを使っている場合は、ユーザー名でサインインしてください。',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Commons로 스캔하여 로그인',
|
|
19
19
|
renew: '새 코드 표시',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: '휴대폰에 이 코드가 표시되는지 확인하세요',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: '시도 횟수가 너무 많습니다. {{seconds}}초 후에 다시 시도하세요.',
|
|
23
26
|
invalidCredentials: '사용자 이름, 이메일 또는 비밀번호가 올바르지 않습니다. 여러 계정이 이 이메일을 사용하면 사용자 이름으로 로그인하세요.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Lê com o Commons para entrar',
|
|
19
19
|
renew: 'Mostrar um código novo',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Confirme que o telemóvel mostra este código',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Demasiadas tentativas. Tenta novamente dentro de {{seconds}} s.',
|
|
23
26
|
invalidCredentials: 'O nome de utilizador, o email ou a palavra-passe não estão certos. Se várias contas usam este email, entra com o nome de utilizador.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Отсканируйте в Commons, чтобы войти',
|
|
19
19
|
renew: 'Показать новый код',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Убедитесь, что на телефоне тот же код',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Слишком много попыток. Повторите через {{seconds}} с.',
|
|
23
26
|
invalidCredentials: 'Неверное имя пользователя, адрес почты или пароль. Если с этим адресом связано несколько аккаунтов, войдите по имени пользователя.',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Giriş yapmak için Commons ile tarayın',
|
|
19
19
|
renew: 'Yeni kod göster',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Telefonunda bu kodun göründüğünü kontrol et',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Çok fazla deneme yapıldı. {{seconds}} sn sonra tekrar deneyin.',
|
|
23
26
|
invalidCredentials: 'Kullanıcı adı, e-posta veya şifre yanlış. Bu e-postayı birden fazla hesap kullanıyorsa kullanıcı adıyla giriş yapın.',
|
|
@@ -103,6 +103,7 @@ const IDLE_SIGN_IN_FACTS = {
|
|
|
103
103
|
phase: 'idle',
|
|
104
104
|
authorizeCode: null,
|
|
105
105
|
qrPayload: null,
|
|
106
|
+
approvalUrl: null,
|
|
106
107
|
expiresAt: null,
|
|
107
108
|
error: null,
|
|
108
109
|
failure: null,
|
|
@@ -748,6 +749,7 @@ export class AccountDialogController {
|
|
|
748
749
|
phase: 'waiting',
|
|
749
750
|
authorizeCode: handle.authorizeCode,
|
|
750
751
|
qrPayload: handle.qrPayload,
|
|
752
|
+
approvalUrl: handle.approvalUrl,
|
|
751
753
|
expiresAt: handle.expiresAt,
|
|
752
754
|
// No route yet: the surface shows "Preparing request" until the primary
|
|
753
755
|
// route is resolved below. It is never guessed in the meantime.
|
|
@@ -1244,11 +1246,12 @@ export class AccountDialogController {
|
|
|
1244
1246
|
}
|
|
1245
1247
|
/** Update a subset of the device-flow facts, re-deriving `progress`. */
|
|
1246
1248
|
patchSignIn(patch) {
|
|
1247
|
-
const { phase, authorizeCode, qrPayload, expiresAt, error, failure, route, routeFailed, pushSentAt, openedAt, } = this.signIn;
|
|
1249
|
+
const { phase, authorizeCode, qrPayload, approvalUrl, expiresAt, error, failure, route, routeFailed, pushSentAt, openedAt, } = this.signIn;
|
|
1248
1250
|
this.setSignIn({
|
|
1249
1251
|
phase,
|
|
1250
1252
|
authorizeCode,
|
|
1251
1253
|
qrPayload,
|
|
1254
|
+
approvalUrl,
|
|
1252
1255
|
expiresAt,
|
|
1253
1256
|
error,
|
|
1254
1257
|
failure,
|
package/dist/types/api/auth.d.ts
CHANGED
|
@@ -148,6 +148,12 @@ export interface CommonsSignInHandle {
|
|
|
148
148
|
authorizeCode: string;
|
|
149
149
|
/** Ready-to-render deep-link / universal-link string (`oxycommons://approve?...`). */
|
|
150
150
|
qrPayload: string;
|
|
151
|
+
/**
|
|
152
|
+
* The same request as the IdP's https approval page
|
|
153
|
+
* (`https://auth.oxy.so/device?user_code=…`): what a device with no keyboard
|
|
154
|
+
* shows as its QR, since any phone camera opens it, with or without Commons.
|
|
155
|
+
*/
|
|
156
|
+
approvalUrl: string;
|
|
151
157
|
/** Server-authoritative expiry (epoch milliseconds). */
|
|
152
158
|
expiresAt: number;
|
|
153
159
|
/** Session lifecycle status as reported by the server (e.g. `'pending'`). */
|
|
@@ -137,6 +137,11 @@ export interface SignInFlowState {
|
|
|
137
137
|
* as a QR (cross-device) and open as a deep link (same-device), or `null`.
|
|
138
138
|
*/
|
|
139
139
|
qrPayload: string | null;
|
|
140
|
+
/**
|
|
141
|
+
* The request's https approval page (`https://auth.oxy.so/device?user_code=…`),
|
|
142
|
+
* or `null`: the QR a device with no keyboard shows, for any phone camera.
|
|
143
|
+
*/
|
|
144
|
+
approvalUrl: string | null;
|
|
140
145
|
/** Server-authoritative expiry (epoch ms), or `null`. */
|
|
141
146
|
expiresAt: number | null;
|
|
142
147
|
/**
|
package/package.json
CHANGED
package/src/api/auth.ts
CHANGED
|
@@ -218,6 +218,12 @@ export interface CommonsSignInHandle {
|
|
|
218
218
|
authorizeCode: string;
|
|
219
219
|
/** Ready-to-render deep-link / universal-link string (`oxycommons://approve?...`). */
|
|
220
220
|
qrPayload: string;
|
|
221
|
+
/**
|
|
222
|
+
* The same request as the IdP's https approval page
|
|
223
|
+
* (`https://auth.oxy.so/device?user_code=…`): what a device with no keyboard
|
|
224
|
+
* shows as its QR, since any phone camera opens it, with or without Commons.
|
|
225
|
+
*/
|
|
226
|
+
approvalUrl: string;
|
|
221
227
|
/** Server-authoritative expiry (epoch milliseconds). */
|
|
222
228
|
expiresAt: number;
|
|
223
229
|
/** Session lifecycle status as reported by the server (e.g. `'pending'`). */
|
|
@@ -453,6 +459,7 @@ export interface CommonsOAuthFinalizeResult {
|
|
|
453
459
|
interface CommonsSessionCreateResponse {
|
|
454
460
|
authorizeCode: string;
|
|
455
461
|
qrPayload: string;
|
|
462
|
+
approvalUrl: string;
|
|
456
463
|
status: string;
|
|
457
464
|
/** Optional server-authoritative expiry; falls back to the client-proposed value. */
|
|
458
465
|
expiresAt?: number;
|
|
@@ -999,6 +1006,7 @@ export class AuthCommonsApi {
|
|
|
999
1006
|
sessionToken,
|
|
1000
1007
|
authorizeCode: res.authorizeCode,
|
|
1001
1008
|
qrPayload: res.qrPayload,
|
|
1009
|
+
approvalUrl: res.approvalUrl,
|
|
1002
1010
|
expiresAt: res.expiresAt ?? expiresAt,
|
|
1003
1011
|
status: res.status,
|
|
1004
1012
|
};
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'امسح باستخدام Commons لتسجيل الدخول',
|
|
19
19
|
renew: 'عرض رمز جديد',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'تأكد من أن هاتفك يعرض هذا الرمز',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'محاولات كثيرة جدًا. حاول مرة أخرى بعد {{seconds}} ث.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'সাইন ইন করতে Commons দিয়ে স্ক্যান করুন',
|
|
19
19
|
renew: 'নতুন কোড দেখান',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'দেখে নিন আপনার ফোনে এই কোডটিই দেখাচ্ছে',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'অনেকবার চেষ্টা করা হয়েছে। {{seconds}} সেকেন্ড পরে আবার চেষ্টা করুন।',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Escaneja amb Commons per entrar',
|
|
19
19
|
renew: 'Mostra un codi nou',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Comprova que el mòbil mostra aquest codi',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Massa intents. Torna-ho a provar d’aquí a {{seconds}} s.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Mit Commons scannen, um dich anzumelden',
|
|
19
19
|
renew: 'Neuen Code anzeigen',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Prüfe, ob dein Smartphone diesen Code anzeigt',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Zu viele Versuche. Versuche es in {{seconds}} s erneut.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -190,6 +190,9 @@ const dict = {
|
|
|
190
190
|
caption: 'Scan with Commons to sign in',
|
|
191
191
|
renew: 'Show a new code',
|
|
192
192
|
},
|
|
193
|
+
device: {
|
|
194
|
+
codeHint: 'Check that your phone shows this code',
|
|
195
|
+
},
|
|
193
196
|
terms: {
|
|
194
197
|
before: 'By continuing, you agree to our',
|
|
195
198
|
termsLink: 'Terms of Service',
|
|
@@ -191,6 +191,9 @@ const dict = {
|
|
|
191
191
|
caption: 'Escanea con Commons para entrar',
|
|
192
192
|
renew: 'Mostrar un código nuevo',
|
|
193
193
|
},
|
|
194
|
+
device: {
|
|
195
|
+
codeHint: 'Comprueba que tu móvil muestra este código',
|
|
196
|
+
},
|
|
194
197
|
terms: {
|
|
195
198
|
before: 'Al continuar, aceptas nuestros',
|
|
196
199
|
termsLink: 'Términos del servicio',
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Scannez avec Commons pour vous connecter',
|
|
19
19
|
renew: 'Afficher un nouveau code',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Vérifiez que votre téléphone affiche ce code',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Trop de tentatives. Réessayez dans {{seconds}} s.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'साइन इन करने के लिए Commons से स्कैन करें',
|
|
19
19
|
renew: 'नया कोड दिखाएं',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'जाँचें कि आपके फ़ोन पर यही कोड दिख रहा है',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'बहुत ज़्यादा कोशिशें हो गईं। {{seconds}} सेकंड बाद फिर कोशिश करें।',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Pindai dengan Commons untuk masuk',
|
|
19
19
|
renew: 'Tampilkan kode baru',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Pastikan ponsel Anda menampilkan kode ini',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Terlalu banyak percobaan. Coba lagi dalam {{seconds}} dtk.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Scansiona con Commons per accedere',
|
|
19
19
|
renew: 'Mostra un nuovo codice',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Controlla che il telefono mostri questo codice',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Troppi tentativi. Riprova tra {{seconds}} s.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Lê com o Commons para entrar',
|
|
19
19
|
renew: 'Mostrar um código novo',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Confirme que o telemóvel mostra este código',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Demasiadas tentativas. Tenta novamente dentro de {{seconds}} s.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Отсканируйте в Commons, чтобы войти',
|
|
19
19
|
renew: 'Показать новый код',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Убедитесь, что на телефоне тот же код',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Слишком много попыток. Повторите через {{seconds}} с.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -18,6 +18,9 @@ const dict = {
|
|
|
18
18
|
caption: 'Giriş yapmak için Commons ile tarayın',
|
|
19
19
|
renew: 'Yeni kod göster',
|
|
20
20
|
},
|
|
21
|
+
device: {
|
|
22
|
+
codeHint: 'Telefonunda bu kodun göründüğünü kontrol et',
|
|
23
|
+
},
|
|
21
24
|
errors: {
|
|
22
25
|
rateLimited: 'Çok fazla deneme yapıldı. {{seconds}} sn sonra tekrar deneyin.',
|
|
23
26
|
invalidCredentials:
|
|
@@ -173,6 +173,11 @@ export interface SignInFlowState {
|
|
|
173
173
|
* as a QR (cross-device) and open as a deep link (same-device), or `null`.
|
|
174
174
|
*/
|
|
175
175
|
qrPayload: string | null;
|
|
176
|
+
/**
|
|
177
|
+
* The request's https approval page (`https://auth.oxy.so/device?user_code=…`),
|
|
178
|
+
* or `null`: the QR a device with no keyboard shows, for any phone camera.
|
|
179
|
+
*/
|
|
180
|
+
approvalUrl: string | null;
|
|
176
181
|
/** Server-authoritative expiry (epoch ms), or `null`. */
|
|
177
182
|
expiresAt: number | null;
|
|
178
183
|
/**
|
|
@@ -442,6 +447,7 @@ const IDLE_SIGN_IN_FACTS: SignInFlowFacts = {
|
|
|
442
447
|
phase: 'idle',
|
|
443
448
|
authorizeCode: null,
|
|
444
449
|
qrPayload: null,
|
|
450
|
+
approvalUrl: null,
|
|
445
451
|
expiresAt: null,
|
|
446
452
|
error: null,
|
|
447
453
|
failure: null,
|
|
@@ -1166,6 +1172,7 @@ export class AccountDialogController {
|
|
|
1166
1172
|
phase: 'waiting',
|
|
1167
1173
|
authorizeCode: handle.authorizeCode,
|
|
1168
1174
|
qrPayload: handle.qrPayload,
|
|
1175
|
+
approvalUrl: handle.approvalUrl,
|
|
1169
1176
|
expiresAt: handle.expiresAt,
|
|
1170
1177
|
// No route yet: the surface shows "Preparing request" until the primary
|
|
1171
1178
|
// route is resolved below. It is never guessed in the meantime.
|
|
@@ -1723,6 +1730,7 @@ export class AccountDialogController {
|
|
|
1723
1730
|
phase,
|
|
1724
1731
|
authorizeCode,
|
|
1725
1732
|
qrPayload,
|
|
1733
|
+
approvalUrl,
|
|
1726
1734
|
expiresAt,
|
|
1727
1735
|
error,
|
|
1728
1736
|
failure,
|
|
@@ -1735,6 +1743,7 @@ export class AccountDialogController {
|
|
|
1735
1743
|
phase,
|
|
1736
1744
|
authorizeCode,
|
|
1737
1745
|
qrPayload,
|
|
1746
|
+
approvalUrl,
|
|
1738
1747
|
expiresAt,
|
|
1739
1748
|
error,
|
|
1740
1749
|
failure,
|