Commit graph

303 commits

Author SHA1 Message Date
Kir_Antipov
5e957f45ba Presented ability to parse and use version ranges 2023-05-17 15:47:39 +03:00
Kir_Antipov
4bbd4cc2d9 Version refactoring 2023-05-17 15:46:26 +03:00
Kir_Antipov
17bc59ff61 VersionType refactoring 2023-05-17 15:45:22 +03:00
Kir_Antipov
5381af88ee Added io module 2023-05-17 15:41:39 +03:00
Kir_Antipov
b9dc319a1e File (-> FileInfo) refactoring 2023-05-17 15:41:18 +03:00
Kir_Antipov
79519efc22 Made a few utility types for writeFile options 2023-05-17 15:39:27 +03:00
Kir_Antipov
88b6d0607a Made a few utility types for readFile options 2023-05-17 15:39:07 +03:00
Kir_Antipov
49ccf5b5a2 Made a few FilePath-like utility types 2023-05-17 15:38:21 +03:00
Kir_Antipov
3367d6a02d This *generates* warnings for auto-*generated* content
*Did you get it?*
2023-05-17 15:35:47 +03:00
Kir_Antipov
cc3f33cdb2 Made a module focused on conversion 2023-05-17 15:33:21 +03:00
Kir_Antipov
9d7bf0f627 Moved sleep and retry to async-utils
Also, made a few more helper methods
2023-05-17 15:31:47 +03:00
Kir_Antipov
9ca1e9f0d9 Moved FailMode to its own file 2023-05-17 15:29:47 +03:00
Kir_Antipov
5a2e5f176c Added enum module 2023-05-17 15:25:02 +03:00
Kir_Antipov
64f717d127 Implemented Object-like Enum interface 2023-05-17 15:24:43 +03:00
Kir_Antipov
5fe6c0ba36 Implemented DynamicEnum 2023-05-17 15:23:26 +03:00
Kir_Antipov
8e382c9ed5 Defined default enum separators 2023-05-17 15:22:24 +03:00
Kir_Antipov
a2288eeefa Made a function to retrieve enum entries 2023-05-17 15:19:44 +03:00
Kir_Antipov
003f5fbab4 Made a function to retrieve enum values 2023-05-17 15:19:17 +03:00
Kir_Antipov
1d0d5c6cff Made a function to retrieve enum keys 2023-05-17 15:12:25 +03:00
Kir_Antipov
0a98e5a66a Added enum/descriptors module 2023-05-17 15:09:55 +03:00
Kir_Antipov
1afbf2483e Implemented enum descriptor instantiation logic 2023-05-17 15:09:26 +03:00
Kir_Antipov
41d4de590e Implemented enum descriptor for string enums 2023-05-17 15:04:39 +03:00
Kir_Antipov
e16de98226 Implemented enum descriptor for boolean enums 2023-05-17 14:56:15 +03:00
Kir_Antipov
874b950fdf Implemented enum descriptor for bigint enums 2023-05-17 14:55:42 +03:00
Kir_Antipov
6256d33db6 Implemented enum descriptor for number enums 2023-05-17 14:55:09 +03:00
Kir_Antipov
33da1eacff Made base interface for enum descriptors 2023-05-17 14:53:50 +03:00
Kir_Antipov
8db475ab28 Added reflection module 2023-05-16 20:39:48 +03:00
Kir_Antipov
ccd4319b20 Made ImportDirective for dynamic import purposes 2023-05-16 20:39:20 +03:00
Kir_Antipov
491aa11ac5 Made ModuleLoader interface
And added 2 default implementations:

 - `NODE_MODULE_LOADER` - uses `import` under the hood
  - `DYNAMIC_MODULE_LOADER` - will be able to load modules needed in other parts of this project. Currently it's just a stub
