Commit Graph

68 Commits

Author SHA1 Message Date
Daniel Scalzi
5f6c58d863 Upgrade to Node.js 20. 2024-02-22 10:49:07 -05:00
Daniel Scalzi
b783e4784d Dependency upgrade. 2023-12-03 17:45:11 -05:00
jebibot
76ab09a010 feat: support Fabric (#66)
* Initial scaffolding for Fabric.

* refactor: extract common ModStructure

* feat: add FabricModStructure

* refactor: add name field to VersionRepoStructure

* feat: FabricResolver

* feat: support Fabric

* docs: update README

* Small changes.

* Add additional note.

* Upgrade helios-distribution-types.

---------

Co-authored-by: Daniel Scalzi <d_scalzi@yahoo.com>
2023-12-03 17:37:14 -05:00
Daniel Scalzi
318452e44e Dependency upgrade. 2023-11-01 19:12:02 -04:00
Daniel Scalzi
11f8a72e8a Update linter, dependencies. 2023-08-13 19:15:35 -04:00
Daniel Scalzi
5da3d6cf5f Some curseforge mods disallow 3rd party downloads, log those to the console for manual action. 2023-07-02 17:09:32 -04:00
Daniel Scalzi
4fd0a76d77 Add support for Java options. (#59) 2023-03-19 22:33:49 -04:00
Daniel Scalzi
b55b7af689 Convert project to ESM (#58)
* Convert to ESM, enforce file single naming convention.

* Update fs-extra esm usage.

* Fix minimatch import.

* fixes

* triple-beam issue is finally fixed.
2023-03-17 19:53:27 -04:00
Daniel Scalzi
82967469e9 Node 18. 2023-02-12 19:11:46 -05:00
Daniel Scalzi
4aeb570541 Dependency upgrade. 2023-01-15 11:25:21 -05:00
Daniel Scalzi
41a4e7fdcb Dependency upgrade. 2022-12-26 15:13:36 -05:00
Daniel Scalzi
5111e29512 1.17+ Support / Java Settings by Instance (#50)
* Initial 1.17 configuration, dep upgrade.

* Enable 1.18 for initial tests.

* Add lowcodelanguage for 1.18 (#49)

* Set classpath flag for 1.17+ generated files. Enable 1.19 (not yet working).

* Support 1.19.

Co-authored-by: Matt Artist <me@mja00.dev>
2022-11-27 18:01:48 -05:00
Daniel Scalzi
ad6db8c3d3 Dependency upgrade. 2022-07-29 11:56:45 -04:00
Daniel Scalzi
8c224e3e39 Dependency upgrade. 2022-04-03 16:02:49 -04:00
Daniel Scalzi
77a118125b Update dependencies. 2022-03-25 15:15:22 -04:00
Daniel Scalzi
c044535091 Dependency upgrade. 2022-02-11 16:20:17 -05:00
Daniel Scalzi
2e977e1e2d Add fs alias for faststart, dependency upgrade. 2022-01-21 16:00:43 -05:00
Daniel Scalzi
640f3f0507 Add security warning. 2021-12-10 16:11:39 -05:00
Daniel Scalzi
e97ac9bfad Upgrade to Node.js 16. 2021-10-31 02:38:16 -04:00
Daniel Scalzi
5b0b9fb4fe Fix claritas failure with module-info.
Resolves https://github.com/dscalzi/Nebula/issues/35
2021-09-30 12:07:36 -04:00
Daniel Scalzi
62695ce996 Full upgrade. 2021-09-28 21:34:04 -04:00
Daniel Scalzi
3656bf52e4 Dependency upgrade. 2021-09-28 21:26:54 -04:00
Daniel Scalzi
57c376e78c Add note about Java 16. 2021-06-30 20:15:21 -04:00
dependabot[bot]
c873d63a54 Bump color-string from 1.5.4 to 1.5.5 (#31)
Bumps [color-string](https://github.com/Qix-/color-string) from 1.5.4 to 1.5.5.
- [Release notes](https://github.com/Qix-/color-string/releases)
- [Changelog](https://github.com/Qix-/color-string/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Qix-/color-string/compare/1.5.4...1.5.5)

---
updated-dependencies:
- dependency-name: color-string
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <support@github.com>

Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2021-06-24 18:23:48 -04:00
Daniel Scalzi
70bc6b8d5e Upgrade dependencies and java libs. 2021-06-24 18:21:02 -04:00
Daniel Scalzi
b1196dbb3e Dependency upgrade. 2021-06-11 22:47:44 -04:00
Daniel Scalzi
bc3367af28 Dep upgrade. 2021-04-27 20:05:40 -04:00
Daniel Scalzi
362bbc1d83 Ignore .gitkeep, remove deprecated url.resolve(), update dependencies (resolves #25). 2021-04-06 17:34:06 -04:00
Daniel Scalzi
2540ca383e Update deps, enforce return type. 2021-03-20 15:07:15 -04:00
Daniel Scalzi
07ea0e8b98 Update dependencies. 2021-03-07 10:51:51 -05:00
Daniel Scalzi
5c9e44db91 Alias to run the project without building. Dependency upgrade. 2021-02-19 17:41:36 -05:00
Daniel Scalzi
9ead2ca219 Support Typescript 4.1, dependency upgrade. 2020-11-28 15:23:42 -05:00
Daniel Scalzi
0d46a529fc Node 14, dependency upgrade.
Node 14 is now LTS, so we'll use that.
2020-11-01 17:22:53 -05:00
Daniel Scalzi
28cb5a3d52 Dependency upgrade, replace moment with luxon. 2020-10-14 23:21:20 -04:00
Daniel Scalzi
b6cb191aca Update Claritas, dependencies. 2020-10-01 21:30:39 -04:00
Daniel Scalzi
42e47f4748 Add JSON schemas for DistroMeta and ServerMeta.
JSON schemas are used by editors to validate data and provide useful insights.
The JSON schemas will be generated by the init root command. They can also be generated
using the generate schemas command.

The JSON files will reference the schemas on the user's local disk rather than hosted versions.
This allows offline editing and ensures that the schema is exactly one-to-one with the local
version of Nebula.

Existing servers will have to manually add the schema property. To see how to do this, generate
a new server and copy the $\schema value.
The schema property will need to be added to any existing distrometa files. This is the same
format as the server meta, just replace ServerMeta with DistroMeta.

More information, including sample files with json schemas, is provided
on the README.
2020-09-13 01:06:50 -04:00
Daniel Scalzi
24b0923903 Add support for untracked files.
Untracked file glob patterns are stored in the servermeta.json. See the README for detailed information.
2020-09-12 22:46:50 -04:00
Daniel Scalzi
1a19df0e93 Move struct out of model folder. 2020-09-12 20:14:18 -04:00
Daniel Scalzi
d2e317b4df Replace axios with got, check for empty version in forgemod meta. 2020-09-04 23:29:36 -04:00
Daniel Scalzi
f287388931 Pass arguments to Claritas via an argFile to bypass cli length limits. (#16) 2020-08-02 16:01:04 -04:00
Daniel Scalzi
0e83a071d7 Update claritas integration to support large result sets.
The output is now pulled from a json file.
2020-07-18 00:41:46 -04:00
Daniel Scalzi
bda96eb24e First pass at Claritas implementation.
The resolution logic was reworked so that Claritas only needs to be invoked once per supported type, ie only once for ForgeMod and LiteMod resolutions per server. The resolver now uses identifies module candidates and collects them. Claritas is invoked and the resulting metadata is stored. The module resolution then proceeds with all of this data available.
Toggleable module logic was also reworked to first accumulate all candidates and then process. This required the resolution function to optionally take a preprocess and postprocess callback to perform the necessary cleanup and transformations.
The minor rework was necessary because spawning child process is expensive, and we should only do it as often as we must to keep the application performant.
Claritas resolution also supports exceptions defined by the structure class. This is to facilitate handling of special cases (ex. Optifine).
2020-07-16 20:26:22 -04:00
Daniel Scalzi
8e611175ca Add support for optional vs required modules.
Directories representing toggleable modules are now segemented into three subdirectories.

* `required` Modules that are required.
* `optionalon` Modules that are optional and enabled by default.
* `optionaloff` Modules that are optional and disabled by default.

Filter your files into these three directories. Files at the root directory will no longer be processed. Currently, forgemods and litemods are the only toggleable modules.

For existing servers, just manually create these directories and move your files inside either of them. Generating a new server will automatically create them.
2020-07-05 13:51:49 -04:00
Daniel Scalzi
0a9c82434b Enable 1.16 support (resolves #13). 2020-06-25 18:53:10 -04:00
Daniel Scalzi
a6b6ed9db3 Add distrometa.json for storing distribution wide metadata.
The distrometa.json file is stored at {ROOT}/meta/distrometa.json.
You can generate it by rereunning the init root command.
It behaves exactly the same as the servermeta.json file.
2020-06-10 11:09:49 -04:00
Daniel Scalzi
2d8e5d16e7 Update fs-extra. 2020-06-04 17:51:57 -04:00
Daniel Scalzi
d627ce72a3 Replace AdmZip with node-stream-zip. 2020-06-02 23:07:59 -04:00
Daniel Scalzi
0b063e4bfc Added winston for logging. 2020-06-02 20:47:34 -04:00
Daniel Scalzi
672424b973 Add support for processing 1.12.2 Forge compiled with Forge Gradle 3 (#8).
Changed the resolver names to match the Forge Gradle versions, since that software version
determines the structure of the jar file and how it needs to be parsed.
Refactored the ForgeGradle3 resolver to conditionally execute the installer only when we
need artifacts generated by the installer. This allows the new 1.12.2 builds to be processed
without running the installer.
Changed the VersionSegemented interface to accept a libraryVersion, so we can segment within
a minecraft version.

This change is pending verification with Helios.
2020-06-02 17:16:15 -04:00
Daniel Scalzi
87e5299af6 Update eslint. 2020-05-29 22:35:45 -04:00