@prosopo/locale 3.3.1 → 3.4.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 (72) hide show
  1. package/.turbo/turbo-build$colon$cjs.log +3 -3
  2. package/.turbo/turbo-build$colon$tsc.log +5 -5
  3. package/.turbo/turbo-build.log +5 -5
  4. package/CHANGELOG.md +51 -0
  5. package/dist/cjs/locales/en/translation.cjs +1 -0
  6. package/dist/locales/ar/translation.json +1 -0
  7. package/dist/locales/az/translation.json +1 -0
  8. package/dist/locales/cs/translation.json +1 -0
  9. package/dist/locales/de/translation.json +1 -0
  10. package/dist/locales/el/translation.json +1 -0
  11. package/dist/locales/en/translation.js +1 -0
  12. package/dist/locales/en/translation.json +1 -0
  13. package/dist/locales/es/translation.json +1 -0
  14. package/dist/locales/fi/translation.json +1 -0
  15. package/dist/locales/fr/translation.json +1 -0
  16. package/dist/locales/hi/translation.json +1 -0
  17. package/dist/locales/hu/translation.json +1 -0
  18. package/dist/locales/id/translation.json +1 -0
  19. package/dist/locales/it/translation.json +1 -0
  20. package/dist/locales/ja/translation.json +1 -0
  21. package/dist/locales/jv/translation.json +1 -0
  22. package/dist/locales/ko/translation.json +1 -0
  23. package/dist/locales/ml/translation.json +1 -0
  24. package/dist/locales/ms/translation.json +1 -0
  25. package/dist/locales/nl/translation.json +1 -0
  26. package/dist/locales/no/translation.json +1 -0
  27. package/dist/locales/pl/translation.json +1 -0
  28. package/dist/locales/pt/translation.json +1 -0
  29. package/dist/locales/pt-BR/translation.json +1 -0
  30. package/dist/locales/ro/translation.json +1 -0
  31. package/dist/locales/ru/translation.json +1 -0
  32. package/dist/locales/sr/translation.json +1 -0
  33. package/dist/locales/sv/translation.json +1 -0
  34. package/dist/locales/th/translation.json +1 -0
  35. package/dist/locales/tr/translation.json +1 -0
  36. package/dist/locales/uk/translation.json +1 -0
  37. package/dist/locales/vi/translation.json +1 -0
  38. package/dist/locales/zh-CN/translation.json +1 -0
  39. package/package.json +4 -4
  40. package/src/locales/ar/translation.json +1 -0
  41. package/src/locales/az/translation.json +1 -0
  42. package/src/locales/cs/translation.json +1 -0
  43. package/src/locales/de/translation.json +1 -0
  44. package/src/locales/el/translation.json +1 -0
  45. package/src/locales/en/translation.json +1 -0
  46. package/src/locales/es/translation.json +1 -0
  47. package/src/locales/fi/translation.json +1 -0
  48. package/src/locales/fr/translation.json +1 -0
  49. package/src/locales/hi/translation.json +1 -0
  50. package/src/locales/hu/translation.json +1 -0
  51. package/src/locales/id/translation.json +1 -0
  52. package/src/locales/it/translation.json +1 -0
  53. package/src/locales/ja/translation.json +1 -0
  54. package/src/locales/jv/translation.json +1 -0
  55. package/src/locales/ko/translation.json +1 -0
  56. package/src/locales/ml/translation.json +1 -0
  57. package/src/locales/ms/translation.json +1 -0
  58. package/src/locales/nl/translation.json +1 -0
  59. package/src/locales/no/translation.json +1 -0
  60. package/src/locales/pl/translation.json +1 -0
  61. package/src/locales/pt/translation.json +1 -0
  62. package/src/locales/pt-BR/translation.json +1 -0
  63. package/src/locales/ro/translation.json +1 -0
  64. package/src/locales/ru/translation.json +1 -0
  65. package/src/locales/sr/translation.json +1 -0
  66. package/src/locales/sv/translation.json +1 -0
  67. package/src/locales/th/translation.json +1 -0
  68. package/src/locales/tr/translation.json +1 -0
  69. package/src/locales/uk/translation.json +1 -0
  70. package/src/locales/vi/translation.json +1 -0
  71. package/src/locales/zh-CN/translation.json +1 -0
  72. package/tsconfig.tsbuildinfo +1 -1
@@ -1,5 +1,5 @@
1
1
 
2
- > @prosopo/locale@3.3.1 build:cjs
2
+ > @prosopo/locale@3.4.1 build:cjs
3
3
  > NODE_ENV=${NODE_ENV:-development}; vite build --config vite.cjs.config.ts --mode $NODE_ENV
4
4
 
5
5
  ViteCommonJSConfig: .
@@ -24,9 +24,9 @@ dist/cjs/_virtual/_rolldown/runtime.cjs 1.00 kB │ gzip: 0.50 kB
24
24
  dist/cjs/i18nBackend.cjs 1.47 kB │ gzip: 0.62 kB
25
25
  dist/cjs/loadI18next.cjs 2.03 kB │ gzip: 0.84 kB
26
26
  dist/cjs/i18nFrontend.cjs 2.47 kB │ gzip: 0.87 kB
27
- dist/cjs/locales/en/translation.cjs 15.80 kB │ gzip: 5.62 kB
27
+ dist/cjs/locales/en/translation.cjs 15.90 kB │ gzip: 5.66 kB
28
28
 
