@forwardslashns/taskit-validation-messages 1.10.18 → 1.10.19

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 (123) hide show
  1. package/dist/index.d.ts +2 -1
  2. package/dist/index.d.ts.map +1 -1
  3. package/dist/index.js +3 -1
  4. package/dist/validation/features/account-categories.validation-messages.d.ts +18 -14
  5. package/dist/validation/features/account-categories.validation-messages.d.ts.map +1 -1
  6. package/dist/validation/features/account-categories.validation-messages.js +7 -2
  7. package/dist/validation/features/account-ids.validation-messages.d.ts +23 -18
  8. package/dist/validation/features/account-ids.validation-messages.d.ts.map +1 -1
  9. package/dist/validation/features/account-ids.validation-messages.js +8 -2
  10. package/dist/validation/features/business-activities.validation-messages.d.ts +18 -14
  11. package/dist/validation/features/business-activities.validation-messages.d.ts.map +1 -1
  12. package/dist/validation/features/business-activities.validation-messages.js +7 -2
  13. package/dist/validation/features/client-current-entity-statuses.validation-messages.d.ts +195 -158
  14. package/dist/validation/features/client-current-entity-statuses.validation-messages.d.ts.map +1 -1
  15. package/dist/validation/features/client-current-entity-statuses.validation-messages.js +45 -7
  16. package/dist/validation/features/client-records-addresses.validation-messages.d.ts +71 -58
  17. package/dist/validation/features/client-records-addresses.validation-messages.d.ts.map +1 -1
  18. package/dist/validation/features/client-records-addresses.validation-messages.js +16 -2
  19. package/dist/validation/features/client-records-banks.validation-messages.d.ts +20 -15
  20. package/dist/validation/features/client-records-banks.validation-messages.d.ts.map +1 -1
  21. package/dist/validation/features/client-records-banks.validation-messages.js +8 -2
  22. package/dist/validation/features/client-records-commission-details.validation-messages.d.ts +21 -16
  23. package/dist/validation/features/client-records-commission-details.validation-messages.d.ts.map +1 -1
  24. package/dist/validation/features/client-records-commission-details.validation-messages.js +8 -2
  25. package/dist/validation/features/client-records-contacts.validation-messages.d.ts +41 -33
  26. package/dist/validation/features/client-records-contacts.validation-messages.d.ts.map +1 -1
  27. package/dist/validation/features/client-records-contacts.validation-messages.js +11 -2
  28. package/dist/validation/features/client-records-credit-cards.validation-messages.d.ts +24 -18
  29. package/dist/validation/features/client-records-credit-cards.validation-messages.d.ts.map +1 -1
  30. package/dist/validation/features/client-records-credit-cards.validation-messages.js +9 -2
  31. package/dist/validation/features/client-records-entity-states-histories.validation-messages.d.ts +97 -80
  32. package/dist/validation/features/client-records-entity-states-histories.validation-messages.d.ts.map +1 -1
  33. package/dist/validation/features/client-records-entity-states-histories.validation-messages.js +30 -12
  34. package/dist/validation/features/client-records-entity-types-histories.validation-messages.d.ts +96 -79
  35. package/dist/validation/features/client-records-entity-types-histories.validation-messages.d.ts.map +1 -1
  36. package/dist/validation/features/client-records-entity-types-histories.validation-messages.js +30 -12
  37. package/dist/validation/features/client-records-filing-statuses-histories.validation-messages.d.ts +96 -79
  38. package/dist/validation/features/client-records-filing-statuses-histories.validation-messages.d.ts.map +1 -1
  39. package/dist/validation/features/client-records-filing-statuses-histories.validation-messages.js +30 -12
  40. package/dist/validation/features/client-records-outside-providers.validation-messages.d.ts +10 -8
  41. package/dist/validation/features/client-records-outside-providers.validation-messages.d.ts.map +1 -1
  42. package/dist/validation/features/client-records-outside-providers.validation-messages.js +6 -3
  43. package/dist/validation/features/client-relationships-common.validation-messages.d.ts +69 -55
  44. package/dist/validation/features/client-relationships-common.validation-messages.d.ts.map +1 -1
  45. package/dist/validation/features/client-relationships-common.validation-messages.js +30 -15
  46. package/dist/validation/features/client-relationships-income-sources.validation-messages.d.ts +84 -68
  47. package/dist/validation/features/client-relationships-income-sources.validation-messages.d.ts.map +1 -1
  48. package/dist/validation/features/client-relationships-income-sources.validation-messages.js +21 -4
  49. package/dist/validation/features/client-relationships-owners.validation-messages.d.ts +86 -69
  50. package/dist/validation/features/client-relationships-owners.validation-messages.d.ts.map +1 -1
  51. package/dist/validation/features/client-relationships-owners.validation-messages.js +22 -4
  52. package/dist/validation/features/data-filters.validation-messages.d.ts +16 -12
  53. package/dist/validation/features/data-filters.validation-messages.d.ts.map +1 -1
  54. package/dist/validation/features/data-filters.validation-messages.js +7 -2
  55. package/dist/validation/features/filing-categories.validation-messages.d.ts +18 -14
  56. package/dist/validation/features/filing-categories.validation-messages.d.ts.map +1 -1
  57. package/dist/validation/features/filing-categories.validation-messages.js +7 -2
  58. package/dist/validation/features/income-accounts.validation-messages.d.ts +17 -13
  59. package/dist/validation/features/income-accounts.validation-messages.d.ts.map +1 -1
  60. package/dist/validation/features/income-accounts.validation-messages.js +7 -2
  61. package/dist/validation/features/roles-and-permissions.validation-messages.d.ts +29 -23
  62. package/dist/validation/features/roles-and-permissions.validation-messages.d.ts.map +1 -1
  63. package/dist/validation/features/roles-and-permissions.validation-messages.js +9 -2
  64. package/dist/validation/features/states.validation-messages.d.ts +55 -45
  65. package/dist/validation/features/states.validation-messages.d.ts.map +1 -1
  66. package/dist/validation/features/states.validation-messages.js +13 -2
  67. package/dist/validation/features/template-assignments.validation-messages.d.ts +85 -68
  68. package/dist/validation/features/template-assignments.validation-messages.d.ts.map +1 -1
  69. package/dist/validation/features/template-assignments.validation-messages.js +20 -2
  70. package/dist/validation/features/template-information.validation-messages.d.ts +218 -175
  71. package/dist/validation/features/template-information.validation-messages.d.ts.map +1 -1
  72. package/dist/validation/features/template-information.validation-messages.js +46 -2
  73. package/dist/validation/features/template-recurrence-settings.validation-messages.d.ts +164 -132
  74. package/dist/validation/features/template-recurrence-settings.validation-messages.d.ts.map +1 -1
  75. package/dist/validation/features/template-recurrence-settings.validation-messages.js +37 -4
  76. package/dist/validation/features/template-states.validation-messages.d.ts +49 -39
  77. package/dist/validation/features/template-states.validation-messages.d.ts.map +1 -1
  78. package/dist/validation/features/template-states.validation-messages.js +13 -2
  79. package/dist/validation/features/user-preferences.validation-messages.d.ts +17 -13
  80. package/dist/validation/features/user-preferences.validation-messages.d.ts.map +1 -1
  81. package/dist/validation/features/user-preferences.validation-messages.js +8 -3
  82. package/dist/validation/features/users.validation-messages.d.ts +65 -53
  83. package/dist/validation/features/users.validation-messages.d.ts.map +1 -1
  84. package/dist/validation/features/users.validation-messages.js +17 -4
  85. package/dist/validation/validation-message.formatter.d.ts +2 -0
  86. package/dist/validation/validation-message.formatter.d.ts.map +1 -1
  87. package/dist/validation/validation-message.formatter.js +1 -0
  88. package/dist/validation/validation-message.types.d.ts +30 -0
  89. package/dist/validation/validation-message.types.d.ts.map +1 -0
  90. package/dist/validation/validation-message.types.js +9 -0
  91. package/dist/validation/validation-messages.d.ts +1756 -1423
  92. package/dist/validation/validation-messages.d.ts.map +1 -1
  93. package/package.json +1 -1
  94. package/src/index.ts +14 -0
  95. package/src/validation/features/account-categories.validation-messages.ts +8 -2
  96. package/src/validation/features/account-ids.validation-messages.ts +9 -2
  97. package/src/validation/features/business-activities.validation-messages.ts +8 -2
  98. package/src/validation/features/client-current-entity-statuses.validation-messages.ts +46 -7
  99. package/src/validation/features/client-records-addresses.validation-messages.ts +17 -2
  100. package/src/validation/features/client-records-banks.validation-messages.ts +9 -2
  101. package/src/validation/features/client-records-commission-details.validation-messages.ts +9 -2
  102. package/src/validation/features/client-records-contacts.validation-messages.ts +12 -2
  103. package/src/validation/features/client-records-credit-cards.validation-messages.ts +10 -2
  104. package/src/validation/features/client-records-entity-states-histories.validation-messages.ts +31 -12
  105. package/src/validation/features/client-records-entity-types-histories.validation-messages.ts +31 -12
  106. package/src/validation/features/client-records-filing-statuses-histories.validation-messages.ts +31 -12
  107. package/src/validation/features/client-records-outside-providers.validation-messages.ts +7 -3
  108. package/src/validation/features/client-relationships-common.validation-messages.ts +31 -15
  109. package/src/validation/features/client-relationships-income-sources.validation-messages.ts +22 -4
  110. package/src/validation/features/client-relationships-owners.validation-messages.ts +23 -4
  111. package/src/validation/features/data-filters.validation-messages.ts +8 -2
  112. package/src/validation/features/filing-categories.validation-messages.ts +8 -2
  113. package/src/validation/features/income-accounts.validation-messages.ts +8 -2
  114. package/src/validation/features/roles-and-permissions.validation-messages.ts +10 -2
  115. package/src/validation/features/states.validation-messages.ts +14 -2
  116. package/src/validation/features/template-assignments.validation-messages.ts +21 -2
  117. package/src/validation/features/template-information.validation-messages.ts +47 -2
  118. package/src/validation/features/template-recurrence-settings.validation-messages.ts +38 -4
  119. package/src/validation/features/template-states.validation-messages.ts +14 -2
  120. package/src/validation/features/user-preferences.validation-messages.ts +9 -3
  121. package/src/validation/features/users.validation-messages.ts +18 -4
  122. package/src/validation/validation-message.formatter.ts +4 -6
  123. package/src/validation/validation-message.types.ts +36 -0
