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 @@ [![Build Status](https://github.com/brazilian-utils/javascript/actions/workflows/build.yml/badge.svg?branch=main)](https://github.com/brazilian-utils/javascript/actions/workflows/build.yml?query=branch%3Amain) [![Coverage Status](https://codecov.io/gh/brazilian-utils/javascript/graph/badge.svg?branch=main)](https://codecov.io/gh/brazilian-utils/javascript?branch=main) [![Known Vulnerabilities](https://snyk.io/test/github/brazilian-utils/javascript/badge.svg?targetFile=package.json)](https://snyk.io/test/github/brazilian-utils/javascript?targetFile=package.json) [![Maintainability](https://api.codeclimate.com/v1/badges/05d3cd8492ed438bf51d/maintainability)](https://codeclimate.com/github/brazilian-utils/javascript/maintainability) [![Downloads per month](https://img.shields.io/npm/dm/@brazilian-utils/brazilian-utils.svg)](https://www.npmjs.com/package/@brazilian-utils/brazilian-utils) [![License: MIT](https://img.shields.io/github/license/brazilian-utils/javascript.svg)](LICENSE) + + **Table of Contents** - [Getting Started](#getting-started) @@ -52,13 +54,33 @@ or `