All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.
- Remove skhema as dependency [Felipe Lalanne]
- Switch to promised-handlebars to fix dependencies [Felipe Lalanne]
- Update Node support to v20 and above [Felipe Lalanne]
- Update typescript to v5 and fix build errors [Felipe Lalanne]
- Fix test command to search all spec files [Felipe Lalanne]
- NPM: Use legacy peer dependencies [Christina Ying Wang]
- Update @types/node to 20 [Christina Ying Wang]
- Up/downgrade handlebars and handlebars-async-helpers [Christina Ying Wang]
- Update mocha to v10 [Christina Ying Wang]
- Update @balena/lint to v8 [Christina Ying Wang]
- Move @types to devDependencies [Christina Ying Wang]
- Bump NPM to ^10 [Christina Ying Wang]
- Update Node.js to v20 [Self-hosted Renovate Bot]
- Various optimizations [Pagan Gazzard]
- Improve typing of
query
function [Pagan Gazzard]
- Switch to an async
buildTemplate
to avoid blocking fs operations [Pagan Gazzard]
- Remove non iterable cartesian product calculation [Felipe Lalanne]
- Add option to query to return results as iterable [Felipe Lalanne]
- Add option to return iterable to Blueprint.reproduce [Felipe Lalanne]
- Add iteration versions of flatten and filter [Felipe Lalanne]
- Use depth first search to calculate cartesian product [Felipe Lalanne]
- Update typescript and ES target to use latest API [Felipe Lalanne]
- Remove console.log commited by mistake [Felipe Lalanne]
- Fix linting [Felipe Lalanne]
- Allow additional properties for type generation [Felipe Lalanne]
- Remove unused memfs dependency [Felipe Lalanne]
- Do not use package-lock [Felipe Lalanne]
- Read partials from filesystem instead of memfs [Felipe Lalanne]
- Use flowzone docs instead of custom action [Felipe Lalanne]
- Setup flowzone [Felipe Lalanne]
- Removed unnecessary ci files [Micah Halter]
- Added more strict types to cue definitions [Micah Halter]
- add circleCI tests [Micah Halter]
- Updated to new product-os repo location [Micah Halter]
- Add linting of the scripts folder [Micah Halter]
- align repo with official Balena typescript skeleton [Micah Halter]
- finished migration to Typescript and added cue type generation [Micah Halter]
- patch: use ts-migrate to convert to TypeScript [Thomas Manning]
- patch: Update ava from 0.22.0 to 3.15.0 [Thomas Manning]
- Add support for a "not" operator in "requires" [Juan Cruz Viotti]
- Remove handlebars-helpers to shrink bundle size [Pagan Gazzard]
Update skhema to 5.x [Pagan Gazzard]
- Switch to typed-error [Pagan Gazzard]
- Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]
- filter: Throw a custom error if the schema is invalid [Juan Cruz Viotti]
- Add test to show .filter() not working correctly [StefKors]
- When combining with baseSchema merge enum with AND operator [StefKors]
- Ensure values in "enum" are unique [Juan Cruz Viotti]
- filter: Correctly handle "enum" inside "anyOf" [Juan Cruz Viotti]
- merge: Be explicit about additionalProperties [Juan Cruz Viotti]
- Add a resolver for the const keyword [Lucian]
- Configure AJV instances with an LRU cache [Juan Cruz Viotti]
- Set addUsedSchema to false in all AJV instances [Juan Cruz Viotti]
- Fix bug in scoreMatch when handling arrays [Lucian]
- Fix bad require name and .only in tests [Lucian]
- .filter(): Only match if the base schema matches [Lucian Buzzo]
- Add ability to provide custom resolvers to merge() [Lucian]
- Split up and optimize lodash dependencies [Lucian]
- feature: Implement method for restricting a schema by another schema [Lucian Buzzo]
- Remove ability to add custom keywords or formats [Lucian]
- Improve performance of clone operations [Lucian]
- Don't bust AJV cache [Lucian]
- Add benchmark tests [Giovanni Garufi]
- Recurse through nested
anyOf
statements when filtering [Lucian]
- Treat undefined additionalProperties as true instead of false [Lucian]
- stryker: Increase test timeout [Juan Cruz Viotti]
- test: Configure Stryker for mutative testing [Juan Cruz Viotti]
- Define additionalProperty inheritance in anyOf [Giovanni Garufi]
- Formalising filtering logic [Lucian]
- Added failing test case with mutation [Lucian]
- hotfix: Make sure things that should be filtered are filtered [Juan Cruz Viotti]
- filter: Force additionalProperties: true on match schemas [Juan Cruz Viotti]
- Validate against just the schema if
options.schemaOnly
is true [Lucian Buzzo]
- merge: When merging an empty array, return a wildcard schema [Lucian Buzzo]
- validate: Make object optional [Lucian Buzzo]
- Add .versionbot/CHANGELOG.yml for nested changelogs [Pagan Gazzard]
- Add logical operator support in templates [Stevche Radevski]
- Fix typings module name and optional params [Cameron Diver]
- Add typescript types to project [Cameron Diver]
- Add circleci configuration file [Cameron Diver]
- Only perform a version check if child version is valid [Cameron Diver]
- Feature: Add support for 'latest' in selectors [Andreas Fitzek]
- Feature: Add sequence generation for Blueprints [Andreas Fitzek]
- Feature: Add support for skhema filters in blueprint selectors [Andreas Fitzek]
- Partials: Return correct path combinations given 3 versioned contracts [Juan Cruz Viotti]
- Test: Add missing test case for find partial [Trong Nghia Nguyen]
- Add aliases support
- Add a collection of Handlebars templates to the partial system
- Support generating combinations of more than 31 contracts
- Add versioned contract fallback paths when finding partials
- Fix package.json entry point