Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
100 changes: 45 additions & 55 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,74 +1,64 @@
# Changelog

All notable changes to this project will be
documented in this file.
All notable changes to this project will be documented in this file.

The format is based on
[Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to
[Semantic Versioning](https://semver.org/spec/v2.0.0.html).
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [2.0.0] - 2026-06-03
## [2.0.1] - 2026-06-05

### Changed

- `Validator` now carries a `scope` discriminator:
`{ scope: "country"; country: CountryCode }` or
`{ scope: "global" }`. The optional `country?` field
is removed in favor of this discriminated union.
Consumers that read `validator.country` must first
narrow on `validator.scope === "country"`.
`ValidatorScope` is exported from the package root.
- Pin release workflow to npm visibility retry (#113)
- Bump stdnum to 2.0.1

## [1.0.0] - 2026-05-17
## [2.0.0] - 2026-06-04

### Added

- Add brazilian-utils, rut.js, and django-localflavor comparators (#109)
- Add scope discriminator to Validator (#108)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P2 Badge Restore the breaking Validator migration note

For the 2.0.0 release, the scope discriminator was not just an added field: the release replaced the old optional validator.country shape with the CountryValidator/GlobalValidator split and bumped the package to a major version. This regenerated entry now describes it only as an addition, so consumers reading the changelog for the 1.x to 2.x upgrade no longer get the warning that direct validator.country access must be narrowed or migrated.

Useful? React with 👍 / 👎.


### Changed

- Bumped to 1.0.0 to opt out of the npm pinning quirk
where `^0.0.1` resolves only to `0.0.1`. The public
surface and feature set are unchanged from the
pre-1.0 line.
- `Validator<T>` now exposes `parse?` on the base type
with a widened `ParsedIdentifier | null` return.
Producers that type as `Validator<ParsedPersonId>` or
`Validator<ParsedBirthDate>` still narrow the return
type as before.
- Auto-refresh CHANGELOG.md on release (#100)
- Sync ai prompts and oxlint config (#101)
- Update dependencies
- Bump oxfmt
- Bump actions/setup-node
- Update stdnum test dependencies
- Use shared typescript config (#105)
- Refresh shared tooling and AI setup (#106)
- Standardize npm release workflow
- Pin release workflow to app-token finalizer (#112)

### Fixed

- Treat `oxlint` as a real CI gate: the
`no-non-null-assertion` rule was silently disabled in
the lint config. It is now enforced; existing
violations were resolved with structural narrowing
(most weighted-sum loops now use array iterators) or
documented `// SAFETY:` comments where the existence
is genuinely guaranteed.
- `format:check` is now wired into CI so formatter
drift cannot land unnoticed.
- Probe validators with their real lengths (#107)
- Align with primary sources from official documentation (#110)

### Removed
## [1.0.0] - 2026-05-20

- Dead `imports` map (`#checksums/*`, `#util/*`) from
`package.json`. Consumers never hit it: built output
uses relative imports and dev/test resolution goes
through `tsconfig.json` `paths`.
### Changed

## [0.1.0] - 2026-03-18
- Simplify MIT copyright notice
- Correct license holder casing (#88)
- Align Dependabot cooldown to 5 days (#93)
- Migrate publish step to npm-publish-hardened (#95)
- Bump npm-publish-hardened to 86392949 — placeholder NODE_AUTH_TOKEN fix (#96)
- Bump npm-publish-hardened to 9845e4f5 — explicit bash invoke (#97)
- Bump npm-publish-hardened to 96b8912e — node-stdout newline fix (#98)
- Enforce lint, cleanup, cut v1.0.0 (#99)

### Added
## [0.0.1] - 2026-04-17

### Changed

- Init

[2.0.1]: https://github.com/stella/stdnum/compare/v2.0.0..v2.0.1
[2.0.0]: https://github.com/stella/stdnum/compare/v1.0.0..v2.0.0
[1.0.0]: https://github.com/stella/stdnum/compare/v0.0.1..v1.0.0
[0.0.1]: https://github.com/stella/stdnum/tree/v0.0.1

- Initial release.
- Czech identifiers: IČO, DIČ, RČ (birth number).
- Slovak identifiers: RČ, IČ DPH (VAT).
- German identifiers: USt-IdNr. (VAT), IdNr
(personal tax ID).
- International: IBAN, credit card (Luhn), LEI.
- Shared checksum algorithms: Luhn, mod-97,
weighted sum, ISO 7064 Mod 11,10.
- Unicode normalization utility for OCR/PDF
artifacts.
- Per-identifier entry points for tree-shaking.

[2.0.0]: https://github.com/stella/stdnum/releases/tag/v2.0.0
[1.0.0]: https://github.com/stella/stdnum/releases/tag/v1.0.0
[0.1.0]: https://github.com/stella/stdnum/releases/tag/v0.1.0
<!-- generated by git-cliff -->
Loading