32 Commits
Author SHA1 Message Date
Oliver Hamlet 927c708df6 Update version and changelog for v0.28.1 2025-08-11 19:24:39 +01:00
Oliver Hamlet 55bdf56227 Update version and changelog for v0.28.0 2025-08-02 16:36:20 +01:00
Oliver Hamlet d4d6893491 Use enums instead of bools in public API
Replace the boolean parameters for including user metadata and evaluating conditions with MergeMode and EvalMode enums.

The C++ and Python wrappers still use booleans because they're more constrained than enums in those languages, which can be given invalid values.
2025-08-02 16:05:36 +01:00
Oliver Hamlet 8cf7a0adf1 Add more Cargo package fields
Explicitly disable publishing the FFI wrappers, since there's no point them being on crates.io.
2025-08-02 11:16:25 +01:00
Oliver Hamlet f69bd3b632 Update Node.js wrapper to 2024 edition 2025-07-31 22:10:01 +01:00
Oliver Hamlet 4acc64247e Deduplicate Cargo package fields across workspace
Also deduplicate version numbers in CMakeLists.txt.
2025-07-31 22:08:46 +01:00
Oliver Hamlet ac0a355117 Update NAPI-RS to v3 2025-07-27 10:00:40 +01:00
Oliver Hamlet bdc1f827f6 Make Game::set_additional_data_paths() take Vec<PathBuf>, not &[&Path] 2025-07-22 19:56:21 +01:00
Oliver Hamlet fee6504fa8 Move deny lints to Cargo workspace config
To reduce duplication and make it clearer which denials are then overridden for each crate.
2025-07-22 19:56:21 +01:00
dependabot[bot]andGitHub 21fe344b1c Bump ava from 6.4.0 to 6.4.1 in /nodejs
Bumps [ava](https://github.com/avajs/ava) from 6.4.0 to 6.4.1.
- [Release notes](https://github.com/avajs/ava/releases)
- [Commits](https://github.com/avajs/ava/compare/v6.4.0...v6.4.1)

---
updated-dependencies:
- dependency-name: ava
  dependency-version: 6.4.1
  dependency-type: direct:development
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-07-14 18:42:48 +00:00
dependabot[bot]andGitHub 8b1747cf2a Bump napi-build from 2.2.1 to 2.2.2
Bumps [napi-build](https://github.com/napi-rs/napi-rs) from 2.2.1 to 2.2.2.
- [Release notes](https://github.com/napi-rs/napi-rs/releases)
- [Commits](https://github.com/napi-rs/napi-rs/compare/napi-build@2.2.1...napi-build@2.2.2)

---
updated-dependencies:
- dependency-name: napi-build
  dependency-version: 2.2.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-30 18:54:23 +00:00
dependabot[bot]andGitHub fd68acc9bb Bump ava from 6.2.0 to 6.4.0 in /nodejs
Bumps [ava](https://github.com/avajs/ava) from 6.2.0 to 6.4.0.
- [Release notes](https://github.com/avajs/ava/releases)
- [Commits](https://github.com/avajs/ava/compare/v6.2.0...v6.4.0)

---
updated-dependencies:
- dependency-name: ava
  dependency-version: 6.4.0
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2025-06-18 19:24:14 +00:00
Oliver Hamlet 03d835f965 Improve readmes 2025-06-15 20:12:24 +01:00
Oliver Hamlet db9f51a2b2 Update changelog and version for 0.27.0 2025-06-08 20:59:14 +01:00
Oliver Hamlet 11bd321861 Rework handling of esplugin errors
The error scenario represented by PluginNotLoadedError is distinguished from all other esplugin errors by LOOT, so it's worth handling separately.
2025-06-08 20:26:07 +01:00
Oliver Hamlet 328f1a2c15 Remove LogLevel::Fatal
It's never used.
2025-06-08 17:58:27 +01:00
Oliver Hamlet ba50882ad3 Update changelog and version for 0.26.3 2025-06-08 09:23:43 +01:00
Oliver Hamlet 699915efff Update the versions and changelog to 0.26.2
To reflect the v0.26.2 release of the C++ implementation.
2025-05-16 23:28:01 +01:00
Oliver Hamlet 517dc6b43c Make Vertex immutable
To match the C++ implementation. I meant to do this at the same time as the other metadata structs but missed it.
2025-05-14 18:24:54 +01:00
Oliver Hamlet 637cf57e6f Add licenses to crates that didn't have them 2025-05-11 16:09:02 +01:00
Oliver Hamlet efa678bc81 Don't hardcode the version number in a Node.js test 2025-05-10 19:35:59 +01:00
Oliver Hamlet eabc7a5d85 Sync with libloot v0.26.1
Aside from adding GameType::oblivionRemastered and its usage, this is almost entirely about moving C++ files and tests around.
2025-05-02 17:56:49 +01:00
Oliver Hamlet 4cd9b37471 Remove nodejs cargo profile
The cargo profile in the nodejs folder gets ignored because the crate is in a workspace, but it got me thinking about LTO.

Enabling fat LTO more than doubles the build time, and although it shrinks the binary size, if there is a performance impact it's not very obvious (based on sorting in LOOT with the built DLL). On the other hand, thin LTO only only adds a second to the cargo build time and reduced binary size by ~ 1.4 MB, and adding /LTCG on top reduces it by another ~ 1.6 MB. MSVC doesn't output how long linking takes, but it seemed to only add a second or two.
2025-04-26 16:40:46 +01:00
Oliver Hamlet a08d53ea52 Make most metadata structs immutable again 2025-04-24 20:03:23 +01:00
Oliver Hamlet aa5344ca92 Replace names used for game types
Use the game names rather than their acronyms (aside from suffixes, which are widely used).

This also changes the CXX wrapper to use PascalCase for the game types it exposes for consistency. The outer C++ wrapper is unchanged.
2025-04-23 18:02:17 +01:00