@br-validators/zod 1.0.0

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +49 -0
  3. package/dist/boleto.d.ts +18 -0
  4. package/dist/boleto.js +4 -0
  5. package/dist/boleto.js.map +1 -0
  6. package/dist/cartao-credito.d.ts +10 -0
  7. package/dist/cartao-credito.js +4 -0
  8. package/dist/cartao-credito.js.map +1 -0
  9. package/dist/cep.d.ts +5 -0
  10. package/dist/cep.js +4 -0
  11. package/dist/cep.js.map +1 -0
  12. package/dist/chunk-26OAS7A2.js +9 -0
  13. package/dist/chunk-26OAS7A2.js.map +1 -0
  14. package/dist/chunk-4CUBQYVV.js +17 -0
  15. package/dist/chunk-4CUBQYVV.js.map +1 -0
  16. package/dist/chunk-52P4BE34.js +14 -0
  17. package/dist/chunk-52P4BE34.js.map +1 -0
  18. package/dist/chunk-C55RC3PC.js +30 -0
  19. package/dist/chunk-C55RC3PC.js.map +1 -0
  20. package/dist/chunk-DVAJS4A3.js +23 -0
  21. package/dist/chunk-DVAJS4A3.js.map +1 -0
  22. package/dist/chunk-IMTMT55F.js +14 -0
  23. package/dist/chunk-IMTMT55F.js.map +1 -0
  24. package/dist/chunk-JDXI7ULC.js +8 -0
  25. package/dist/chunk-JDXI7ULC.js.map +1 -0
  26. package/dist/chunk-M45KK35R.js +8 -0
  27. package/dist/chunk-M45KK35R.js.map +1 -0
  28. package/dist/chunk-OX7Q5P3L.js +17 -0
  29. package/dist/chunk-OX7Q5P3L.js.map +1 -0
  30. package/dist/chunk-QN3FOLOS.js +14 -0
  31. package/dist/chunk-QN3FOLOS.js.map +1 -0
  32. package/dist/chunk-YON3HZBP.js +8 -0
  33. package/dist/chunk-YON3HZBP.js.map +1 -0
  34. package/dist/cnpj.d.ts +5 -0
  35. package/dist/cnpj.js +4 -0
  36. package/dist/cnpj.js.map +1 -0
  37. package/dist/cpf.d.ts +5 -0
  38. package/dist/cpf.js +4 -0
  39. package/dist/cpf.js.map +1 -0
  40. package/dist/index.d.ts +36 -0
  41. package/dist/index.js +13 -0
  42. package/dist/index.js.map +1 -0
  43. package/dist/inscricao-estadual.d.ts +11 -0
  44. package/dist/inscricao-estadual.js +4 -0
  45. package/dist/inscricao-estadual.js.map +1 -0
  46. package/dist/pis-pasep.d.ts +7 -0
  47. package/dist/pis-pasep.js +4 -0
  48. package/dist/pis-pasep.js.map +1 -0
  49. package/dist/pix.d.ts +12 -0
  50. package/dist/pix.js +4 -0
  51. package/dist/pix.js.map +1 -0
  52. package/dist/placa.d.ts +10 -0
  53. package/dist/placa.js +4 -0
  54. package/dist/placa.js.map +1 -0
  55. package/dist/telefone.d.ts +10 -0
  56. package/dist/telefone.js +4 -0
  57. package/dist/telefone.js.map +1 -0
  58. package/package.json +104 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2026 BR Validators contributors
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,49 @@
1
+ # @br-validators/zod
2
+
3
+ Zod schemas that delegate to [`@br-validators/core`](../br-validators) `validate*` functions — same golden vectors, same error messages.
4
+
5
+ ## Install
6
+
7
+ ```bash
8
+ pnpm add @br-validators/zod @br-validators/core zod
9
+ ```
10
+
11
+ **Peer dependency:** `zod` `^3.23.0 || ^4.0.0`
12
+
13
+ ## Usage
14
+
15
+ ```typescript
16
+ import { z } from 'zod';
17
+ import { cpfSchema, telefoneSchema } from '@br-validators/zod';
18
+
19
+ const formSchema = z.object({
20
+ cpf: cpfSchema,
21
+ telefone: telefoneSchema,
22
+ });
23
+
24
+ formSchema.parse({
25
+ cpf: '123.456.789-09',
26
+ telefone: '(11) 99999-9999',
27
+ });
28
+ ```
29
+
30
+ ## Exports
31
+
32
+ | Schema | Output |
33
+ |--------|--------|
34
+ | `cpfSchema` | canonical `string` |
35
+ | `cnpjSchema` | canonical `string` |
36
+ | `cepSchema` | canonical `string` |
37
+ | `telefoneSchema` | `{ value, tipo }` |
38
+ | `placaSchema` | `{ value, format }` |
39
+ | `pisPasepSchema` / `pisSchema` | canonical `string` |
40
+ | `pixKeySchema` | `{ value, keyType }` |
41
+ | `boletoSchema` | `{ value, inputKind, situacao }` |
42
+ | `cartaoCreditoSchema` | `{ value, brand }` |
43
+ | `createInscricaoEstadualSchema({ uf })` | `{ value, uf }` |
44
+
45
+ Subpath imports mirror core: `@br-validators/zod/cpf`, etc.
46
+
47
+ ## License
48
+
49
+ MIT
@@ -0,0 +1,18 @@
1
+ import { BoletoSituacao, ValidateBoletoOptions } from '@br-validators/core';
2
+ import { z } from 'zod';
3
+
4
+ type BoletoSchemaOutput = {
5
+ value: string;
6
+ inputKind: 'linha-digitavel' | 'codigo-barras';
7
+ situacao: BoletoSituacao;
8
+ } | {
9
+ value: string;
10
+ inputKind: 'arrecadacao-linha' | 'arrecadacao-codigo-barras';
11
+ format: 'arrecadacao';
12
+ segment: string;
13
+ valueType: '6' | '7' | '8' | '9';
14
+ };
15
+ declare function createBoletoSchema(options?: ValidateBoletoOptions): z.ZodType<BoletoSchemaOutput, z.ZodTypeDef, string>;
16
+ declare const boletoSchema: z.ZodType<BoletoSchemaOutput, z.ZodTypeDef, string>;
17
+
18
+ export { type BoletoSchemaOutput, boletoSchema, createBoletoSchema };
package/dist/boleto.js ADDED
@@ -0,0 +1,4 @@
1
+ export { boletoSchema, createBoletoSchema } from './chunk-C55RC3PC.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=boleto.js.map
4
+ //# sourceMappingURL=boleto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"boleto.js"}
@@ -0,0 +1,10 @@
1
+ import * as zod from 'zod';
2
+ import { CardBrand } from '@br-validators/core';
3
+
4
+ type CartaoCreditoSchemaOutput = {
5
+ value: string;
6
+ brand: CardBrand;
7
+ };
8
+ declare const cartaoCreditoSchema: zod.ZodType<CartaoCreditoSchemaOutput, zod.ZodTypeDef, string>;
9
+
10
+ export { type CartaoCreditoSchemaOutput, cartaoCreditoSchema };
@@ -0,0 +1,4 @@
1
+ export { cartaoCreditoSchema } from './chunk-QN3FOLOS.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=cartao-credito.js.map
4
+ //# sourceMappingURL=cartao-credito.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cartao-credito.js"}
package/dist/cep.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import * as zod from 'zod';
2
+
3
+ declare const cepSchema: zod.ZodType<string, zod.ZodTypeDef, string>;
4
+
5
+ export { cepSchema };
package/dist/cep.js ADDED
@@ -0,0 +1,4 @@
1
+ export { cepSchema } from './chunk-JDXI7ULC.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=cep.js.map
4
+ //# sourceMappingURL=cep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cep.js"}
@@ -0,0 +1,9 @@
1
+ import { createBrStringSchema, mapCanonicalValue } from './chunk-DVAJS4A3.js';
2
+ import { validatePisPasep } from '@br-validators/core/pis-pasep';
3
+
4
+ var pisPasepSchema = createBrStringSchema(validatePisPasep, mapCanonicalValue);
5
+ var pisSchema = pisPasepSchema;
6
+
7
+ export { pisPasepSchema, pisSchema };
8
+ //# sourceMappingURL=chunk-26OAS7A2.js.map
9
+ //# sourceMappingURL=chunk-26OAS7A2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pis-pasep.ts"],"names":[],"mappings":";;;AAGO,IAAM,cAAA,GAAiB,oBAAA,CAAqB,gBAAA,EAAkB,iBAAiB;AAG/E,IAAM,SAAA,GAAY","file":"chunk-26OAS7A2.js","sourcesContent":["import { validatePisPasep } from '@br-validators/core/pis-pasep';\nimport { createBrStringSchema, mapCanonicalValue } from './create-schema.js';\n\nexport const pisPasepSchema = createBrStringSchema(validatePisPasep, mapCanonicalValue);\n\n/** Alias aligned with TASKS draft naming. */\nexport const pisSchema = pisPasepSchema;\n"]}
@@ -0,0 +1,17 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validatePixKey } from '@br-validators/core/pix';
3
+
4
+ function createPixKeySchema(options) {
5
+ return createBrStringSchema(
6
+ (input) => validatePixKey(input, options),
7
+ (success) => ({
8
+ value: success.value,
9
+ keyType: success.keyType
10
+ })
11
+ );
12
+ }
13
+ var pixKeySchema = createPixKeySchema();
14
+
15
+ export { createPixKeySchema, pixKeySchema };
16
+ //# sourceMappingURL=chunk-4CUBQYVV.js.map
17
+ //# sourceMappingURL=chunk-4CUBQYVV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/pix.ts"],"names":[],"mappings":";;;AASO,SAAS,mBACd,OAAA,EACqD;AACrD,EAAA,OAAO,oBAAA;AAAA,IACL,CAAC,KAAA,KAAU,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAAA,IACxC,CAAC,OAAA,MAAa;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,SAAS,OAAA,CAAQ;AAAA,KACnB;AAAA,GACF;AACF;AAGO,IAAM,eAAe,kBAAA","file":"chunk-4CUBQYVV.js","sourcesContent":["import { validatePixKey } from '@br-validators/core/pix';\nimport type { PixKeyType, PixValidationResult, ValidatePixKeyOptions } from '@br-validators/core';\nimport type { z } from 'zod';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type PixKeySchemaOutput = { value: string; keyType: PixKeyType };\n\ntype PixSuccess = Extract<PixValidationResult, { ok: true }>;\n\nexport function createPixKeySchema(\n options?: ValidatePixKeyOptions,\n): z.ZodType<PixKeySchemaOutput, z.ZodTypeDef, string> {\n return createBrStringSchema<PixSuccess, PixKeySchemaOutput>(\n (input) => validatePixKey(input, options),\n (success) => ({\n value: success.value,\n keyType: success.keyType,\n }),\n );\n}\n\n/** Detects PIX key type via Bacen precedence rules. */\nexport const pixKeySchema = createPixKeySchema();\n"]}
@@ -0,0 +1,14 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validatePlaca } from '@br-validators/core/placa';
3
+
4
+ var placaSchema = createBrStringSchema(
5
+ validatePlaca,
6
+ (success) => ({
7
+ value: success.value,
8
+ format: success.format
9
+ })
10
+ );
11
+
12
+ export { placaSchema };
13
+ //# sourceMappingURL=chunk-52P4BE34.js.map
14
+ //# sourceMappingURL=chunk-52P4BE34.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/placa.ts"],"names":[],"mappings":";;;AAQO,IAAM,WAAA,GAAc,oBAAA;AAAA,EACzB,aAAA;AAAA,EACA,CAAC,OAAA,MAAa;AAAA,IACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,QAAQ,OAAA,CAAQ;AAAA,GAClB;AACF","file":"chunk-52P4BE34.js","sourcesContent":["import { validatePlaca } from '@br-validators/core/placa';\nimport type { DocumentFormat, ValidationResult, Placa } from '@br-validators/core';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type PlacaSchemaOutput = { value: string; format: Extract<DocumentFormat, 'legacy' | 'mercosul'> };\n\ntype PlacaSuccess = Extract<ValidationResult<Placa>, { ok: true }>;\n\nexport const placaSchema = createBrStringSchema<PlacaSuccess, PlacaSchemaOutput>(\n validatePlaca,\n (success) => ({\n value: success.value,\n format: success.format as PlacaSchemaOutput['format'],\n }),\n);\n"]}
@@ -0,0 +1,30 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validateBoleto } from '@br-validators/core/boleto';
3
+
4
+ function mapBoletoSuccess(success) {
5
+ if (success.format === "arrecadacao") {
6
+ return {
7
+ value: success.value,
8
+ inputKind: success.inputKind,
9
+ format: "arrecadacao",
10
+ segment: success.segment,
11
+ valueType: success.valueType
12
+ };
13
+ }
14
+ return {
15
+ value: success.value,
16
+ inputKind: success.inputKind,
17
+ situacao: success.situacao
18
+ };
19
+ }
20
+ function createBoletoSchema(options) {
21
+ return createBrStringSchema(
22
+ (input) => validateBoleto(input, options),
23
+ mapBoletoSuccess
24
+ );
25
+ }
26
+ var boletoSchema = createBoletoSchema();
27
+
28
+ export { boletoSchema, createBoletoSchema };
29
+ //# sourceMappingURL=chunk-C55RC3PC.js.map
30
+ //# sourceMappingURL=chunk-C55RC3PC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/boleto.ts"],"names":[],"mappings":";;;AAqBA,SAAS,iBAAiB,OAAA,EAA4C;AACpE,EAAA,IAAI,OAAA,CAAQ,WAAW,aAAA,EAAe;AACpC,IAAA,OAAO;AAAA,MACL,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,WAAW,OAAA,CAAQ,SAAA;AAAA,MACnB,MAAA,EAAQ,aAAA;AAAA,MACR,SAAS,OAAA,CAAQ,OAAA;AAAA,MACjB,WAAW,OAAA,CAAQ;AAAA,KACrB;AAAA,EACF;AACA,EAAA,OAAO;AAAA,IACL,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,WAAW,OAAA,CAAQ,SAAA;AAAA,IACnB,UAAU,OAAA,CAAQ;AAAA,GACpB;AACF;AAEO,SAAS,mBACd,OAAA,EACqD;AACrD,EAAA,OAAO,oBAAA;AAAA,IACL,CAAC,KAAA,KAAU,cAAA,CAAe,KAAA,EAAO,OAAO,CAAA;AAAA,IACxC;AAAA,GACF;AACF;AAEO,IAAM,eAAe,kBAAA","file":"chunk-C55RC3PC.js","sourcesContent":["import { validateBoleto } from '@br-validators/core/boleto';\nimport type { BoletoSituacao, BoletoValidationResult, ValidateBoletoOptions } from '@br-validators/core';\nimport type { z } from 'zod';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type BoletoSchemaOutput =\n | {\n value: string;\n inputKind: 'linha-digitavel' | 'codigo-barras';\n situacao: BoletoSituacao;\n }\n | {\n value: string;\n inputKind: 'arrecadacao-linha' | 'arrecadacao-codigo-barras';\n format: 'arrecadacao';\n segment: string;\n valueType: '6' | '7' | '8' | '9';\n };\n\ntype BoletoSuccess = Extract<BoletoValidationResult, { ok: true }>;\n\nfunction mapBoletoSuccess(success: BoletoSuccess): BoletoSchemaOutput {\n if (success.format === 'arrecadacao') {\n return {\n value: success.value,\n inputKind: success.inputKind,\n format: 'arrecadacao',\n segment: success.segment,\n valueType: success.valueType,\n };\n }\n return {\n value: success.value,\n inputKind: success.inputKind,\n situacao: success.situacao,\n };\n}\n\nexport function createBoletoSchema(\n options?: ValidateBoletoOptions,\n): z.ZodType<BoletoSchemaOutput, z.ZodTypeDef, string> {\n return createBrStringSchema<BoletoSuccess, BoletoSchemaOutput>(\n (input) => validateBoleto(input, options),\n mapBoletoSuccess,\n );\n}\n\nexport const boletoSchema = createBoletoSchema();\n"]}
@@ -0,0 +1,23 @@
1
+ import { z } from 'zod';
2
+
3
+ // src/create-schema.ts
4
+ function createBrStringSchema(validate, mapOutput) {
5
+ return z.string().transform((input, ctx) => {
6
+ const result = validate(input);
7
+ if (!result.ok) {
8
+ ctx.addIssue({
9
+ code: z.ZodIssueCode.custom,
10
+ message: result.message
11
+ });
12
+ return z.NEVER;
13
+ }
14
+ return mapOutput(result);
15
+ });
16
+ }
17
+ function mapCanonicalValue(success) {
18
+ return success.value;
19
+ }
20
+
21
+ export { createBrStringSchema, mapCanonicalValue };
22
+ //# sourceMappingURL=chunk-DVAJS4A3.js.map
23
+ //# sourceMappingURL=chunk-DVAJS4A3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/create-schema.ts"],"names":[],"mappings":";;;AAcO,SAAS,oBAAA,CAId,UACA,SAAA,EAC0C;AAC1C,EAAA,OAAO,EAAE,MAAA,EAAO,CAAE,SAAA,CAAU,CAAC,OAAO,GAAA,KAAQ;AAC1C,IAAA,MAAM,MAAA,GAAS,SAAS,KAAK,CAAA;AAC7B,IAAA,IAAI,CAAC,OAAO,EAAA,EAAI;AACd,MAAA,GAAA,CAAI,QAAA,CAAS;AAAA,QACX,IAAA,EAAM,EAAE,YAAA,CAAa,MAAA;AAAA,QACrB,SAAS,MAAA,CAAO;AAAA,OACjB,CAAA;AACD,MAAA,OAAO,CAAA,CAAE,KAAA;AAAA,IACX;AACA,IAAA,OAAO,UAAU,MAAM,CAAA;AAAA,EACzB,CAAC,CAAA;AACH;AAGO,SAAS,kBAAkB,OAAA,EAAoC;AACpE,EAAA,OAAO,OAAA,CAAQ,KAAA;AACjB","file":"chunk-DVAJS4A3.js","sourcesContent":["import { z } from 'zod';\n\nexport type BrValidationFailure = { ok: false; message: string };\n\nexport type BrValidationSuccess<T extends Record<string, unknown>> = { ok: true } & T;\n\nexport type BrValidateFn<TSuccess extends BrValidationSuccess<{ value: string }>> = (\n input: string,\n) => TSuccess | BrValidationFailure;\n\n/**\n * Builds a Zod string schema that delegates validation to @br-validators/core validate*.\n * Invalid input surfaces core `message` via Zod custom issues.\n */\nexport function createBrStringSchema<\n TSuccess extends BrValidationSuccess<{ value: string }>,\n TOutput,\n>(\n validate: BrValidateFn<TSuccess>,\n mapOutput: (success: TSuccess) => TOutput,\n): z.ZodType<TOutput, z.ZodTypeDef, string> {\n return z.string().transform((input, ctx) => {\n const result = validate(input);\n if (!result.ok) {\n ctx.addIssue({\n code: z.ZodIssueCode.custom,\n message: result.message,\n });\n return z.NEVER;\n }\n return mapOutput(result);\n });\n}\n\n/** Maps success to canonical `value` only — CPF, CNPJ, CEP pattern. */\nexport function mapCanonicalValue(success: { value: string }): string {\n return success.value;\n}\n"]}
@@ -0,0 +1,14 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validateTelefone } from '@br-validators/core/telefone';
3
+
4
+ var telefoneSchema = createBrStringSchema(
5
+ validateTelefone,
6
+ (success) => ({
7
+ value: success.value,
8
+ tipo: success.tipo
9
+ })
10
+ );
11
+
12
+ export { telefoneSchema };
13
+ //# sourceMappingURL=chunk-IMTMT55F.js.map
14
+ //# sourceMappingURL=chunk-IMTMT55F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/telefone.ts"],"names":[],"mappings":";;;AAQO,IAAM,cAAA,GAAiB,oBAAA;AAAA,EAC5B,gBAAA;AAAA,EACA,CAAC,OAAA,MAAa;AAAA,IACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,MAAM,OAAA,CAAQ;AAAA,GAChB;AACF","file":"chunk-IMTMT55F.js","sourcesContent":["import { validateTelefone } from '@br-validators/core/telefone';\nimport type { TelefoneTipo, TelefoneValidationResult } from '@br-validators/core';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type TelefoneSchemaOutput = { value: string; tipo: TelefoneTipo };\n\ntype TelefoneSuccess = Extract<TelefoneValidationResult, { ok: true }>;\n\nexport const telefoneSchema = createBrStringSchema<TelefoneSuccess, TelefoneSchemaOutput>(\n validateTelefone,\n (success) => ({\n value: success.value,\n tipo: success.tipo,\n }),\n);\n"]}
@@ -0,0 +1,8 @@
1
+ import { createBrStringSchema, mapCanonicalValue } from './chunk-DVAJS4A3.js';
2
+ import { validateCep } from '@br-validators/core/cep';
3
+
4
+ var cepSchema = createBrStringSchema(validateCep, mapCanonicalValue);
5
+
6
+ export { cepSchema };
7
+ //# sourceMappingURL=chunk-JDXI7ULC.js.map
8
+ //# sourceMappingURL=chunk-JDXI7ULC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cep.ts"],"names":[],"mappings":";;;AAGO,IAAM,SAAA,GAAY,oBAAA,CAAqB,WAAA,EAAa,iBAAiB","file":"chunk-JDXI7ULC.js","sourcesContent":["import { validateCep } from '@br-validators/core/cep';\nimport { createBrStringSchema, mapCanonicalValue } from './create-schema.js';\n\nexport const cepSchema = createBrStringSchema(validateCep, mapCanonicalValue);\n"]}
@@ -0,0 +1,8 @@
1
+ import { createBrStringSchema, mapCanonicalValue } from './chunk-DVAJS4A3.js';
2
+ import { validateCpf } from '@br-validators/core/cpf';
3
+
4
+ var cpfSchema = createBrStringSchema(validateCpf, mapCanonicalValue);
5
+
6
+ export { cpfSchema };
7
+ //# sourceMappingURL=chunk-M45KK35R.js.map
8
+ //# sourceMappingURL=chunk-M45KK35R.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cpf.ts"],"names":[],"mappings":";;;AAGO,IAAM,SAAA,GAAY,oBAAA,CAAqB,WAAA,EAAa,iBAAiB","file":"chunk-M45KK35R.js","sourcesContent":["import { validateCpf } from '@br-validators/core/cpf';\nimport { createBrStringSchema, mapCanonicalValue } from './create-schema.js';\n\nexport const cpfSchema = createBrStringSchema(validateCpf, mapCanonicalValue);\n"]}
@@ -0,0 +1,17 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validateInscricaoEstadual } from '@br-validators/core/inscricao-estadual';
3
+
4
+ function createInscricaoEstadualSchema(options) {
5
+ return createBrStringSchema(
6
+ (input) => validateInscricaoEstadual(input, options),
7
+ (success) => ({
8
+ value: success.value,
9
+ uf: success.uf
10
+ })
11
+ );
12
+ }
13
+ var inscricaoEstadualSpSchema = createInscricaoEstadualSchema({ uf: "SP" });
14
+
15
+ export { createInscricaoEstadualSchema, inscricaoEstadualSpSchema };
16
+ //# sourceMappingURL=chunk-OX7Q5P3L.js.map
17
+ //# sourceMappingURL=chunk-OX7Q5P3L.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/inscricao-estadual.ts"],"names":[],"mappings":";;;AAaO,SAAS,8BACd,OAAA,EACgE;AAChE,EAAA,OAAO,oBAAA;AAAA,IACL,CAAC,KAAA,KAAU,yBAAA,CAA0B,KAAA,EAAO,OAAO,CAAA;AAAA,IACnD,CAAC,OAAA,MAAa;AAAA,MACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,MACf,IAAI,OAAA,CAAQ;AAAA,KACd;AAAA,GACF;AACF;AAEO,IAAM,yBAAA,GAA4B,6BAAA,CAA8B,EAAE,EAAA,EAAI,MAAM","file":"chunk-OX7Q5P3L.js","sourcesContent":["import { validateInscricaoEstadual } from '@br-validators/core/inscricao-estadual';\nimport type {\n InscricaoEstadualValidationResult,\n UfCode,\n ValidateInscricaoEstadualOptions,\n} from '@br-validators/core';\nimport type { z } from 'zod';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type InscricaoEstadualSchemaOutput = { value: string; uf: UfCode };\n\ntype IeSuccess = Extract<InscricaoEstadualValidationResult, { ok: true }>;\n\nexport function createInscricaoEstadualSchema(\n options: ValidateInscricaoEstadualOptions,\n): z.ZodType<InscricaoEstadualSchemaOutput, z.ZodTypeDef, string> {\n return createBrStringSchema<IeSuccess, InscricaoEstadualSchemaOutput>(\n (input) => validateInscricaoEstadual(input, options),\n (success) => ({\n value: success.value,\n uf: success.uf,\n }),\n );\n}\n\nexport const inscricaoEstadualSpSchema = createInscricaoEstadualSchema({ uf: 'SP' });\n"]}
@@ -0,0 +1,14 @@
1
+ import { createBrStringSchema } from './chunk-DVAJS4A3.js';
2
+ import { validateCartaoCredito } from '@br-validators/core/cartao-credito';
3
+
4
+ var cartaoCreditoSchema = createBrStringSchema(
5
+ validateCartaoCredito,
6
+ (success) => ({
7
+ value: success.value,
8
+ brand: success.brand
9
+ })
10
+ );
11
+
12
+ export { cartaoCreditoSchema };
13
+ //# sourceMappingURL=chunk-QN3FOLOS.js.map
14
+ //# sourceMappingURL=chunk-QN3FOLOS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cartao-credito.ts"],"names":[],"mappings":";;;AAQO,IAAM,mBAAA,GAAsB,oBAAA;AAAA,EACjC,qBAAA;AAAA,EACA,CAAC,OAAA,MAAa;AAAA,IACZ,OAAO,OAAA,CAAQ,KAAA;AAAA,IACf,OAAO,OAAA,CAAQ;AAAA,GACjB;AACF","file":"chunk-QN3FOLOS.js","sourcesContent":["import { validateCartaoCredito } from '@br-validators/core/cartao-credito';\nimport type { CardBrand, CartaoCreditoValidationResult } from '@br-validators/core';\nimport { createBrStringSchema } from './create-schema.js';\n\nexport type CartaoCreditoSchemaOutput = { value: string; brand: CardBrand };\n\ntype CartaoSuccess = Extract<CartaoCreditoValidationResult, { ok: true }>;\n\nexport const cartaoCreditoSchema = createBrStringSchema<CartaoSuccess, CartaoCreditoSchemaOutput>(\n validateCartaoCredito,\n (success) => ({\n value: success.value,\n brand: success.brand,\n }),\n);\n"]}
@@ -0,0 +1,8 @@
1
+ import { createBrStringSchema, mapCanonicalValue } from './chunk-DVAJS4A3.js';
2
+ import { validateCnpj } from '@br-validators/core/cnpj';
3
+
4
+ var cnpjSchema = createBrStringSchema(validateCnpj, mapCanonicalValue);
5
+
6
+ export { cnpjSchema };
7
+ //# sourceMappingURL=chunk-YON3HZBP.js.map
8
+ //# sourceMappingURL=chunk-YON3HZBP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/cnpj.ts"],"names":[],"mappings":";;;AAGO,IAAM,UAAA,GAAa,oBAAA,CAAqB,YAAA,EAAc,iBAAiB","file":"chunk-YON3HZBP.js","sourcesContent":["import { validateCnpj } from '@br-validators/core/cnpj';\nimport { createBrStringSchema, mapCanonicalValue } from './create-schema.js';\n\nexport const cnpjSchema = createBrStringSchema(validateCnpj, mapCanonicalValue);\n"]}
package/dist/cnpj.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import * as zod from 'zod';
2
+
3
+ declare const cnpjSchema: zod.ZodType<string, zod.ZodTypeDef, string>;
4
+
5
+ export { cnpjSchema };
package/dist/cnpj.js ADDED
@@ -0,0 +1,4 @@
1
+ export { cnpjSchema } from './chunk-YON3HZBP.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=cnpj.js.map
4
+ //# sourceMappingURL=cnpj.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cnpj.js"}
package/dist/cpf.d.ts ADDED
@@ -0,0 +1,5 @@
1
+ import * as zod from 'zod';
2
+
3
+ declare const cpfSchema: zod.ZodType<string, zod.ZodTypeDef, string>;
4
+
5
+ export { cpfSchema };
package/dist/cpf.js ADDED
@@ -0,0 +1,4 @@
1
+ export { cpfSchema } from './chunk-M45KK35R.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=cpf.js.map
4
+ //# sourceMappingURL=cpf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"cpf.js"}
@@ -0,0 +1,36 @@
1
+ import { z } from 'zod';
2
+ export { cpfSchema } from './cpf.js';
3
+ export { cnpjSchema } from './cnpj.js';
4
+ export { cepSchema } from './cep.js';
5
+ export { TelefoneSchemaOutput, telefoneSchema } from './telefone.js';
6
+ export { PlacaSchemaOutput, placaSchema } from './placa.js';
7
+ export { pisPasepSchema, pisSchema } from './pis-pasep.js';
8
+ export { PixKeySchemaOutput, createPixKeySchema, pixKeySchema } from './pix.js';
9
+ export { BoletoSchemaOutput, boletoSchema, createBoletoSchema } from './boleto.js';
10
+ export { CartaoCreditoSchemaOutput, cartaoCreditoSchema } from './cartao-credito.js';
11
+ export { InscricaoEstadualSchemaOutput, createInscricaoEstadualSchema, inscricaoEstadualSpSchema } from './inscricao-estadual.js';
12
+ import '@br-validators/core';
13
+
14
+ type BrValidationFailure = {
15
+ ok: false;
16
+ message: string;
17
+ };
18
+ type BrValidationSuccess<T extends Record<string, unknown>> = {
19
+ ok: true;
20
+ } & T;
21
+ type BrValidateFn<TSuccess extends BrValidationSuccess<{
22
+ value: string;
23
+ }>> = (input: string) => TSuccess | BrValidationFailure;
24
+ /**
25
+ * Builds a Zod string schema that delegates validation to @br-validators/core validate*.
26
+ * Invalid input surfaces core `message` via Zod custom issues.
27
+ */
28
+ declare function createBrStringSchema<TSuccess extends BrValidationSuccess<{
29
+ value: string;
30
+ }>, TOutput>(validate: BrValidateFn<TSuccess>, mapOutput: (success: TSuccess) => TOutput): z.ZodType<TOutput, z.ZodTypeDef, string>;
31
+ /** Maps success to canonical `value` only — CPF, CNPJ, CEP pattern. */
32
+ declare function mapCanonicalValue(success: {
33
+ value: string;
34
+ }): string;
35
+
36
+ export { type BrValidateFn, type BrValidationFailure, type BrValidationSuccess, createBrStringSchema, mapCanonicalValue };
package/dist/index.js ADDED
@@ -0,0 +1,13 @@
1
+ export { createPixKeySchema, pixKeySchema } from './chunk-4CUBQYVV.js';
2
+ export { placaSchema } from './chunk-52P4BE34.js';
3
+ export { telefoneSchema } from './chunk-IMTMT55F.js';
4
+ export { boletoSchema, createBoletoSchema } from './chunk-C55RC3PC.js';
5
+ export { cartaoCreditoSchema } from './chunk-QN3FOLOS.js';
6
+ export { cepSchema } from './chunk-JDXI7ULC.js';
7
+ export { cnpjSchema } from './chunk-YON3HZBP.js';
8
+ export { cpfSchema } from './chunk-M45KK35R.js';
9
+ export { createInscricaoEstadualSchema, inscricaoEstadualSpSchema } from './chunk-OX7Q5P3L.js';
10
+ export { pisPasepSchema, pisSchema } from './chunk-26OAS7A2.js';
11
+ export { createBrStringSchema, mapCanonicalValue } from './chunk-DVAJS4A3.js';
12
+ //# sourceMappingURL=index.js.map
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
@@ -0,0 +1,11 @@
1
+ import { UfCode, ValidateInscricaoEstadualOptions } from '@br-validators/core';
2
+ import { z } from 'zod';
3
+
4
+ type InscricaoEstadualSchemaOutput = {
5
+ value: string;
6
+ uf: UfCode;
7
+ };
8
+ declare function createInscricaoEstadualSchema(options: ValidateInscricaoEstadualOptions): z.ZodType<InscricaoEstadualSchemaOutput, z.ZodTypeDef, string>;
9
+ declare const inscricaoEstadualSpSchema: z.ZodType<InscricaoEstadualSchemaOutput, z.ZodTypeDef, string>;
10
+
11
+ export { type InscricaoEstadualSchemaOutput, createInscricaoEstadualSchema, inscricaoEstadualSpSchema };
@@ -0,0 +1,4 @@
1
+ export { createInscricaoEstadualSchema, inscricaoEstadualSpSchema } from './chunk-OX7Q5P3L.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=inscricao-estadual.js.map
4
+ //# sourceMappingURL=inscricao-estadual.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"inscricao-estadual.js"}
@@ -0,0 +1,7 @@
1
+ import * as zod from 'zod';
2
+
3
+ declare const pisPasepSchema: zod.ZodType<string, zod.ZodTypeDef, string>;
4
+ /** Alias aligned with TASKS draft naming. */
5
+ declare const pisSchema: zod.ZodType<string, zod.ZodTypeDef, string>;
6
+
7
+ export { pisPasepSchema, pisSchema };
@@ -0,0 +1,4 @@
1
+ export { pisPasepSchema, pisSchema } from './chunk-26OAS7A2.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=pis-pasep.js.map
4
+ //# sourceMappingURL=pis-pasep.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"pis-pasep.js"}
package/dist/pix.d.ts ADDED
@@ -0,0 +1,12 @@
1
+ import { PixKeyType, ValidatePixKeyOptions } from '@br-validators/core';
2
+ import { z } from 'zod';
3
+
4
+ type PixKeySchemaOutput = {
5
+ value: string;
6
+ keyType: PixKeyType;
7
+ };
8
+ declare function createPixKeySchema(options?: ValidatePixKeyOptions): z.ZodType<PixKeySchemaOutput, z.ZodTypeDef, string>;
9
+ /** Detects PIX key type via Bacen precedence rules. */
10
+ declare const pixKeySchema: z.ZodType<PixKeySchemaOutput, z.ZodTypeDef, string>;
11
+
12
+ export { type PixKeySchemaOutput, createPixKeySchema, pixKeySchema };
package/dist/pix.js ADDED
@@ -0,0 +1,4 @@
1
+ export { createPixKeySchema, pixKeySchema } from './chunk-4CUBQYVV.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=pix.js.map
4
+ //# sourceMappingURL=pix.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"pix.js"}
@@ -0,0 +1,10 @@
1
+ import * as zod from 'zod';
2
+ import { DocumentFormat } from '@br-validators/core';
3
+
4
+ type PlacaSchemaOutput = {
5
+ value: string;
6
+ format: Extract<DocumentFormat, 'legacy' | 'mercosul'>;
7
+ };
8
+ declare const placaSchema: zod.ZodType<PlacaSchemaOutput, zod.ZodTypeDef, string>;
9
+
10
+ export { type PlacaSchemaOutput, placaSchema };
package/dist/placa.js ADDED
@@ -0,0 +1,4 @@
1
+ export { placaSchema } from './chunk-52P4BE34.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=placa.js.map
4
+ //# sourceMappingURL=placa.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"placa.js"}
@@ -0,0 +1,10 @@
1
+ import * as zod from 'zod';
2
+ import { TelefoneTipo } from '@br-validators/core';
3
+
4
+ type TelefoneSchemaOutput = {
5
+ value: string;
6
+ tipo: TelefoneTipo;
7
+ };
8
+ declare const telefoneSchema: zod.ZodType<TelefoneSchemaOutput, zod.ZodTypeDef, string>;
9
+
10
+ export { type TelefoneSchemaOutput, telefoneSchema };
@@ -0,0 +1,4 @@
1
+ export { telefoneSchema } from './chunk-IMTMT55F.js';
2
+ import './chunk-DVAJS4A3.js';
3
+ //# sourceMappingURL=telefone.js.map
4
+ //# sourceMappingURL=telefone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"telefone.js"}
package/package.json ADDED
@@ -0,0 +1,104 @@
1
+ {
2
+ "name": "@br-validators/zod",
3
+ "version": "1.0.0",
4
+ "description": "Zod schemas for Brazilian document validators — delegates to @br-validators/core",
5
+ "license": "MIT",
6
+ "type": "module",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/AlexandreZanata/br-validators.git",
10
+ "directory": "packages/br-validators-zod"
11
+ },
12
+ "homepage": "https://github.com/AlexandreZanata/br-validators/tree/main/packages/br-validators-zod#readme",
13
+ "bugs": {
14
+ "url": "https://github.com/AlexandreZanata/br-validators/issues"
15
+ },
16
+ "keywords": [
17
+ "brazil",
18
+ "zod",
19
+ "validator",
20
+ "cpf",
21
+ "cnpj",
22
+ "cep"
23
+ ],
24
+ "publishConfig": {
25
+ "access": "public",
26
+ "tag": "alpha"
27
+ },
28
+ "main": "./dist/index.js",
29
+ "types": "./dist/index.d.ts",
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/index.d.ts",
33
+ "import": "./dist/index.js"
34
+ },
35
+ "./cpf": {
36
+ "types": "./dist/cpf.d.ts",
37
+ "import": "./dist/cpf.js"
38
+ },
39
+ "./cnpj": {
40
+ "types": "./dist/cnpj.d.ts",
41
+ "import": "./dist/cnpj.js"
42
+ },
43
+ "./cep": {
44
+ "types": "./dist/cep.d.ts",
45
+ "import": "./dist/cep.js"
46
+ },
47
+ "./telefone": {
48
+ "types": "./dist/telefone.d.ts",
49
+ "import": "./dist/telefone.js"
50
+ },
51
+ "./placa": {
52
+ "types": "./dist/placa.d.ts",
53
+ "import": "./dist/placa.js"
54
+ },
55
+ "./pis-pasep": {
56
+ "types": "./dist/pis-pasep.d.ts",
57
+ "import": "./dist/pis-pasep.js"
58
+ },
59
+ "./pix": {
60
+ "types": "./dist/pix.d.ts",
61
+ "import": "./dist/pix.js"
62
+ },
63
+ "./boleto": {
64
+ "types": "./dist/boleto.d.ts",
65
+ "import": "./dist/boleto.js"
66
+ },
67
+ "./cartao-credito": {
68
+ "types": "./dist/cartao-credito.d.ts",
69
+ "import": "./dist/cartao-credito.js"
70
+ },
71
+ "./inscricao-estadual": {
72
+ "types": "./dist/inscricao-estadual.d.ts",
73
+ "import": "./dist/inscricao-estadual.js"
74
+ }
75
+ },
76
+ "files": [
77
+ "dist",
78
+ "README.md"
79
+ ],
80
+ "peerDependencies": {
81
+ "zod": "^3.23.0 || ^4.0.0"
82
+ },
83
+ "dependencies": {
84
+ "@br-validators/core": "1.0.0"
85
+ },
86
+ "devDependencies": {
87
+ "@vitest/coverage-v8": "^3.2.4",
88
+ "tsup": "^8.5.0",
89
+ "typescript": "^5.8.3",
90
+ "vitest": "^3.2.4",
91
+ "zod": "^3.24.4",
92
+ "zod4": "npm:zod@^4.0.0"
93
+ },
94
+ "scripts": {
95
+ "build": "tsup",
96
+ "pretypecheck": "pnpm --filter @br-validators/core build",
97
+ "pretest": "pnpm --filter @br-validators/core build",
98
+ "pretest:coverage": "pnpm --filter @br-validators/core build",
99
+ "test": "vitest run",
100
+ "test:coverage": "vitest run --coverage",
101
+ "typecheck": "tsc --noEmit",
102
+ "lint": "eslint src tests --max-warnings 0"
103
+ }
104
+ }