# 1.12.11.0 (2022-11-15)

- Fix incorrect formatting of error messages when modules have both an 'info' and 'bugs' URL in their package manifest. ([Issue #73](https://github.com/ruipin/fvtt-lib-wrapper/issues/73))

# 1.12.10.0 (2022-09-19)

- Code refactoring/clean-up (no user-facing changes)
- Get rid of another FVTT v10 deprecation warning that occurred only when running the development version of the module.

# 1.12.9.0 (2022-09-11)

- Fix incorrect error messages when calling the libWrapper API before the `libWrapper.Ready` hook. ([Issue  #72](https://github.com/ruipin/fvtt-lib-wrapper/issues/72))
  - Add unit test to catch this issue in the future.
- Fix accidental 3 consecutive blank lines in error messages when a module has neither an `url` nor a `bugs` entry in its manifest.
- Update NPM dependencies to latest version.

# 1.12.8.0 (2022-09-04)

- Get rid of FVTT v10 deprecation warnings caused by legacy style package 'data' accesses.
  - Shim updated to v1.12.2 to also get rid of these warnings when libWrapper is not installed.
  - Closes [Issue #71](https://github.com/ruipin/fvtt-lib-wrapper/issues/71). Thanks to wickermoon for the issue report and fix proposal!

# 1.12.7.2 (2022-09-02)

- Add `authors` key to the module manifest to avoid compatibility warnings in FVTT v10.

# 1.12.7.1 (2022-08-08)

- Add `compatibility` and `id` keys to the module manifest to avoid compatibility warnings in FVTT v10.

# 1.12.7.0 (2022-06-21)

- Enforce `options.chain == true` when registering non-OVERRIDE wrappers.

# 1.12.6.0 (2022-06-15)

- Add support for reading core compatibility versions for packages using the new Foundry VTT v10 manifest format.
- Update README with information about the new Foundry VTT v10 manifest format.

# 1.12.5.0 (2022-05-31)

- Fix `options.bind` parameter to `libWrapper.register` for `OVERRIDE` wrappers.
- Declare compatibility with Foundry v10. It is unlikely a future v10 update will break compatibility.

# 1.12.4.0 (2022-02-14)

- Improve package detection. Will no longer fail if an error's stack trace is empty, which could happen sometimes when browser native code causes a JS exception.
- Improve error package info injection to be less noisy when it fails.
- Tweak rollup configuration so that relative sourcemap file paths are now correct.

# 1.12.3.0 (2022-02-01)

- All API functions now accept disambiguation prefixes as part of their `package_id` parameter, i.e. `module:foobar`, `system:foobar`, or `world:foobar`.

# 1.12.2.0 (2022-01-30)

- Allow integer enum values to be passed to `get` as a string, so that the caller does not need to cast explicitly.
  - No known issues were caused by this, and this code isn't exposed in the libWrapper API, but the previous behaviour was unintended.

# 1.12.1.0 (2022-01-30)

- Hotfix: Correctly handle malformed log verbosity setting.
- Disable minification of class names, for more readable error messages.

# 1.12.0.0 (2022-01-29)

- Fix `libWrapper.AlreadyOverriddenError` usage.
  - Override conflicts were accidentally throwing `libWrapper.PackageError` exceptions instead, which breaks the API.
- Fix module updated check when `compatibleCoreVersion` contains only the compatible FVTT major version.
- Allow arguments to be bound when calling `libWrapper.register` ([Issue #58](https://github.com/ruipin/fvtt-lib-wrapper/issues/58))
  - This allows avoiding an extra function call, for example
    `libWrapper.register(PACKAGE_ID, "foo", function(wrapped, ...args) { return someFunction.call(this, wrapped, "foo", "bar", ...args) });`
    becomes
    `libWrapper.register(PACKAGE_ID, "foo", someFunction, "WRAPPER", {bind: ["foo", "bar"]});`.
- Implement a logging verbosity setting ([Issue #62](https://github.com/ruipin/fvtt-lib-wrapper/issues/62))
  - By default, libWrapper will only show warnings or errors in the console.


# 1.11.4.0 (2022-01-14)

- Hotfix: Previous update caused significant breakage due to an uninitialised variable not caught by unit tests. Sorry for the inconvenience!

# 1.11.3.0 (2022-01-14)

- Allow JavaScript engine to garbage collect objects that have been wrapped by libWrapper.

# 1.11.2.0 (2022-01-05)

- Improve static dispatch chain caching, speeding up wrappers when calling them on different objects with "High Performance Mode" enabled.

# 1.11.1.0 (2022-01-04)

- Add Japanese localisation, contributed by BrotherSharper. Thank you!

# 1.11.0.1 (2021-12-13)

- Declare compatibility with all Foundry v9 versions, instead of individual ones. It is unlikely a future update will break compatibility.

# 1.11.0.0 (2021-11-25)

- API Improvements to `libWrapper.register` and `libWrapper.unregister` (non-breaking):
  - `libWrapper.register` now returns a unique numeric target identifier.
  - This unique identifier can be used in further calls to `libWrapper.register` and `libWrapper.unregister`, rather than specifying the target path again.
    As a result, even if the object is no longer reachable from global scope or has otherwise been replaced by another module, it is still possible to register/unregister wrappers to it.
  - The `libWrapper.Register` and `libWrapper.Unregister` hooks have been updated, and now also supply the unique target identifier as an extra parameter.
  - Note: The Shim does not support nor provide these unique identifiers.
- Improvements to 'Active Wrappers' pane in the settings window:
  - Add the target identifier to the displayed information.
  - Do not merge wrappers with the same path but with different target objects (i.e. different target IDs).
  - When a target is known by multiple names, display the additional names when expanded.
- Fixed a few cases where having multiple wrappers sharing the same target path but with different target objects (i.e. different target IDs) could cause issues.
- Fix setter inheritance chain handling for properties when there are no setter-specific wrappers.
- Update test cases to exercise the new target identifier code paths properly.
- Miscellaneous cleanup/refactoring and optimisations.
- Update `compatibleCoreVersion`, now set to v9d2 (`9.231`). Note: This was previously set to a non-existent version (`9.244`) by accident.

# 1.10.8.0 (2021-10-10)

- Fix [Issue #56](https://github.com/ruipin/fvtt-lib-wrapper/issues/56).
  - Fix handling of unknown packages.
  - Correctly use package ID passed to `libWrapper.register` in specific error messages, when auto-detection does not succeed.
  - Ensure all exceptions thrown are an object, in order to fix compatibility issue with Foundry 0.8.x when thrown inside `Application._render`.
- Code cleanup: Refactor error classes usage to avoid a cyclic dependency.

# 1.10.7.0 (2021-10-07)

- Fix incorrect error message when a package that conflicts does not correctly define a `minimumCoreVersion` or `compatibleCoreVersion`.
- Optimise the indexing regex, to remove potential exponential backtracking.
- Tweak README to make it clearer that `libWrapper.Ready` is not implemented by the compatibility shim.

# 1.10.6.0 (2021-09-18)

- Add official support for v9p2 (9.244). Previous versions are still supported.

# 1.10.5.0 (2021-09-06)

- Relax `Hooks._call` patch regex to work even when `foundry.js` has been modified.

# 1.10.4.0 (2021-09-05)

- Fix issue where sometimes the relative file paths to a localisation JSON file would be incorrect.
- Use JSCC pre-processor to improve initialisation
  - Strip all unnecessary unit-test code from artifact.
  - Bundle version information into artifact, to avoid having to look at the module.json during runtime
  - Bundle list of available translations into artifact, to skip requesting a localisation JSON file if it does not exist.

# 1.10.3.0 (2021-09-02)

- Add Spanish localisation, contributed by GoR (GoR#9388). Thank you!
- Tweak how support channels are specified in the localisation JSON files, to avoid having to specify them twice.

# 1.10.2.0 (2021-08-27)

- Tweak localisation polyfill. Messages should now be localised correctly before `game.i18n` initialises.
- Fix Settings UI: `Show ignored conflicts` checkbox clicks sometimes would not register.
- Add pt-BR localisation, contributed by Matheus Clemente (mclemente#5524). Thank you!
- Add pt-PT localisation.

# 1.10.1.1 (2021-08-27)

- Fix build workflow to properly include translation JSON files in the artifact.
- No code changes.

# 1.10.1.0 (2021-08-27)

- Hotfix: Foundry did not load with libWrapper enabled if set to a language for which no libWrapper translation was available.

# 1.10.0.0 (2021-08-26)

- **[BREAKING]** Remove LibWrapperError methods deprecated since v1.6.0.0:
  - `LibWrapperInternalError.module`, replaced by `LibWrapperInternalError.package_id`
  - `LibWrapperPackageError.module`, replaced by `LibWrapperPackageError.package_id`
- Improve error messages (Implements [#42](https://github.com/ruipin/fvtt-lib-wrapper/issues/42))
- Add support for localization (Implements [#44](https://github.com/ruipin/fvtt-lib-wrapper/issues/44))
  - As of now, only includes the english language, but community contributions are welcome.

# 1.9.2.0 (2021-08-25)

- Resolve `ignore_conflicts` API not ignoring all types of conflicts. (Fixes [Issue #49](https://github.com/ruipin/fvtt-lib-wrapper/issues/49))

# 1.9.1.0 (2021-08-25)

- When an unhandled exception is seen by libWrapper, it will detect involved packages (if any) and append this list to the exception message.

# 1.9.0.0 (2021-08-23)

- Support wrapping global methods when they are available in `globalThis` and the associated descriptor has `configurable: true`.
- Include shared library [fvtt-shared-library](https://github.com/ruipin/fvtt-shared-library) statically for `PackageInfo`, polyfills, and Enums.
  - Now correctly able to detect package IDs (e.g. in case of compatibility issues) before the `init` hook.
  - Can now use enum objects for the `type` and `options.perf_mode` parameters to `libWrapper.register`, e.g. `libWrapper.WRAPPER` or `libWrapper.PERF_FAST`.
- Fix `libWrapper.register` API: The value `NORMAL` for `options.perf_mode` was incorrectly not permitted.
- Miscellaneous code cleanup.

# 1.8.1.0 (2021-08-22)

- Attempt to prevent other modules from breaking the libWrapper initialisation process.
  - **[BREAKING]** Prevent use of `Game.toString()` before libWrapper initialises.
  - Detect when the libWrapper initialisation process did not run because of another module.
- Prepend `/* WARNING: libWrapper wrappers present! */` to `toString()` calls on methods wrapped by libWrapper.
- Explicitly announce compatibility with Foundry 0.8.9.

# 1.8.0.0 (2021-07-29)

- Allow `libWrapper.register` targets to contain string Array indexes. (Fixes [Issue #46](https://github.com/ruipin/fvtt-lib-wrapper/issues/46))
  For example, `CONFIG.Actor.sheetClasses.character["dnd5e.ActorSheet5eCharacter"].cls.prototype._onLongRest` is now a valid wrapper target.

# 1.7.5.0 (2021-07-05)

- Don't fail registering wrappers if `game` is malformed.

# 1.7.4.0 (2021-07-05)

- Handle malformed `game.modules` gracefully. This can happen when Foundry does not initialise properly which by itself can cause issues, but libWrapper was making the situation even worse by aborting the initialisation process.
- Explicitly announce compatibility with Foundry 0.8.8.

# 1.7.3.0 (2021-06-22)

- Update 'About' pane in the settings with more information about reporting issues.
- Update documentation
  - Explain differences between the full library and the shim.
  - Add information about how to obtain support.

# 1.7.2.0 (2021-06-19)

- Rename `error-listeners.js` to `listeners.js` (see [Issue #42](https://github.com/ruipin/fvtt-lib-wrapper/issues/42)).
- Do not prefix `libWrapper-` to `listeners.js` file in the sourcemap.
- Explicitly announce compatibility with Foundry 0.8.7.
- Add `bugs` attribute to manifest, and enable [Bug Reporter](https://github.com/League-of-Foundry-Developers/bug-reporter) support.
- Miscellaneous code cleanup.
- Update documentation:
  - Add section about Systems.
  - Add section about Mixins.
  - Add section about `super`.
- Update release script to properly handle commas in the manifest file, as well as be easier to maintain.

# 1.7.1.0 (2021-06-14)

- Include Git commit hash in manifest.
  - Update release scripts.
  - Update version parsing code.

# 1.7.0.0 (2021-06-09)

- **[BREAKING]** Removed `libWrapper.clear_modules` API, `libWrapper.ClearModule` hook, and `LibWrapperModuleError` exception class (all deprecated since v1.6.0.0).
- Implement backend system for ignoring known potential conflicts (part of [Issue #33](https://github.com/ruipin/fvtt-lib-wrapper/issues/33))
  - Added `libWrapper.ignore_conflicts` API method to allow package developers to have libWrapper not warn the user about certain conflicts.
  - Add a toggle to the 'Conflicts' tab in the settings dialog to display detected conflicts that were ignored. These are hidden by default.
  - Hooks `libWrapper.ConflictDetected` and `libWrapper.OverrideLost` now also get passed a list of all unique `target` parameters that have been used to register wrappers for a given method, instead of just the first one ever used. This is important for methods that are reachable through more than one target path.

# 1.6.2.0 (2021-06-04)

- Fix errors seen when wrapping inherited properties.
  - These were caused by a terser bug ([terser/terser #1003](https://github.com/terser/terser/issues/1003)).
- Clean up `Wrapper` singleton detection code.
- Explicitly announce compatibility with Foundry 0.8.6.


# 1.6.1.0 (2021-05-26)

- Fix infinite loop leading to a `RangeError: Maximum call stack size exceeded` error when both libWrapper wrappers and manual wrappers are present on a method inherited from a parent class.
  - Fixes the incompatibility between "TouchVTT" and "Drag Ruler" when libWrapper was active.
- Fix module ID not displaying correctly in settings dialog for `MANUAL` wrappers.

# 1.6.0.1 (2021-05-24)

- No code changes.
- Explicitly announce compatibility with Foundry 0.8.5.

# 1.6.0.0 (2021-05-10)

- **[BREAKING]** Remove `libWrapperReady` hook (deprecated since v1.5.0.0, `libWrapper.Ready` should be used instead).
- Rename all instances of `module` to `package`, given the library now officially supports systems and worlds.
  - Deprecate `libWrapper.clear_module` method (now `libWrapper.unregister_all`) and the `libWrapper.ClearModule` hook (now `libWrapper.UnregisterAll`).
  - Deprecate `libWrapper.ModuleError` (now `libWrapper.PackageError`).
  - Deprecate all `libWrapper.Error.module` getters (now `libWrapper.Error.package_id`).
- Rewrite module auto-detection functionality to be able to handle systems and worlds correctly.
  - Allows modules/systems/worlds to co-exist even when they share the same package ID.
- Make it explicit when a package ID corresponds to a world or system.
  - Error and warning messages now display `world` and `system` instead of `module`, when applicable.
  - Display `[World]` and `[System]` next to the package IDs in the settings dialog when packages are not modules.
- Miscellaneous code clean-up in preparation for future work.
- Announce compatibility with Foundry 0.8.3.

# 1.5.6.0 (2021-05-05)

- Improve unhandled error detection mechanism.
- Also detect errors that occur inside `Application.prototype.render`.

# 1.5.5.0 (2021-05-05)

- Fix sorting of unprioritized modules in the settings dialog.

# 1.5.4.0 (2021-05-05)

- Improve support for systems and world scripts. ([Issue #19](https://github.com/ruipin/fvtt-lib-wrapper/issues/19))
  - World scripts are now supported.
  - Shim ID/title auto-detection now supports both world scripts and systems.
- Do not use positive look-behind in regexes. ([Issue #34](https://github.com/ruipin/fvtt-lib-wrapper/issues/34))
  - This fixes support for Safari Technical Preview. (Note: Safari is still officially unsupported by both Foundry and libWrapper)
  - Corresponding update to the shim, which will be required if modules wish to support Safari.

# 1.5.3.0 (2021-05-04)

- Improve call stack for hooks ([Issue #32](https://github.com/ruipin/fvtt-lib-wrapper/issues/32))
  - Changed the `Hooks._call` wrapper to a patched override.
- Delay evaluation of notifications configuration until `ready` hook.
- Announce compatibility with Foundry 0.8.2.

# 1.5.2.0 (2021-04-16)

- Versioning updates
  - Split `SUFFIX` field into `SUFFIX` and `META`.
  - `SUFFIX` is now always an integer, with `META` containing the string portion.
  - `META` is now unnecessary when comparing library versions, as any change to this field will cause one of the other fields to be incremented.
  - Updated `version_at_least` to be able to request a minimum `SUFFIX` field.

# 1.5.1.0 (2021-04-13)

- Fix issue detecting module names when using minified releases of libWrapper.

# 1.5.0.0 (2021-04-12)

- Major performance improvements
  - Improved performance of the standard performance mode in a tight loop by 60% compared to previous versions.
  - Compared to v1.4.3.0:
    - 1000 calls to one wrapper: 1.67ms → 0.67ms (~60% improvement)
    - One call to 1000 wrappers: 0.87ms → 0.60ms (~25% improvement)
  - Added unit test to ensure there are no significant performance regressions in the future.

- The GM can now toggle a 'High-Performance Mode' in the libWrapper module settings. ([Issue #25](https://github.com/ruipin/fvtt-lib-wrapper/issues/25))
  - Modules can also request this be used by default (see documentation for usage details).
  - This mode forgoes libWrapper's dynamic conflict detection capabilities in exchange for higher performance.
  - Compared to the standard mode on v1.5.0.0:
    - 1000 calls to one wrapper: 0.67ms → 0.06ms (~90% improvement)
    - One call to 1000 wrappers: 0.60ms → 0.08ms (~85% improvement)
  - This is within margin of error of non-libWrapper wrapping methods, and useful when wrapping methods in a tight loop such as `WallsLayer.testWalls`.

- Updated rollup/babel/terser configuration and versions.

# 1.4.3.0 (2021-04-11)

- Ignore conflicts when `libWrapper.ConflictDetected` returns `false`.
- Do not treat an `OVERRIDE` wrapper being replaced as a conflict when `libWrapper.OverrideLost` returns `false`.

# 1.4.2.0 (2021-04-11)

- System support:
  - Systems can now register wrappers using their ID (Partially implements [Issue #19](https://github.com/ruipin/fvtt-lib-wrapper/issues/19))
  - Detected conflicts involving a system no longer show up as `unknown`.
- Improve call stacks further ([Issue #17](https://github.com/ruipin/fvtt-lib-wrapper/issues/17)):
  - Decorate all `libWrapper`, `Wrapper` and `LibWrapperNotifications` functions with the `🎁` symbol.
  - Bind `call_wrapped` on the last wrapper call, instead of `call_wrapper`. This avoids one extra call.
  - Decorate `Hooks._call` wrapper properly.

# 1.4.1.0 (2021-04-11)

- Fix broken `Hooks.once` behaviour. Modules such as Norc's Custom Hotbar now work as expected. Closes [Issue #30](https://github.com/ruipin/fvtt-lib-wrapper/issues/30).
- Detect `Promise` rejections caused by `LibWrapperError` exceptions properly.

# 1.4.0.0 (2021-04-11)

- **[BREAKING]** Remove private code from `libWrapper` scope.
  - The `libWrapper` object no longer exposes various private functions. This includes:
    - Any function with a `_` prefix
    - `load_priorities`
  - If your code was relying on any of these undocumented functions, it will need to be updated.
  - As always, you should assume any method that is not publicly documented may change or be removed at any moment and without notice.
  - Closes [Issue #16](https://github.com/ruipin/fvtt-lib-wrapper/issues/16).
- **[DEPRECATION WARNING]** The hook `libWrapperReady` is now deprecated and will be removed in a future version.
  - You should use `libWrapper.Ready` instead.
- Bug-fixes:
  - Register modules to the prioritization UI even if they fail to register an `OVERRIDE` wrapper due to another wrapper already existing. Fixes [Issue #21](https://github.com/ruipin/fvtt-lib-wrapper/issues/21).
  - Enable statistics collection for non-GM users with 'Modify configuration settings' permission. This means they can now edit the libWrapper priorities. Fixes [Issue #26](https://github.com/ruipin/fvtt-lib-wrapper/issues/26).
- New features / improvements:
  - Trigger the `libWrapper.OverrideLost` hook when an `OVERRIDE` wrapper gets replaced. Closes [Issue #23](https://github.com/ruipin/fvtt-lib-wrapper/issues/23).
  - Trigger various hooks when certain events occur. See documentation for details.
  - Added public API function `version_at_least(major, minor=0, patch=0)` for modules to easily check for a minimum libWrapper version.
  - Redirect `toString()` method to the wrapped method. Closes [Issue #18](https://github.com/ruipin/fvtt-lib-wrapper/issues/18)
- Major documentation improvements:
  - Documented `version`, `versions`, `is_fallback`.
  - Documented all custom exception classes used by libWrapper.
  - Documented the Hooks triggered by libWrapper.
  - Documented the `{chain: true}` option for `OVERRIDE` wrappers added in v1.3.6.0.
  - Documentation now states explicitly that usage of anything undocumented is unsupported, might change, and can easily break.
  - Split the contributing section to [CONTRIBUTING.md](CONTRIBUTING.md).
  - Added a Table of Contents, as well as section numbers.
- Improve callstack:
  - Renamed `src/lib/lib-wrapper.js` to `src/libWrapper-api.js`.
  - Renamed `src/lib/wrapper.js` to `src/libWrapper-wrapper.js`.
  - Renamed handler function names, so that they are shorter.
  - Use Function.displayName in addition to the previous implementation, when giving functions custom names.
  - Improve performance by caching handler functions, instead of re-generating them every time.
  - Closes [Issue #17](https://github.com/ruipin/fvtt-lib-wrapper/issues/17).
- Improve error handling mechanism:
  - Detect unhandled libWrapper errors inside hooks, and warn the user appropriately.
  - libWrapper will no longer break if it fails to parse `game.data.user` or `game.data.settings`. This should improve compatibility with future Foundry VTT versions.
  - Delay warning and error notifications until the `ready` hook if they occur beforehand, to ensure they are displayed.
- Manifest changes:
  - Add `library: true` to manifest.
  - Announce compatibility with Foundry 0.8.1.
- Minor code cleanup.

# 1.3.6.0 (2021-04-09)

- Allow OVERRIDE wrappers to continue chain if they pass `{chain: true}` as a fourth parameter to `libWrapper.register`.

# 1.3.5.0 (2021-01-11)

- Bugfix: Refactor usage of the handler objects (used to bootstrap a libWrapper call) so that dispatch is dynamic. Prevents references to wrapped methods from skipping the wrappers.

# 1.3.4.0 (2021-01-08)

- Give custom names to methods in the wrapper call chain for easier debug when something goes wrong (browser support varies).

# 1.3.3.0 (2021-01-08)

- Hotfix crashes introduced by v1.3.2.0 when detecting possible conflicts. Now added to test suite to avoid something similar happening again.

# 1.3.2.0 (2021-01-07)

- Add try-catch inside `onUnhandledError` in order to avoid swallowing the original exception with a second exception if anything goes wrong.
- Handle missing `ui.notifications` gracefully.

# 1.3.1.0 (2021-01-07)

- Remove need for invalidation of outstanding asynchronous wrappers, when wrappers are modified. (Fixes [Issue #7](https://github.com/ruipin/fvtt-lib-wrapper/issues/7))
- Optimize instance assignment.
- Misc. bug fixes.

# 1.3.0.0 (2021-01-06)

- **[BREAKING]** Fix inconsistent wrapping order (see [Issue #13](https://github.com/ruipin/fvtt-lib-wrapper/issues/13)).
- Major test suite improvement. Expand the number of tests, and refactor them for readability (see [Issue #12](https://github.com/ruipin/fvtt-lib-wrapper/issues/12))
- Fix property inheritance. It did not work at all before this update.
- Throw correct exception type when trying to wrap a setter that doesn't exist.
- A few other miscellaneous bug-fixes for corner cases detected by the new tests.

# 1.2.1.0 (2021-01-03)

- Freeze all libWrapper classes after defining them.
- Remove use of '<' and '>' to avoid them being treated as HTML.
- Make error notifications permanent.

# 1.2.0.0 (2021-01-03)

- Refactor source code directory structure.
- **[BREAKING]** Clean-up API parameter validation.
  - The `module` and `target` 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.
- Refactor error handling.
  - All libWrapper errors now extend the `LibWrapperError` class.
  - **[BREAKING]** For consistency, the previous libWrapper exception classes have been renamed.
    - `AlreadyOverriddenError` and `InvalidWrapperChainError` have been renamed to `LibWrapperAlreadyOverriddenError` and `LibWrapperInvalidWrapperChainError` respectively.
    - To aid compatibility, these can still be found in `libWrapper.AlreadyOverriddenError` and `libWrapper.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.

# 1.1.5.0 (2021-01-03)

- Reintroduce changes from v1.1.3.0.
- Fix 'super' usage inside wrapped methods, which was causing multiple modules to malfunction when using libWrapper.

# 1.1.4.0 (2021-01-03)

- Hotfix release. Reverts changes in 1.1.3.0, which broke some things.

# 1.1.3.0 (2021-01-03)

- 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.

# 1.1.2.0 (2021-01-03)

- Prevent wrapping of libWrapper internals
- Update shim. Now supports very basic inherited method wrapping using static dispatch.

# 1.1.1.0 (2021-01-03)

- 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.

# 1.1.0.0 (2021-01-02)

- Fix 'WRAPPER'-type wrappers that chain asynchronously. These will no longer be incorrectly unregistered for not chaining. (See [issue #7](https://github.com/ruipin/fvtt-lib-wrapper/issues/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](https://github.com/ruipin/fvtt-lib-wrapper/issues/8))
- 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.

# 1.0.8.0 (2021-01-01)

- Allow modules to chain wrappers asynchronously ([issue #7](https://github.com/ruipin/fvtt-lib-wrapper/issues/7)).

# 1.0.7.0 (2020-12-30)

- Implement support for multiple chaining. Now, modules can call the next wrapper in the chain more than once.

# 1.0.6.0 (2020-12-30)

- 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.

# 1.0.5.3 (2020-12-08)

- No code changes.
- Explicitly announce compatibility with Foundry 0.7.8.

# 1.0.5.2 (2020-11-15)

- 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.

# 1.0.5 (2020-10-22)

- No code changes.
- Explicitly announce compatibility with Foundry 0.7.5.

# 1.0.4 (2020-09-22)

- 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](https://github.com/ruipin/fvtt-lib-wrapper/issues/2). Thanks to Nordii for the report.

# 1.0.3 (2020-09-17)

- Fix shim when type='OVERRIDE' is used ([issue #1](https://github.com/ruipin/fvtt-lib-wrapper/issues/1)). Thanks to itamarcu for the report.

# 1.0.2 (2020-08-29)

- Fix libWrapper.versions property, which was not showing the correct libWrapper version information.

# 1.0.1 (2020-08-08)

- Fix packaging mistake that would prevent the settings dialog from opening.

# 1.0.0 (2020-08-08)

- Initial release.