ianstormtaylor/superstruct (superstruct)
### [`v2.0.0`](https://togithub.com/ianstormtaylor/superstruct/blob/HEAD/Changelog.md#200---July-3-2024)
[Compare Source](https://togithub.com/ianstormtaylor/superstruct/compare/v1.0.4...v2.0.0)
Some changes in Superstruct v2.0 are *potentially* breaking if you were using the library in unusual and/or undocumented ways. Since it has been almost 2 years since the last significant release, we want to make sure that we don't ruin someone's day by surprising them with a fix that changes [buggy behavior they were relying on](https://xkcd.com/1172/). For this reason, some changes that would ordinarily be considered a fix are marked as breaking.
**:rocket: For the absolute majority of users, this should be a smooth upgrade that will not require any changes.**
##### Breaking
- Validation now correctly fails when arrays are passed to `object()`, `type()`, and `record()` structs.
- When coercing an `object()` (via `mask()`, `create()` or `validate()` with the `coerce: true` option), arrays will no longer be automatically converted to objects with indexes as keys. [See this PR comment](https://togithub.com/ianstormtaylor/superstruct/pull/1196#issuecomment-1858924264).
##### New
- The library and its TypeScript typings are now compatible with NodeNext/Node16 module resolution. This means that if you are using the library with TypeScript and ECMAScript modules at the same time, you should no longer run into issues!
##### Fixed
- Using `mask()` with `union()` now correctly masks union members instead of incorrectly failing validation.
##### Deprecations
- Use with Node.js v14 is now deprecated. Due to incompatible tooling, we are no longer able to test Superstruct on this version of Node.js. Use at your own risk.
##### New Maintainers & Next Steps
Project maintenance has moved to a new volunteer team: [@arturmuller](https://togithub.com/arturmuller) and [@yeoffrey](https://togithub.com/yeoffrey). Hello there! :wave: We are currently going through the existing issues and PRs, trying to resolve or close the backlog. This might take a little while so please bear with us.
If you are interested in **contributing** β or helping us process the backlog β we would love your help. Don't hesitate to help us triage, open an issue, or submit a PR. You can also join our Superstruct maintainers Discord: https://discord.gg/pdHrQBjQ96.
If you have **questions, suggestions, or are just not sure about something** related to Superstruct, head over to GitHub Discussions! We have recently enabled this feature to help us differentiate between actual issues/bugs and everything else. We hope this will be a great new place where Superstruct users can get quick help from us β the maintainers β but also from the community as a whole.
See you at the next release! :v:
### [`v1.0.4`](https://togithub.com/ianstormtaylor/superstruct/releases/tag/v1.0.4)
[Compare Source](https://togithub.com/ianstormtaylor/superstruct/compare/v1.0.3...v1.0.4)
##### Fixes
- Retain struct's type in partial and pick helpers ([#1149](https://togithub.com/ianstormtaylor/superstruct/issues/1149)) [`4511928`](https://togithub.com/ianstormtaylor/superstruct/commit/4511928)
##### Documentation
- make more of the examples runnable ([#1165](https://togithub.com/ianstormtaylor/superstruct/issues/1165)) [`c88b111`](https://togithub.com/ianstormtaylor/superstruct/commit/c88b111)
- Document the usage of the type struct in the omit utility ([#1150](https://togithub.com/ianstormtaylor/superstruct/issues/1150)) [`a4c2ebd`](https://togithub.com/ianstormtaylor/superstruct/commit/a4c2ebd)
- Fix documentation error ([#1197](https://togithub.com/ianstormtaylor/superstruct/issues/1197)) [`772cc7f`](https://togithub.com/ianstormtaylor/superstruct/commit/772cc7f)
- update demo link and screenshot [`03d65bd`](https://togithub.com/ianstormtaylor/superstruct/commit/03d65bd)
Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
[ ] If you want to rebase/retry this PR, check this box
This PR has been generated by Mend Renovate. View repository job log here.
This PR contains the following updates:
^1.0.3
->^2.0.0
Release Notes
ianstormtaylor/superstruct (superstruct)
### [`v2.0.0`](https://togithub.com/ianstormtaylor/superstruct/blob/HEAD/Changelog.md#200---July-3-2024) [Compare Source](https://togithub.com/ianstormtaylor/superstruct/compare/v1.0.4...v2.0.0) Some changes in Superstruct v2.0 are *potentially* breaking if you were using the library in unusual and/or undocumented ways. Since it has been almost 2 years since the last significant release, we want to make sure that we don't ruin someone's day by surprising them with a fix that changes [buggy behavior they were relying on](https://xkcd.com/1172/). For this reason, some changes that would ordinarily be considered a fix are marked as breaking. **:rocket: For the absolute majority of users, this should be a smooth upgrade that will not require any changes.** ##### Breaking - Validation now correctly fails when arrays are passed to `object()`, `type()`, and `record()` structs. - When coercing an `object()` (via `mask()`, `create()` or `validate()` with the `coerce: true` option), arrays will no longer be automatically converted to objects with indexes as keys. [See this PR comment](https://togithub.com/ianstormtaylor/superstruct/pull/1196#issuecomment-1858924264). ##### New - The library and its TypeScript typings are now compatible with NodeNext/Node16 module resolution. This means that if you are using the library with TypeScript and ECMAScript modules at the same time, you should no longer run into issues! ##### Fixed - Using `mask()` with `union()` now correctly masks union members instead of incorrectly failing validation. ##### Deprecations - Use with Node.js v14 is now deprecated. Due to incompatible tooling, we are no longer able to test Superstruct on this version of Node.js. Use at your own risk. ##### New Maintainers & Next Steps Project maintenance has moved to a new volunteer team: [@arturmuller](https://togithub.com/arturmuller) and [@yeoffrey](https://togithub.com/yeoffrey). Hello there! :wave: We are currently going through the existing issues and PRs, trying to resolve or close the backlog. This might take a little while so please bear with us. If you are interested in **contributing** β or helping us process the backlog β we would love your help. Don't hesitate to help us triage, open an issue, or submit a PR. You can also join our Superstruct maintainers Discord: https://discord.gg/pdHrQBjQ96. If you have **questions, suggestions, or are just not sure about something** related to Superstruct, head over to GitHub Discussions! We have recently enabled this feature to help us differentiate between actual issues/bugs and everything else. We hope this will be a great new place where Superstruct users can get quick help from us β the maintainers β but also from the community as a whole. See you at the next release! :v: ### [`v1.0.4`](https://togithub.com/ianstormtaylor/superstruct/releases/tag/v1.0.4) [Compare Source](https://togithub.com/ianstormtaylor/superstruct/compare/v1.0.3...v1.0.4) ##### Fixes - Retain struct's type in partial and pick helpers ([#1149](https://togithub.com/ianstormtaylor/superstruct/issues/1149)) [`4511928`](https://togithub.com/ianstormtaylor/superstruct/commit/4511928) ##### Documentation - make more of the examples runnable ([#1165](https://togithub.com/ianstormtaylor/superstruct/issues/1165)) [`c88b111`](https://togithub.com/ianstormtaylor/superstruct/commit/c88b111) - Document the usage of the type struct in the omit utility ([#1150](https://togithub.com/ianstormtaylor/superstruct/issues/1150)) [`a4c2ebd`](https://togithub.com/ianstormtaylor/superstruct/commit/a4c2ebd) - Fix documentation error ([#1197](https://togithub.com/ianstormtaylor/superstruct/issues/1197)) [`772cc7f`](https://togithub.com/ianstormtaylor/superstruct/commit/772cc7f) - update demo link and screenshot [`03d65bd`](https://togithub.com/ianstormtaylor/superstruct/commit/03d65bd)Configuration
π Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
π¦ Automerge: Disabled by config. Please merge this manually once you are satisfied.
β» Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
π Ignore: Close this PR and you won't be reminded about this update again.
This PR has been generated by Mend Renovate. View repository job log here.