29
- ✓ built in 126ms
29
+ ✓ built in 110ms
30
30
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ar/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ar/translation.json
31
31
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/az/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/az/translation.json
32
32
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/cs/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/cs/translation.json
@@ -1,14 +1,14 @@
1
1
 
2
- > @prosopo/locale@3.3.1 build:tsc
2
+ > @prosopo/locale@3.4.1 build:tsc
3
3
  > tsc --build --verbose
4
4
 
5
- 10:09:39 PM - Projects in this build:
5
+ 10:38:46 PM - Projects in this build:
6
6
  * ../../dev/config/tsconfig.json
7
7
  * tsconfig.json
8
8
 
9
- 10:09:39 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/webpack/webpack.config.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
9
+ 10:38:46 PM - Project '../../dev/config/tsconfig.json' is up to date because newest input '../../dev/config/src/vite/NodejsPolarsNativeFilePlugin.ts' is older than output '../../dev/config/tsconfig.tsbuildinfo'
10
10
 
11
- 10:09:39 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
11
+ 10:38:46 PM - Project 'tsconfig.json' is out of date because output file 'tsconfig.tsbuildinfo' does not exist
12
12
 
13
- 10:09:39 PM - Building project '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json'...
13
+ 10:38:46 PM - Building project '/home/runner/work/captcha/captcha/packages/locale/tsconfig.json'...
14
14
 
@@ -1,9 +1,9 @@
1
1
 
2
- > @prosopo/locale@3.3.1 build
2
+ > @prosopo/locale@3.4.1 build
3
3
  > npm run build:cross-env -- --mode ${NODE_ENV:-development}
4
4
 
5
5
 
6
- > @prosopo/locale@3.3.1 build:cross-env
6
+ > @prosopo/locale@3.4.1 build:cross-env
7
7
  > vite build --config vite.esm.config.ts --mode production
8
8
 
9
9
  ViteEsmConfig: .
@@ -28,15 +28,14 @@ dist/process.js 0.77 kB │ gzip: 0.46 kB
28
28
  dist/i18nBackend.js 1.01 kB │ gzip: 0.53 kB
29
29
  dist/i18nFrontend.js 1.75 kB │ gzip: 0.78 kB
30
30
  dist/loadI18next.js 1.93 kB │ gzip: 0.83 kB
31
- dist/locales/en/translation.js 15.56 kB │ gzip: 5.59 kB
31
+ dist/locales/en/translation.js 15.66 kB │ gzip: 5.63 kB
32
32
 
