@tmlmobilidade/go-utils-validation 0.0.0-stage → 20261109.1101.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.
- package/dist/index.d.ts +720 -0
- package/dist/index.js +127 -0
- package/dist/locales/en.json +226 -0
- package/dist/locales/es.json +226 -0
- package/dist/locales/pt.json +226 -0
- package/package.json +62 -5
- package/README.md +0 -3
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
{
|
|
2
|
+
"custom": {
|
|
3
|
+
"banner": {
|
|
4
|
+
"link": "As ligações dos avisos devem usar HTTP ou HTTPS"
|
|
5
|
+
},
|
|
6
|
+
"dates": {
|
|
7
|
+
"event_id": "Deve conter letras maiúsculas, números ou underscores",
|
|
8
|
+
"overlap": "Não é possível adicionar e remover datas no mesmo pedido: {dates}",
|
|
9
|
+
"period_name": "Introduza um nome para o período",
|
|
10
|
+
"period_required": "Selecione um período"
|
|
11
|
+
},
|
|
12
|
+
"documents": {
|
|
13
|
+
"changes_required": "multiple_fields requer o array metadata.changes",
|
|
14
|
+
"different_values": "curr_value e prev_value devem ser diferentes",
|
|
15
|
+
"null_values": "multiple_fields deve ter curr_value e prev_value nulos"
|
|
16
|
+
},
|
|
17
|
+
"feedback": {
|
|
18
|
+
"duplicate_reason": "O motivo \"{reason}\" não pode ser selecionado mais do que uma vez.",
|
|
19
|
+
"reason": "O motivo \"{reason}\" não é válido para comentários de {entity}."
|
|
20
|
+
},
|
|
21
|
+
"formats": {
|
|
22
|
+
"date": "Esperada uma data no formato {format}",
|
|
23
|
+
"hex_color": "Esperada uma cor hexadecimal no formato {format}",
|
|
24
|
+
"hhmm": "Esperada uma hora no formato {format} entre {minimum} e {maximum}",
|
|
25
|
+
"operational_date": "Esperada uma data no formato {format} ou {alternative}",
|
|
26
|
+
"operational_time": "Esperada uma hora no formato {format}, com minutos e segundos entre 00 e 59",
|
|
27
|
+
"unix_milliseconds": "Esperado um timestamp Unix válido em milissegundos, no mínimo {minimum}",
|
|
28
|
+
"unix_seconds": "Esperado um timestamp Unix válido em segundos, no mínimo {minimum}"
|
|
29
|
+
},
|
|
30
|
+
"geo": {
|
|
31
|
+
"coordinate": "Coordenada inválida",
|
|
32
|
+
"encoded_polyline": "Polilinha codificada inválida",
|
|
33
|
+
"latitude": "A latitude deve estar entre {minimum} e {maximum}",
|
|
34
|
+
"linear_ring": "O primeiro e o último ponto de um anel devem coincidir",
|
|
35
|
+
"longitude": "A longitude deve estar entre {minimum} e {maximum}"
|
|
36
|
+
},
|
|
37
|
+
"network": {
|
|
38
|
+
"agency_required": "É obrigatório pelo menos um identificador de agência",
|
|
39
|
+
"anchor": "Uma âncora deve identificar ambas as extremidades de um segmento do percurso.",
|
|
40
|
+
"default_required": "É obrigatório existir um parâmetro \"default\".",
|
|
41
|
+
"default_unique": "Só pode existir um parâmetro \"default\".",
|
|
42
|
+
"parameters_path": "Os parâmetros de tempo de viagem devem corresponder a cada ocorrência do percurso pela mesma ordem.",
|
|
43
|
+
"path_ids": "Os identificadores das ocorrências do percurso devem ser únicos.",
|
|
44
|
+
"shape_distances": "As distâncias do traçado não podem diminuir ao longo do percurso.",
|
|
45
|
+
"shape_sequences": "As sequências dos pontos do traçado devem ser únicas.",
|
|
46
|
+
"stop_distances": "As distâncias das paragens não podem diminuir ao longo do percurso.",
|
|
47
|
+
"stop_sequences": "As sequências das paragens devem ser únicas.",
|
|
48
|
+
"weekdays": "Selecione pelo menos um dia da semana.",
|
|
49
|
+
"year_periods": "Selecione pelo menos um período do ano."
|
|
50
|
+
},
|
|
51
|
+
"password": {
|
|
52
|
+
"lowercase": "A palavra-passe deve conter pelo menos uma letra minúscula",
|
|
53
|
+
"min_length": "A palavra-passe deve ter pelo menos {minimum} caracteres",
|
|
54
|
+
"mismatch": "As palavras-passe não coincidem",
|
|
55
|
+
"number": "A palavra-passe deve conter pelo menos um número",
|
|
56
|
+
"requirements": "Requisitos da palavra-passe",
|
|
57
|
+
"special": "A palavra-passe deve conter pelo menos um caráter especial",
|
|
58
|
+
"uppercase": "A palavra-passe deve conter pelo menos uma letra maiúscula"
|
|
59
|
+
},
|
|
60
|
+
"schedule": {
|
|
61
|
+
"active_period": "A data de fim do período ativo deve ser igual ou posterior à data de início",
|
|
62
|
+
"end_after_start": "O fim deve ser posterior ao início",
|
|
63
|
+
"publication": "A data de fim de publicação deve ser igual ou posterior à data de início"
|
|
64
|
+
},
|
|
65
|
+
"unique": {
|
|
66
|
+
"changelog_items": "Os identificadores das alterações devem ser únicos num registo de alterações",
|
|
67
|
+
"module_ids": "Os identificadores dos módulos devem ser únicos",
|
|
68
|
+
"release_ids": "Os identificadores das versões devem ser únicos"
|
|
69
|
+
}
|
|
70
|
+
},
|
|
71
|
+
"errors": {
|
|
72
|
+
"custom": "Valor inválido",
|
|
73
|
+
"invalid_element": "Elemento inválido no valor do tipo {origin}",
|
|
74
|
+
"invalid_format": {
|
|
75
|
+
"default": "Formato de {format} inválido",
|
|
76
|
+
"ends_with": "Tem de terminar em «{suffix}»",
|
|
77
|
+
"includes": "Tem de incluir «{includes}»",
|
|
78
|
+
"lowercase": "Tem de estar em minúsculas",
|
|
79
|
+
"regex": "Formato inválido",
|
|
80
|
+
"starts_with": "Tem de começar por «{prefix}»",
|
|
81
|
+
"uppercase": "Tem de estar em maiúsculas"
|
|
82
|
+
},
|
|
83
|
+
"invalid_key": "Chave inválida no valor do tipo {origin}",
|
|
84
|
+
"invalid_type": "O valor tem de ser do tipo {expected} (tipo recebido: {received})",
|
|
85
|
+
"invalid_type_received_null": "O valor tem de ser do tipo {expected} (tipo recebido: {received})",
|
|
86
|
+
"invalid_type_received_undefined": "Este campo é obrigatório",
|
|
87
|
+
"invalid_union": "Valor inválido",
|
|
88
|
+
"invalid_union_discriminator": "O valor discriminante tem de ser um dos seguintes: {options}",
|
|
89
|
+
"invalid_union_type": "Esperado {expected}",
|
|
90
|
+
"invalid_value": "O valor tem de ser um dos seguintes: {options}",
|
|
91
|
+
"invalid_value_single": "O valor tem de ser {expected}",
|
|
92
|
+
"not_multiple_of": "O número tem de ser múltiplo de {divisor}",
|
|
93
|
+
"too_big": {
|
|
94
|
+
"array": {
|
|
95
|
+
"exact": "{count, plural, one {A lista tem de conter exatamente {count} elemento} many {A lista tem de conter exatamente {count} elementos} other {A lista tem de conter exatamente {count} elementos}}",
|
|
96
|
+
"inclusive": "{count, plural, one {A lista tem de conter no máximo {count} elemento} many {A lista tem de conter no máximo {count} elementos} other {A lista tem de conter no máximo {count} elementos}}",
|
|
97
|
+
"not_inclusive": "{count, plural, one {A lista tem de conter menos de {count} elemento} many {A lista tem de conter menos de {count} elementos} other {A lista tem de conter menos de {count} elementos}}"
|
|
98
|
+
},
|
|
99
|
+
"date": {
|
|
100
|
+
"exact": "A data tem de ser {maximum, date}",
|
|
101
|
+
"inclusive": "A data tem de ser igual ou anterior a {maximum, date}",
|
|
102
|
+
"not_inclusive": "A data tem de ser anterior a {maximum, date}"
|
|
103
|
+
},
|
|
104
|
+
"file": {
|
|
105
|
+
"exact": "{count, plural, one {O ficheiro tem de ter exatamente {count} byte} many {O ficheiro tem de ter exatamente {count} bytes} other {O ficheiro tem de ter exatamente {count} bytes}}",
|
|
106
|
+
"inclusive": "{count, plural, one {O ficheiro tem de ter no máximo {count} byte} many {O ficheiro tem de ter no máximo {count} bytes} other {O ficheiro tem de ter no máximo {count} bytes}}",
|
|
107
|
+
"not_inclusive": "{count, plural, one {O ficheiro tem de ter menos de {count} byte} many {O ficheiro tem de ter menos de {count} bytes} other {O ficheiro tem de ter menos de {count} bytes}}"
|
|
108
|
+
},
|
|
109
|
+
"map": {
|
|
110
|
+
"exact": "{count, plural, one {O mapa tem de conter exatamente {count} entrada} many {O mapa tem de conter exatamente {count} entradas} other {O mapa tem de conter exatamente {count} entradas}}",
|
|
111
|
+
"inclusive": "{count, plural, one {O mapa tem de conter no máximo {count} entrada} many {O mapa tem de conter no máximo {count} entradas} other {O mapa tem de conter no máximo {count} entradas}}",
|
|
112
|
+
"not_inclusive": "{count, plural, one {O mapa tem de conter menos de {count} entrada} many {O mapa tem de conter menos de {count} entradas} other {O mapa tem de conter menos de {count} entradas}}"
|
|
113
|
+
},
|
|
114
|
+
"number": {
|
|
115
|
+
"exact": "O número tem de ser exatamente {maximum}",
|
|
116
|
+
"inclusive": "O número tem de ser menor ou igual a {maximum}",
|
|
117
|
+
"not_inclusive": "O número tem de ser menor do que {maximum}"
|
|
118
|
+
},
|
|
119
|
+
"set": {
|
|
120
|
+
"exact": "{count, plural, one {O conjunto tem de conter exatamente {count} elemento} many {O conjunto tem de conter exatamente {count} elementos} other {O conjunto tem de conter exatamente {count} elementos}}",
|
|
121
|
+
"inclusive": "{count, plural, one {O conjunto tem de conter no máximo {count} elemento} many {O conjunto tem de conter no máximo {count} elementos} other {O conjunto tem de conter no máximo {count} elementos}}",
|
|
122
|
+
"not_inclusive": "{count, plural, one {O conjunto tem de conter menos de {count} elemento} many {O conjunto tem de conter menos de {count} elementos} other {O conjunto tem de conter menos de {count} elementos}}"
|
|
123
|
+
},
|
|
124
|
+
"string": {
|
|
125
|
+
"exact": "{count, plural, one {O texto tem de conter exatamente {count} carácter} many {O texto tem de conter exatamente {count} caracteres} other {O texto tem de conter exatamente {count} caracteres}}",
|
|
126
|
+
"inclusive": "{count, plural, one {O texto tem de conter no máximo {count} carácter} many {O texto tem de conter no máximo {count} caracteres} other {O texto tem de conter no máximo {count} caracteres}}",
|
|
127
|
+
"not_inclusive": "{count, plural, one {O texto tem de conter menos de {count} carácter} many {O texto tem de conter menos de {count} caracteres} other {O texto tem de conter menos de {count} caracteres}}"
|
|
128
|
+
}
|
|
129
|
+
},
|
|
130
|
+
"too_small": {
|
|
131
|
+
"array": {
|
|
132
|
+
"exact": "{count, plural, one {A lista tem de conter exatamente {count} elemento} many {A lista tem de conter exatamente {count} elementos} other {A lista tem de conter exatamente {count} elementos}}",
|
|
133
|
+
"inclusive": "{count, plural, one {A lista tem de conter pelo menos {count} elemento} many {A lista tem de conter pelo menos {count} elementos} other {A lista tem de conter pelo menos {count} elementos}}",
|
|
134
|
+
"not_inclusive": "{count, plural, one {A lista tem de conter mais de {count} elemento} many {A lista tem de conter mais de {count} elementos} other {A lista tem de conter mais de {count} elementos}}"
|
|
135
|
+
},
|
|
136
|
+
"date": {
|
|
137
|
+
"exact": "A data tem de ser {minimum, date}",
|
|
138
|
+
"inclusive": "A data tem de ser igual ou posterior a {minimum, date}",
|
|
139
|
+
"not_inclusive": "A data tem de ser posterior a {minimum, date}"
|
|
140
|
+
},
|
|
141
|
+
"file": {
|
|
142
|
+
"exact": "{count, plural, one {O ficheiro tem de ter exatamente {count} byte} many {O ficheiro tem de ter exatamente {count} bytes} other {O ficheiro tem de ter exatamente {count} bytes}}",
|
|
143
|
+
"inclusive": "{count, plural, one {O ficheiro tem de ter pelo menos {count} byte} many {O ficheiro tem de ter pelo menos {count} bytes} other {O ficheiro tem de ter pelo menos {count} bytes}}",
|
|
144
|
+
"not_inclusive": "{count, plural, one {O ficheiro tem de ter mais de {count} byte} many {O ficheiro tem de ter mais de {count} bytes} other {O ficheiro tem de ter mais de {count} bytes}}"
|
|
145
|
+
},
|
|
146
|
+
"map": {
|
|
147
|
+
"exact": "{count, plural, one {O mapa tem de conter exatamente {count} entrada} many {O mapa tem de conter exatamente {count} entradas} other {O mapa tem de conter exatamente {count} entradas}}",
|
|
148
|
+
"inclusive": "{count, plural, one {O mapa tem de conter pelo menos {count} entrada} many {O mapa tem de conter pelo menos {count} entradas} other {O mapa tem de conter pelo menos {count} entradas}}",
|
|
149
|
+
"not_inclusive": "{count, plural, one {O mapa tem de conter mais de {count} entrada} many {O mapa tem de conter mais de {count} entradas} other {O mapa tem de conter mais de {count} entradas}}"
|
|
150
|
+
},
|
|
151
|
+
"number": {
|
|
152
|
+
"exact": "O número tem de ser exatamente {minimum}",
|
|
153
|
+
"inclusive": "O número tem de ser maior ou igual a {minimum}",
|
|
154
|
+
"not_inclusive": "O número tem de ser maior do que {minimum}"
|
|
155
|
+
},
|
|
156
|
+
"set": {
|
|
157
|
+
"exact": "{count, plural, one {O conjunto tem de conter exatamente {count} elemento} many {O conjunto tem de conter exatamente {count} elementos} other {O conjunto tem de conter exatamente {count} elementos}}",
|
|
158
|
+
"inclusive": "{count, plural, one {O conjunto tem de conter pelo menos {count} elemento} many {O conjunto tem de conter pelo menos {count} elementos} other {O conjunto tem de conter pelo menos {count} elementos}}",
|
|
159
|
+
"not_inclusive": "{count, plural, one {O conjunto tem de conter mais de {count} elemento} many {O conjunto tem de conter mais de {count} elementos} other {O conjunto tem de conter mais de {count} elementos}}"
|
|
160
|
+
},
|
|
161
|
+
"string": {
|
|
162
|
+
"exact": "{count, plural, one {O texto tem de conter exatamente {count} carácter} many {O texto tem de conter exatamente {count} caracteres} other {O texto tem de conter exatamente {count} caracteres}}",
|
|
163
|
+
"inclusive": "{count, plural, one {O texto tem de conter pelo menos {count} carácter} many {O texto tem de conter pelo menos {count} caracteres} other {O texto tem de conter pelo menos {count} caracteres}}",
|
|
164
|
+
"not_inclusive": "{count, plural, one {O texto tem de conter mais de {count} carácter} many {O texto tem de conter mais de {count} caracteres} other {O texto tem de conter mais de {count} caracteres}}"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"unrecognized_keys": "{count, plural, one {Chave não reconhecida: {keys}} many {Chaves não reconhecidas: {keys}} other {Chaves não reconhecidas: {keys}}}"
|
|
168
|
+
},
|
|
169
|
+
"formats": {
|
|
170
|
+
"base64": "texto codificado em base64",
|
|
171
|
+
"base64url": "texto codificado em base64url",
|
|
172
|
+
"cidrv4": "intervalo IPv4",
|
|
173
|
+
"cidrv6": "intervalo IPv6",
|
|
174
|
+
"credit_card": "número de cartão de crédito",
|
|
175
|
+
"cuid": "cuid",
|
|
176
|
+
"cuid2": "cuid2",
|
|
177
|
+
"currency_code": "código de moeda",
|
|
178
|
+
"date": "data ISO",
|
|
179
|
+
"datetime": "data e hora ISO",
|
|
180
|
+
"duration": "duração ISO",
|
|
181
|
+
"e164": "número de telefone E.164",
|
|
182
|
+
"email": "endereço de email",
|
|
183
|
+
"emoji": "emoji",
|
|
184
|
+
"guid": "GUID",
|
|
185
|
+
"hash": "hash",
|
|
186
|
+
"hex": "texto hexadecimal",
|
|
187
|
+
"hostname": "nome de anfitrião",
|
|
188
|
+
"iban": "IBAN",
|
|
189
|
+
"ipv4": "endereço IPv4",
|
|
190
|
+
"ipv6": "endereço IPv6",
|
|
191
|
+
"json_string": "texto JSON",
|
|
192
|
+
"jwt": "JWT",
|
|
193
|
+
"ksuid": "KSUID",
|
|
194
|
+
"mac": "endereço MAC",
|
|
195
|
+
"nanoid": "nanoid",
|
|
196
|
+
"template_literal": "valor",
|
|
197
|
+
"time": "hora ISO",
|
|
198
|
+
"ulid": "ULID",
|
|
199
|
+
"url": "URL",
|
|
200
|
+
"uuid": "UUID",
|
|
201
|
+
"xid": "XID"
|
|
202
|
+
},
|
|
203
|
+
"types": {
|
|
204
|
+
"array": "lista",
|
|
205
|
+
"bigint": "inteiro grande",
|
|
206
|
+
"boolean": "booleano",
|
|
207
|
+
"date": "data",
|
|
208
|
+
"file": "ficheiro",
|
|
209
|
+
"function": "função",
|
|
210
|
+
"int": "número inteiro",
|
|
211
|
+
"map": "mapa",
|
|
212
|
+
"nan": "NaN",
|
|
213
|
+
"never": "never",
|
|
214
|
+
"null": "nulo",
|
|
215
|
+
"number": "número",
|
|
216
|
+
"object": "objeto",
|
|
217
|
+
"promise": "promessa",
|
|
218
|
+
"record": "objeto",
|
|
219
|
+
"set": "conjunto",
|
|
220
|
+
"string": "texto",
|
|
221
|
+
"symbol": "símbolo",
|
|
222
|
+
"tuple": "tupla",
|
|
223
|
+
"undefined": "indefinido",
|
|
224
|
+
"void": "void"
|
|
225
|
+
}
|
|
226
|
+
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,63 @@
|
|
|
1
1
|
{
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
2
|
+
"name": "@tmlmobilidade/go-utils-validation",
|
|
3
|
+
"version": "20261109.1101.19",
|
|
4
|
+
"author": {
|
|
5
|
+
"email": "iso@tmlmobilidade.pt",
|
|
6
|
+
"name": "TML-ISO"
|
|
7
|
+
},
|
|
8
|
+
"license": "AGPL-3.0-or-later",
|
|
9
|
+
"homepage": "https://go.tmlmobilidade.pt",
|
|
10
|
+
"bugs": {
|
|
11
|
+
"url": "https://github.com/tmlmobilidade/go/issues"
|
|
12
|
+
},
|
|
13
|
+
"repository": {
|
|
14
|
+
"type": "git",
|
|
15
|
+
"url": "git+https://github.com/tmlmobilidade/go.git"
|
|
16
|
+
},
|
|
17
|
+
"keywords": [
|
|
18
|
+
"public transit",
|
|
19
|
+
"tml",
|
|
20
|
+
"transportes metropolitanos de lisboa",
|
|
21
|
+
"go"
|
|
22
|
+
],
|
|
23
|
+
"publishConfig": {
|
|
24
|
+
"access": "public"
|
|
25
|
+
},
|
|
26
|
+
"type": "module",
|
|
27
|
+
"files": [
|
|
28
|
+
"dist",
|
|
29
|
+
"THIRD_PARTY_NOTICES.md"
|
|
30
|
+
],
|
|
31
|
+
"main": "./dist/index.js",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"exports": {
|
|
34
|
+
".": {
|
|
35
|
+
"types": "./dist/index.d.ts",
|
|
36
|
+
"default": "./dist/index.js"
|
|
37
|
+
},
|
|
38
|
+
"./locales/*": "./dist/locales/*.json"
|
|
39
|
+
},
|
|
40
|
+
"scripts": {
|
|
41
|
+
"build": "npm run check:translations && tsc && resolve-tspaths",
|
|
42
|
+
"check:translations": "node --import tsx --test tests/catalogs.test.ts",
|
|
43
|
+
"lint": "eslint ./src ./tests && tsc -p tsconfig.check.json --noEmit",
|
|
44
|
+
"lint:fix": "eslint ./src/ --fix",
|
|
45
|
+
"test": "node --import tsx --test tests/*.test.ts",
|
|
46
|
+
"watch": "tsc-watch --onSuccess 'resolve-tspaths'"
|
|
47
|
+
},
|
|
48
|
+
"dependencies": {
|
|
49
|
+
"i18next": "26.5.10",
|
|
50
|
+
"i18next-icu": "2.6.1",
|
|
51
|
+
"zod": "4.6.7",
|
|
52
|
+
"zod-i18n-map": "3.0.1"
|
|
53
|
+
},
|
|
54
|
+
"devDependencies": {
|
|
55
|
+
"@tmlmobilidade/go-utils-tsconfig": "*",
|
|
56
|
+
"@types/node": "26.6.5",
|
|
57
|
+
"intl-messageformat": "12.1.4",
|
|
58
|
+
"resolve-tspaths": "0.8.23",
|
|
59
|
+
"tsc-watch": "7.2.1",
|
|
60
|
+
"tsx": "4.23.15",
|
|
61
|
+
"typescript": "6.0.3"
|
|
62
|
+
}
|
|
63
|
+
}
|
package/README.md
DELETED