@leo-h/create-nodejs-app 1.0.38 → 1.0.40

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@leo-h/create-nodejs-app",
3
- "version": "1.0.38",
3
+ "version": "1.0.40",
4
4
  "packageManager": "pnpm@9.15.9",
5
5
  "author": "Leonardo Henrique <leonardo0507.business@gmail.com>",
6
6
  "description": "Create a modern Node.js app with TypeScript using one command.",
@@ -23,6 +23,9 @@ dist-ssr
23
23
  *.sln
24
24
  *.sw?
25
25
 
26
+ # Eslint cache
27
+ .eslintcache
28
+
26
29
  # Environment variable files
27
30
  .env*
28
31
  !.env.example
@@ -43,7 +43,7 @@
43
43
  "type-fest": "4.40.1",
44
44
  "typescript": "~5.8.3",
45
45
  "typescript-eslint": "8.31.1",
46
- "vite": "6.3.3",
46
+ "vite": "6.3.4",
47
47
  "vite-tsconfig-paths": "5.1.4"
48
48
  }
49
49
  }
@@ -47,7 +47,7 @@ importers:
47
47
  version: 19.1.2(@types/react@19.1.2)
48
48
  '@vitejs/plugin-react':
49
49
  specifier: 4.4.1
50
- version: 4.4.1(vite@6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))
50
+ version: 4.4.1(vite@6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))
51
51
  eslint:
52
52
  specifier: 9.25.1
53
53
  version: 9.25.1
@@ -88,11 +88,11 @@ importers:
88
88
  specifier: 8.31.1
89
89
  version: 8.31.1(eslint@9.25.1)(typescript@5.8.3)
90
90
  vite:
91
- specifier: 6.3.3
92
- version: 6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
91
+ specifier: 6.3.4
92
+ version: 6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
93
93
  vite-tsconfig-paths:
94
94
  specifier: 5.1.4
95
- version: 5.1.4(typescript@5.8.3)(vite@6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))
95
+ version: 5.1.4(typescript@5.8.3)(vite@6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))
96
96
 
97
97
  packages:
98
98
 
@@ -2274,8 +2274,8 @@ packages:
2274
2274
  vite:
2275
2275
  optional: true
2276
2276
 
2277
- vite@6.3.3:
2278
- resolution: {integrity: sha512-5nXH+QsELbFKhsEfWLkHrvgRpTdGJzqOZ+utSdmPTvwHmvU6ITTm3xx+mRusihkcI8GeC7lCDyn3kDtiki9scw==}
2277
+ vite@6.3.4:
2278
+ resolution: {integrity: sha512-BiReIiMS2fyFqbqNT/Qqt4CVITDU9M9vE+DKcVAsB+ZV0wvTKd+3hMbkpxz1b+NmEDMegpVbisKiAZOnvO92Sw==}
2279
2279
  engines: {node: ^18.0.0 || ^20.0.0 || >=22.0.0}
2280
2280
  hasBin: true
2281
2281
  peerDependencies:
@@ -3231,14 +3231,14 @@ snapshots:
3231
3231
  '@typescript-eslint/types': 8.31.1
3232
3232
  eslint-visitor-keys: 4.2.0
3233
3233
 
3234
- '@vitejs/plugin-react@4.4.1(vite@6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))':
3234
+ '@vitejs/plugin-react@4.4.1(vite@6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1))':
3235
3235
  dependencies:
3236
3236
  '@babel/core': 7.26.10
3237
3237
  '@babel/plugin-transform-react-jsx-self': 7.25.9(@babel/core@7.26.10)
3238
3238
  '@babel/plugin-transform-react-jsx-source': 7.25.9(@babel/core@7.26.10)
3239
3239
  '@types/babel__core': 7.20.5
3240
3240
  react-refresh: 0.17.0
3241
- vite: 6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
3241
+ vite: 6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
3242
3242
  transitivePeerDependencies:
3243
3243
  - supports-color
3244
3244
 
@@ -4830,18 +4830,18 @@ snapshots:
4830
4830
 
4831
4831
  validator@13.12.0: {}
4832
4832
 