2023-05-16 20:37:39 +03:00
Kir_Antipov
fd2975b30b Implemented more reflection-specific helpers 2023-05-16 20:34:43 +03:00
Kir_Antipov
919bc5d68e Added errors module 2023-05-16 20:30:15 +03:00
Kir_Antipov
c566a4cfec Implemented HttpError 2023-05-16 20:28:31 +03:00
Kir_Antipov
3f8d7d2115 Made SoftError for recoverable errors 2023-05-16 20:26:09 +03:00
Kir_Antipov
3fe2a3fdc9 Made a helper method to check if an object is an error 2023-05-16 20:25:04 +03:00
Kir_Antipov
5892ef60d8 Implemented FileNotFoundError 2023-05-16 20:23:02 +03:00
Kir_Antipov
8f97d4aee6 Implemented ArgumentNullError 2023-05-16 20:21:45 +03:00
Kir_Antipov
ab8f3468ca Implemented ArgumentError 2023-05-16 20:20:55 +03:00
Kir_Antipov
c56b60c966 Added security module 2023-05-16 20:17:55 +03:00
Kir_Antipov
2243945d3a Made a class that protects a string from being exposed 2023-05-16 20:17:23 +03:00
Kir_Antipov
a656c86e4a Added collections module 2023-05-16 20:09:53 +03:00
Kir_Antipov
fc0a818902 Made ArrayMap and MultiMap
`ArrayMap` is a map implementation which can use custom equality comparers

