nox-validation 1.1.5 → 1.1.7

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/lib/constant.js CHANGED
@@ -154,6 +154,10 @@ const API_VERSIONS = Object.freeze(Object.values(API_VERSION));
154
154
  const LANGUAGES = Object.freeze({
155
155
  en: "en",
156
156
  nl: "nl",
157
+ lv:"lv",
158
+ pl:"pl",
159
+ ro:"ro",
160
+ ru:"ru",
157
161
  });
158
162
 
159
163
  const LOCALE_NL_MESSAGES = Object.freeze({
@@ -244,9 +248,189 @@ const LOCALE_EN_MESSAGES = Object.freeze({
244
248
  SIZE: "{field} must have a size of {value}",
245
249
  });
246
250
 
251
+ const LOCALE_LV_MESSAGES = Object.freeze({
252
+ INVALID_VALUE: `{field} satur nederīgu vērtību.`,
253
+ EMPTY: `{field} jābūt tukšam.`,
254
+ NOT_EMPTY: `{field} nedrīkst būt tukšs.`,
255
+ ONE_OF: `{field} jābūt vienai no šīm vērtībām: {value}.`,
256
+ NOT_ONE_OF: `{field} nedrīkst būt viena no šīm vērtībām: {value}.`,
257
+ REQUIRED: `{field} ir obligāts.`,
258
+ OPTIONAL: `{field} ir izvēles.`,
259
+ NOT_NULLABLE: `{field} nevar būt null.`,
260
+ INVALID_TYPE: `{field} satur nederīgu ievades tipu. Atļauts tikai {type}.`,
261
+ NOT_ALLOWED_FIELD: `{field} nav atļauts.`,
262
+ COMPARE: `{field} neatbilst paredzētajai vērtībai.`,
263
+ RULES_COMPARE: `{field} neatbilst salīdzināšanas noteikumiem.`,
264
+ ALLOW: `{field} satur tikai atļautās rakstzīmes.`,
265
+ NOT_ALLOWED: `{field} satur neatļautas rakstzīmes.`,
266
+ REGEX_MATCH: `{field} formāts nav derīgs.`,
267
+ REGEX_START_WITH: `{field} jāsākas ar {value}.`,
268
+ REGEX_ENDS_WITH: `{field} jābeidzas ar {value}.`,
269
+ REGEX_CONTAINS: `{field} jāietver {value}.`,
270
+ REGEX_EXACT: `{field} jābūt tieši {value}.`,
271
+ REGEX_NOT_START_WITH: `{field} nedrīkst sākties ar {value}.`,
272
+ REGEX_NOT_ENDS_WITH: `{field} nedrīkst beigties ar {value}.`,
273
+ REGEX_NOT_CONTAINS: `{field} nedrīkst saturēt {value}.`,
274
+ MIN_STRING: `{field} jābūt vismaz {min} rakstzīmes garam.`,
275
+ MAX_STRING: `{field} jābūt ne vairāk kā {max} rakstzīmes garam.`,
276
+ MIN_NUMBER: `{field} jābūt vismaz {min}.`,
277
+ MAX_NUMBER: `{field} jābūt ne vairāk kā {max}.`,
278
+ AND: `{field} jābūt vienai no {value}`,
279
+ OR: `{field} jābūt vienai no {value}`,
280
+ EQUAL: `{field} jābūt vienādam ar {value}`,
281
+ NOT_EQUAL: `{field} nedrīkst būt vienāds ar {value}`,
282
+ LESS_THAN: `{field} jābūt mazākam par {value}`,
283
+ LESS_THAN_EQUAL: `{field} jābūt mazākam vai vienādam ar {value}`,
284
+ GREATER_THAN: `{field} jābūt lielākam par {value}`,
285
+ GREATER_THAN_EQUAL: `{field} jābūt lielākam vai vienādam ar {value}`,
286
+ IN: `{field} jābūt vienai no šīm vērtībām: {value}`,
287
+ NOT_IN: `{field} nedrīkst saturēt kādu no šīm vērtībām: {value}`,
288
+ EXISTS: `{field} ir jāeksistē`,
289
+ TYPE: `{field} jābūt {value} tipam`,
290
+ MOD: `{field} jābūt atlikumam {value[1]} dalot ar {value[0]}`,
291
+ ALL: `{field} jāietver visas šīs vērtības: {value}`,
292
+ SIZE: `{field} izmēram jābūt {value}`,
293
+ });
294
+
295
+ const LOCALE_PL_MESSAGES = Object.freeze({
296
+ INVALID_VALUE: `{field} zawiera nieprawidłową wartość.`,
297
+ EMPTY: `{field} powinno być puste.`,
298
+ NOT_EMPTY: `{field} nie powinno być puste.`,
299
+ ONE_OF: `{field} powinno być jedną z następujących wartości: {value}.`,
300
+ NOT_ONE_OF: `{field} nie powinno być jedną z następujących wartości: {value}.`,
301
+ REQUIRED: `{field} jest wymagane.`,
302
+ OPTIONAL: `{field} jest opcjonalne.`,
303
+ NOT_NULLABLE: `{field} nie może być puste (null).`,
304
+ INVALID_TYPE: `{field} zawiera nieprawidłowy typ. Dozwolony tylko {type}.`,
305
+ NOT_ALLOWED_FIELD: `{field} nie jest dozwolone.`,
306
+ COMPARE: `{field} nie pasuje do oczekiwanej wartości.`,
307
+ RULES_COMPARE: `{field} nie spełnia reguł porównania.`,
308
+ ALLOW: `{field} zawiera tylko dozwolone znaki.`,
309
+ NOT_ALLOWED: `{field} zawiera niedozwolone znaki.`,
310
+ REGEX_MATCH: `Format pola {field} jest nieprawidłowy.`,
311
+ REGEX_START_WITH: `{field} powinno zaczynać się od {value}.`,
312
+ REGEX_ENDS_WITH: `{field} powinno kończyć się na {value}.`,
313
+ REGEX_CONTAINS: `{field} powinno zawierać {value}.`,
314
+ REGEX_EXACT: `{field} powinno być dokładnie równe {value}.`,
315
+ REGEX_NOT_START_WITH: `{field} nie powinno zaczynać się od {value}.`,
316
+ REGEX_NOT_ENDS_WITH: `{field} nie powinno kończyć się na {value}.`,
317
+ REGEX_NOT_CONTAINS: `{field} nie powinno zawierać {value}.`,
318
+ MIN_STRING: `{field} musi mieć co najmniej {min} znaków.`,
319
+ MAX_STRING: `{field} może mieć maksymalnie {max} znaków.`,
320
+ MIN_NUMBER: `{field} musi być co najmniej {min}.`,
321
+ MAX_NUMBER: `{field} może być maksymalnie {max}.`,
322
+ AND: `{field} musi być jedną z wartości: {value}`,
323
+ OR: `{field} musi być jedną z wartości: {value}`,
324
+ EQUAL: `{field} musi być równe {value}`,
325
+ NOT_EQUAL: `{field} nie może być równe {value}`,
326
+ LESS_THAN: `{field} musi być mniejsze niż {value}`,
327
+ LESS_THAN_EQUAL: `{field} musi być mniejsze lub równe {value}`,
328
+ GREATER_THAN: `{field} musi być większe niż {value}`,
329
+ GREATER_THAN_EQUAL: `{field} musi być większe lub równe {value}`,
330
+ IN: `{field} musi być jedną z następujących wartości: {value}`,
331
+ NOT_IN: `{field} nie może zawierać żadnej z następujących wartości: {value}`,
332
+ EXISTS: `{field} musi istnieć`,
333
+ TYPE: `{field} musi być typu {value}`,
334
+ MOD: `{field} musi mieć resztę {value[1]} po podzieleniu przez {value[0]}`,
335
+ ALL: `{field} musi zawierać wszystkie z następujących wartości: {value}`,
336
+ SIZE: `{field} musi mieć rozmiar {value}`,
337
+ });
338
+
339
+ const LOCALE_RO_MESSAGES = Object.freeze({
340
+ INVALID_VALUE: `{field} conține o valoare invalidă.`,
341
+ EMPTY: `{field} trebuie să fie gol.`,
342
+ NOT_EMPTY: `{field} nu trebuie să fie gol.`,
343
+ ONE_OF: `{field} trebuie să fie una dintre următoarele: {value}.`,
344
+ NOT_ONE_OF: `{field} nu trebuie să fie una dintre următoarele: {value}.`,
345
+ REQUIRED: `{field} este obligatoriu.`,
346
+ OPTIONAL: `{field} este opțional.`,
347
+ NOT_NULLABLE: `{field} nu poate fi nul.`,
348
+ INVALID_TYPE: `{field} conține un tip de intrare invalid. Doar {type} este permis.`,
349
+ NOT_ALLOWED_FIELD: `{field} nu este permis.`,
350
+ COMPARE: `{field} nu se potrivește cu valoarea așteptată.`,
351
+ RULES_COMPARE: `{field} nu respectă regulile de comparare.`,
352
+ ALLOW: `{field} conține doar caractere permise.`,
353
+ NOT_ALLOWED: `{field} conține caractere nepermise.`,
354
+ REGEX_MATCH: `Formatul lui {field} este invalid.`,
355
+ REGEX_START_WITH: `{field} trebuie să înceapă cu {value}.`,
356
+ REGEX_ENDS_WITH: `{field} trebuie să se termine cu {value}.`,
357
+ REGEX_CONTAINS: `{field} trebuie să conțină {value}.`,
358
+ REGEX_EXACT: `{field} trebuie să fie exact {value}.`,
359
+ REGEX_NOT_START_WITH: `{field} nu trebuie să înceapă cu {value}.`,
360
+ REGEX_NOT_ENDS_WITH: `{field} nu trebuie să se termine cu {value}.`,
361
+ REGEX_NOT_CONTAINS: `{field} nu trebuie să conțină {value}.`,
362
+ MIN_STRING: `{field} trebuie să aibă cel puțin {min} caractere.`,
363
+ MAX_STRING: `{field} trebuie să aibă cel mult {max} caractere.`,
364
+ MIN_NUMBER: `{field} trebuie să fie cel puțin {min}.`,
365
+ MAX_NUMBER: `{field} trebuie să fie cel mult {max}.`,
366
+ AND: `{field} trebuie să fie una dintre: {value}`,
367
+ OR: `{field} trebuie să fie una dintre: {value}`,
368
+ EQUAL: `{field} trebuie să fie egal cu {value}`,
369
+ NOT_EQUAL: `{field} nu trebuie să fie egal cu {value}`,
370
+ LESS_THAN: `{field} trebuie să fie mai mic decât {value}`,
371
+ LESS_THAN_EQUAL: `{field} trebuie să fie mai mic sau egal cu {value}`,
372
+ GREATER_THAN: `{field} trebuie să fie mai mare decât {value}`,
373
+ GREATER_THAN_EQUAL: `{field} trebuie să fie mai mare sau egal cu {value}`,
374
+ IN: `{field} trebuie să fie una dintre următoarele valori: {value}`,
375
+ NOT_IN: `{field} nu trebuie să conțină niciuna dintre următoarele valori: {value}`,
376
+ EXISTS: `{field} trebuie să existe`,
377
+ TYPE: `{field} trebuie să fie de tipul {value}`,
378
+ MOD: `{field} trebuie să aibă restul {value[1]} când este împărțit la {value[0]}`,
379
+ ALL: `{field} trebuie să conțină toate valorile: {value}`,
380
+ SIZE: `{field} trebuie să aibă dimensiunea {value}`,
381
+ });
382
+
383
+ const LOCALE_RU_MESSAGES = Object.freeze({
384
+ INVALID_VALUE: `{field} содержит недопустимое значение.`,
385
+ EMPTY: `{field} должно быть пустым.`,
386
+ NOT_EMPTY: `{field} не должно быть пустым.`,
387
+ ONE_OF: `{field} должно быть одним из следующих значений: {value}.`,
388
+ NOT_ONE_OF: `{field} не должно быть одним из следующих значений: {value}.`,
389
+ REQUIRED: `{field} обязательно для заполнения.`,
390
+ OPTIONAL: `{field} является необязательным.`,
391
+ NOT_NULLABLE: `{field} не может быть null.`,
392
+ INVALID_TYPE: `{field} содержит недопустимый тип. Допустим только {type}.`,
393
+ NOT_ALLOWED_FIELD: `{field} не разрешено.`,
394
+ COMPARE: `{field} не соответствует ожидаемому значению.`,
395
+ RULES_COMPARE: `{field} не соответствует правилам сравнения.`,
396
+ ALLOW: `{field} содержит только допустимые символы.`,
397
+ NOT_ALLOWED: `{field} содержит недопустимые символы.`,
398
+ REGEX_MATCH: `Неверный формат для {field}.`,
399
+ REGEX_START_WITH: `{field} должно начинаться с {value}.`,
400
+ REGEX_ENDS_WITH: `{field} должно заканчиваться на {value}.`,
401
+ REGEX_CONTAINS: `{field} должно содержать {value}.`,
402
+ REGEX_EXACT: `{field} должно быть точно равно {value}.`,
403
+ REGEX_NOT_START_WITH: `{field} не должно начинаться с {value}.`,
404
+ REGEX_NOT_ENDS_WITH: `{field} не должно заканчиваться на {value}.`,
405
+ REGEX_NOT_CONTAINS: `{field} не должно содержать {value}.`,
406
+ MIN_STRING: `{field} должно содержать минимум {min} символов.`,
407
+ MAX_STRING: `{field} должно содержать не более {max} символов.`,
408
+ MIN_NUMBER: `{field} должно быть не меньше {min}.`,
409
+ MAX_NUMBER: `{field} должно быть не больше {max}.`,
410
+ AND: `{field} должно быть одним из: {value}`,
411
+ OR: `{field} должно быть одним из: {value}`,
412
+ EQUAL: `{field} должно быть равно {value}`,
413
+ NOT_EQUAL: `{field} не должно быть равно {value}`,
414
+ LESS_THAN: `{field} должно быть меньше {value}`,
415
+ LESS_THAN_EQUAL: `{field} должно быть меньше или равно {value}`,
416
+ GREATER_THAN: `{field} должно быть больше {value}`,
417
+ GREATER_THAN_EQUAL: `{field} должно быть больше или равно {value}`,
418
+ IN: `{field} должно быть одним из следующих значений: {value}`,
419
+ NOT_IN: `{field} не должно содержать ни одно из значений: {value}`,
420
+ EXISTS: `{field} должно существовать`,
421
+ TYPE: `{field} должно быть типа {value}`,
422
+ MOD: `{field} должно иметь остаток {value[1]} при делении на {value[0]}`,
423
+ ALL: `{field} должно содержать все следующие значения: {value}`,
424
+ SIZE: `{field} должно иметь размер {value}`,
425
+ });
426
+
247
427
  const LOCALE_MESSAGES = Object.freeze({
248
428
  [LANGUAGES.en]:LOCALE_EN_MESSAGES,
249
- [LANGUAGES.nl]:LOCALE_NL_MESSAGES
429
+ [LANGUAGES.nl]:LOCALE_NL_MESSAGES,
430
+ [LANGUAGES.lv]:LOCALE_LV_MESSAGES,
431
+ [LANGUAGES.pl]:LOCALE_PL_MESSAGES,
432
+ [LANGUAGES.ro]:LOCALE_RO_MESSAGES,
433
+ [LANGUAGES.ru]:LOCALE_RU_MESSAGES
250
434
  })
251
435
 
252
436
  module.exports = {
package/lib/helpers.js CHANGED
@@ -384,6 +384,22 @@ const generateField = (name, path, schema_definition_type, type, childrenFields
384
384
  };
385
385
  };
386
386
 
387
+ const createChildrenFieldsFiles = (key) => {
388
+ const existingField = generateField(
389
+ "existing",
390
+ `${key}.existing`,
391
+ constants.types.OBJECT_ID,
392
+ constants.types.ARRAY
393
+ );
394
+ const deleteField = generateField(
395
+ "delete",
396
+ `${key}.delete`,
397
+ constants.types.OBJECT_ID,
398
+ constants.types.ARRAY
399
+ );
400
+ return [existingField, deleteField];
401
+ }
402
+
387
403
  const generateRelationalFieldV1 = (key = "", collectionFields = [], relationType) => {
388
404
  if (relationType === constants.interfaces.MANY_TO_ANY) {
389
405
  return [
@@ -707,6 +723,11 @@ const buildNestedStructure = ({
707
723
  schemaFields.forEach((item) => {
708
724
  const pathParts = item.path.split(".");
709
725
  const key = pathParts.join(".");
726
+ const isV2File = apiVersion === constants.API_VERSION.V2 && [
727
+ constants.interfaces.FILES,
728
+ constants.interfaces.FILE,
729
+ constants.interfaces.FILE_IMAGE,
730
+ ].includes(item?.meta?.interface);
710
731
 
711
732
  const currentDepth = currentDepthMap.get(isRoot ? item.path : rootPath) || 0;
712
733
 
@@ -714,9 +735,7 @@ const buildNestedStructure = ({
714
735
 
715
736
  let childFields;
716
737
 
717
- const definedType = generateType(item, apiVersion);
718
- // apiVersion === constants.API_VERSION.V1 ? convertTypesV1(item) : convertTypes(item);
719
- // const isUserKey = default_fields.some((field) => item?.path?.includes(field));
738
+ let definedType = generateType(item, apiVersion);
720
739
 
721
740
  if (definedType.find_relations && currentDepth <= maxLevel) {
722
741
  const relationDetail = getForeignCollectionDetails({
@@ -757,6 +776,12 @@ const buildNestedStructure = ({
757
776
  }
758
777
  }
759
778
 
779
+ if(isV2File){
780
+ definedType.array_type = constants.types.OBJECT;
781
+ definedType.type = constants.types.OBJECT;
782
+ childFields = createChildrenFieldsFiles(key);
783
+ }
784
+
760
785
  const node = {
761
786
  field_id: item?._id,
762
787
  schema_id: item?.schema_id,
@@ -776,7 +801,7 @@ const buildNestedStructure = ({
776
801
  custom_error_message: item?.meta?.validations?.validation_msg,
777
802
  children:
778
803
  childFields?.length > 0
779
- ? apiVersion === constants.API_VERSION.V1 &&
804
+ ? isV2File ? childFields:apiVersion === constants.API_VERSION.V1 &&
780
805
  item.meta?.interface !== constants.interfaces.TRANSLATIONS
781
806
  ? generateRelationalFieldV1(key, childFields, item.meta?.interface)
782
807
  : generateRelationalField(key, childFields, item.meta?.interface)
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "nox-validation",
3
- "version": "1.1.5",
3
+ "version": "1.1.7",
4
4
  "description": "validate dynamic schema",
5
5
  "main": "index.js",
6
6
  "scripts": {