diff --git a/.github/dependabot.yml b/.github/dependabot.yml
index d1f0d0851..6ebae6b8e 100644
--- a/.github/dependabot.yml
+++ b/.github/dependabot.yml
@@ -1,5 +1,9 @@
version: 2
updates:
+ - package-ecosystem: "github-actions"
+ directory: "/"
+ schedule:
+ interval: "daily"
- package-ecosystem: "npm"
directory: "/"
schedule:
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cc1c34daf..bab654762 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -1,21 +1,38 @@
name: Build
-on: [push, pull_request]
+on:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ push:
+ branches: [main]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: ${{ github.event_name != 'pull_request' }}
+
+permissions:
+ contents: read
jobs:
build:
name: Build
runs-on: ubuntu-latest
+ timeout-minutes: 15
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install Bun
- uses: oven-sh/setup-bun@v1
-
- - name: Install dependencies
- run: bun install
+ - name: Setup Vite+
+ uses: voidzero-dev/setup-vp@v1
+ with:
+ cache: true
- name: Run build
- run: bun run build
\ No newline at end of file
+ run: vp run build
+
+ - name: Upload build artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: dist
+ path: dist
diff --git a/.github/workflows/check.yml b/.github/workflows/check.yml
index 0bb8a4533..78bf60a4d 100644
--- a/.github/workflows/check.yml
+++ b/.github/workflows/check.yml
@@ -1,21 +1,32 @@
name: Check
-on: [push, pull_request]
+on:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ push:
+ branches: [main]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: ${{ github.event_name != 'pull_request' }}
+
+permissions:
+ contents: read
jobs:
check:
name: Check
runs-on: ubuntu-latest
+ timeout-minutes: 15
steps:
- name: Checkout code
- uses: actions/checkout@v4
-
- - name: Install Bun
- uses: oven-sh/setup-bun@v1
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install dependencies
- run: bun install
+ - name: Setup Vite+
+ uses: voidzero-dev/setup-vp@v1
+ with:
+ cache: true
- - name: Run tests
- run: bun run ci
\ No newline at end of file
+ - name: Run checks
+ run: npm run check
diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
index 3c4580efa..b8019969a 100644
--- a/.github/workflows/tests.yml
+++ b/.github/workflows/tests.yml
@@ -1,74 +1,109 @@
name: Tests
-on: [push, pull_request]
+on:
+ pull_request:
+ types: [opened, synchronize, reopened, ready_for_review]
+ push:
+ branches: [main]
+
+concurrency:
+ group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
+ cancel-in-progress: ${{ github.event_name != 'pull_request' }}
+
+permissions:
+ contents: read
jobs:
test-node:
name: Test on Node.js (${{ matrix.node-version }})
runs-on: ubuntu-latest
+ timeout-minutes: 20
strategy:
matrix:
- node-version: [18, 20, 22]
+ node-version: [20, 22, 24]
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Use Node.js ${{ matrix.node-version }}
- uses: actions/setup-node@v4
+ - name: Setup Node.js
+ uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0
with:
node-version: ${{ matrix.node-version }}
- - name: Install dependencies
- run: npm install
+ - name: Setup Vite+
+ uses: voidzero-dev/setup-vp@v1
+ with:
+ cache: true
- name: Run tests
- run: npm run test
+ run: vp test
test-bun:
name: Test on Bun
runs-on: ubuntu-latest
+ timeout-minutes: 15
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install Bun
- uses: oven-sh/setup-bun@v1
+ - name: Setup Bun
+ uses: oven-sh/setup-bun@v2
- - name: Install dependencies
- run: bun install
+ - name: Run tests
+ run: bun test src
+
+ test-deno:
+ name: Test on Deno
+ runs-on: ubuntu-latest
+ timeout-minutes: 15
+
+ steps:
+ - name: Checkout code
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
+
+ - name: Setup Deno
+ uses: denoland/setup-deno@v2
+ with:
+ deno-version: v2.x
- name: Run tests
- run: bun test
+ run: deno test --unstable-sloppy-imports --allow-net src
test-browsers:
name: Test on Browsers (${{ matrix.browser }})
runs-on: ubuntu-latest
+ timeout-minutes: 20
strategy:
matrix:
browser: [edge, chrome, firefox]
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install dependencies
- run: npm install
+ - name: Setup Vite+
+ uses: voidzero-dev/setup-vp@v1
+ with:
+ cache: true
- name: Run tests in ${{ matrix.browser }}
- run: npm run test:${{ matrix.browser }}-browser
+ run: vp test --browser=${{ matrix.browser }}
test-safari:
name: Test on Browsers (safari)
runs-on: macos-latest
+ timeout-minutes: 25
steps:
- name: Checkout code
- uses: actions/checkout@v4
+ uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- - name: Install dependencies
- run: npm install
+ - name: Setup Vite+
+ uses: voidzero-dev/setup-vp@v1
+ with:
+ cache: true
- name: Run tests in Safari
- run: npm run test:safari-browser
\ No newline at end of file
+ run: vp test --browser=safari --browser.headless=false
diff --git a/.release-it.json b/.release-it.json
index 0e32b1350..52349e2f5 100644
--- a/.release-it.json
+++ b/.release-it.json
@@ -4,8 +4,8 @@
"release": true
},
"hooks": {
- "before:init": ["bun run ci", "bun run test"],
- "after:bump": "bun run build",
+ "before:init": ["vp check", "vp test"],
+ "after:bump": "vp run build",
"after:release": "echo Successfully released ${name} v${version} to ${repo.repository}."
}
}
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index fb5fe903a..000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,177 +0,0 @@
-# [2.0.1](https://github.com/brazilian-utils/brazilian-utils/compare/2.0.0...2.0.1) (2026-03-30)
-
-
-### Bug Fixes
-
-* add support for Mercosul motorcycle license plates ([e918164](https://github.com/brazilian-utils/brazilian-utils/commit/e918164))
-* correct sanitization to accept the entire alphabet in alphanumeric CNPJ ([b1ad55e](https://github.com/brazilian-utils/brazilian-utils/commit/b1ad55e))
-
-# [2.0.0](https://github.com/brazilian-utils/brazilian-utils/compare/v1.1.0...2.0.0) (2026-01-21)
-
-
-### Bug Fixes
-
-* adjust build and publish configuration ([33f367f](https://github.com/brazilian-utils/brazilian-utils/commit/33f367f))
-* adjust `is-valid-cnpj` and `generate-cnpj` behavior ([adfdecb](https://github.com/brazilian-utils/brazilian-utils/commit/adfdecb))
-* adjust formatting, lint, and public API coverage ([38e06a4](https://github.com/brazilian-utils/brazilian-utils/commit/38e06a4), [9e9cd6a](https://github.com/brazilian-utils/brazilian-utils/commit/9e9cd6a), [cb13d33](https://github.com/brazilian-utils/brazilian-utils/commit/cb13d33))
-* adjust project structure and CI ([3cdb483](https://github.com/brazilian-utils/brazilian-utils/commit/3cdb483), [f5a1dd7](https://github.com/brazilian-utils/brazilian-utils/commit/f5a1dd7))
-
-
-### Features
-
-* add all formatters ([84ee6d2](https://github.com/brazilian-utils/brazilian-utils/commit/84ee6d2))
-* add docs to cities data ([954e953](https://github.com/brazilian-utils/brazilian-utils/commit/954e953))
-* include more utilities in the public package ([8df157c](https://github.com/brazilian-utils/brazilian-utils/commit/8df157c), [c3cfe0d](https://github.com/brazilian-utils/brazilian-utils/commit/c3cfe0d))
-* add public API test coverage and migration guide for the release ([158778d](https://github.com/brazilian-utils/brazilian-utils/commit/158778d), [e185a51](https://github.com/brazilian-utils/brazilian-utils/commit/e185a51))
-
-# [1.1.0](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.12...v1.1.0) (2025-11-01)
-
-
-### Bug Fixes
-
-* remove unused files and resolve merge conflicts in the processo juridico work ([26b33cb](https://github.com/brazilian-utils/brazilian-utils/commit/26b33cb), [47497c7](https://github.com/brazilian-utils/brazilian-utils/commit/47497c7))
-* update the build workflow and package structure ([d690541](https://github.com/brazilian-utils/brazilian-utils/commit/d690541), [fe62b69](https://github.com/brazilian-utils/brazilian-utils/commit/fe62b69))
-
-
-### Features
-
-* add support for alphanumeric CNPJ ([84dcac7](https://github.com/brazilian-utils/brazilian-utils/commit/84dcac7))
-* add validation utilities for processo juridico numbers ([12ac657](https://github.com/brazilian-utils/brazilian-utils/commit/12ac657))
-* update cities data ([cdd6c9d](https://github.com/brazilian-utils/brazilian-utils/commit/cdd6c9d))
-
-# [1.0.0-rc.12](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.11...1.0.0-rc.12) (2020-10-27)
-
-
-### Features
-
-* **licenseplate:** add a validador for brazilian and mercosul license plates ([580d961](https://github.com/brazilian-utils/brazilian-utils/commit/580d9613ed97d636f3ca717072522d05620081b3)), closes [#112](https://github.com/brazilian-utils/brazilian-utils/issues/112)
-
-# [1.0.0-rc.11](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.10...1.0.0-rc.11) (2020-08-25)
-
-
-### Bug Fixes
-
-* esm filename in package.json ([32cd815](https://github.com/brazilian-utils/brazilian-utils/commit/32cd815905af8ff850f6b4f56824288223722200))
-* let formatCurrency() more flexible and remove default param from parseCurrency() ([8a9a437](https://github.com/brazilian-utils/brazilian-utils/commit/8a9a4374d2b1e6bd33f2ccb26e6496c5f12dcd22))
-* **deps:** upgrade devDependency to fix security warning ([af7c353](https://github.com/brazilian-utils/brazilian-utils/commit/af7c353e97d1f9140a251a84fc13168aa2789956))
-* replace array.flat with reduce to support node 10 ([a47a51a](https://github.com/brazilian-utils/brazilian-utils/commit/a47a51a1b881aaf045d9e69af4fd0b20c50dcbfe))
-* **workflow:** update workflow config ([fb449c0](https://github.com/brazilian-utils/brazilian-utils/commit/fb449c09ed0b19277f946af26e4465efe10c68be))
-
-
-### Features
-
-* add formatCurrency() and parseCurrency() ([b0e6994](https://github.com/brazilian-utils/brazilian-utils/commit/b0e6994ebd7613030c648bbc9150640f305bf4ca))
-
-
-# [1.0.0-rc.10](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.9...1.0.0-rc.10) (2020-07-27)
-
-
-### Bug Fixes
-
-* exported the function "capitalize()" to the public API ([a16d603](https://github.com/brazilian-utils/brazilian-utils/commit/a16d603))
-
-
-### Features
-
-* add function capitalize() ([6d915fd](https://github.com/brazilian-utils/brazilian-utils/commit/6d915fd))
-* atualiza cidades novas ([348ab84](https://github.com/brazilian-utils/brazilian-utils/commit/348ab84))
-
-
-# [1.0.0-rc.9](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.8...1.0.0-rc.9) (2020-07-09)
-
-
-### Bug Fixes
-
-* applied code review ([48a81f1](https://github.com/brazilian-utils/brazilian-utils/commit/48a81f1))
-* solve all Codecov issues ([3394479](https://github.com/brazilian-utils/brazilian-utils/commit/3394479))
-
-
-### Features
-
-* add functions isValidLandlinePhone() and isValidMobilePhone() ([e8fe8bd](https://github.com/brazilian-utils/brazilian-utils/commit/e8fe8bd))
-
-
-# [1.0.0-rc.8](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.7...1.0.0-rc.8) (2020-06-17)
-
-
-### Bug Fixes
-
-* add getCities to api public testes ([3f8c4be](https://github.com/brazilian-utils/brazilian-utils/commit/3f8c4be))
-* adjust docs typo ([89cf335](https://github.com/brazilian-utils/brazilian-utils/commit/89cf335))
-* adjust responsive docs ([bafcdc0](https://github.com/brazilian-utils/brazilian-utils/commit/bafcdc0))
-* export getCities ([0472144](https://github.com/brazilian-utils/brazilian-utils/commit/0472144))
-* update-cities script command ([bce5628](https://github.com/brazilian-utils/brazilian-utils/commit/bce5628))
-
-
-### Features
-
-* add utility getCities ([ebb949d](https://github.com/brazilian-utils/brazilian-utils/commit/ebb949d))
-* black lives matters ([cce58d8](https://github.com/brazilian-utils/brazilian-utils/commit/cce58d8))
-* change the way the cities are filtered. Add docs ([7f4ca6d](https://github.com/brazilian-utils/brazilian-utils/commit/7f4ca6d))
-
-
-# [1.0.0-rc.7](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.6...1.0.0-rc.7) (2020-05-05)
-
-
-### Features
-
-* **utilities:** create `getStates` method ([57e3174](https://github.com/brazilian-utils/brazilian-utils/commit/57e3174)), closes [#82](https://github.com/brazilian-utils/brazilian-utils/issues/82)
-
-
-
-
-# [1.0.0-rc.6](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.6...1.0.0-rc.7) (2020-04-29)
-
-
-### Features
-
-* **cpf, cnpj:** format accepts numbers, optional fillZeroes behavior ([5293721](https://github.com/brazilian-utils/brazilian-utils/commit/5293721))
-* **cpf, cnpj:** using an options object instead of a parameter ([db9ca46](https://github.com/brazilian-utils/brazilian-utils/commit/db9ca46))
-
-
-
-
-# [1.0.0-rc.5](https://github.com/brazilian-utils/brazilian-utils/compare/1.0.0-rc.6...1.0.0-rc.7) (2020-04-23)
-
-
-### Bug Fixes
-
-* **build:** update tsconfig rootDir for tsdx 0.13 ([17ea338](https://github.com/brazilian-utils/brazilian-utils/commit/17ea338))
-* **release-it:** update config filename ([afc46a3](https://github.com/brazilian-utils/brazilian-utils/commit/afc46a3))
-* **tooling:** remote git-add from lint-staged ([b000e8e](https://github.com/brazilian-utils/brazilian-utils/commit/b000e8e))
-* adjust circular dependency ([6f4f53b](https://github.com/brazilian-utils/brazilian-utils/commit/6f4f53b))
-* adjust pt-BR documentation ([bb79fe6](https://github.com/brazilian-utils/brazilian-utils/commit/bb79fe6))
-* function typo on usage section ([06ca0ca](https://github.com/brazilian-utils/brazilian-utils/commit/06ca0ca))
-* length typo ([711ba8a](https://github.com/brazilian-utils/brazilian-utils/commit/711ba8a))
-* remove unnecessary escape ([74c53ed](https://github.com/brazilian-utils/brazilian-utils/commit/74c53ed))
-* **jest:** update jest to fix security warning ([a3af687](https://github.com/brazilian-utils/brazilian-utils/commit/a3af687))
-
-
-### ci
-
-* 🎡 adjust travis config ([0ec107f](https://github.com/brazilian-utils/brazilian-utils/commit/0ec107f))
-* 🎡 rename travis file ([25da01e](https://github.com/brazilian-utils/brazilian-utils/commit/25da01e))
-
-
-### Features
-
-* add cep formatter ([d8b0deb](https://github.com/brazilian-utils/brazilian-utils/commit/d8b0deb))
-* inscricao-estadual validator ([c4cf9ae](https://github.com/brazilian-utils/brazilian-utils/commit/c4cf9ae))
-* **boleto:** add boleto formatter ([3cfd0b4](https://github.com/brazilian-utils/brazilian-utils/commit/3cfd0b4))
-* **CNPJ:** migrate CNPJ formatter ([f34317d](https://github.com/brazilian-utils/brazilian-utils/commit/f34317d))
-* **CPF:** migrate CPF formatter ([ef1ed2a](https://github.com/brazilian-utils/brazilian-utils/commit/ef1ed2a))
-* **CPF:** migrate CPF generation ([6463b40](https://github.com/brazilian-utils/brazilian-utils/commit/6463b40))
-* **CPF:** migrate isValidCPF ([620f798](https://github.com/brazilian-utils/brazilian-utils/commit/620f798))
-* **refactoring:** add TSDX and rewrite helpers ([ebb2d18](https://github.com/brazilian-utils/brazilian-utils/commit/ebb2d18))
-* CheckSum generator ([7dd6978](https://github.com/brazilian-utils/brazilian-utils/commit/7dd6978))
-* cpf generator, requested on [#4](https://github.com/brazilian-utils/brazilian-utils/issues/4) ([5ffc2a1](https://github.com/brazilian-utils/brazilian-utils/commit/5ffc2a1))
-
-
-### BREAKING CHANGES
-
-* n
-
-Closes: n
-* n
-
-Closes: n
diff --git a/README.md b/README.md
index 30b8ad952..76926ee33 100644
--- a/README.md
+++ b/README.md
@@ -7,10 +7,12 @@
[](https://github.com/brazilian-utils/javascript/actions/workflows/build.yml?query=branch%3Amain) [](https://codecov.io/gh/brazilian-utils/javascript?branch=main) [](https://snyk.io/test/github/brazilian-utils/javascript?targetFile=package.json) [](https://codeclimate.com/github/brazilian-utils/javascript/maintainability)
[](https://www.npmjs.com/package/@brazilian-utils/brazilian-utils) [](LICENSE)
+
+
**Table of Contents**
- [Getting Started](#getting-started)
@@ -52,13 +54,33 @@ or `