`MultiMap` is mostly an alias for `Map<K, V[]>`, but with some extra methods
2023-05-16 20:09:20 +03:00
Kir_Antipov
bddf78c669 Made ArraySet
A set implementation which can use custom equality comparers
2023-05-16 20:07:37 +03:00
Kir_Antipov
97a17208b2 Implemented array-like methods for iterables 2023-05-16 20:06:09 +03:00
Kir_Antipov
af85b577f1 Made an interface for all key-value iterables out there 2023-05-16 20:02:22 +03:00
Kir_Antipov
e3439aa021 Added types module 2023-05-16 19:58:58 +03:00
Kir_Antipov
67b5bcbf85 Made an alias for Partial<Record<K, V>> 2023-05-16 19:57:41 +03:00
Kir_Antipov
1967a52df9 Added a type that unwraps constructor parameters 2023-05-16 19:56:28 +03:00
Kir_Antipov
e473e4b641 Made a type to help me use generics as record keys 2023-05-16 19:54:56 +03:00
Kir_Antipov
2c2bcb4de7 Added a type that unwraps constructor return type 2023-05-16 19:53:51 +03:00
Kir_Antipov
f436b151aa Added a type that unwraps promises 2023-05-16 19:52:48 +03:00
Kir_Antipov
6e27f6c851 Made a type to indicate that await should be used 2023-05-16 19:51:43 +03:00
Kir_Antipov
09d0d25fdc Made a type that converts unions to intersections 2023-05-16 19:49:38 +03:00
Kir_Antipov
2ab31e0c32 Made a transpile-time version of typeof 2023-05-16 19:48:37 +03:00
Kir_Antipov
13a303ce8d Added logging module 2023-05-16 19:45:41 +03:00
Kir_Antipov
d60d8f63f3 LoggingStopwatch refactoring 2023-05-16 19:45:06 +03:00
Kir_Antipov
0cf4831003 Added diagnostics module 2023-05-16 19:43:36 +03:00
Kir_Antipov
d1b07fe763 Stopwatch refactoring 2023-05-16 19:42:49 +03:00
Kir_Antipov
a33f82afe1 Updated logger instantiation logic 2023-05-16 19:40:10 +03:00
Kir_Antipov
d043e7f23f Added a logger that writes logs to stdout 2023-05-16 19:38:46 +03:00
Kir_Antipov
19993c6f5b Added a logger that writes logs to the console 2023-05-16 19:37:21 +03:00
Kir_Antipov
65cb51a963 Implemented classic NullLogger 2023-05-16 19:35:58 +03:00
Kir_Antipov
9b882c411e Made helper methods to work with environment 2023-05-16 19:31:41 +03:00
Kir_Antipov
f1bd102e19 Added comparison module 2023-05-16 19:27:13 +03:00
Kir_Antipov
ef099bc69f Implemented default equality comparers for strings 2023-05-16 19:26:36 +03:00
Kir_Antipov
c6214a811a Made some helper methods to work with strings 2023-05-16 19:24:54 +03:00
Kir_Antipov
89d56de5e4 Implemented default comparers for strings 2023-05-16 19:22:08 +03:00
Kir_Antipov
d1b1ed9a16 Implemented comparers 2023-05-16 19:20:11 +03:00
Kir_Antipov
a537525099 Implemented equality comparers 2023-05-16 19:18:32 +03:00
Kir_Antipov
ce5227a2ce Added functions module 2023-05-16 19:05:13 +03:00
Kir_Antipov
7b75d612db Now it's possible to create middlewares 2023-05-16 19:04:41 +03:00
Kir_Antipov
63bbe0f72b Made interfaces for delegates
Because built-in `Function` is not flexible
2023-05-16 19:00:09 +03:00
Kir_Antipov
d263c15393 Added a possibility to make objects callable 2023-05-16 18:58:10 +03:00
Kir_Antipov
7882738bce Added java module 2023-05-16 18:54:51 +03:00
Kir_Antipov
34f7b1af54 Made a class that represents a Java version 2023-05-16 18:54:19 +03:00
Kir_Antipov
a416c24813 Added text-oriented version of metadata reader 2022-11-25 14:30:52 +03:00
Kir_Antipov
de4393cceb Removed deprecated metadata-related classes 2022-11-25 14:30:52 +03:00
Kir_Antipov
b7fa4fab67 QuiltModMetadata refactoring 2022-11-25 14:30:52 +03:00
Kir_Antipov
2fc40453de ForgeModMetadata refactoring 2022-11-25 14:30:52 +03:00
Kir_Antipov
9570097d5b FabricModMetadata refactoring
Fixes #36
2022-11-25 14:30:52 +03:00
Kir_Antipov
5d39b55de2 Changed mapEnumInput's signature 2022-11-25 14:30:52 +03:00
Cadiboo
81693dea8e
Exclude Javadoc jars from primary files by default (#18)
* Exclude javadoc jar in code

* Update README.md

Co-authored-by: Kir_Antipov <kp.antipov@gmail.com>
2022-08-21 15:05:25 +03:00
Kir_Antipov
9900786be3 E M O J I
I still don't understand it why everybody likes them so much. But I feel the pressure of public opinion, which forced me to add these useless symbols to my codebase.
2022-07-05 21:07:01 +03:00
Kir_Antipov
f8343090b1 Refactoring 2022-07-05 20:44:29 +03:00
Kir_Antipov
03cc643a6e Fabric mods can be marked as Quilt-compatible 2022-07-05 19:24:25 +03:00
Kir_Antipov
3f02162129 Added fail-mode input 2022-07-05 18:08:11 +03:00
Kir_Antipov
58a1f9bab8 Made use of LoggingStopwatch 2022-07-05 18:02:45 +03:00
Kir_Antipov
d097cc8471 Made a logging version of Stopwatch 2022-07-05 17:47:28 +03:00
Kir_Antipov
2483a4d02b Implemented Stopwatch to simplify measurements 2022-07-05 17:44:29 +03:00
Kir_Antipov
4989430f1a Changed some declarations from foo.bar to fooBar
It helps with better target-specific options support
2022-07-05 17:07:56 +03:00
Kir_Antipov
f491e136d1 Sequential uploads to GitHub should work now
#13
2022-07-05 16:58:56 +03:00
Kir_Antipov
a130a734a5 Changed default publishing order to CurseForge, Modrinth, GitHub
Closes #16
2022-07-04 22:52:26 +03:00
Kir_Antipov
235aa3c252 Added support for Modrinth embedded dependency type
Closes #15
2022-07-04 20:23:16 +03:00
Kir_Antipov
4e7886fe22 Made it possible to automatically create GitHub Releases
Closes #7
2022-06-07 21:17:45 +03:00
Kir_Antipov
b4d00806ed Made VersionType enum 2022-06-07 17:21:26 +03:00
Kir_Antipov
537780acea Default value should not be overridden 2022-06-07 17:21:06 +03:00
Kir_Antipov
0d76fa5eef Codestyle fix 2022-06-07 16:12:20 +03:00
Kir_Antipov
38cc76ee30 Added modrinth-unfeature-mode input
Closes #9
2022-06-07 16:08:55 +03:00
Kir_Antipov
1aaf662cc2 Refactored modrinth-utils 2022-06-07 16:02:13 +03:00
Kir_Antipov
36b3d69f46 Implemented mapEnumInput, so I can extract enums from options 2022-06-07 15:58:13 +03:00
Kir_Antipov
44e418ffe7 Added modrinth-featured input (#9) 2022-06-06 18:17:42 +03:00
Kir_Antipov
24a3f2d11e Implemented a simpler way to process input data 2022-06-06 18:09:45 +03:00
Kir_Antipov
dc82753d62 Made CurseForge error handling a little bit more verbose 2022-06-05 20:09:34 +03:00
Kir_Antipov
0fcfdc07c1 Implemented Quilt support
Closes #5
2022-06-05 19:37:01 +03:00
Fx Morin
bf3f3c7c01
Modrinth Dependencies (#8)
* temp Modrinth Dependencies

* Fix final issues

* Got to love git sometimes

* Made test case for modrinth-utils

* That's why testing is important kids

* Included dependencies are still dependencies

* Naming

* Moved to Modrinth API v2

Co-authored-by: Kir_Antipov <kp.antipov@gmail.com>
2022-06-05 17:28:41 +03:00
Kir_Antipov
218cc98461 Not so quick quickfix of #6
Closes #6
2022-05-31 21:11:04 +03:00
Kir_Antipov
fbda2b1cfe Added the ability to retry publishing assets 2022-01-12 18:16:19 +03:00
Kir_Antipov
b98fa4496b [Fix] Sometimes Modrinth uses a wrong file as primary 2022-01-05 17:55:13 +03:00
Kir_Antipov
2194c72c22 Non-existing dependencies should cause a soft failure 2021-12-11 15:59:39 +03:00
Kir_Antipov
af38f88370 I hate the way GitHub Actions process inputs 2021-12-11 15:21:24 +03:00
Kir_Antipov
9fe56c6406 INPUT_CHANGELOG_FILE exists for some weird reason 2021-12-11 03:18:04 +03:00
Kir_Antipov
7a8b3f6b81 Made aliases for special case dependencies like fabric 2021-12-11 00:12:31 +03:00
Kir_Antipov
7e5abb93bd Special case dependencies are ignored by default
(minecraft, java, fabricloader, forge, etc)
2021-12-10 17:46:10 +03:00
Kir_Antipov
0eea0ed873 The action won't try to publish assets if no token was specified
Fixes #2
2021-12-10 17:00:43 +03:00
Kir_Antipov
6e417e8ee2 CurseForgePublisher makes use of relations now
I hope so...
2021-12-08 16:44:57 +03:00
Kir_Antipov
5e7fd885b0 ModPublisher can use mod metadata now 2021-12-08 16:42:53 +03:00
Kir_Antipov
cb76b6f43f Implemented ModMetadataReader for Forge mods 2021-12-07 21:57:22 +03:00
Kir_Antipov
ddc460484e Implemented ModMetadata for Forge 2021-12-07 21:53:53 +03:00
Kir_Antipov
05a29057ca Implemented ModMetadataReader for Fabric mods 2021-12-07 21:53:08 +03:00
Kir_Antipov
a63e0b697d Made ModMetadata implementation for Fabric 2021-12-07 21:52:26 +03:00
Kir_Antipov
0530a4b597 Made base class for dependencies described in configs 2021-12-07 21:50:15 +03:00
Kir_Antipov
8937a5c943 Made base class for config-based metadata 2021-12-07 21:49:28 +03:00
Kir_Antipov
ef28fbd8f5 Made base class for metadata readers that deal with zip 2021-12-07 21:48:52 +03:00
Kir_Antipov
4151c36500 Chained all known ModMetadataReaders 2021-12-07 21:42:49 +03:00
Kir_Antipov
0844ce3a92 Implemented factory for ModMetadataReaders 2021-12-07 21:40:57 +03:00
Kir_Antipov
98e5542fe5 Made interface for metadata readers 2021-12-07 21:37:21 +03:00
Kir_Antipov
bd5a30326c Made interface that describes mod metadata 2021-12-07 21:35:41 +03:00
Kir_Antipov
428bc335e9 Made Dependency interface 2021-12-07 21:35:03 +03:00
Kir_Antipov
f6c5dfd62b Added enum that describes dependency kinds 2021-12-07 21:34:24 +03:00
Kir_Antipov
59f286e65e Made enum that describes different mod loaders 2021-12-07 21:32:27 +03:00
Kir_Antipov
07fccebe08 Moved File to file.ts, made version-utils.ts 2021-12-06 16:07:13 +03:00
Kir_Antipov
ffa0520996 Moved publishers to corresponding subfolders 2021-12-06 16:02:50 +03:00
Kir_Antipov
90929a7f48 Made method that parses Minecraft version
...from version name
2021-12-06 15:52:15 +03:00
Kir_Antipov
28b0fcda55 name can be omitted with an empty string 2021-10-01 16:35:51 +03:00
Kir_Antipov
fcfbc7c0f9 Added version-resolver input 2021-10-01 16:13:08 +03:00
Kir_Antipov
bc45e09dbd Refactoring: made options an argument instead of a property 2021-09-30 17:01:53 +03:00
Kir_Antipov
89b49fca88 Fixed Modrinth's primary file detection 2021-09-26 22:31:30 +03:00
Kir_Antipov
b3b5a975fb Added unused dependencies property -_- 2021-09-26 20:27:57 +03:00
Kir_Antipov
e07b3d5c99 Added more details to the error message 2021-09-26 20:06:04 +03:00
Kir_Antipov
5bc986e4cc modrinth lib doesn't really work 2021-09-26 19:53:00 +03:00
Kir_Antipov
810ff6d7dd There're some weird predefined inputs 2021-09-26 19:33:39 +03:00
Kir_Antipov
d8d4fd16a8 Fixed GitHubPublisher 2021-09-26 19:30:44 +03:00
Kir_Antipov
9101916d52 Implemented action's entry point 2021-09-25 09:39:19 +03:00
Kir_Antipov
f73c20d76f Made factory for the different publishers 2021-09-25 09:39:19 +03:00
Kir_Antipov
22df1b7930 Implemented Modrinth publisher 2021-09-25 09:39:19 +03:00
Kir_Antipov
6c9bd908cc Implemented CurseForge publisher 2021-09-24 17:08:51 +03:00
Kir_Antipov
b6f396ffd8 Made base class for CurseForge and Modrinth publishers 2021-09-24 15:14:27 +03:00
Kir_Antipov
0db63f3275 Implemented GitHub publisher 2021-09-24 14:58:19 +03:00
Kir_Antipov
59eb2bc7e7 Made base class for publishers 2021-09-24 14:53:46 +03:00
Kir_Antipov
27004e5242 Made utils for interacting with the CurseForge API 2021-09-23 16:22:46 +03:00
Kir_Antipov
e38f6957c3 Made utils for working with Minecraft versions 2021-09-23 13:37:33 +03:00
Kir_Antipov
7cc8951c69 Made getInputAsObject method that transforms action inputs into an object 2021-09-22 19:28:22 +03:00
Kir_Antipov
3a5369791a Made utils for working with files 2021-09-22 19:20:00 +03:00
Kir_Antipov
34b6c9b16e Made logger interface 2021-09-22 16:21:12 +03:00