4833
- vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)):
4833
+ vite-tsconfig-paths@5.1.4(typescript@5.8.3)(vite@6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)):
4834
4834
  dependencies:
4835
4835
  debug: 4.4.0
4836
4836
  globrex: 0.1.2
4837
4837
  tsconfck: 3.1.4(typescript@5.8.3)
4838
4838
  optionalDependencies:
4839
- vite: 6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
4839
+ vite: 6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1)
4840
4840
  transitivePeerDependencies:
4841
4841
  - supports-color
4842
4842
  - typescript
4843
4843
 
4844
- vite@6.3.3(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1):
4844
+ vite@6.3.4(@types/node@22.10.5)(tsx@4.19.4)(yaml@2.7.1):
4845
4845
  dependencies:
4846
4846
  esbuild: 0.25.2
4847
4847
  fdir: 6.4.4(picomatch@4.0.2)
@@ -0,0 +1,101 @@
1
+ {
2
+ "types": {
3
+ "number": "número",
4
+ "string": "texto",
5
+ "integer": "número inteiro",
6
+ "boolean": "verdadeiro ou falso",
7
+ "date": "data",
8
+ "bigint": "número",
9
+ "undefined": "vazio",
10
+ "null": "vazio",
11
+ "array": "lista",
12
+ "object": "objeto"
13
+ },
14
+ "errors": {
15
+ "invalid_type": "O campo deve ser {{expected}}, foi recebido {{received}}.",
16
+ "invalid_type_received_undefined": "O campo é obrigatório.",
17
+ "invalid_type_received_null": "O campo não pode estar nulo.",
18
+ "invalid_literal": "O campo deve ser apenas '{{expected}}'.",
19
+ "unrecognized_keys": "O campo contém chave(s) não reconhecida(s) no objeto: {{- keys}}.",
20
+ "invalid_union": "O campo é inválido.",
21
+ "invalid_union_discriminator": "O campo deve conter apenas os seguintes valores: {{- options}}.",
22
+ "invalid_enum_value": "O campo deve conter apenas os seguintes valores: {{- options}}.",
23
+ "invalid_date": "A data é inválida.",
24
+ "custom": "O campo é inválido.",
25
+ "invalid_intersection_types": "O campo '{{path}}' não pode conter valores mesclados.",
26
+ "not_multiple_of": "O número deve ser múltiplo de {{multipleOf}}.",
27
+ "not_finite": "O número não pode ser infinito.",
28
+ "invalid_string": {
29
+ "email": "O e-mail é inválido.",
30
+ "url": "A URL é inválida.",
31
+ "uuid": "O UUID é inválido.",
32
+ "cuid": "O CUID é inválido.",
33
+ "regex": "O campo é inválido.",
34
+ "datetime": "A data e a hora são inválidos.",
35
+ "startsWith": "O campo só pode iniciar com \"{{startsWith}}\".",
36
+ "endsWith": "O campo só pode iniciar com \"{{endsWith}}\"."
37
+ },
38
+ "too_small": {
39
+ "array": {
40
+ "exact": "Adicione exatamente {{minimum}} item / itens.",
41
+ "inclusive": "Adicione no mínimo {{minimum}} item / itens.",
42
+ "not_inclusive": "Adicione mais de {{minimum}} item / itens."
43
+ },
44
+ "string": {
45
+ "exact": "O campo deve conter exatamente {{minimum}} caractere(s).",
46
+ "inclusive": "O campo deve conter no mínimo {{minimum}} caractere(s).",
47
+ "not_inclusive": "O campo deve conter mais de {{minimum}} caractere(s)."
48
+ },
49
+ "number": {
50
+ "exact": "O número deve conter exatamente {{minimum}} caractere(s).",
51
+ "inclusive": "O número deve ser maior ou igual a {{minimum}}.",
52
+ "not_inclusive": "O número deve ser maior que {{minimum}}."
53
+ },
54
+ "set": {
55
+ "exact": "O campo é inválido.",
56
+ "inclusive": "O campo é inválido.",
57
+ "not_inclusive": "O campo é inválido."
58
+ },
59
+ "date": {
60
+ "exact": "A data deve ser exatamente igual a {{- maximum, datetime}}.",
61
+ "inclusive": "A data deve ser maior ou igual a {{- minimum, datetime}}.",
62
+ "not_inclusive": "A data deve ser maior que {{- minimum, datetime}}."
63
+ }
64
+ },
65
+ "too_big": {
66
+ "array": {
67
+ "exact": "Adicione exatamente {{maximum}} item / itens.",
68
+ "inclusive": "Adicione no máximo {{maximum}} item / itens.",
69
+ "not_inclusive": "Adicione menos de {{maximum}} item / itens."
70
+ },
71
+ "string": {
72
+ "exact": "O campo deve conter exatamente {{maximum}} caractere(s).",
73
+ "inclusive": "O campo deve conter no máximo {{maximum}} caractere(s).",
74
+ "not_inclusive": "O campo deve conter menos de {{maximum}} caractere(s)."
75
+ },
76
+ "number": {
77
+ "exact": "O número deve conter exatamente {{maximum}} caractere(s).",
78
+ "inclusive": "O número deve ser menor ou igual a {{maximum}}.",
79
+ "not_inclusive": "O número deve ser menor que {{maximum}}."
80
+ },
81
+ "set": {
82
+ "exact": "O campo é inválido.",
83
+ "inclusive": "O campo é inválido.",
84
+ "not_inclusive": "O campo é inválido."
85
+ },
86
+ "date": {
87
+ "exact": "A data deve ser exatamente igual a {{- maximum, datetime}}.",
88
+ "inclusive": "A data deve ser menor ou igual a {{- maximum, datetime}}.",
89
+ "not_inclusive": "A data deve ser menor que {{- maximum, datetime}}."
90
+ }
91
+ }
92
+ },
93
+ "validations": {
94
+ "email": "email",
95
+ "url": "url",
96
+ "uuid": "uuid",
97
+ "cuid": "cuid",
98
+ "regex": "regex",
99
+ "datetime": "datetime"
100
+ }
101
+ }
@@ -2,19 +2,27 @@ import i18next from "i18next";
2
2
  import { z } from "zod";
