Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
40 changes: 40 additions & 0 deletions packages/payload/src/fields/validations.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -231,6 +231,46 @@ describe('Field Validations', () => {
const result = point(val, pointOptions)
expect(result).not.toBe(true)
})
it('should validate longitude within bounds', () => {
const val: PointFieldValue = ['180', '0']
const result = point(val, pointOptions)
expect(result).toBe(true)
})
it('should validate longitude at lower bound', () => {
const val: PointFieldValue = ['-180', '0']
const result = point(val, pointOptions)
expect(result).toBe(true)
})
it('should prevent longitude below lower bound', () => {
const val: PointFieldValue = ['-181', '0']
const result = point(val, pointOptions)
expect(result).toBe('validation:longitudeOutOfBounds')
})
it('should prevent longitude above upper bound', () => {
const val: PointFieldValue = ['181', '0']
const result = point(val, pointOptions)
expect(result).toBe('validation:longitudeOutOfBounds')
})
it('should validate latitude within bounds', () => {
const val: PointFieldValue = ['0', '90']
const result = point(val, pointOptions)
expect(result).toBe(true)
})
it('should validate latitude at lower bound', () => {
const val: PointFieldValue = ['0', '-90']
const result = point(val, pointOptions)
expect(result).toBe(true)
})
it('should prevent latitude below lower bound', () => {
const val: PointFieldValue = ['0', '-91']
const result = point(val, pointOptions)
expect(result).toBe('validation:latitudeOutOfBounds')
})
it('should prevent latitude above upper bound', () => {
const val: PointFieldValue = ['0', '91']
const result = point(val, pointOptions)
expect(result).toBe('validation:latitudeOutOfBounds')
})
})