33
- ✓ built in 115ms
33
+ ✓ built in 75ms
34
34
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ar/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ar/translation.json
35
35
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/az/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/az/translation.json
36
36
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/cs/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/cs/translation.json
37
37
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/de/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/de/translation.json
38
38
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/el/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/el/translation.json
39
- [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/en/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/en/translation.json
40
39
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/es/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/es/translation.json
41
40
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/fi/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/fi/translation.json
42
41
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/fr/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/fr/translation.json
@@ -46,6 +45,7 @@ dist/locales/en/translation.js 15.56 kB │ gzip: 5.59 kB
46
45
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/it/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/it/translation.json
47
46
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ja/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ja/translation.json
48
47
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/jv/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/jv/translation.json
48
+ [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/en/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/en/translation.json
49
49
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ko/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ko/translation.json
50
50
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ml/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ml/translation.json
51
51
  [copy-plugin] copying /home/runner/work/captcha/captcha/packages/locale/src/locales/ms/translation.json to /home/runner/work/captcha/captcha/packages/locale/dist/locales/ms/translation.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,56 @@
1
1
  # @prosopo/locale
2
2
 
3
+ ## 3.4.1
4
+ ### Patch Changes
5
+
6
+ - 89dd38a: chore(deps): batch the outstanding dependabot bumps into one upgrade
7
+
8
+ Rolls up dependabot PRs #3112, #3127-#3134 and #3159. Majors: `mongoose`
9
+ 8 -> 9, `bson` 6 -> 7, `@noble/curves` 1 -> 2, `@polkadot/util-crypto`
10
+ 13 -> 14, `@typegoose/auto-increment` 4 -> 5, `@babel/preset-env` 7 -> 8,
11
+ `@types/jsdom` 21 -> 30, `@types/bcrypt` 5 -> 6, `@actions/github` 6 -> 9,
12
+ `testcontainers` 11 -> 12. The rest are minor/patch.
13
+
14
+ Code changes the majors forced:
15
+ - `@noble/curves` v2 requires `.js` specifiers and renamed the point API,
16
+ so `secp256k1.ProjectivePoint.fromHex(...).toRawBytes()` becomes
17
+ `secp256k1.Point.fromBytes(...).toBytes()`, `RistrettoPoint` becomes
18
+ `ristretto255.Point`, and `abstract/utils` moves to `utils.js`.
19
+ - mongoose 9 drops `RootFilterQuery` (now `QueryFilter`), no longer sets
20
+ `background: true` on schema indexes by default, and no longer declares
21
+ `id` on `Document`, which un-hid a mismatch between
22
+ `updateDappUserCommitment`'s `Hash` parameter and the `string` `id` it
23
+ filters on.
24
+ - mongoose 9 rejects an aggregation-pipeline update (an array) unless the
25
+ call passes `updatePipeline: true`, so the six pipeline writes in
26
+ `ProviderDatabase` now opt in explicitly.
27
+ - mongoose 9's `castUpdate` throws on a `$setOnInsert` key inside `$set`.
28
+ `storeUserImageCaptchaSolution` passed its record straight in as the
29
+ update, and mongoose's `moveImmutableProperties` mutates that object on
30
+ an upsert -- adding the very `$setOnInsert` key the record then carried
31
+ into `CentralDbStreamer.streamImageRecord`. Image records stopped
32
+ reaching the central DB (the streamer is fire-and-forget, so it only
33
+ logged) and signup verification returned 500. The update is now an
34
+ explicit `$set` over a shallow copy.
35
+ - `@prosopo/database` moves from mongodb 6.20 to 7.5 to match the driver
36
+ mongoose 9 pulls, so bson 7 is the only copy resolvable in the package.
37
+ - `vitest`/`@vitest/coverage-v8` go to 4.1.11 alongside dependabot's
38
+ `@vitest/spy` bump; leaving them at 4.1.10 installed a second copy of
39
+ `@vitest/spy` and broke type inference in the provider test utils.
40
+
41
+ ## 3.4.0
42
+ ### Minor Changes
43
+
44
+ - 4b1cb19: Correlate a site-supplied session id across render and verify.
45
+
46
+ A site can now hand the widget its own session identifier — Protect's JTI, or any per-user session id it already holds — and have the provider confirm at verify time that the token was earned in that same session. Render it with `data-sessionid="..."` or `renderOptions.sessionId`, resolved the same way `mode` and `language` already are, so implicit, explicit and invisible-button renders all pick it up. Pass the same value as the new trailing `clientSessionId` argument to `ProsopoServer.isVerified`.
47
+
48
+ The widget attaches it to the solution as `clientMetaData.clientSessionId`. It is persisted on the captcha record (PoW, puzzle and image alike) and mirrored to a new top-level `clientMetaData` key on the session record — an object rather than a flat field, because more render-time metadata is expected to land there. It survives the PoW→image/puzzle escalation handoff, since the escalated widget is mounted with the same config.
49
+
50
+ At verify, when the value is supplied and the solve does not carry exactly that value — including carrying none at all, which is what a token minted outside the site's session looks like — the token is disapproved with the new `ResultReason.CLIENT_SESSION_MISMATCH` (`API.CLIENT_SESSION_MISMATCH`, translated in all 31 locales), recorded on both the captcha record and the session.
51
+
52
+ Omitting the id preserves existing behaviour, so this is opt-in and backward compatible. The verify request field is `clientSessionId` rather than `sessionId` because `VerificationResponse.sessionId` already means the provider's own frictionless session; same-named request and response fields meaning different things would be a trap for integrators.
53
+
3
54
  ## 3.3.1
4
55
  ### Patch Changes
5
56
 
@@ -116,6 +116,7 @@ var API = {
116
116
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
117
117
  "FAILED_IP_VALIDATION": "IP validation failed",
118
118
  "ACCESS_POLICY_BLOCK": "Access blocked by policy",
119
+ "CLIENT_SESSION_MISMATCH": "Session mismatch. The captcha was not completed in this session.",
119
120
  "FORBIDDEN": "Forbidden",
120
121
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
121
122
  "SPAM_EMAIL_DOMAIN": "Email domain not allowed",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "الطابع الزمني قديم للغاية",
20
20
  "FAILED_IP_VALIDATION": "فشل التحقق من صحة IP",
21
21
  "ACCESS_POLICY_BLOCK": "تم حظر الوصول بواسطة السياسة",
22
+ "CLIENT_SESSION_MISMATCH": "عدم تطابق الجلسة. لم يتم إكمال اختبار التحقق في هذه الجلسة.",
22
23
  "FORBIDDEN": "ممنوع",
23
24
  "PROVIDER_VERIFY_FAILED": "فشل التحقق من الجهة الخارجية",
24
25
  "SPAM_EMAIL_DOMAIN": "نطاق البريد الإلكتروني غير مسموح به",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Zaman damgası çox köhnədir",
20
20
  "FAILED_IP_VALIDATION": "IP yoxlanması uğursuz oldu",
21
21
  "ACCESS_POLICY_BLOCK": "Siyasət tərəfindən giriş bloklandı",
22
+ "CLIENT_SESSION_MISMATCH": "Sessiya uyğunsuzluğu. Captcha bu sessiyada tamamlanmayıb.",
22
23
  "FORBIDDEN": "Qadağan edilir",
23
24
  "PROVIDER_VERIFY_FAILED": "Təchizatçı doğrulaması alınmadı",
24
25
  "SPAM_EMAIL_DOMAIN": "E-poçt domeni icazə verilmir",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Příliš starý časový údaj",
20
20
  "FAILED_IP_VALIDATION": "Ověření IP selhalo",
21
21
  "ACCESS_POLICY_BLOCK": "Přístup blokován zásadami",
22
+ "CLIENT_SESSION_MISMATCH": "Neshoda relace. Captcha nebyla dokončena v této relaci.",
22
23
  "FORBIDDEN": "Zakázáno",
23
24
  "PROVIDER_VERIFY_FAILED": "Ověření poskytovatele selhalo",
24
25
  "SPAM_EMAIL_DOMAIN": "E-mailová doména není povolena",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Zeitstempel zu alt",
20
20
  "FAILED_IP_VALIDATION": "IP-Validierung fehlgeschlagen",
21
21
  "ACCESS_POLICY_BLOCK": "Zugriff durch Richtlinie blockiert",
22
+ "CLIENT_SESSION_MISMATCH": "Sitzungskonflikt. Das Captcha wurde nicht in dieser Sitzung gelöst.",
22
23
  "FORBIDDEN": "Verboten",
23
24
  "PROVIDER_VERIFY_FAILED": "Anbieterüberprüfung fehlgeschlagen",
24
25
  "SPAM_EMAIL_DOMAIN": "E-Mail-Domain nicht erlaubt",
@@ -9,6 +9,7 @@
9
9
  "TIMESTAMP_TOO_OLD": "Πολύ παλιά χρονοσήμανση",
10
10
  "FAILED_IP_VALIDATION": "Η επαλήθευση IP απέτυχε",
11
11
  "ACCESS_POLICY_BLOCK": "Η πρόσβαση αποκλείστηκε από την πολιτική",
12
+ "CLIENT_SESSION_MISMATCH": "Αναντιστοιχία συνεδρίας. Το captcha δεν ολοκληρώθηκε σε αυτήν τη συνεδρία.",
12
13
  "FORBIDDEN": "Απαγορεύεται",
13
14
  "PROVIDER_VERIFY_FAILED": "Αποτυχία επαλήθευσης παρόχου",
14
15
  "SPAM_EMAIL_DOMAIN": "Ο τομέας email δεν επιτρέπεται",
@@ -116,6 +116,7 @@ var API = {
116
116
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
117
117
  "FAILED_IP_VALIDATION": "IP validation failed",
118
118
  "ACCESS_POLICY_BLOCK": "Access blocked by policy",
119
+ "CLIENT_SESSION_MISMATCH": "Session mismatch. The captcha was not completed in this session.",
119
120
  "FORBIDDEN": "Forbidden",
120
121
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
121
122
  "SPAM_EMAIL_DOMAIN": "Email domain not allowed",
@@ -118,6 +118,7 @@
118
118
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
119
119
  "FAILED_IP_VALIDATION": "IP validation failed",
120
120
  "ACCESS_POLICY_BLOCK": "Access blocked by policy",
121
+ "CLIENT_SESSION_MISMATCH": "Session mismatch. The captcha was not completed in this session.",
121
122
  "FORBIDDEN": "Forbidden",
122
123
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
123
124
  "SPAM_EMAIL_DOMAIN": "Email domain not allowed",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Marca de tiempo demasiado antigua",
20
20
  "FAILED_IP_VALIDATION": "La validación de IP falló",
21
21
  "ACCESS_POLICY_BLOCK": "Acceso bloqueado por política",
22
+ "CLIENT_SESSION_MISMATCH": "Discrepancia de sesión. El captcha no se completó en esta sesión.",
22
23
  "FORBIDDEN": "Prohibido",
23
24
  "PROVIDER_VERIFY_FAILED": "Fallo en la verificación del proveedor",
24
25
  "SPAM_EMAIL_DOMAIN": "Dominio de correo electrónico no permitido",
@@ -45,6 +45,7 @@
45
45
  "TIMESTAMP_TOO_OLD": "Aikaleima liian vanha",
46
46
  "FAILED_IP_VALIDATION": "IP-vahvistus epäonnistui",
47
47
  "ACCESS_POLICY_BLOCK": "Pääsy estetty käytännön mukaan",
48
+ "CLIENT_SESSION_MISMATCH": "Istunto ei täsmää. Captchaa ei suoritettu tässä istunnossa.",
48
49
  "FORBIDDEN": "Kielletty",
49
50
  "PROVIDER_VERIFY_FAILED": "Palveluntarjoajan tarkistus epäonnistui",
50
51
  "SPAM_EMAIL_DOMAIN": "Sähköpostiverkkotunnus ei ole sallittu",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Horodatage trop ancien",
20
20
  "FAILED_IP_VALIDATION": "Échec de la validation IP",
21
21
  "ACCESS_POLICY_BLOCK": "Accès bloqué par la politique",
22
+ "CLIENT_SESSION_MISMATCH": "Session non concordante. Le captcha n'a pas été complété dans cette session.",
22
23
  "FORBIDDEN": "Interdit",
23
24
  "PROVIDER_VERIFY_FAILED": "Échec de la vérification du fournisseur",
24
25
  "SPAM_EMAIL_DOMAIN": "Domaine de messagerie non autorisé",
@@ -318,6 +318,7 @@
318
318
  "TIMESTAMP_TOO_OLD": "समय-चहन बहत परन ह",
319
319
  "FAILED_IP_VALIDATION": "IP सत्यापन विफल",
320
320
  "ACCESS_POLICY_BLOCK": "नीति द्वारा पहुंच अवरुद्ध",
321
+ "CLIENT_SESSION_MISMATCH": "सत्र मेल नहीं खाता। कैप्चा इस सत्र में पूरा नहीं किया गया था।",
321
322
  "FORBIDDEN": "नषध",
322
323
  "PROVIDER_VERIFY_FAILED": "परदत सतयपन वफल हआ",
323
324
  "SPAM_EMAIL_DOMAIN": "ईमेल डोमेन की अनुमति नहीं है",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Az időbélyeg túl régi",
20
20
  "FAILED_IP_VALIDATION": "Az IP-ellenőrzés sikertelen",
21
21
  "ACCESS_POLICY_BLOCK": "A hozzáférést a szabályzat letiltotta",
22
+ "CLIENT_SESSION_MISMATCH": "Munkamenet-eltérés. A captcha nem ebben a munkamenetben lett kitöltve.",
22
23
  "FORBIDDEN": "tiltott",
23
24
  "PROVIDER_VERIFY_FAILED": "Szolgáltató ellenőrzése sikertelen",
24
25
  "SPAM_EMAIL_DOMAIN": "Az e-mail domain nem engedélyezett",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
20
20
  "FAILED_IP_VALIDATION": "Validasi IP gagal",
21
21
  "ACCESS_POLICY_BLOCK": "Akses diblokir oleh kebijakan",
22
+ "CLIENT_SESSION_MISMATCH": "Sesi tidak cocok. Captcha tidak diselesaikan dalam sesi ini.",
22
23
  "FORBIDDEN": "Forbidden",
23
24
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
24
25
  "SPAM_EMAIL_DOMAIN": "Domain email tidak diizinkan",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Data/hora muito antiga",
20
20
  "FAILED_IP_VALIDATION": "Convalida IP fallita",
21
21
  "ACCESS_POLICY_BLOCK": "Accesso bloccato dalla politica",
22
+ "CLIENT_SESSION_MISMATCH": "Sessione non corrispondente. Il captcha non è stato completato in questa sessione.",
22
23
  "FORBIDDEN": "Proibido",
23
24
  "PROVIDER_VERIFY_FAILED": "Falha na verificação do provedor",
24
25
  "SPAM_EMAIL_DOMAIN": "Dominio email non consentito",
@@ -318,6 +318,7 @@
318
318
  "TIMESTAMP_TOO_OLD": "タイムスタンプが古すぎます",
319
319
  "FAILED_IP_VALIDATION": "IP検証に失敗しました",
320
320
  "ACCESS_POLICY_BLOCK": "ポリシーによりアクセスがブロックされました",
321
+ "CLIENT_SESSION_MISMATCH": "セッションが一致しません。この CAPTCHA はこのセッションで完了されていません。",
321
322
  "FORBIDDEN": "禁止されています",
322
323
  "PROVIDER_VERIFY_FAILED": "プロバイダーの検証に失敗しました",
323
324
  "SPAM_EMAIL_DOMAIN": "メールドメインは許可されていません",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
20
20
  "FAILED_IP_VALIDATION": "Validasi IP gagal",
21
21
  "ACCESS_POLICY_BLOCK": "Akses diblokir dening kabijakan",
22
+ "CLIENT_SESSION_MISMATCH": "Sesi ora cocog. Captcha ora dirampungake ing sesi iki.",
22
23
  "FORBIDDEN": "Forbidden",
23
24
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
24
25
  "SPAM_EMAIL_DOMAIN": "Domain email ora diidini",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "시간이 너무 오래 됨",
20
20
  "FAILED_IP_VALIDATION": "IP 검증 실패",
21
21
  "ACCESS_POLICY_BLOCK": "정책에 의해 액세스가 차단됨",
22
+ "CLIENT_SESSION_MISMATCH": "세션이 일치하지 않습니다. 이 세션에서 캡차가 완료되지 않았습니다.",
22
23
  "FORBIDDEN": "금지됨",
23
24
  "PROVIDER_VERIFY_FAILED": "제공자 검증 실패",
24
25
  "SPAM_EMAIL_DOMAIN": "이메일 도메인이 허용되지 않습니다",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Imestamptay ootay oldway",
20
20
  "FAILED_IP_VALIDATION": "IP സാധൂകരണം പരാജയപ്പെട്ടു",
21
21
  "ACCESS_POLICY_BLOCK": "നയം മൂലം പ്രവേശനം തടഞ്ഞു",
22
+ "CLIENT_SESSION_MISMATCH": "സെഷൻ പൊരുത്തപ്പെടുന്നില്ല. ഈ സെഷനിൽ ക്യാപ്ച പൂർത്തിയാക്കിയിട്ടില്ല.",
22
23
  "FORBIDDEN": "Forbiddenway",
23
24
  "PROVIDER_VERIFY_FAILED": "Oviderpray erificationvay ailedfay",
24
25
  "SPAM_EMAIL_DOMAIN": "ഇമെയിൽ ഡൊമെയ്ൻ അനുവദനീയമല്ല",
@@ -318,6 +318,7 @@
318
318
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
319
319
  "FAILED_IP_VALIDATION": "Pengesahan IP gagal",
320
320
  "ACCESS_POLICY_BLOCK": "Akses disekat oleh dasar",
321
+ "CLIENT_SESSION_MISMATCH": "Sesi tidak sepadan. Captcha tidak diselesaikan dalam sesi ini.",
321
322
  "FORBIDDEN": "Forbidden",
322
323
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
323
324
  "SPAM_EMAIL_DOMAIN": "Domain e-mel tidak dibenarkan",
@@ -318,6 +318,7 @@
318
318
  "TIMESTAMP_TOO_OLD": "Tijdstempel te oud",
319
319
  "FAILED_IP_VALIDATION": "IP-validatie mislukt",
320
320
  "ACCESS_POLICY_BLOCK": "Toegang geblokkeerd door beleid",
321
+ "CLIENT_SESSION_MISMATCH": "Sessie komt niet overeen. De captcha is niet in deze sessie voltooid.",
321
322
  "FORBIDDEN": "Verboden",
322
323
  "PROVIDER_VERIFY_FAILED": "Provider verificatie mislukt",
323
324
  "SPAM_EMAIL_DOMAIN": "E-maildomein niet toegestaan",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Tidspunkt for gammel",
20
20
  "FAILED_IP_VALIDATION": "IP-validering mislyktes",
21
21
  "ACCESS_POLICY_BLOCK": "Tilgang blokkert av policy",
22
+ "CLIENT_SESSION_MISMATCH": "Økten samsvarer ikke. Captchaen ble ikke fullført i denne økten.",
22
23
  "FORBIDDEN": "Forbudt",
23
24
  "PROVIDER_VERIFY_FAILED": "Utdypning bekreftelse mislyktes",
24
25
  "SPAM_EMAIL_DOMAIN": "E-postdomene er ikke tillatt",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Zbyt stary znacznik czasu",
20
20
  "FAILED_IP_VALIDATION": "Walidacja IP nie powiodła się",
21
21
  "ACCESS_POLICY_BLOCK": "Dostęp zablokowany przez zasady",
22
+ "CLIENT_SESSION_MISMATCH": "Niezgodność sesji. Captcha nie została ukończona w tej sesji.",
22
23
  "FORBIDDEN": "Zabronione",
23
24
  "PROVIDER_VERIFY_FAILED": "Weryfikacja dostawcy nie powiodła się",
24
25
  "SPAM_EMAIL_DOMAIN": "Domena e-mail niedozwolona",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp muito antigo",
20
20
  "FAILED_IP_VALIDATION": "Validação de IP falhou",
21
21
  "ACCESS_POLICY_BLOCK": "Acesso bloqueado por política",
22
+ "CLIENT_SESSION_MISMATCH": "Sessão não corresponde. O captcha não foi concluído nesta sessão.",
22
23
  "FORBIDDEN": "Proibido",
23
24
  "PROVIDER_VERIFY_FAILED": "Falha na verificação do fornecedor",
24
25
  "SPAM_EMAIL_DOMAIN": "Domínio de e-mail não permitido",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Carimbo de data/hora muito antigo",
20
20
  "FAILED_IP_VALIDATION": "Validação de IP falhou",
21
21
  "ACCESS_POLICY_BLOCK": "Acesso bloqueado por política",
22
+ "CLIENT_SESSION_MISMATCH": "Sessão não corresponde. O captcha não foi concluído nesta sessão.",
22
23
  "FORBIDDEN": "Proibido",
23
24
  "PROVIDER_VERIFY_FAILED": "Falha na verificação do provedor",
24
25
  "SPAM_EMAIL_DOMAIN": "Domínio de e-mail não permitido",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Marca de timp prea veche",
20
20
  "FAILED_IP_VALIDATION": "Validarea IP a eșuat",
21
21
  "ACCESS_POLICY_BLOCK": "Acces blocat de politică",
22
+ "CLIENT_SESSION_MISMATCH": "Sesiune neconcordantă. Captcha nu a fost completat în această sesiune.",
22
23
  "FORBIDDEN": "Interzis",
23
24
  "PROVIDER_VERIFY_FAILED": "Verificarea furnizorului a esuat",
24
25
  "SPAM_EMAIL_DOMAIN": "Domeniul de e-mail nu este permis",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Слишком старый временной штамп",
20
20
  "FAILED_IP_VALIDATION": "Проверка IP не удалась",
21
21
  "ACCESS_POLICY_BLOCK": "Доступ заблокирован политикой",
22
+ "CLIENT_SESSION_MISMATCH": "Несовпадение сессии. Капча не была пройдена в этой сессии.",
22
23
  "FORBIDDEN": "Запрещено",
23
24
  "PROVIDER_VERIFY_FAILED": "Ошибка проверки провайдера",
24
25
  "SPAM_EMAIL_DOMAIN": "Домен электронной почты не разрешён",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Временска ознака је престара",
20
20
  "FAILED_IP_VALIDATION": "Провера IP-а није успела",
21
21
  "ACCESS_POLICY_BLOCK": "Приступ блокиран политиком",
22
+ "CLIENT_SESSION_MISMATCH": "Неподударање сесије. Captcha није завршена у овој сесији.",
22
23
  "FORBIDDEN": "Забрањено",
23
24
  "PROVIDER_VERIFY_FAILED": "Верификација провајдера није успела",
24
25
  "SPAM_EMAIL_DOMAIN": "Домен е-поште није дозвољен",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Tidsstämpel för gammal",
20
20
  "FAILED_IP_VALIDATION": "IP-validering misslyckades",
21
21
  "ACCESS_POLICY_BLOCK": "Åtkomst blockerad av policy",
22
+ "CLIENT_SESSION_MISMATCH": "Sessionen matchar inte. Captchan slutfördes inte i den här sessionen.",
22
23
  "FORBIDDEN": "Förbjuden",
23
24
  "PROVIDER_VERIFY_FAILED": "Leverantörsverifiering misslyckades",
24
25
  "SPAM_EMAIL_DOMAIN": "E-postdomänen är inte tillåten",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "ประทับเวลาเก่าเกินไป",
20
20
  "FAILED_IP_VALIDATION": "การตรวจสอบ IP ล้มเหลว",
21
21
  "ACCESS_POLICY_BLOCK": "การเข้าถึงถูกบล็อกโดยนโยบาย",
22
+ "CLIENT_SESSION_MISMATCH": "เซสชันไม่ตรงกัน แคปช่าไม่ได้ถูกทำในเซสชันนี้",
22
23
  "FORBIDDEN": "ห้าม",
23
24
  "PROVIDER_VERIFY_FAILED": "การตรวจสอบผู้ให้บริการล้มเหลว",
24
25
  "SPAM_EMAIL_DOMAIN": "โดเมนอีเมลไม่ได้รับอนุญาต",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
20
20
  "FAILED_IP_VALIDATION": "IP doğrulaması başarısız oldu",
21
21
  "ACCESS_POLICY_BLOCK": "Erişim politika tarafından engellendi",
22
+ "CLIENT_SESSION_MISMATCH": "Oturum uyuşmuyor. Captcha bu oturumda tamamlanmadı.",
22
23
  "FORBIDDEN": "Forbidden",
23
24
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
24
25
  "SPAM_EMAIL_DOMAIN": "E-posta alan adına izin verilmiyor",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
20
20
  "FAILED_IP_VALIDATION": "Перевірка IP не вдалася",
21
21
  "ACCESS_POLICY_BLOCK": "Доступ заблоковано політикою",
22
+ "CLIENT_SESSION_MISMATCH": "Невідповідність сеансу. Капчу не було пройдено в цьому сеансі.",
22
23
  "FORBIDDEN": "Forbidden",
23
24
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
24
25
  "SPAM_EMAIL_DOMAIN": "Домен електронної пошти не дозволено",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Mốc thời gian quá cũ",
20
20
  "FAILED_IP_VALIDATION": "Xác thực IP thất bại",
21
21
  "ACCESS_POLICY_BLOCK": "Truy cập bị chặn bởi chính sách",
22
+ "CLIENT_SESSION_MISMATCH": "Phiên không khớp. Captcha không được hoàn thành trong phiên này.",
22
23
  "FORBIDDEN": "Bị cấm",
23
24
  "PROVIDER_VERIFY_FAILED": "Xác thực nhà cung cấp không thành công",
24
25
  "SPAM_EMAIL_DOMAIN": "Tên miền email không được phép",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "时间戳过旧",
20
20
  "FAILED_IP_VALIDATION": "IP验证失败",
21
21
  "ACCESS_POLICY_BLOCK": "访问被策略阻止",
22
+ "CLIENT_SESSION_MISMATCH": "会话不匹配。此验证码不是在本会话中完成的。",
22
23
  "FORBIDDEN": "禁止",
23
24
  "PROVIDER_VERIFY_FAILED": "提供商验证失败",
24
25
  "SPAM_EMAIL_DOMAIN": "不允许此电子邮件域名",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@prosopo/locale",
3
- "version": "3.3.1",
3
+ "version": "3.4.1",
4
4
  "description": "Prosopo locale library",
5
5
  "type": "module",
6
6
  "engines": {
@@ -43,9 +43,9 @@
43
43
  "zod": "3.23.8"
44
44
  },
45
45
  "devDependencies": {
46
- "@prosopo/config": "3.3.12",
46
+ "@prosopo/config": "3.3.13",
47
47
  "@types/node": "22.10.2",
48
- "@vitest/coverage-v8": "4.1.10",
48
+ "@vitest/coverage-v8": "4.1.11",
49
49
  "concurrently": "9.0.1",
50
50
  "del-cli": "6.0.0",
51
51
  "dotenv": "16.4.5",
@@ -54,7 +54,7 @@
54
54
  "tsx": "4.20.3",
55
55
  "typescript": "5.6.2",
56
56
  "vite": "8.1.5",
57
- "vitest": "4.1.10"
57
+ "vitest": "4.1.11"
58
58
  },
59
59
  "repository": {
60
60
  "type": "git",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "الطابع الزمني قديم للغاية",
20
20
  "FAILED_IP_VALIDATION": "فشل التحقق من صحة IP",
21
21
  "ACCESS_POLICY_BLOCK": "تم حظر الوصول بواسطة السياسة",
22
+ "CLIENT_SESSION_MISMATCH": "عدم تطابق الجلسة. لم يتم إكمال اختبار التحقق في هذه الجلسة.",
22
23
  "FORBIDDEN": "ممنوع",
23
24
  "PROVIDER_VERIFY_FAILED": "فشل التحقق من الجهة الخارجية",
24
25
  "SPAM_EMAIL_DOMAIN": "نطاق البريد الإلكتروني غير مسموح به",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Zaman damgası çox köhnədir",
20
20
  "FAILED_IP_VALIDATION": "IP yoxlanması uğursuz oldu",
21
21
  "ACCESS_POLICY_BLOCK": "Siyasət tərəfindən giriş bloklandı",
22
+ "CLIENT_SESSION_MISMATCH": "Sessiya uyğunsuzluğu. Captcha bu sessiyada tamamlanmayıb.",
22
23
  "FORBIDDEN": "Qadağan edilir",
23
24
  "PROVIDER_VERIFY_FAILED": "Təchizatçı doğrulaması alınmadı",
24
25
  "SPAM_EMAIL_DOMAIN": "E-poçt domeni icazə verilmir",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Příliš starý časový údaj",
20
20
  "FAILED_IP_VALIDATION": "Ověření IP selhalo",
21
21
  "ACCESS_POLICY_BLOCK": "Přístup blokován zásadami",
22
+ "CLIENT_SESSION_MISMATCH": "Neshoda relace. Captcha nebyla dokončena v této relaci.",
22
23
  "FORBIDDEN": "Zakázáno",
23
24
  "PROVIDER_VERIFY_FAILED": "Ověření poskytovatele selhalo",
24
25
  "SPAM_EMAIL_DOMAIN": "E-mailová doména není povolena",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Zeitstempel zu alt",
20
20
  "FAILED_IP_VALIDATION": "IP-Validierung fehlgeschlagen",
21
21
  "ACCESS_POLICY_BLOCK": "Zugriff durch Richtlinie blockiert",
22
+ "CLIENT_SESSION_MISMATCH": "Sitzungskonflikt. Das Captcha wurde nicht in dieser Sitzung gelöst.",
22
23
  "FORBIDDEN": "Verboten",
23
24
  "PROVIDER_VERIFY_FAILED": "Anbieterüberprüfung fehlgeschlagen",
24
25
  "SPAM_EMAIL_DOMAIN": "E-Mail-Domain nicht erlaubt",
@@ -9,6 +9,7 @@
9
9
  "TIMESTAMP_TOO_OLD": "Πολύ παλιά χρονοσήμανση",
10
10
  "FAILED_IP_VALIDATION": "Η επαλήθευση IP απέτυχε",
11
11
  "ACCESS_POLICY_BLOCK": "Η πρόσβαση αποκλείστηκε από την πολιτική",
12
+ "CLIENT_SESSION_MISMATCH": "Αναντιστοιχία συνεδρίας. Το captcha δεν ολοκληρώθηκε σε αυτήν τη συνεδρία.",
12
13
  "FORBIDDEN": "Απαγορεύεται",
13
14
  "PROVIDER_VERIFY_FAILED": "Αποτυχία επαλήθευσης παρόχου",
14
15
  "SPAM_EMAIL_DOMAIN": "Ο τομέας email δεν επιτρέπεται",
@@ -118,6 +118,7 @@
118
118
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
119
119
  "FAILED_IP_VALIDATION": "IP validation failed",
120
120
  "ACCESS_POLICY_BLOCK": "Access blocked by policy",
121
+ "CLIENT_SESSION_MISMATCH": "Session mismatch. The captcha was not completed in this session.",
121
122
  "FORBIDDEN": "Forbidden",
122
123
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
123
124
  "SPAM_EMAIL_DOMAIN": "Email domain not allowed",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Marca de tiempo demasiado antigua",
20
20
  "FAILED_IP_VALIDATION": "La validación de IP falló",
21
21
  "ACCESS_POLICY_BLOCK": "Acceso bloqueado por política",
22
+ "CLIENT_SESSION_MISMATCH": "Discrepancia de sesión. El captcha no se completó en esta sesión.",
22
23
  "FORBIDDEN": "Prohibido",
23
24
  "PROVIDER_VERIFY_FAILED": "Fallo en la verificación del proveedor",
24
25
  "SPAM_EMAIL_DOMAIN": "Dominio de correo electrónico no permitido",
@@ -45,6 +45,7 @@
45
45
  "TIMESTAMP_TOO_OLD": "Aikaleima liian vanha",
46
46
  "FAILED_IP_VALIDATION": "IP-vahvistus epäonnistui",
47
47
  "ACCESS_POLICY_BLOCK": "Pääsy estetty käytännön mukaan",
48
+ "CLIENT_SESSION_MISMATCH": "Istunto ei täsmää. Captchaa ei suoritettu tässä istunnossa.",
48
49
  "FORBIDDEN": "Kielletty",
49
50
  "PROVIDER_VERIFY_FAILED": "Palveluntarjoajan tarkistus epäonnistui",
50
51
  "SPAM_EMAIL_DOMAIN": "Sähköpostiverkkotunnus ei ole sallittu",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Horodatage trop ancien",
20
20
  "FAILED_IP_VALIDATION": "Échec de la validation IP",
21
21
  "ACCESS_POLICY_BLOCK": "Accès bloqué par la politique",
22
+ "CLIENT_SESSION_MISMATCH": "Session non concordante. Le captcha n'a pas été complété dans cette session.",
22
23
  "FORBIDDEN": "Interdit",
23
24
  "PROVIDER_VERIFY_FAILED": "Échec de la vérification du fournisseur",
24
25
  "SPAM_EMAIL_DOMAIN": "Domaine de messagerie non autorisé",
@@ -318,6 +318,7 @@
318
318
  "TIMESTAMP_TOO_OLD": "समय-चहन बहत परन ह",
319
319
  "FAILED_IP_VALIDATION": "IP सत्यापन विफल",
320
320
  "ACCESS_POLICY_BLOCK": "नीति द्वारा पहुंच अवरुद्ध",
321
+ "CLIENT_SESSION_MISMATCH": "सत्र मेल नहीं खाता। कैप्चा इस सत्र में पूरा नहीं किया गया था।",
321
322
  "FORBIDDEN": "नषध",
322
323
  "PROVIDER_VERIFY_FAILED": "परदत सतयपन वफल हआ",
323
324
  "SPAM_EMAIL_DOMAIN": "ईमेल डोमेन की अनुमति नहीं है",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Az időbélyeg túl régi",
20
20
  "FAILED_IP_VALIDATION": "Az IP-ellenőrzés sikertelen",
21
21
  "ACCESS_POLICY_BLOCK": "A hozzáférést a szabályzat letiltotta",
22
+ "CLIENT_SESSION_MISMATCH": "Munkamenet-eltérés. A captcha nem ebben a munkamenetben lett kitöltve.",
22
23
  "FORBIDDEN": "tiltott",
23
24
  "PROVIDER_VERIFY_FAILED": "Szolgáltató ellenőrzése sikertelen",
24
25
  "SPAM_EMAIL_DOMAIN": "Az e-mail domain nem engedélyezett",
@@ -19,6 +19,7 @@
19
19
  "TIMESTAMP_TOO_OLD": "Timestamp too old",
20
20
  "FAILED_IP_VALIDATION": "Validasi IP gagal",
21
21
  "ACCESS_POLICY_BLOCK": "Akses diblokir oleh kebijakan",
22
+ "CLIENT_SESSION_MISMATCH": "Sesi tidak cocok. Captcha tidak diselesaikan dalam sesi ini.",
22
23
  "FORBIDDEN": "Forbidden",
23
24
  "PROVIDER_VERIFY_FAILED": "Provider verification failed",
24
25
  "SPAM_EMAIL_DOMAIN": "Domain email tidak diizinkan",