All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
v0.13.0 - 2025-02-19
- Added a
Declaration<T>type that can be used to explicitly type declarations.
- Enumeration declarations can now infer the value type when the
membersargument is passed as an object without needing to useas const.
v0.12.0 - 2024-11-08
- [BREAKING] In order to trigger Markdown usage generation, you must now
use
AUSTENITE_MODE=usage/markdowninstead ofAUSTENITE_SPEC=true. This allows for new modes to be added in the future without breaking existing behavior, and more closely matches the behavior of Ferrite.
v0.11.1 - 2024-11-06
- Markdown spec generation code is now imported conditionally, so that build tools can potentially exclude spec generation support from the final bundle when it's not needed.
v0.11.0 - 2024-11-05
- [BREAKING] The
initialize()function has moved to theaustenite/nodesub-path export. You can now import it fromaustenite/nodeinstead ofaustenite.
- This library now works better with Next.js. Previously Next.js would complain
about various imports that were incompatible with the Edge Runtime. This has
been improved in two ways:
- The
initialize()function, which uses some Node.js APIs, has been moved to theaustenite/nodesub-path export. Importing declaration functions from the mainaustenitemodule will no longer cause these Node.js APIs to be included in the Next.js server bundle. - Any remaining Node.js API imports have been updated to use the
node:protocol, which allows Next.js to provide Edge Runtime polyfills. An example of this is the use of thebuffermodule, which is essential forbinary()declarations, and can only be polyfilled by Next.js when imported asnode:buffer.
- The
- Fixed incorrect CommonJS type definitions.
v0.10.1 - 2024-03-30
- Removed unused
mdastdependency.
v0.10.0 - 2024-03-30
- Custom constraints can now be defined for all declarations.
- [BREAKING] The
initialize()function is nowasync. - If you have Prettier installed in your project, Austenite will now use it to format generated Markdown specification output.
- The generated specification output has been improved.
- Markdown phrasing content is now supported in variable and constraint descriptions.
v0.9.1 - 2024-03-25
- Replaced usage of
node:imports to avoid issues when Austenite is included in a Webpack server bundle.
v0.9.0 - 2024-03-24
- Example values can now be overridden in any declaration.
- [BREAKING] Explicit examples must be provided in a declaration if the declaration uses constraints that would make the auto-generated examples invalid.
v0.8.0 - 2024-03-23
- Declarations can now be marked as sensitive, which will cause their default values and actual values to be redacted in validation summaries, generated specifications, and exception messages.
- Length constraints can now be set on
binaryandstringvariable declarations. - Range constraints can now be set on
number,integer,bigInteger,networkPortNumber, anddurationvariable declarations.
- The generated specification output has been improved to be easier to read.
- The validation summary output uses "not set" instead of "undefined" to describe values that are not set, or are set to empty values.
v0.7.0 - 2024-03-15
- Added
binaryvariable declarations.
v0.6.2 - 2023-10-15
- Fixed badge images and links in the README.
v0.6.1 - 2023-10-15
- Fixed CJS TypeScript build.
v0.6.0 - 2023-10-15
- Renamed the NPM package from
@eloquent/austenitetoaustenite.
v0.5.0 - 2022-12-30
- Added
networkPortNumberdeclarations.
v0.4.0 - 2022-10-29
- Declarations made after
initalize()is called will no longer cause an exception to be thrown. It is up to the end user to ensure all declarations are made beforeinitalize()is called. - Declaration values can now be accessed before
initialize()is called without an exception being thrown.
These changes are designed to facilitate cases where declarations are made multiple times in different execution contexts (e.g. both outside and inside "bundled" code).
v0.3.0 - 2022-10-26
- The app name can now be set explicitly with the
AUSTENITE_APPenvironment variable.
v0.2.5 - 2022-10-26
- Fixed pre-publish
package.jsonscript.
v0.2.4 - 2022-10-26
- The package should now actually support CommonJS.
- Removed dependency on all
mdastpackages. - Removed dependency on
ip-regexpackage, as it is ESM-only. - Added dependency on
ipaddr.jspackage, as it supports CJS.
v0.2.3 - 2022-10-25
- Removed dependency on renamed
mdastpackage.
v0.2.2 - 2022-10-25
- Made CommonJS module actually load as CommonJS. It's unlikely to help, because some dependencies are ESM-only.
v0.2.1 - 2022-10-24
- Fixed pre-publish
package.jsonscript.
v0.2.0 - 2022-10-24
- Added CommonJS compatibility.
v0.1.0 - 2022-10-24
- This is the first release.