@@ -1,140 +1,174 @@
1
- export const TEMPLATE_RECURRENCE_SETTINGS = {
1
+ import { defineValidationFeatureMessages, VALIDATION_SEVERITY } from '../validation-message.types';
2
+
3
+ export const TEMPLATE_RECURRENCE_SETTINGS = defineValidationFeatureMessages({
2
4
  RECURRENCE_NOT_FOUND: {
5
+ severity: VALIDATION_SEVERITY.ERROR,
3
6
  message: 'Template recurrence setting not found',
4
7
  affectedFields: [] as string[],
5
8
  },
6
9
  RECURRENCE_FREQUENCY_REQUIRED: {
10
+ severity: VALIDATION_SEVERITY.ERROR,
7
11
  message: 'Recurrence frequency is required',
8
12
  affectedFields: ['recurrenceFrequency'],
9
13
  },
10
14
  RECURRENCE_FREQUENCY_NOT_FOUND: {
15
+ severity: VALIDATION_SEVERITY.ERROR,
11
16
  message: 'Recurrence frequency not found.',
12
17
  affectedFields: ['recurrenceFrequencyId'],
13
18
  },
14
19
  RECURRENCE_FREQUENCY_ALREADY_EXISTS: {
20
+ severity: VALIDATION_SEVERITY.ERROR,
15
21
  message:
16
22
  'Each recurrence frequency can only be added to a template once. A recurrence for {recurrenceFrequency} already exists. Please edit that recurrence setup, or change the recurrence frequency selected here before saving.',
17
23
  params: ['recurrenceFrequency'],
18
24
  affectedFields: ['recurrenceFrequencyId'],
19
25
  },
20
26
  INCOME_TAX_MUST_BE_ANNUAL: {
27
+ severity: VALIDATION_SEVERITY.ERROR,
21
28
  message:
22
29
  'An Income tax filing template can only have an annual recurrence frequency. Please update your selection before saving.',
23
30
  affectedFields: ['recurrenceFrequencyId'],
24
31
  },
25
32
  BASED_ON_MUST_BE_PERIOD: {
33
+ severity: VALIDATION_SEVERITY.ERROR,
26
34
  message:
27
35
  "A {templateType} template recurrence must always be based on 'Period'. Please update your selection before saving.",
28
36
  params: ['templateType'],
29
37
  affectedFields: ['basedOn'],
30
38
  },
31
39
  BASED_ON_REQUIRED: {
40
+ severity: VALIDATION_SEVERITY.ERROR,
32
41
  message: 'Based on is required',
33
42
  affectedFields: ['basedOn'],
34
43
  },
35
44
  BASED_ON_MUST_BE_DATE: {
45
+ severity: VALIDATION_SEVERITY.ERROR,
36
46
  message:
37
47
  "A {templateType} template recurrence must always be based on 'Date'. Please update your selection before saving.",
38
48
  params: ['templateType'],
39
49
  affectedFields: ['basedOn'],
40
50
  },
41
51
  FIRST_MONTH_REQUIRED: {
52
+ severity: VALIDATION_SEVERITY.ERROR,
42
53
  message: 'First month is required',
43
54
  affectedFields: ['firstMonth'],
44
55
  },
45
56
  FIRST_MONTH_INVALID: {
57
+ severity: VALIDATION_SEVERITY.ERROR,
46
58
  message: 'First month must be a value between 1 and 12.',
47
59
  affectedFields: ['firstMonth'],
48
60
  },
49
61
  SECOND_MONTH_REQUIRED: {
62
+ severity: VALIDATION_SEVERITY.ERROR,
50
63
  message: 'Second month is required',
51
64
  affectedFields: ['secondMonth'],
52
65
  },
53
66
  SECOND_MONTH_INVALID: {
67
+ severity: VALIDATION_SEVERITY.ERROR,
54
68
  message: 'Second month must be a value between 1 and 12.',
55
69
  affectedFields: ['secondMonth'],
56
70
  },
57
71
  THIRD_MONTH_REQUIRED: {
72
+ severity: VALIDATION_SEVERITY.ERROR,
58
73
  message: 'Third month is required',
59
74
  affectedFields: ['thirdMonth'],
60
75
  },
61
76
  THIRD_MONTH_INVALID: {
77
+ severity: VALIDATION_SEVERITY.ERROR,
62
78
  message: 'Third month must be a value between 1 and 12.',
63
79
  affectedFields: ['thirdMonth'],
64
80
  },
65
81
  FOURTH_MONTH_REQUIRED: {
82
+ severity: VALIDATION_SEVERITY.ERROR,
66
83
  message: 'Fourth month is required',
67
84
  affectedFields: ['fourthMonth'],
68
85
  },
69
86
  FOURTH_MONTH_INVALID: {
87
+ severity: VALIDATION_SEVERITY.ERROR,
70
88
  message: 'Fourth month must be a value between 1 and 12.',
71
89
  affectedFields: ['fourthMonth'],
72
90
  },
73
91
  DAY_OF_MONTH_REQUIRED: {
92
+ severity: VALIDATION_SEVERITY.ERROR,
74
93
  message: 'Day of month is required',
75
94
  affectedFields: ['dayOfMonth'],
76
95
  },
77
96
  DAY_OF_MONTH_INVALID: {
97
+ severity: VALIDATION_SEVERITY.ERROR,
78
98
  message: 'Day of month must be a value between 1 and 31.',
79
99
  affectedFields: ['dayOfMonth'],
80
100
  },
81
101
  DUE_MONTH_REQUIRED: {
102
+ severity: VALIDATION_SEVERITY.ERROR,
82
103
  message: 'Due month is required',
83
104
  affectedFields: ['dueMonth'],
84
105
  },
85
106
  DUE_MONTH_INVALID: {
107
+ severity: VALIDATION_SEVERITY.ERROR,
86
108
  message: 'Due month must be a value between 0 and 12.',
87
109
  affectedFields: ['dueMonth'],
88
110
  },
89
111
  DUE_DAY_REQUIRED: {
112
+ severity: VALIDATION_SEVERITY.ERROR,
90
113
  message: 'Due day is required',
91
114
  affectedFields: ['dueDay'],
92
115
  },
93
116
  DUE_DAY_INVALID: {
117
+ severity: VALIDATION_SEVERITY.ERROR,
94
118
  message: 'Due day must be a value between 0 and 31.',
95
119
  affectedFields: ['dueDay'],
96
120
  },
97
121
  EXTEND_MONTH_REQUIRED: {
122
+ severity: VALIDATION_SEVERITY.ERROR,
98
123
  message: 'Extend month is required',
99
124
  affectedFields: ['extendMonth'],
100
125
  },
101
126
  EXTEND_MONTH_INVALID: {
127
+ severity: VALIDATION_SEVERITY.ERROR,
102
128
  message: 'Extend month cannot be a negative number.',
103
129
  affectedFields: ['extendMonth'],
104
130
  },
105
131
  GENERATE_BEFORE_REQUIRED: {
132
+ severity: VALIDATION_SEVERITY.ERROR,
106
133
  message: 'Before is required',
107
134
  affectedFields: ['generateBeforeId'],
108
135
  },
109
136
  GENERATE_TASKS_DAYS_REQUIRED: {
137
+ severity: VALIDATION_SEVERITY.ERROR,
110
138
  message: 'Generate task days is required',
111
139
  affectedFields: ['generateTasksDays'],
112
140
  },
113
141
  GENERATE_BEFORE_MUST_BE_DUE_DATE: {
142
+ severity: VALIDATION_SEVERITY.ERROR,
114
143
  message:
115
144
  'This recurrence is based on a date, therefore it can only be generated before a due date. Please update your selection before saving.',
116
145
  affectedFields: ['generateBeforeId'],
117
146
  },
118
147
  DAY_EXCEEDS_MONTH_MAX: {
119
- message: 'Day {dayOfMonth} is not valid for {monthName}. The maximum allowed day is {maxDays}.',
148
+ severity: VALIDATION_SEVERITY.ERROR,
149
+ message: `Day '{dayOfMonth}' is not valid for '{monthName}'. The maximum allowed day is '{maxDays}'.`,
120
150
  params: ['dayOfMonth', 'monthName', 'maxDays'],
121
151
  affectedFields: ['dayOfMonth'],
122
152
  },
123
153
  RECURRENCE_IN_USE_CANNOT_EDIT: {
154
+ severity: VALIDATION_SEVERITY.ERROR,
124
155
  message: 'This recurrence is currently applied to a client and cannot be edited.',
125
156
  affectedFields: [] as string[],
126
157
  },
127
158
  RECURRENCE_IN_USE_CANNOT_DELETE: {
159
+ severity: VALIDATION_SEVERITY.ERROR,
128
160
  message: 'This recurrence is currently in use and cannot be deleted.',
129
161
  affectedFields: [] as string[],
130
162
  },
131
163
  RECURRENCE_GENERATE_BEFORE_NOT_FOUND: {
164
+ severity: VALIDATION_SEVERITY.ERROR,
132
165
  message: 'Generate before option not found.',
133
166
  affectedFields: ['generateBeforeId'],
134
167
  },
135
168
  RECURRENCE_REQUIRED_FOR_TEMPLATE_TYPE: {
136
- message: 'A {templateType} template must have a recurrence set up. Please add a recurrence before saving.',
169
+ severity: VALIDATION_SEVERITY.ERROR,
170
+ message: `A '{templateType}' template must have a recurrence set up. Please add a recurrence before saving.`,
137
171
  params: ['templateType'],
138
172
  affectedFields: ['recurrenceSettings'],
139
173
  },
140
- } as const;
174
+ });
@@ -1,42 +1,54 @@
1
- export const TEMPLATE_STATES = {
1
+ import { defineValidationFeatureMessages, VALIDATION_SEVERITY } from '../validation-message.types';
2
+
3
+ export const TEMPLATE_STATES = defineValidationFeatureMessages({
2
4
  TEMPLATE_STATE_NOT_FOUND: {
5
+ severity: VALIDATION_SEVERITY.ERROR,
3
6
  message: 'Template state not found',
4
7
  affectedFields: [],
5
8
  },
6
9
  NAME_REQUIRED: {
10
+ severity: VALIDATION_SEVERITY.ERROR,
7
11
  message: 'Name is required',
8
12
  affectedFields: ['name'],
9
13
  },
10
14
  NAME_ALREADY_IN_USE: {
15
+ severity: VALIDATION_SEVERITY.ERROR,
11
16
  message: 'This name is already in use on this template. Please enter a different name.',
12
17
  affectedFields: ['name'],
13
18
  },
14
19
  STATE_REQUIRED: {
20
+ severity: VALIDATION_SEVERITY.ERROR,
15
21
  message: 'State is required',
16
22
  affectedFields: ['stateId'],
17
23
  },
18
24
  INVALID_STATE: {
25
+ severity: VALIDATION_SEVERITY.ERROR,
19
26
  message: 'Invalid state',
20
27
  affectedFields: ['stateId'],
21
28
  },
22
29
  STATE_LOCKED_WHEN_IN_USE: {
30
+ severity: VALIDATION_SEVERITY.ERROR,
23
31
  message: 'The State field cannot be changed because this state is already applied to a client.',
24
32
  affectedFields: ['stateId'],
25
33
  },
26
34
  DATE_STOPPED_REQUIRED_WHEN_INACTIVE: {
35
+ severity: VALIDATION_SEVERITY.ERROR,
27
36
  message: 'Date stopped is required when status is Inactive.',
28
37
  affectedFields: ['dateStopped'],
29
38
  },
30
39
  IS_ACTIVE_REQUIRED: {
40
+ severity: VALIDATION_SEVERITY.ERROR,
31
41
  message: 'Status is required',
32
42
  affectedFields: ['isActive'],
33
43
  },
34
44
  IN_USE_CANNOT_DELETE: {
45
+ severity: VALIDATION_SEVERITY.ERROR,
35
46
  message: 'This state is currently in use and cannot be deleted.',
36
47
  affectedFields: [],
37
48
  },
38
49
  TEMPLATE_MUST_BE_FILING_TYPE: {
50
+ severity: VALIDATION_SEVERITY.ERROR,
39
51
  message: 'States can only be added to Filing type templates.',
40
52
  affectedFields: [],
41
53
  },
42
- } as const;
54
+ });
@@ -1,19 +1,25 @@
1
- export const USER_PREFERENCES = {
1
+ import { defineValidationFeatureMessages, VALIDATION_SEVERITY } from '../validation-message.types';
2
+
3
+ export const USER_PREFERENCES = defineValidationFeatureMessages({
2
4
  FEATURE_DOES_NOT_EXIST: {
3
- message: `Feature with name {feature} does not exist`,
5
+ severity: VALIDATION_SEVERITY.ERROR,
6
+ message: `Feature with name '{feature}' does not exist`,
4
7
  params: ['feature'],
5
8
  affectedFields: ['feature'],
6
9
  },
7
10
  INVALID_REQUEST: {
11
+ severity: VALIDATION_SEVERITY.ERROR,
8
12
  message: 'Request is invalid',
9
13
  affectedFields: [],
10
14
  },
11
15
  PREFERENCE_DOES_NOT_BELONG_TO_USER: {
16
+ severity: VALIDATION_SEVERITY.ERROR,
12
17
  message: 'Preference does not belong to the user',
13
18
  affectedFields: [],
14
19
  },
15
20
  INVALID_COLUMN_ORDER: {
21
+ severity: VALIDATION_SEVERITY.ERROR,
16
22
  message: 'Invalid columnOrder values',
17
23
  affectedFields: ['columnOrder'],
18
24
  },
19
- } as const;
25
+ });
@@ -1,56 +1,70 @@
1
- export const USERS = {
1
+ import { defineValidationFeatureMessages, VALIDATION_SEVERITY } from '../validation-message.types';
2
+
3
+ export const USERS = defineValidationFeatureMessages({
2
4
  USERNAME_DOES_NOT_EXIST: {
3
- message: `User with username {username} does not exist.`,
5
+ severity: VALIDATION_SEVERITY.ERROR,
6
+ message: `User with username '{username}' does not exist.`,
4
7
  params: ['username'],
5
8
  affectedFields: ['userName'],
6
9
  },
7
10
  INVALID_PASSWORD: {
8
- message: `User with username {username} password does not match.`,
11
+ severity: VALIDATION_SEVERITY.ERROR,
12
+ message: `User with username '{username}' password does not match.`,
9
13
  params: ['username'],
10
14
  affectedFields: ['password'],
11
15
  },
12
16
  INVALID_RESET_PASSWORD_TOKEN: {
17
+ severity: VALIDATION_SEVERITY.ERROR,
13
18
  message: `Invalid or expired reset token.`,
14
19
  affectedFields: ['resetToken'],
15
20
  },
16
21
  RESET_PASSWORD_LINK_ALREADY_USED: {
22
+ severity: VALIDATION_SEVERITY.ERROR,
17
23
  message: `Reset password link has already been used. Please request a new one.`,
18
24
  affectedFields: ['resetToken'],
19
25
  },
20
26
  RESET_PASSWORD_LINK_NOT_LATEST: {
27
+ severity: VALIDATION_SEVERITY.ERROR,
21
28
  message: `Reset password link is no longer valid. Please use the most recent one.`,
22
29
  affectedFields: ['resetToken'],
23
30
  },
24
31
  USERNAME_ALREADY_EXISTS: {
32
+ severity: VALIDATION_SEVERITY.ERROR,
25
33
  message: `User with username '{username}' already exists`,
26
34
  params: ['username'],
27
35
  affectedFields: ['userName'],
28
36
  },
29
37
  EMAIL_ALREADY_EXISTS: {
38
+ severity: VALIDATION_SEVERITY.ERROR,
30
39
  message: `User with email '{email}' already exists`,
31
40
  params: ['email'],
32
41
  affectedFields: ['email'],
33
42
  },
34
43
  ROLE_DOES_NOT_EXIST: {
44
+ severity: VALIDATION_SEVERITY.ERROR,
35
45
  message: `Role does not exist`,
36
46
  params: ['roleId'],
37
47
  },
38
48
  USER_DOES_NOT_EXIST: {
49
+ severity: VALIDATION_SEVERITY.ERROR,
39
50
  message: `User does not exist`,
40
51
  params: ['userId'],
41
52
  affectedFields: ['userId'],
42
53
  },
43
54
  USER_PASSWORDS_DO_NOT_MATCH: {
55
+ severity: VALIDATION_SEVERITY.ERROR,
44
56
  message: `User passwords do not match`,
45
57
  affectedFields: ['password', 'confirmPassword'],
46
58
  },
47
59
  USER_HAS_REFERENCED_DATA: {
60
+ severity: VALIDATION_SEVERITY.ERROR,
48
61
  message: `User '{fullName}' cannot be deleted because they are referenced by existing records.`,
49
62
  params: ['fullName'],
50
63
  affectedFields: ['userId'],
51
64
  },
52
65
  USER_CANNOT_DELETE_SELF: {
66
+ severity: VALIDATION_SEVERITY.ERROR,
53
67
  message: `You cannot delete your own account.`,
54
68
  affectedFields: ['userId'],
55
69
  },
56
- } as const;
70
+ });
@@ -1,4 +1,5 @@
1
1
  import { VALIDATION_MESSAGES } from './validation-messages';
