- Updated dependencies
- Updated header year to 2023
- Project targets ES2022 to utilize the new decorator feature
- Updated decorator implementation to track the standard
- Converted project to utilize ESM
- Simplified eslint configuration
- Removed
@override
decorator in favor of nativeoverride
keyword and@override
JSDoc tag
- Updated README to use images instead of mermaid diagrams
- Updated dependencies
- Improved error messaging of MSG_INVALID_CONTEXT
- Grammar + spelling fix of
CHANGELOG.md
- Bugfix of generated type declaration (#238)
- Updated README to reflect current features (#239)
- Updated README to use mermaid diagram
- Updated debugger settings to leverage modern VSCode
- Fixed a subtle issue with subcontracting resolution (breaking change) (#236)
- Updated VSCode debug settings to support the modern IDE
- Updated npm dependencies
- Updated dependencies
- Refactored code to leverage new TypeScript features
- Fixed bug in README Stack example
- Updated README instructions on webpage installation
- Updated dependencies
- Updated headers for 2022
- Linting fixes
- Added better error messaging for
@override
issues
- Added
implies
function - Added
iff
function - Added topic tags to GitHub repo
- Updated
package.json
keywords
- Audit fix of dependencies
- Updated dependencies
- Upgraded implementation to TypeScript 4.4.4
- Audit fix of dependencies
- Updated dependencies
- Upgraded implementation to TypeScript 4.3.5
- Audit fix of dependencies
- Updated dependencies
- Added support for contracting an abstract class
- Fixed bug #210 for supporting subcontract private fields
- Added
within
feature for declaring timing requirements - Updated documentation
- Third party features are subject to a class's
invariant
when apply/call is used - A contracted feature can not be applied to objects of a different base class
- Subcontract
extends
are now enforced - Updated
retry
type declaration to support accessors.
- Features named with a symbol now support
@override
- Improved error messaging with
@override
when feature is missing - Fixed source code typos
- Fixed bug #202
- Additional usability fix for #197
- Updated README
- Fixed bug #197
- Updated license headers to reference Final Hill LLC
- BREAKING CHANGE: contracts now managed separate from the class
- Rewrote README to reflect the new architecture
- Updated dependencies
- Merged
jest.config.js
intopackage.json
- Updated linting rules
- Moved unit tests to separate folder
- Public property definitions are now illegal
- Fixed
package.json
debug command - Bugfix of invariant inheritance
- Updated README to include unpkg reference
- Enabled sourcemaps
npm audit fix
- Updated dependencies
- Linting fixes
- Updated contact info in README and
package.json
- BREAKING CHANGE: Decorators now accept arrow functions instead of traditional functions. The first parameter is
self
. - BREAKING CHANGE:
@ensures
now providesold
as a parameter to access instance property values before feature execution
- Fixed webpack configuration issue
- Fixed missing
PredicateType
issue - Reorganized README
- Added NPM badges to README
- Added
package.json
reference to GitHub issues - Added licensing info to README
- Removed extraneous build dependency
- Additional fixes for Release configuration
- Additional fixes for Release configuration
- Bugfixed Release Configuration
- Updated CI/CD configuration
- Migrated repository from Azure DevOps to GitHub
- Migrated Azure DevOps CI/CD workflows to GitHub actions
- Created CHANGELOG.md and removed related build script
- Replaced
#{YEAR}#
token with literal year. Removed related build script - Removed VSCode Azure DevOps suggested extensions
- Changed license to AGPL-3.0-only
- Updated repository URL to point to GitHub URL
- Changed library namespace:
@thenewobjective
→@final-hill
- Updated README Dependencies table
- Updated
@rescue
documentation - Replaced build versioning with explicit versioning
- Enabled
@rescue
inheritance - Created CONTRIBUTING.md
- If an exception is thrown in a class feature without a
@rescue
defined, then the exception is raised to its caller after the@invariant
is checked - If an error is thrown in
@demands
, the error is raised to the caller - If an error is raised in a
@ensures
then the associated@rescue
is executed - Updated README examples
- Updated implementation to consolidate error messages
- Switched from
tslint
toeslint
- Updated assertions to support assertion types from TypeScript 3.7
- Removed Babel dependency
- Refactoring improvements
- Private properties now work with contract inheritance
- Updated YAML scripts to reference new Azure vm image
- Refactored Unit Tests
- Refactored implementation to prefer
const
declarations - Refactored README examples
- Refactored
RescueType
to separate file - Refactored Rescue Decorator
@rescue
now preserves the invariant after execution- If a
@rescue
is executed and the retry argument is not called, then an error is thrown
- Automated creation of CHANGELOG.md
- Updated dependencies including TypeScript to 3.8.2
- Refactored codebase to utilize new TypeScript features
- Added Introduction to README
- Updated package keywords
@invariant
changed to accept functions directly instead of a record factory- Multiple
@invariant
declarations can be assigned to a class
- Renamed
@requires
to@demands
npm audit fix
- Multiple
@demands
can be assigned to a class feature - Implementation of
@ensures
decorator - Reorganized README
- Significant refactoring and efficiency improvements
@requires
can not be strengthened in a subtype
- Refactoring and efficiency improvements
@override
requires@invariant
declaration in class ancestry- Updated Jest configuration for reporting and VSCode debug support
- Cleanup of documentation
- Added
checkMode
support to@rescue
- Added Babel compilation
@requires
now works with inheritance
- Implementation of
@rescue
decorator - Renamed
debugMode
tocheckMode
- Refactoring and efficiency improvements
@requires
restricted to instance class features- Added linting rule to validate file license header
- Updated TypeScript to 3.7.2
@invariant
restricted to only one declaration per class@override
now supports accessors- Updated
package.json
metadata for discoverability - Added Further Reading section to README
@invariant
signature changed to accept a function that returns a record of assertions@override
restricted to instance class features@override
extended with additional checks to support Substitutability- Added linting checks to the project
@override
decorator implemented
- License changed to AGPL-1.0-only
- Table of Contents added to README
@invariant
supports no arguments
- Added assertion documentation to README
- Assertions support
debugMode
flag - Assertions return a boolean
- Assertions support throwing custom error types
- Added installation instructions to README
- Enabled project debugging
@invariant
can accept multiple assertions@invariant
supports message : assertion pairs- Ancestor
@invariant
enforced in subclasses - Subclasses support additional
@invariant
declarations - Added built-types to
tasks.json
- Refactoring and typing improvements
Updated package.json
namespace to @thenewobjective
prefix
- Initial implementation
- Initial Project Setup
- Initial Branch configuration
- Initial Release configuration
- Build tokenization
- Initial
@invariant
implementation - Initial Documentation