describe('relationship', () => {
Expand Down
10 changes: 10 additions & 0 deletions packages/payload/src/fields/validations.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1049,6 +1049,16 @@ export const point: PointFieldValidation = (value = ['', ''], { req: { t }, requ
return t('validation:invalidInput')
}

// Validate longitude bounds (-180 to 180)
if (value[0] && !Number.isNaN(lng) && (lng < -180 || lng > 180)) {
return t('validation:longitudeOutOfBounds')
}

// Validate latitude bounds (-90 to 90)
if (value[1] && !Number.isNaN(lat) && (lat < -90 || lat > 90)) {
return t('validation:latitudeOutOfBounds')
}

return true
}

Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/clientKeys.ts
Original file line number Diff line number Diff line change
Expand Up @@ -430,8 +430,10 @@ export const clientTranslationKeys = createClientTranslationKeys([
'validation:invalidInput',
'validation:invalidSelection',
'validation:invalidSelections',
'validation:latitudeOutOfBounds',
'validation:lessThanMin',
'validation:limitReached',
'validation:longitudeOutOfBounds',
'validation:invalidBlock',
'validation:invalidBlocks',
'validation:longerThanMin',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/ar.ts
Original file line number Diff line number Diff line change
Expand Up @@ -505,9 +505,11 @@ export const arTranslations: DefaultTranslationsObject = {
invalidInput: 'هذا الحقل لديه إدخال غير صالح.',
invalidSelection: 'هذا الحقل لديه اختيار غير صالح.',
invalidSelections: 'هذا الحقل لديه الاختيارات الغير صالحة التالية:',
latitudeOutOfBounds: 'يجب أن تكون العرض بين -90 و 90.',
lessThanMin: '{{value}} أقل من الحد الأدنى المسموح به {{label}} الذي يبلغ {{min}}.',
limitReached: 'تم الوصول إلى الحد الأقصى، يمكن إضافة {{max}} عناصر فقط.',
longerThanMin: 'يجب أن يكون هذا القيمة أطول من الحد الأدنى للطول الذي هو {{minLength}} أحرف.',
longitudeOutOfBounds: 'يجب أن تكون الخطوط الطولية بين -180 و 180.',
notValidDate: '"{{value}}" ليس تاريخا صالحا.',
required: 'هذا الحقل مطلوب.',
requiresAtLeast: 'هذا الحقل يتطلب على الأقل {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/az.ts
Original file line number Diff line number Diff line change
Expand Up @@ -521,9 +521,11 @@ export const azTranslations: DefaultTranslationsObject = {
invalidInput: 'Bu sahə yanlış daxil edilmişdir.',
invalidSelection: 'Bu sahədə yanlış seçim edilmişdir.',
invalidSelections: 'Bu sahədə aşağıdakı yanlış seçimlər edilmişdir:',
latitudeOutOfBounds: 'Enlem -90 ilə 90 arasında olmalıdır.',
lessThanMin: '{{value}} icazə verilən minimal {{label}} olan {{min}}-dən kiçikdir.',
limitReached: 'Limitə çatdınız, yalnız {{max}} element əlavə edilə bilər.',
longerThanMin: 'Bu dəyər {{minLength}} simvoldan uzun olmalıdır.',
longitudeOutOfBounds: 'Boylam -180 ilə 180 arasında olmalıdır.',
notValidDate: '"{{value}}" doğru tarix deyil.',
required: 'Bu sahə mütləq doldurulmalıdır.',
requiresAtLeast: 'Bu sahə ən azı {{count}} {{label}} tələb edir.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/bg.ts
Original file line number Diff line number Diff line change
Expand Up @@ -516,10 +516,12 @@ export const bgTranslations: DefaultTranslationsObject = {
invalidInput: 'Това поле има невалиден вход.',
invalidSelection: 'Това поле има невалидна селекция.',
invalidSelections: 'Това поле има следните невалидни селекции:',
latitudeOutOfBounds: 'Ширината трябва да е между -90 и 90.',
lessThanMin: '{{value}} е по-малко от минимално допустимото {{label}} от {{min}}.',
limitReached: 'Достигнат е лимитът, могат да бъдат добавени само {{max}} елемента.',
longerThanMin:
'Тази стойност трябва да е по-голяма от минималната стойност от {{minLength}} символа.',
longitudeOutOfBounds: 'Дължината трябва да бъде между -180 и 180.',
notValidDate: '"{{value}}" не е валидна дата.',
required: 'Това поле е задължително.',
requiresAtLeast: 'Това поле изисква поне {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/bnBd.ts
Original file line number Diff line number Diff line change
Expand Up @@ -523,9 +523,11 @@ export const bnBdTranslations: DefaultTranslationsObject = {
invalidInput: 'এই ক্ষেত্রে একটি অবৈধ ইনপুট রয়েছে।',
invalidSelection: 'এই ক্ষেত্রে একটি অবৈধ নির্বাচন রয়েছে।',
invalidSelections: 'এই ক্ষেত্রে নিম্নলিখিত অবৈধ নির্বাচনগুলি রয়েছে:',
latitudeOutOfBounds: 'অক্ষাংশ -90 এবং 90 এর মধ্যে হতে হবে।',
lessThanMin: '{{value}} সর্বনিম্ন অনুমোদিত {{label}} {{min}} এর চেয়ে ছোট।',
limitReached: 'সীমা reached, সর্বাধিক {{max}} আইটেম যোগ করা যাবে।',
longerThanMin: 'এই মানটি সর্বনিম্ন {{minLength}} অক্ষরের চেয়ে লম্বা হতে হবে।',
longitudeOutOfBounds: 'দ্রাগিমাংস অবশ্যই -১৮০ এবং ১৮০ এর মধ্যে হতে হবে।',
notValidDate: '"{{value}}" একটি বৈধ তারিখ নয়।',
required: 'এই ক্ষেত্রটি প্রয়োজনীয়।',
requiresAtLeast: 'এই ক্ষেত্রটির জন্য কমপক্ষে {{count}} {{label}} প্রয়োজন।',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/bnIn.ts
Original file line number Diff line number Diff line change
Expand Up @@ -522,9 +522,11 @@ export const bnInTranslations: DefaultTranslationsObject = {
invalidInput: 'এই ক্ষেত্রে একটি অবৈধ ইনপুট রয়েছে।',
invalidSelection: 'এই ক্ষেত্রে একটি অবৈধ নির্বাচন রয়েছে।',
invalidSelections: 'এই ক্ষেত্রে নিম্নলিখিত অবৈধ নির্বাচনগুলি রয়েছে:',
latitudeOutOfBounds: 'অক্ষাংশ -90 এবং 90 এর মধ্যে হতে হবে।',
lessThanMin: '{{value}} সর্বনিম্ন অনুমোদিত {{label}} {{min}} এর চেয়ে ছোট।',
limitReached: 'সীমা reached, সর্বাধিক {{max}} আইটেম যোগ করা যাবে।',
longerThanMin: 'এই মানটি সর্বনিম্ন {{minLength}} অক্ষরের চেয়ে লম্বা হতে হবে।',
longitudeOutOfBounds: 'দীর্ঘবিন্ন অবশ্যই -180 এবং 180 এর মধ্যে থাকতে হবে।',
notValidDate: '"{{value}}" একটি বৈধ তারিখ নয়।',
required: 'এই ক্ষেত্রটি প্রয়োজনীয়।',
requiresAtLeast: 'এই ক্ষেত্রটির জন্য কমপক্ষে {{count}} {{label}} প্রয়োজন।',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/ca.ts
Original file line number Diff line number Diff line change
Expand Up @@ -519,10 +519,12 @@ export const caTranslations: DefaultTranslationsObject = {
invalidInput: 'Aquest camp té una entrada invàlida.',
invalidSelection: 'Aquest camp té una selecció invàlida.',
invalidSelections: 'Aquest camp té les següents seleccions invàlides:',
latitudeOutOfBounds: 'La latitud ha de ser entre -90 i 90.',
lessThanMin: '{{value}} és menor que el mínim permès {{label}} de {{min}}.',
limitReached: "S'ha arribat al límit, només es poden afegir {{max}} elements.",
longerThanMin:
'Aquest valor ha de ser més llarg que la longitud mínima de {{minLength}} caràcters.',
longitudeOutOfBounds: 'La longitud ha de ser entre -180 i 180.',
notValidDate: '"{{value}}" no és una data vàlida.',
required: 'Aquest camp és obligatori.',
requiresAtLeast: 'Aquest camp requereix almenys {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/cs.ts
Original file line number Diff line number Diff line change
Expand Up @@ -515,9 +515,11 @@ export const csTranslations: DefaultTranslationsObject = {
invalidInput: 'Toto pole má neplatný vstup.',
invalidSelection: 'Toto pole má neplatný výběr.',
invalidSelections: 'Toto pole má následující neplatné výběry:',
latitudeOutOfBounds: 'Zeměpisná šířka musí být mezi -90 a 90.',
lessThanMin: '{{value}} je nižší než minimálně povolená {{label}} {{min}}.',
limitReached: 'Dosáhnutý limit, mohou být přidány pouze {{max}} položky.',
longerThanMin: 'Tato hodnota musí být delší než minimální délka {{minLength}} znaků.',
longitudeOutOfBounds: 'Zeměpisná délka musí být mezi -180 a 180.',
notValidDate: '"{{value}}" není platné datum.',
required: 'Toto pole je povinné.',
requiresAtLeast: 'Toto pole vyžaduje alespoň {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/da.ts
Original file line number Diff line number Diff line change
Expand Up @@ -516,9 +516,11 @@ export const daTranslations: DefaultTranslationsObject = {
invalidInput: 'Dette felt har et ugyldigt indtastning.',
invalidSelection: 'Dette felt har en ugyldig valg.',
invalidSelections: 'Dette felt har følgende ugyldige valg:',
latitudeOutOfBounds: 'Breddegrad skal være mellem -90 og 90.',
lessThanMin: '{{value}} er mindre end den minimum tilladte {{label}} of {{min}}.',
limitReached: 'Grænse nået, kun {{max}} elementer kan tilføjes.',
longerThanMin: 'Denne værdi skal være længere end den minimale længde på {{minLength}} tegn.',
longitudeOutOfBounds: 'Længdegrad skal være mellem -180 og 180.',
notValidDate: '"{{value}}" er ikke en gyldig dato.',
required: 'Dette felt er påkrævet.',
requiresAtLeast: 'Dette felt kræver mindst {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/de.ts
Original file line number Diff line number Diff line change
Expand Up @@ -529,9 +529,11 @@ export const deTranslations: DefaultTranslationsObject = {
invalidInput: 'Dieses Feld hat einen inkorrekten Wert.',
invalidSelection: 'Dieses Feld hat eine inkorrekte Auswahl.',
invalidSelections: 'Dieses Feld enthält die folgenden inkorrekten Auswahlmöglichkeiten:',
latitudeOutOfBounds: 'Die Breitengrade müssen zwischen -90 und 90 liegen.',
lessThanMin: '{{value}} ist kleiner als der minimal erlaubte {{label}} von {{min}}.',
limitReached: 'Limit erreicht, es können nur {{max}} Elemente hinzugefügt werden.',
longerThanMin: 'Dieser Wert muss länger als die minimale Länge von {{minLength}} Zeichen sein.',
longitudeOutOfBounds: 'Die Längengrad muss zwischen -180 und 180 liegen.',
notValidDate: '"{{value}}" ist kein gültiges Datum.',
required: 'Pflichtfeld',
requiresAtLeast: 'Dieses Feld muss mindestens {{count}} {{label}} enthalten.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -520,9 +520,11 @@ export const enTranslations = {
invalidInput: 'This field has an invalid input.',
invalidSelection: 'This field has an invalid selection.',
invalidSelections: 'This field has the following invalid selections:',
latitudeOutOfBounds: 'Latitude must be between -90 and 90.',
lessThanMin: '{{value}} is less than the min allowed {{label}} of {{min}}.',
limitReached: 'Limit reached, only {{max}} items can be added.',
longerThanMin: 'This value must be longer than the minimum length of {{minLength}} characters.',
longitudeOutOfBounds: 'Longitude must be between -180 and 180.',
notValidDate: '"{{value}}" is not a valid date.',
required: 'This field is required.',
requiresAtLeast: 'This field requires at least {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -523,9 +523,11 @@ export const esTranslations: DefaultTranslationsObject = {
invalidInput: 'La información en este campo es inválida.',
invalidSelection: 'La selección en este campo es inválida.',
invalidSelections: 'Este campo tiene las siguientes selecciones inválidas:',
latitudeOutOfBounds: 'La latitud debe estar entre -90 y 90.',
lessThanMin: '{{value}} es menor que el mínimo permitido de {{min}} en {{label}}.',
limitReached: 'Se ha alcanzado el límite. Solo se pueden agregar {{max}} elementos.',
longerThanMin: 'Este valor debe tener una longitud mínima de {{minLength}} caracteres.',
longitudeOutOfBounds: 'La longitud debe estar entre -180 y 180.',
notValidDate: '"{{value}}" es una fecha inválida.',
required: 'Este campo es obligatorio.',
requiresAtLeast: 'Este campo requiere al menos {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/et.ts
Original file line number Diff line number Diff line change
Expand Up @@ -511,9 +511,11 @@ export const etTranslations: DefaultTranslationsObject = {
invalidInput: 'Sellel väljal on vigane sisend.',
invalidSelection: 'Sellel väljal on vigane valik.',
invalidSelections: 'Sellel väljal on järgmised vigased valikud:',
latitudeOutOfBounds: 'Laiuskraad peab olema vahemikus -90 kuni 90.',
lessThanMin: '{{value}} on väiksem kui lubatud minimaalne {{label}} {{min}}.',
limitReached: 'Limiit saavutatud, saab lisada ainult {{max}} üksust.',
longerThanMin: 'See väärtus peab olema pikem kui minimaalne pikkus {{minLength}} tähemärki.',
longitudeOutOfBounds: 'Pikkuskraad peab olema vahemikus -180 kuni 180.',
notValidDate: '"{{value}}" ei ole kehtiv kuupäev.',
required: 'See väli on kohustuslik.',
requiresAtLeast: 'See väli nõuab vähemalt {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/fa.ts
Original file line number Diff line number Diff line change
Expand Up @@ -508,9 +508,11 @@ export const faTranslations: DefaultTranslationsObject = {
invalidInput: 'مقدار وارد شده نامعتبر است.',
invalidSelection: 'گزینه انتخاب شده نامعتبر است.',
invalidSelections: 'این فیلد حاوی گزینه‌های نامعتبر است:',
latitudeOutOfBounds: 'عرض جغرافیایی باید بین -90 تا 90 باشد.',
lessThanMin: 'مقدار وارد شده ({{value}}) نباید کمتر از {{min}} باشد.',
limitReached: 'حداکثر تعداد مجاز {{max}} مورد است و شما نمی‌توانید موارد بیشتری اضافه کنید.',
longerThanMin: 'طول متن باید بیشتر از {{minLength}} کاراکتر باشد.',
longitudeOutOfBounds: 'عرض جغرافیایی باید بین -180 و 180 باشد.',
notValidDate: '"{{value}}" یک تاریخ معتبر نیست.',
required: 'این فیلد الزامی است.',
requiresAtLeast: 'این فیلد به حداقل {{count}} {{label}} نیاز دارد.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/fr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -529,10 +529,12 @@ export const frTranslations: DefaultTranslationsObject = {
invalidInput: 'Ce champ a une entrée invalide.',
invalidSelection: 'Ce champ a une sélection invalide.',
invalidSelections: 'Ce champ contient les sélections invalides suivantes :',
latitudeOutOfBounds: 'La latitude doit être comprise entre -90 et 90.',
lessThanMin: '{{value}} est inférieur au min autorisé {{label}} de {{min}}.',
limitReached: 'Limite atteinte, seulement {{max}} éléments peuvent être ajoutés.',
longerThanMin:
'Cette valeur doit être supérieure à la longueur minimale de {{minLength}} caractères.',
longitudeOutOfBounds: 'La longitude doit être comprise entre -180 et 180.',
notValidDate: '"{{value}}" n’est pas une date valide.',
required: 'Ce champ est requis.',
requiresAtLeast: 'Ce champ doit avoir au moins {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/he.ts
Original file line number Diff line number Diff line change
Expand Up @@ -503,9 +503,11 @@ export const heTranslations: DefaultTranslationsObject = {
invalidInput: 'שדה זה מכיל קלט לא תקני.',
invalidSelection: 'שדה זה מכיל בחירה לא תקנית.',
invalidSelections: 'שדה זה מכיל את הבחירות הבאות שאינן תקניות:',
latitudeOutOfBounds: 'הקווית חייבת להיות בין -90 ל-90.',
lessThanMin: '{{value}} קטן מהערך המינימלי המותר של {{label}} שהוא {{min}}.',
limitReached: 'הגעת למגבלה, ניתן להוסיף רק {{max}} פריטים.',
longerThanMin: 'ערך זה חייב להיות ארוך מאורך המינימום של {{minLength}} תווים.',
longitudeOutOfBounds: 'אורך צריך להיות בין -180 ל-180.',
notValidDate: '"{{value}}" אינו תאריך תקני.',
required: 'שדה זה הוא שדה חובה.',
requiresAtLeast: 'שדה זה דורש לפחות {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/hr.ts
Original file line number Diff line number Diff line change
Expand Up @@ -517,9 +517,11 @@ export const hrTranslations: DefaultTranslationsObject = {
invalidInput: 'Ovo polje ima neispravan unos.',
invalidSelection: 'Ovo polje ima neispravan odabir.',
invalidSelections: 'Ovo polje ima sljedeće neispravne odabire:',
latitudeOutOfBounds: 'Geografska širina mora biti između -90 i 90.',
lessThanMin: '{{value}} is below the minimum allowable {{label}} limit of {{min}}.',
limitReached: 'Dosegnut je limit, može se dodati samo {{max}} stavki.',
longerThanMin: 'Ova vrijednost mora biti duža od minimalne dužine od {{minLength}} znakova',
longitudeOutOfBounds: 'Geografska dužina mora biti između -180 i 180.',
notValidDate: '"{{value}}" nije valjan datum.',
required: 'Ovo polje je obvezno.',
requiresAtLeast: 'Ovo polje zahtjeva minimalno {{count}} {{label}}.',
Expand Down
2 changes: 2 additions & 0 deletions packages/translations/src/languages/hu.ts
Original file line number Diff line number Diff line change
Expand Up @@ -522,10 +522,12 @@ export const huTranslations: DefaultTranslationsObject = {
invalidInput: 'Ez a mező érvénytelen értéket tartalmaz.',
invalidSelection: 'Ez a mező érvénytelen kijelöléssel rendelkezik.',
invalidSelections: 'Ez a mező a következő érvénytelen kijelöléseket tartalmazza:',
latitudeOutOfBounds: 'A szélességnek -90 és 90 között kell lennie.',
lessThanMin: '{{value}} kisebb, mint a megengedett minimum {{label}} érték, ami {{min}}.',
limitReached: 'Elérte a korlátot, csak {{max}} elem adható hozzá.',
longerThanMin:
'Ennek az értéknek hosszabbnak kell lennie, mint a minimális {{minLength}} karakter hosszúság.',
longitudeOutOfBounds: 'A hosszúságnak -180 és 180 között kell lennie.',
notValidDate: '" {{value}} " nem érvényes dátum.',
required: 'Ez a mező kötelező.',
requiresAtLeast: 'Ehhez a mezőhöz legalább {{count}} {{label}} szükséges.',
Expand Down
Loading