- Freeze all libWrapper classes after defining them.
- Remove use of '<' and '>' to avoid them being treated as HTML.
- Make error notifications permanent.
- Refactor source code directory structure.
- [BREAKING] Clean-up API parameter validation.
- The
module
andtarget
API parameter types are now validated, and these must be strings. - The
module
API parameter will now undergo more extensive validation - attempts to wrap using a different module name than the caller may fail. - Library now attempts to forbid wrapping libWrapper code and APIs.
- The
- Refactor error handling.
- All libWrapper errors now extend the
LibWrapperError
class. - [BREAKING] For consistency, the previous libWrapper exception classes have been renamed.
AlreadyOverriddenError
andInvalidWrapperChainError
have been renamed toLibWrapperAlreadyOverriddenError
andLibWrapperInvalidWrapperChainError
respectively.- To aid compatibility, these can still be found in
libWrapper.AlreadyOverriddenError
andlibWrapper.InvalidWrapperChainError
as before, in addition to their new names.
- Add option to visually notify non-GM players of issues, in addition to the GM.
- No longer notifies user if libWrapper exceptions are handled by a given module.
- All libWrapper errors now extend the
- Reintroduce changes from v1.1.3.0.
- Fix 'super' usage inside wrapped methods, which was causing multiple modules to malfunction when using libWrapper.
- Hotfix release. Reverts changes in 1.1.3.0, which broke some things.
- Fix instance/inherited wrapping when there are more than 2 layers, e.g. C inherits from B which inherits from A. Some corner cases were broken.
- Prevent wrapping of libWrapper internals
- Update shim. Now supports very basic inherited method wrapping using static dispatch.
- Fix parameters when instance-specific wrappers chain to class-specific wrappers.
- Notify of conflicts when a module wraps instances directly without using libWrapper, but the class has a libWrapper wrapper.
- Fix 'WRAPPER'-type wrappers that chain asynchronously. These will no longer be incorrectly unregistered for not chaining. (See issue #7)
- Fix wrappers being called twice when a module wraps an instance member without libWrapper, if libWrapper is used to wrap the class prototype. (See issue #7)
- Notify GM when potential issues/conflicts are detected. This can be disabled in the module settings menu.
- Removed option to disable runtime data collection used for the settings menu. After benchmarking, this being enabled does not seem to impact performance at all.
- Allow modules to chain wrappers asynchronously (issue #7).
- Implement support for multiple chaining. Now, modules can call the next wrapper in the chain more than once.
- Improved some exception messages to make it clearer which module/wrapper is responsible for them.
- Improved the README, to make more explicit some of the common pitfalls when using this library. Now explicitly mentions that 'OVERRIDE' wrappers have a different call signature, and that wrappers should not chain more than once.
- Explicitly announce compatibility with Foundry 0.7.9.
- No code changes.
- Explicitly announce compatibility with Foundry 0.7.8.
- No code changes (Note: from now on, versions with no code changes will not increment the "minor version", instead using a suffix).
- Explicitly announce compatibility with Foundry 0.7.7.
- No code changes.
- Explicitly announce compatibility with Foundry 0.7.5.
- Adds official support for instance-specific, as well as inherited-method wrapping. Note that these are not supported by the shim.
- Fixes silent failures and broken behaviour when attempting to override a method on a class which it inherited from a parent class.
- Fixes silent failures and broken behaviour when attempting to override a method on an object instance, rather than a class.
- Throw an explicit failure message when the shim fails to find the method to wrap.
- Fix 'this' parameter when using the shim and calling the original method without using 'call' or 'apply'.
- Update documentation to better explain the shim's limitations.
- Closes issue #2. Thanks to Nordii for the report.
- Fix shim when type='OVERRIDE' is used (issue #1). Thanks to itamarcu for the report.
- Fix libWrapper.versions property, which was not showing the correct libWrapper version information.
- Fix packaging mistake that would prevent the settings dialog from opening.
- Initial release.