adata-ui 2.1.41-beta.12 → 2.1.41-beta.13

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/lang/en.ts CHANGED
@@ -477,6 +477,12 @@ const EnLocale: RuLocale = {
477
477
  title: 'Our Clients',
478
478
  },
479
479
  forms: {
480
+ password_requirements: {
481
+ minLength: 'At least {length} characters',
482
+ uppercase: 'Uppercase letter',
483
+ digit: 'Digit',
484
+ special: 'Special character',
485
+ },
480
486
  feedback: {
481
487
  value: 'FEEDBACK',
482
488
  title: 'Still have questions about the check?',
@@ -572,6 +578,8 @@ const EnLocale: RuLocale = {
572
578
  confirm: 'Confirm',
573
579
  "topUp": "Top up",
574
580
  update: 'Update',
581
+ showPassword: 'Show password',
582
+ hidePassword: 'Hide password',
575
583
  },
576
584
  modals: {
577
585
  id: {
@@ -594,8 +602,13 @@ const EnLocale: RuLocale = {
594
602
  remember_me: 'Remember me',
595
603
  forget_password: 'Forgot password?',
596
604
  first_time: 'First time using our service?',
605
+ social_divider: 'or sign in with',
597
606
  labels: {
598
- email: 'Enter email',
607
+ email: 'Email',
608
+ password: 'Password',
609
+ },
610
+ placeholders: {
611
+ email: 'you@company.kz',
599
612
  password: 'Enter password',
600
613
  },
601
614
  },
@@ -603,10 +616,15 @@ const EnLocale: RuLocale = {
603
616
  title: 'Registration',
604
617
  subtitle: 'Enter your details to register',
605
618
  labels: {
606
- email: 'Enter email',
607
- password: 'Enter password',
619
+ email: 'Email',
620
+ password: 'Password',
608
621
  password_confirmation: 'Confirm password',
609
622
  },
623
+ placeholders: {
624
+ email: 'you@company.kz',
625
+ password: 'Create a password',
626
+ password_confirmation: 'Repeat password',
627
+ },
610
628
  alert: 'The password must be at least 8 characters long and contain (an uppercase letter, a number, and a special character)',
611
629
  agreement: {
612
630
  text: 'I have read the {link} and fully agree with them.',
@@ -620,6 +638,9 @@ const EnLocale: RuLocale = {
620
638
  minLength: 'The password must be at least 8 characters long',
621
639
  passwordRequirements: 'must contain (an uppercase letter, a number, and a special character)',
622
640
  sameAs: 'Passwords do not match',
641
+ uppercase: 'The password must contain an uppercase letter',
642
+ digit: 'The password must contain a digit',
643
+ special: 'The password must contain a special character',
623
644
  },
624
645
  },
625
646
  confirmAccount: {
@@ -628,7 +649,8 @@ const EnLocale: RuLocale = {
628
649
  recovery: {
629
650
  title: 'Password recovery',
630
651
  content: 'Enter your email address',
631
- placeholder: 'Enter email',
652
+ label: 'Email',
653
+ placeholder: 'you@company.kz',
632
654
  },
633
655
  resetPasswordOtp: {
634
656
  title: 'Confirm action',
@@ -640,6 +662,10 @@ const EnLocale: RuLocale = {
640
662
  title: 'Create a new password',
641
663
  content: 'Come up with your new password',
642
664
  alert: 'The password must be at least 8 characters long and contain (an uppercase letter, a number)',
665
+ labels: {
666
+ password: 'New password',
667
+ password_confirmation: 'Confirm password',
668
+ },
643
669
  placeholder: {
644
670
  1: 'Enter new password',
645
671
  2: 'Repeat password',
package/lang/kk.ts CHANGED
@@ -478,6 +478,12 @@ const KkLocale: RuLocale = {
478
478
  title: 'Бізге сенеді',
479
479
  },
480
480
  forms: {
481
+ password_requirements: {
482
+ minLength: 'Кемінде {length} таңба',
483
+ uppercase: 'Бас әріп',
484
+ digit: 'Сан',
485
+ special: 'Арнайы таңба',
486
+ },
481
487
  feedback: {
482
488
  value: 'КЕРІ БАЙЛАНЫС ',
483
489
  title: 'Тексеру бойынша сұрақтарыңыз қалды ма?',
@@ -573,6 +579,8 @@ const KkLocale: RuLocale = {
573
579
  confirm: 'Растау',
574
580
  "topUp": "Толықтыру",
575
581
  update: 'Жаңарту',
582
+ showPassword: 'Құпия сөзді көрсету',
583
+ hidePassword: 'Құпия сөзді жасыру',
576
584
  },
577
585
  modals: {
578
586
  id: {
@@ -595,8 +603,13 @@ const KkLocale: RuLocale = {
595
603
  remember_me: 'Мені есте сақтау',
596
604
  forget_password: 'Құпия сөзді ұмыттыңыз ба?',
597
605
  first_time: 'Біздің сервисті алғаш рет қолданудасыз ба?',
606
+ social_divider: 'немесе арқылы кіріңіз',
598
607
  labels: {
599
- email: 'Email енгізіңіз',
608
+ email: 'Email',
609
+ password: 'Құпия сөз',
610
+ },
611
+ placeholders: {
612
+ email: 'you@company.kz',
600
613
  password: 'Құпия сөз енгізіңіз',
601
614
  },
602
615
  },
@@ -604,10 +617,15 @@ const KkLocale: RuLocale = {
604
617
  title: 'Тіркелу',
605
618
  subtitle: 'Тіркелу үшін деректерді енгізіңіз',
606
619
  labels: {
607
- email: 'Email енгізіңіз',
608
- password: 'Құпия сөз енгізіңіз',
620
+ email: 'Email',
621
+ password: 'Құпия сөз',
609
622
  password_confirmation: 'Құпия сөзді растаңыз',
610
623
  },
624
+ placeholders: {
625
+ email: 'you@company.kz',
626
+ password: 'Құпия сөз ойлап табыңыз',
627
+ password_confirmation: 'Құпия сөзді қайталаңыз',
628
+ },
611
629
  alert: 'Құпия сөз кемінде 8 таңбадан тұруы және (бас әріп, сан және арнайы таңба) қамтуы керек',
612
630
  agreement: {
613
631
  text: 'Мен {link} оқыдым және толықтай келісемін.',
@@ -621,6 +639,9 @@ const KkLocale: RuLocale = {
621
639
  minLength: 'Құпия сөз кемінде 8 таңбадан тұруы керек',
622
640
  passwordRequirements: '(бас әріп, сан және арнайы таңба) қамтуы тиіс',
623
641
  sameAs: 'Құпия сөздер сәйкес емес',
642
+ uppercase: 'Құпия сөзде бас әріп болуы керек',
643
+ digit: 'Құпия сөзде сан болуы керек',
644
+ special: 'Құпия сөзде арнайы таңба болуы керек',
624
645
  },
625
646
  },
626
647
  confirmAccount: {
@@ -629,7 +650,8 @@ const KkLocale: RuLocale = {
629
650
  recovery: {
630
651
  title: 'Құпия сөзді қалпына келтіру',
631
652
  content: 'Электрондық поштаңызды енгізіңіз',
632
- placeholder: 'Email енгізіңіз',
653
+ label: 'Email',
654
+ placeholder: 'you@company.kz',
633
655
  },
634
656
  resetPasswordOtp: {
635
657
  title: 'Әрекетті растау',
@@ -641,6 +663,10 @@ const KkLocale: RuLocale = {
641
663
  title: 'Жаңа құпия сөз құру',
642
664
  content: 'Жаңа құпия сөзді ойлап табыңыз',
643
665
  alert: 'Құпия сөз кемінде 8 таңбадан тұруы және (бас әріп, сан) қамтуы керек',
666
+ labels: {
667
+ password: 'Жаңа құпия сөз',
668
+ password_confirmation: 'Құпия сөзді растаңыз',
669
+ },
644
670
  placeholder: {
645
671
  1: 'Жаңа құпия сөз енгізіңіз',
646
672
  2: 'Құпия сөзді қайталаңыз',
package/lang/ru.ts CHANGED
@@ -477,6 +477,12 @@ const RuLocale = {
477
477
  title: 'Нам доверяют',
478
478
  },
479
479
  forms: {
480
+ password_requirements: {
481
+ minLength: 'Не менее {length} символов',
482
+ uppercase: 'Заглавная буква',
483
+ digit: 'Цифра',
484
+ special: 'Специальный символ',
485
+ },
480
486
  feedback: {
481
487
  value: 'ОБРАТНАЯ СВЯЗЬ',
482
488
  title: 'Остались вопросы по проверке?',
@@ -573,6 +579,8 @@ const RuLocale = {
573
579
  confirm: 'Подтвердить',
574
580
  topUp: 'Пополнить',
575
581
  update: 'Обновить',
582
+ showPassword: 'Показать пароль',
583
+ hidePassword: 'Скрыть пароль',
576
584
  },
577
585
  modals: {
578
586
  id: {
@@ -595,8 +603,13 @@ const RuLocale = {
595
603
  remember_me: 'Запомнить меня',
596
604
  forget_password: 'Забыли пароль?',
597
605
  first_time: 'Впервые в нашем сервисе?',
606
+ social_divider: 'или войдите через',
598
607
  labels: {
599
- email: 'Введите email',
608
+ email: 'Email',
609
+ password: 'Пароль',
610
+ },
611
+ placeholders: {
612
+ email: 'you@company.kz',
600
613
  password: 'Введите пароль',
601
614
  },
602
615
  },
@@ -604,10 +617,15 @@ const RuLocale = {
604
617
  title: 'Регистрация ',
605
618
  subtitle: 'Введите данные для регистрации',
606
619
  labels: {
607
- email: 'Введите email',
608
- password: 'Введите пароль',
620
+ email: 'Email',
621
+ password: 'Пароль',
609
622
  password_confirmation: 'Подтвердите пароль',
610
623
  },
624
+ placeholders: {
625
+ email: 'you@company.kz',
626
+ password: 'Придумайте пароль',
627
+ password_confirmation: 'Повторите пароль',
628
+ },
611
629
  alert: 'Пароль должен состоять минимум из 8 символов и содержать (заглавную букву, цифру и специальный символ)',
612
630
  agreement: {
613
631
  text: 'Я ознакомился(лась) с {link} и полностью согласен(а) с ними.',
@@ -621,6 +639,9 @@ const RuLocale = {
621
639
  minLength: 'Пароль должен состоять минимум из 8 символов',
622
640
  passwordRequirements: 'содержать (заглавную букву, цифру и специальный символ)',
623
641
  sameAs: 'Пароли не совпадают',
642
+ uppercase: 'Пароль должен содержать заглавную букву',
643
+ digit: 'Пароль должен содержать цифру',
644
+ special: 'Пароль должен содержать специальный символ',
624
645
  },
625
646
  },
626
647
  confirmAccount: {
@@ -629,7 +650,8 @@ const RuLocale = {
629
650
  recovery: {
630
651
  title: 'Восстановление пароля',
631
652
  content: 'Укажите Вашу электронную почту',
632
- placeholder: 'Введите email',
653
+ label: 'Email',
654
+ placeholder: 'you@company.kz',
633
655
  },
634
656
  resetPasswordOtp: {
635
657
  title: 'Подтвердите действие',
@@ -641,6 +663,10 @@ const RuLocale = {
641
663
  title: 'Создание нового пароля',
642
664
  content: 'Придумайте ваш новый пароль',
643
665
  alert: 'Пароль должен состоять минимум из 8 символов и содержать (заглавную букву, цифру)',
666
+ labels: {
667
+ password: 'Новый пароль',
668
+ password_confirmation: 'Подтвердите пароль',
669
+ },
644
670
  placeholder: {
645
671
  1: 'Введите новый пароль',
646
672
  2: 'Повторите пароль',
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adata-ui",
3
3
  "type": "module",
4
- "version": "2.1.41-beta.12",
4
+ "version": "2.1.41-beta.13",
5
5
  "main": "./nuxt.config.ts",
6
6
  "scripts": {
7
7
  "dev": "nuxi dev .playground",
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Достаёт человекочитаемое сообщение из ошибки auth-API.
3
+ *
4
+ * Бэкенд отдаёт `data.message` то строкой, то объектом с полями формы
5
+ * (`{ email: '…' }`, `{ password: ['…'] }`), поэтому прямые обращения вида
6
+ * `error.data.message.password[0]` падали с TypeError на любом ответе другой
7
+ * формы и прятали настоящую причину сбоя.
8
+ */
9
+ export function apiErrorMessage(error: unknown, fallback: string): string {
10
+ const message = (error as { data?: { message?: unknown } })?.data?.message
11
+
12
+ if (typeof message === 'string' && message) return message
13
+
14
+ if (message && typeof message === 'object') {
15
+ for (const value of Object.values(message as Record<string, unknown>)) {
16
+ if (typeof value === 'string' && value) return value
17
+ if (Array.isArray(value) && typeof value[0] === 'string') return value[0]
18
+ }
19
+ }
20
+
21
+ return fallback
22
+ }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Единый источник истины для требований к паролю: одни и те же предикаты
3
+ * используются и чеклистом `<a-password-requirements>`, и zod-схемами форм
4
+ * регистрации / смены пароля. Ключ правила = ключ i18n
5
+ * `forms.password_requirements.<key>` и `error.password.<key>`.
6
+ */
7
+ export interface PasswordRule {
8
+ key: 'minLength' | 'uppercase' | 'digit' | 'special'
9
+ test: (password: string) => boolean
10
+ }
11
+
12
+ export const PASSWORD_MIN_LENGTH = 8
13
+
14
+ export const PASSWORD_RULES: readonly PasswordRule[] = [
15
+ { key: 'minLength', test: password => password.length >= PASSWORD_MIN_LENGTH },
16
+ { key: 'uppercase', test: password => /[A-Z]/.test(password) },
17
+ { key: 'digit', test: password => /\d/.test(password) },
18
+ { key: 'special', test: password => /[^\dA-Z]/i.test(password) },
19
+ ]