3
3
  import { zodI18nMap } from "zod-i18n-map";
4
4
  import translation from "zod-i18n-map/locales/pt/zod.json";
5
- import zodI18nTranslationForEndUsers from "./zod-i18n-translation-for-end-users.json";
5
+ import zodI18nPtBrTranslation from "./zod-i18n-pt-br-translation.json";
6
6
 
7
7
  export function startZodWithI18n() {
8
8
  i18next.init({
9
9
  lng: "pt",
10
10
  resources: {
11
11
  pt: {
12
- zod: { ...translation, ...zodI18nTranslationForEndUsers },
12
+ zod: {
13
+ ...translation,
14
+ ...zodI18nPtBrTranslation,
15
+ errors: {
16
+ ...translation.errors,
17
+ ...zodI18nPtBrTranslation.errors,
18
+ },
19
+ },
13
20
  },
14
21
  },
22
+ interpolation: {
23
+ escapeValue: false,
24
+ },
15
25
  });
16
26
 
17
27
  z.setErrorMap(zodI18nMap);
18
28
  }
19
-
20
- export { z };
@@ -1,103 +0,0 @@
1
- {
2
- "types": {
3
- "number": "número",
4
- "string": "texto",
5
- "integer": "número inteiro",
6
- "boolean": "verdadeiro ou falso",
7
- "date": "data",
8
- "bigint": "número",
9
- "undefined": "vazio",
10
- "null": "vazio",
11
- "array": "lista",
12
- "object": "objeto"
13
- },
14
- "errors": {
15
- "invalid_type": "O campo deve ser {{expected}}, foi recebido {{received}}.",
16
- "invalid_type_received_undefined": "O campo é obrigatório.",
17
- "invalid_type_received_null": "O campo é obrigatório.",
18
- "invalid_literal": "O campo deve ser apenas \"{{expected}}\".",
19
- "unrecognized_keys": "Chave(s) não reconhecida(s) no objeto: {{- keys}}.",
20
- "invalid_union": "Entrada inválida.",
21
- "invalid_union_discriminator": "O campo deve conter apenas os seguintes valores: {{- options}}.",
22
- "invalid_enum_value": "O campo deve conter apenas os seguintes valores: {{- options}}.",
23
- "invalid_arguments": "Argumento de função inválido.",
24
- "invalid_return_type": "Tipo de retorno de função inválido.",
25
- "invalid_date": "A data é inválida.",
26
- "custom": "A entrada é inválida.",
27
- "invalid_intersection_types": "Os valores não podem ser mesclados.",
28
- "not_multiple_of": "O número deverá ser múltiplo de {{multipleOf}}.",
29
- "not_finite": "O número não pode ser infinito.",
30
- "invalid_string": {
31
- "email": "O e-mail é inválido.",
32
- "url": "A URL é inválida.",
33
- "uuid": "O UUID é inválido.",
34
- "cuid": "O CUID é inválido.",
35
- "regex": "A combinação é inválida.",
36
- "datetime": "A data e a hora são inválidos.",
37
- "startsWith": "O campo só pode iniciar com \"{{startsWith}}\".",
38
- "endsWith": "O campo só pode iniciar com \"{{endsWith}}\"."
39
- },
40
- "too_small": {
41
- "array": {
42
- "exact": "A lista deve conter exatamente {{minimum}} item / itens.",
43
- "inclusive": "A lista deve conter no mínimo {{minimum}} item / itens.",
44
- "not_inclusive": "A lista deve conter mais de {{minimum}} item / itens."
45
- },
46
- "string": {
47
- "exact": "O campo deve conter exatamente {{minimum}} caracter(es).",
48
- "inclusive": "O campo é obrigatório com no mínimo {{minimum}} caracter(es).",
49
- "not_inclusive": "O campo deve conter mais de {{minimum}} caracter(es)."
50
- },
51
- "number": {
52
- "exact": "O número deve conter exatamente {{minimum}} caracter(es).",
53
- "inclusive": "O número deve ser maior ou igual a {{minimum}}.",
54
- "not_inclusive": "O número deve ser maior que {{minimum}}."
55
- },
56
- "set": {
57
- "exact": "Entrada inválida.",
58
- "inclusive": "Entrada inválida.",
59
- "not_inclusive": "Entrada inválida."
60
- },
61
- "date": {
62
- "exact": "A data deve ser exatamente {{- maximum, datetime}}.",
63
- "inclusive": "A data deve ser maior ou igual a {{- minimum, datetime}}.",
64
- "not_inclusive": "A data deve ser maior que {{- minimum, datetime}}."
65
- }
66
- },
67
- "too_big": {
68
- "array": {
69
- "exact": "A lista deve conter exatamente {{minimum}} item / itens.",
70
- "inclusive": "A lista deve conter no mínimo {{minimum}} item / itens.",
71
- "not_inclusive": "A lista deve conter mais de {{minimum}} item / itens."
72
- },
73
- "string": {
74
- "exact": "O campo deve conter exatamente {{minimum}} caracter(es).",
75
- "inclusive": "O campo deve conter pelo menos {{minimum}} caracter(es).",
76
- "not_inclusive": "O campo deve conter mais de {{minimum}} caracter(es)."
77
- },
78
- "number": {
79
- "exact": "O número deve conter exatamente {{minimum}} caracter(es).",
80
- "inclusive": "O número deve ser maior ou igual a {{minimum}}.",
81
- "not_inclusive": "O número deve ser maior que {{minimum}}."
82
- },
83
- "set": {
84
- "exact": "Entrada inválida.",
85
- "inclusive": "Entrada inválida.",
86
- "not_inclusive": "Entrada inválida."
87
- },
88
- "date": {
89
- "exact": "A data deve ser exatamente {{- maximum, datetime}}.",
90
- "inclusive": "A data deve ser maior ou igual a {{- minimum, datetime}}.",
91
- "not_inclusive": "A data deve ser maior que {{- minimum, datetime}}."
92
- }
93
- }
94
- },
95
- "validations": {
96
- "email": "email",
97
- "url": "url",
98
- "uuid": "uuid",
99
- "cuid": "cuid",
100
- "regex": "regex",
101
- "datetime": "datetime"
102
- }
103
- }