2
+ import { ValidationMessageDefinition, ValidationSeverity } from './validation-message.types';
2
3
 
3
4
  type Features = keyof typeof VALIDATION_MESSAGES;
4
5
  type ErrorType<F extends Features> = keyof (typeof VALIDATION_MESSAGES)[F];
@@ -8,16 +9,12 @@ type ErrorMessageParams<F extends Features, E extends ErrorType<F>> = (typeof VA
8
9
  ? P
9
10
  : [];
10
11
  type MessageParams<T extends readonly string[]> = { [K in T[number]]: string };
11
- type MessageConfig = {
12
- message: string;
13
- params?: readonly string[];
14
- affectedFields?: readonly string[];
15
- };
16
12
 
17
13
  export type ValidationMessageResult = {
18
14
  content: string;
19
15
  affectedFields: string[];
20
16
  feature: string;
17
+ severity: ValidationSeverity;
21
18
  };
22
19
 
23
20
  export const getValidationMessage = <FeatureType extends Features, FeatureErrorType extends ErrorType<FeatureType>>(
@@ -28,7 +25,7 @@ export const getValidationMessage = <FeatureType extends Features, FeatureErrorT
28
25
  const feature = parts[0] as FeatureType;
29
26
  const featureError = parts[1] as FeatureErrorType;
30
27
 
31
- const messageConfig = VALIDATION_MESSAGES[feature][featureError] as MessageConfig;
28
+ const messageConfig = VALIDATION_MESSAGES[feature][featureError] as ValidationMessageDefinition;
32
29
 
33
30
  if (!messageConfig) {
34
31
  throw new Error(
@@ -74,5 +71,6 @@ export const getValidationMessage = <FeatureType extends Features, FeatureErrorT
74
71
  content: message,
75
72
  affectedFields: messageConfig.affectedFields ? [...messageConfig.affectedFields] : [],
76
73
  feature: feature,
74
+ severity: messageConfig.severity,
77
75
  };
78
76
  };
@@ -0,0 +1,36 @@
1
+ export const VALIDATION_SEVERITY = {
2
+ ERROR: 'error',
3
+ WARNING: 'warning',
4
+ } as const;
5
+
6
+ export type ValidationSeverity = (typeof VALIDATION_SEVERITY)[keyof typeof VALIDATION_SEVERITY];
7
+
8
+ export type ValidationIssue = {
9
+ feature: string;
10
+ severity: ValidationSeverity;
11
+ message: string;
12
+ affectedFields: string[];
13
+ code: string;
14
+ };
15
+
16
+ export type ManualValidationIssueInput = Omit<ValidationIssue, 'severity'> & {
17
+ severity?: ValidationSeverity;
18
+ };
19
+
20
+ export type ValidationIssueInput = {
21
+ feature: string;
22
+ content: string;
23
+ affectedFields: string[];
24
+ severity?: ValidationSeverity;
25
+ };
26
+
27
+ export type ValidationMessageDefinition = {
28
+ severity: ValidationSeverity;
29
+ message: string;
30
+ params?: readonly string[];
31
+ affectedFields?: readonly string[];
32
+ };
33
+
34
+ export type ValidationFeatureMessages = Record<string, ValidationMessageDefinition>;
35
+
36
+ export const defineValidationFeatureMessages = <T extends ValidationFeatureMessages>(messages: T): T => messages;