Tslint is deprecated, as such we have moved to eslint. Linted the project with more
stringent rules. The configuration will be changed as we figure out which rules we
should keep.
You can now use 'latest' or 'recommended' as the forge version option in the generate commands.
Two new commands are provided to query the latest/recommended version of forge.
This allows multiple versions of the same forge to be used.
Ex. Recommended 1.15 on prod, latest 1.15 on test.
Also fixed a bug with artifact classifier formatting.
Moved java executable to its own util class.
Fixed artifact resolution links for older versions of forge.
1.13 support is going to be difficult because forge does not
make anything developer friendly.
All pack.xz libraries now have their MD5s properly calculated.
Sha1 validations are performed on jar libraries. The checksums
forge provides for compressed files are neither the sha1 or md5
of the initial or extracted file. Ignoring those for now.
Still TODO is integration with baseurl. Might move both that
and base path to the .env file to reduce redundency in command processing.
TODO:
Integrate base url propagation.
Integrate PackXZExtract to calculate hashes of jar.pack.xz files.
OR ammend the distribution spec to accept different hash algos (requires helioslauncher update).
Repo structure classes should be responsible for pulling versioned files.
Ex. /forge/1.14/ -> get the latest file (or only allow one file).
The resolver then gets that file to work with in order to resolve the forge
module, pull its libs, and attach them as submodules.
Model files will likely be externalized to its own 'spec' project
when the rest of the project is rewritten in typescript. That module
will likely contain processing utilities.