From a4e93b6ce5ee572c40c85ee1534bccd48527383a Mon Sep 17 00:00:00 2001 From: Kir_Antipov Date: Fri, 19 May 2023 20:40:51 +0300 Subject: [PATCH] Autogen --- action.yml | 580 ++++++++++++++++-------- src/action.ts | 480 ++++++++++++++++++++ src/utils/reflection/module-loader.g.ts | 32 +- 3 files changed, 908 insertions(+), 184 deletions(-) create mode 100644 src/action.ts diff --git a/action.yml b/action.yml index 05b3864..2cb307a 100644 --- a/action.yml +++ b/action.yml @@ -1,325 +1,539 @@ -name: Publish Minecraft Mods -description: GitHub Action that helps you publish your Minecraft mods +# ######################################################################## # +# WARNING: AUTO-GENERATED FILE - DO NOT EDIT! # +# # +# Please be advised that this is an auto-generated file and should NOT be # +# modified. Any changes made to this file WILL BE OVERWRITTEN. # +# # +# To make changes to the contents of this file, please modify the # +# action.template.yml file instead. This will ensure that your changes are # +# properly reflected in the auto-generated file. # +# ######################################################################## # +name: mc-publish +description: Your one-stop GitHub Action for seamless Minecraft project + publication across various platforms. author: Kir-Antipov branding: - color: orange - icon: upload + color: purple + icon: box +types: + input: + name: McPublishInput + description: The input parameters for the action. + output: + name: McPublishOutput + description: The output parameters provided by the action. +groups: + input: + modrinth: + type: ModrinthUploadRequest + description: Options used to publish Minecraft projects to Modrinth. + curseforge: + type: CurseForgeUploadRequest + description: Options used to publish Minecraft projects to CurseForge. + github: + type: GitHubUploadRequest + description: Options used to publish Minecraft projects to GitHub. + output: + modrinth: + type: ModrinthUploadReport + description: Report detailing the status of the project published on Modrinth. + curseforge: + type: CurseForgeUploadReport + description: Report detailing the status of the project published on CurseForge. + github: + type: GitHubUploadReport + description: Report detailing the status of the project published on GitHub. inputs: modrinth-id: - description: The ID of the Modrinth project to upload to + type: string + description: The unique identifier of your Modrinth project. required: false default: ${undefined} modrinth-featured: - description: Indicates whether the version should be featured on Modrinth or not + type: boolean + description: Set to true to feature the version on Modrinth; false otherwise. required: false default: ${undefined} modrinth-unfeature-mode: - description: Determines the way automatic unfeaturing of older Modrinth versions works + type: platforms.modrinth.ModrinthUnfeatureMode + description: Sets the behavior for unfeaturing older Modrinth versions. + default: subset required: false - default: ${undefined} modrinth-token: - description: A valid token for the Modrinth API + type: utils.security.SecureString + description: Your Modrinth API token. required: false default: ${undefined} curseforge-id: - description: The ID of the CurseForge project to upload to + type: string + description: The unique identifier of your CurseForge project. required: false default: ${undefined} curseforge-token: - description: A valid token for the CurseForge API + type: utils.security.SecureString + description: Your CurseForge API token. required: false default: ${undefined} github-tag: - description: The tag name of the release to upload assets to + type: string + description: The tag name for the release where assets will be uploaded. required: false default: ${undefined} github-generate-changelog: - description: Indicates whether to automatically generate the changelog for this - release. If changelog is specified, it will be pre-pended to the - automatically generated notes. Unused if the GitHub Release already exists + type: boolean + description: Set to true to generate a changelog automatically for this release; + false otherwise. Ignored if the GitHub Release already exists. required: false default: ${undefined} github-draft: - description: true to create a draft (unpublished) release, false to create a - published one. Unused if the GitHub Release already exists + type: boolean + description: Set to true to create a draft release; false otherwise. Ignored if + the GitHub Release already exists. required: false default: ${undefined} github-prerelease: - description: true to identify the release as a prerelease, false to identify the - release as a full release. Unused if the GitHub Release already exists + type: boolean + description: Set to true to mark the release as a prerelease; false otherwise. + Ignored if the GitHub Release already exists. required: false default: ${undefined} github-commitish: - description: Specifies the commitish value that determines where the Git tag is - created from. Can be any branch or commit SHA. Unused if the Git tag - already exists + type: string + description: Defines the commitish value that determines where the Git tag is + created from. Can be any branch or commit SHA. Ignored if the Git tag + already exists. required: false default: ${undefined} github-discussion: - description: If specified, a discussion of the specified category is created and - linked to the release. Unused if the GitHub Release already exists + type: string + description: If specified, creates and links a discussion of the specified + **existing** category to the release. Ignored if the GitHub Release + already exists. required: false default: ${undefined} github-token: - description: A valid token for the GitHub API + type: utils.security.SecureString + description: Your GitHub API token. required: false default: ${undefined} files: - description: A glob of the files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + description: An array of globs determining which files to upload. + default: | + build/libs/!(*-@(dev|sources|javadoc)).jar + build/libs/*-@(dev|sources|javadoc).jar required: false - default: ${undefined} files-primary: - description: A glob of the primary files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: files + description: A glob determining the primary files to upload. + deprecationMessage: Please, use 'files' instead. required: false default: ${undefined} files-secondary: - description: A glob of the secondary files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: void + description: A glob determining the secondary files to upload. + deprecationMessage: Please, use 'files' instead. required: false default: ${undefined} name: - description: The name of the version + type: string + description: The name of the version. required: false default: ${undefined} version: - description: The version number + type: string + description: The version number. required: false default: ${undefined} version-type: - description: The type of the release - alpha, beta, or release + type: utils.versioning.VersionType + description: The version type - alpha, beta, or release. required: false default: ${undefined} changelog: - description: The changelog for this version + type: string + description: The changelog for this version. required: false default: ${undefined} changelog-file: - description: A glob of the changelog file + type: string;utils/io/file-info->{readAllText} + redirect: changelog + description: A glob pointing to the changelog file. required: false default: ${undefined} loaders: - description: A list of supported mod loaders + type: string[]?separator=/\s%2B/ + description: An array of supported mod loaders. required: false default: ${undefined} game-versions: - description: A list of supported Minecraft versions + type: string[] + description: An array of supported Minecraft versions. required: false default: ${undefined} dependencies: - description: A list of dependencies + type: dependencies.Dependency[] + description: An array of dependencies required by your project. required: false default: ${undefined} version-resolver: - description: Determines the way automatic game-versions resolvement works + type: games.GameVersionFilter:fromVersionResolver + redirect: game-version-filter + description: Controls the method used to automatically resolve game versions. + deprecationMessage: Please, use 'game-version-filter' instead. required: false default: ${undefined} + game-version-filter: + type: games.GameVersionFilter + description: Controls the method used to filter game versions. + default: releases | min-major | min-minor + required: false java: - description: A list of supported Java versions + type: utils.java.JavaVersion[] + description: An array of Java versions compatible with your project. required: false default: ${undefined} retry-attempts: - description: The maximum number of attempts to publish assets + description: Defines the maximum number of asset publishing attempts. + type: number default: 2 required: false retry-delay: - description: Time delay between attempts to publish assets (in milliseconds) + description: Specifies the delay (in milliseconds) between asset publishing attempts. + type: number default: 10000 required: false fail-mode: - description: Determines how errors that occur during mod publishing process are handled + type: utils.errors.FailMode + description: Controls how the action responds to errors during the mod + publishing process. + default: fail required: false - default: ${undefined} modrinth-files: - description: A glob of the files to upload - required: false - default: ${undefined} - modrinth-files-primary: - description: A glob of the primary files to upload - required: false - default: ${undefined} - modrinth-files-secondary: - description: A glob of the secondary files to upload - required: false - default: ${undefined} - modrinth-name: - description: The name of the version - required: false - default: ${undefined} - modrinth-version: - description: The version number - required: false - default: ${undefined} - modrinth-version-type: - description: The type of the release - alpha, beta, or release - required: false - default: ${undefined} - modrinth-changelog: - description: The changelog for this version - required: false - default: ${undefined} - modrinth-changelog-file: - description: A glob of the changelog file - required: false - default: ${undefined} - modrinth-loaders: - description: A list of supported mod loaders - required: false - default: ${undefined} - modrinth-game-versions: - description: A list of supported Minecraft versions - required: false - default: ${undefined} - modrinth-dependencies: - description: A list of dependencies - required: false - default: ${undefined} - modrinth-version-resolver: - description: Determines the way automatic game-versions resolvement works - required: false - default: ${undefined} - modrinth-java: - description: A list of supported Java versions - required: false - default: ${undefined} - modrinth-retry-attempts: - description: The maximum number of attempts to publish assets + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + description: An array of globs determining which files to upload. default: ${undefined} required: false - modrinth-retry-delay: - description: Time delay between attempts to publish assets (in milliseconds) - default: ${undefined} - required: false - modrinth-fail-mode: - description: Determines how errors that occur during mod publishing process are handled - required: false - default: ${undefined} curseforge-files: - description: A glob of the files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + description: An array of globs determining which files to upload. + default: ${undefined} + required: false + github-files: + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + description: An array of globs determining which files to upload. + default: ${undefined} + required: false + modrinth-files-primary: + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: modrinth-files + description: A glob determining the primary files to upload. + deprecationMessage: Please, use 'files' instead. required: false default: ${undefined} curseforge-files-primary: - description: A glob of the primary files to upload - required: false - default: ${undefined} - curseforge-files-secondary: - description: A glob of the secondary files to upload - required: false - default: ${undefined} - curseforge-name: - description: The name of the version - required: false - default: ${undefined} - curseforge-version: - description: The version number - required: false - default: ${undefined} - curseforge-version-type: - description: The type of the release - alpha, beta, or release - required: false - default: ${undefined} - curseforge-changelog: - description: The changelog for this version - required: false - default: ${undefined} - curseforge-changelog-file: - description: A glob of the changelog file - required: false - default: ${undefined} - curseforge-loaders: - description: A list of supported mod loaders - required: false - default: ${undefined} - curseforge-game-versions: - description: A list of supported Minecraft versions - required: false - default: ${undefined} - curseforge-dependencies: - description: A list of dependencies - required: false - default: ${undefined} - curseforge-version-resolver: - description: Determines the way automatic game-versions resolvement works - required: false - default: ${undefined} - curseforge-java: - description: A list of supported Java versions - required: false - default: ${undefined} - curseforge-retry-attempts: - description: The maximum number of attempts to publish assets - default: ${undefined} - required: false - curseforge-retry-delay: - description: Time delay between attempts to publish assets (in milliseconds) - default: ${undefined} - required: false - curseforge-fail-mode: - description: Determines how errors that occur during mod publishing process are handled - required: false - default: ${undefined} - github-files: - description: A glob of the files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: curseforge-files + description: A glob determining the primary files to upload. + deprecationMessage: Please, use 'files' instead. required: false default: ${undefined} github-files-primary: - description: A glob of the primary files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: github-files + description: A glob determining the primary files to upload. + deprecationMessage: Please, use 'files' instead. + required: false + default: ${undefined} + modrinth-files-secondary: + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: modrinth-void + description: A glob determining the secondary files to upload. + deprecationMessage: Please, use 'files' instead. + required: false + default: ${undefined} + curseforge-files-secondary: + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: curseforge-void + description: A glob determining the secondary files to upload. + deprecationMessage: Please, use 'files' instead. required: false default: ${undefined} github-files-secondary: - description: A glob of the secondary files to upload + type: utils.io.FileInfo[]:{findFiles}?processSeparately=false + redirect: github-void + description: A glob determining the secondary files to upload. + deprecationMessage: Please, use 'files' instead. + required: false + default: ${undefined} + modrinth-name: + type: string + description: The name of the version. + required: false + default: ${undefined} + curseforge-name: + type: string + description: The name of the version. required: false default: ${undefined} github-name: - description: The name of the version + type: string + description: The name of the version. + required: false + default: ${undefined} + modrinth-version: + type: string + description: The version number. + required: false + default: ${undefined} + curseforge-version: + type: string + description: The version number. required: false default: ${undefined} github-version: - description: The version number + type: string + description: The version number. + required: false + default: ${undefined} + modrinth-version-type: + type: utils.versioning.VersionType + description: The version type - alpha, beta, or release. + required: false + default: ${undefined} + curseforge-version-type: + type: utils.versioning.VersionType + description: The version type - alpha, beta, or release. required: false default: ${undefined} github-version-type: - description: The type of the release - alpha, beta, or release + type: utils.versioning.VersionType + description: The version type - alpha, beta, or release. + required: false + default: ${undefined} + modrinth-changelog: + type: string + description: The changelog for this version. + required: false + default: ${undefined} + curseforge-changelog: + type: string + description: The changelog for this version. required: false default: ${undefined} github-changelog: - description: The changelog for this version + type: string + description: The changelog for this version. + required: false + default: ${undefined} + modrinth-changelog-file: + type: string;utils/io/file-info->{readAllText} + redirect: modrinth-changelog + description: A glob pointing to the changelog file. + required: false + default: ${undefined} + curseforge-changelog-file: + type: string;utils/io/file-info->{readAllText} + redirect: curseforge-changelog + description: A glob pointing to the changelog file. required: false default: ${undefined} github-changelog-file: - description: A glob of the changelog file + type: string;utils/io/file-info->{readAllText} + redirect: github-changelog + description: A glob pointing to the changelog file. + required: false + default: ${undefined} + modrinth-loaders: + type: string[]?separator=/\s%2B/ + description: An array of supported mod loaders. + required: false + default: ${undefined} + curseforge-loaders: + type: string[]?separator=/\s%2B/ + description: An array of supported mod loaders. required: false default: ${undefined} github-loaders: - description: A list of supported mod loaders + type: string[]?separator=/\s%2B/ + description: An array of supported mod loaders. + required: false + default: ${undefined} + modrinth-game-versions: + type: string[] + description: An array of supported Minecraft versions. + required: false + default: ${undefined} + curseforge-game-versions: + type: string[] + description: An array of supported Minecraft versions. required: false default: ${undefined} github-game-versions: - description: A list of supported Minecraft versions + type: string[] + description: An array of supported Minecraft versions. + required: false + default: ${undefined} + modrinth-dependencies: + type: dependencies.Dependency[] + description: An array of dependencies required by your project. + required: false + default: ${undefined} + curseforge-dependencies: + type: dependencies.Dependency[] + description: An array of dependencies required by your project. required: false default: ${undefined} github-dependencies: - description: A list of dependencies + type: dependencies.Dependency[] + description: An array of dependencies required by your project. + required: false + default: ${undefined} + modrinth-version-resolver: + type: games.GameVersionFilter:fromVersionResolver + redirect: modrinth-game-version-filter + description: Controls the method used to automatically resolve game versions. + deprecationMessage: Please, use 'game-version-filter' instead. + required: false + default: ${undefined} + curseforge-version-resolver: + type: games.GameVersionFilter:fromVersionResolver + redirect: curseforge-game-version-filter + description: Controls the method used to automatically resolve game versions. + deprecationMessage: Please, use 'game-version-filter' instead. required: false default: ${undefined} github-version-resolver: - description: Determines the way automatic game-versions resolvement works + type: games.GameVersionFilter:fromVersionResolver + redirect: github-game-version-filter + description: Controls the method used to automatically resolve game versions. + deprecationMessage: Please, use 'game-version-filter' instead. + required: false + default: ${undefined} + modrinth-game-version-filter: + type: games.GameVersionFilter + description: Controls the method used to filter game versions. + default: ${undefined} + required: false + curseforge-game-version-filter: + type: games.GameVersionFilter + description: Controls the method used to filter game versions. + default: ${undefined} + required: false + github-game-version-filter: + type: games.GameVersionFilter + description: Controls the method used to filter game versions. + default: ${undefined} + required: false + modrinth-java: + type: utils.java.JavaVersion[] + description: An array of Java versions compatible with your project. + required: false + default: ${undefined} + curseforge-java: + type: utils.java.JavaVersion[] + description: An array of Java versions compatible with your project. required: false default: ${undefined} github-java: - description: A list of supported Java versions + type: utils.java.JavaVersion[] + description: An array of Java versions compatible with your project. required: false default: ${undefined} + modrinth-retry-attempts: + description: Defines the maximum number of asset publishing attempts. + type: number + default: ${undefined} + required: false + curseforge-retry-attempts: + description: Defines the maximum number of asset publishing attempts. + type: number + default: ${undefined} + required: false github-retry-attempts: - description: The maximum number of attempts to publish assets + description: Defines the maximum number of asset publishing attempts. + type: number + default: ${undefined} + required: false + modrinth-retry-delay: + description: Specifies the delay (in milliseconds) between asset publishing attempts. + type: number + default: ${undefined} + required: false + curseforge-retry-delay: + description: Specifies the delay (in milliseconds) between asset publishing attempts. + type: number default: ${undefined} required: false github-retry-delay: - description: Time delay between attempts to publish assets (in milliseconds) + description: Specifies the delay (in milliseconds) between asset publishing attempts. + type: number + default: ${undefined} + required: false + modrinth-fail-mode: + type: utils.errors.FailMode + description: Controls how the action responds to errors during the mod + publishing process. + default: ${undefined} + required: false + curseforge-fail-mode: + type: utils.errors.FailMode + description: Controls how the action responds to errors during the mod + publishing process. default: ${undefined} required: false github-fail-mode: - description: Determines how errors that occur during mod publishing process are handled - required: false + type: utils.errors.FailMode + description: Controls how the action responds to errors during the mod + publishing process. default: ${undefined} + required: false +outputs: + modrinth-id: + type: string + description: The unique identifier of your Modrinth project. + modrinth-version: + type: string + description: The unique identifier of the version published on Modrinth by this action. + modrinth-url: + type: string + description: The URL directing to the newly published version on Modrinth. + modrinth-files: + type: platforms.UploadedFile[] + description: Array of objects, each containing details about the files published + for the new version on Modrinth, such as file `name`, `id`, and download + `url`. + curseforge-id: + type: number + description: The unique identifier of your CurseForge project. + curseforge-version: + type: number + description: The unique identifier of the version published on CurseForge by + this action. + curseforge-url: + type: string + description: The URL directing to the newly published version on CurseForge. + curseforge-files: + type: platforms.UploadedFile[] + description: Array of objects, each containing details about the files published + for the new version on CurseForge, such as file `name`, `id`, and download + `url`. + github-repo: + type: string + description: The full repository name on GitHub, formatted as 'username/repository'. + github-tag: + type: string + description: The Git tag associated with the new or updated release published on GitHub. + github-url: + type: string + description: The URL directing to the newly published version on GitHub. + github-files: + type: platforms.UploadedFile[] + description: Array of objects, each containing details about the files published + for the new version on GitHub, such as file `name`, `id`, and download + `url`. runs: - using: node12 + using: node16 main: dist/index.js diff --git a/src/action.ts b/src/action.ts new file mode 100644 index 0000000..7b4031f --- /dev/null +++ b/src/action.ts @@ -0,0 +1,480 @@ +/* ************************************************************************ */ +/* WARNING: AUTO-GENERATED FILE - DO NOT EDIT! */ +/* */ +/* Please be advised that this is an auto-generated file and should NOT be */ +/* modified. Any changes made to this file WILL BE OVERWRITTEN. */ +/* */ +/* To make changes to the contents of this file, please modify the */ +/* action.template.yml file instead. This will ensure that your changes are */ +/* properly reflected in the auto-generated file. */ +/* ************************************************************************ */ +/* eslint-disable */ +import { ModrinthUnfeatureMode } from "@/platforms/modrinth/modrinth-unfeature-mode"; +import { SecureString } from "@/utils/security/secure-string"; +import { FileInfo } from "@/utils/io/file-info"; +import { VersionType } from "@/utils/versioning/version-type"; +import { Dependency } from "@/dependencies/dependency"; +import { GameVersionFilter } from "@/games/game-version-filter"; +import { JavaVersion } from "@/utils/java/java-version"; +import { FailMode } from "@/utils/errors/fail-mode"; +import { UploadedFile } from "@/platforms/uploaded-file"; + +/** + * Your one-stop GitHub Action for seamless Minecraft project publication across various platforms. + */ +export const ACTION_NAME = "mc-publish"; + +/** + * The input parameters for the action. + */ +export interface McPublishInput { + /** + * Options used to publish Minecraft projects to Modrinth. + */ + modrinth?: { + /** + * The unique identifier of your Modrinth project. + */ + id?: string; + + /** + * Set to true to feature the version on Modrinth; false otherwise. + */ + featured?: boolean; + + /** + * Sets the behavior for unfeaturing older Modrinth versions. + */ + unfeatureMode?: ModrinthUnfeatureMode; + + /** + * Your Modrinth API token. + */ + token?: SecureString; + + /** + * An array of globs determining which files to upload. + */ + files?: FileInfo[]; + + /** + * The name of the version. + */ + name?: string; + + /** + * The version number. + */ + version?: string; + + /** + * The version type - alpha, beta, or release. + */ + versionType?: VersionType; + + /** + * The changelog for this version. + */ + changelog?: string; + + /** + * An array of supported mod loaders. + */ + loaders?: string[]; + + /** + * An array of supported Minecraft versions. + */ + gameVersions?: string[]; + + /** + * An array of dependencies required by your project. + */ + dependencies?: Dependency[]; + + /** + * Controls the method used to filter game versions. + */ + gameVersionFilter?: GameVersionFilter; + + /** + * An array of Java versions compatible with your project. + */ + java?: JavaVersion[]; + + /** + * Defines the maximum number of asset publishing attempts. + */ + retryAttempts?: number; + + /** + * Specifies the delay (in milliseconds) between asset publishing attempts. + */ + retryDelay?: number; + + /** + * Controls how the action responds to errors during the mod publishing process. + */ + failMode?: FailMode; + }; + + /** + * Options used to publish Minecraft projects to CurseForge. + */ + curseforge?: { + /** + * The unique identifier of your CurseForge project. + */ + id?: string; + + /** + * Your CurseForge API token. + */ + token?: SecureString; + + /** + * An array of globs determining which files to upload. + */ + files?: FileInfo[]; + + /** + * The name of the version. + */ + name?: string; + + /** + * The version number. + */ + version?: string; + + /** + * The version type - alpha, beta, or release. + */ + versionType?: VersionType; + + /** + * The changelog for this version. + */ + changelog?: string; + + /** + * An array of supported mod loaders. + */ + loaders?: string[]; + + /** + * An array of supported Minecraft versions. + */ + gameVersions?: string[]; + + /** + * An array of dependencies required by your project. + */ + dependencies?: Dependency[]; + + /** + * Controls the method used to filter game versions. + */ + gameVersionFilter?: GameVersionFilter; + + /** + * An array of Java versions compatible with your project. + */ + java?: JavaVersion[]; + + /** + * Defines the maximum number of asset publishing attempts. + */ + retryAttempts?: number; + + /** + * Specifies the delay (in milliseconds) between asset publishing attempts. + */ + retryDelay?: number; + + /** + * Controls how the action responds to errors during the mod publishing process. + */ + failMode?: FailMode; + }; + + /** + * Options used to publish Minecraft projects to GitHub. + */ + github?: { + /** + * The tag name for the release where assets will be uploaded. + */ + tag?: string; + + /** + * Set to true to generate a changelog automatically for this release; false otherwise. Ignored if the GitHub Release already exists. + */ + generateChangelog?: boolean; + + /** + * Set to true to create a draft release; false otherwise. Ignored if the GitHub Release already exists. + */ + draft?: boolean; + + /** + * Set to true to mark the release as a prerelease; false otherwise. Ignored if the GitHub Release already exists. + */ + prerelease?: boolean; + + /** + * Defines the commitish value that determines where the Git tag is created from. Can be any branch or commit SHA. Ignored if the Git tag already exists. + */ + commitish?: string; + + /** + * If specified, creates and links a discussion of the specified **existing** category to the release. Ignored if the GitHub Release already exists. + */ + discussion?: string; + + /** + * Your GitHub API token. + */ + token?: SecureString; + + /** + * An array of globs determining which files to upload. + */ + files?: FileInfo[]; + + /** + * The name of the version. + */ + name?: string; + + /** + * The version number. + */ + version?: string; + + /** + * The version type - alpha, beta, or release. + */ + versionType?: VersionType; + + /** + * The changelog for this version. + */ + changelog?: string; + + /** + * An array of supported mod loaders. + */ + loaders?: string[]; + + /** + * An array of supported Minecraft versions. + */ + gameVersions?: string[]; + + /** + * An array of dependencies required by your project. + */ + dependencies?: Dependency[]; + + /** + * Controls the method used to filter game versions. + */ + gameVersionFilter?: GameVersionFilter; + + /** + * An array of Java versions compatible with your project. + */ + java?: JavaVersion[]; + + /** + * Defines the maximum number of asset publishing attempts. + */ + retryAttempts?: number; + + /** + * Specifies the delay (in milliseconds) between asset publishing attempts. + */ + retryDelay?: number; + + /** + * Controls how the action responds to errors during the mod publishing process. + */ + failMode?: FailMode; + }; + + /** + * An array of globs determining which files to upload. + */ + files?: FileInfo[]; + + /** + * The name of the version. + */ + name?: string; + + /** + * The version number. + */ + version?: string; + + /** + * The version type - alpha, beta, or release. + */ + versionType?: VersionType; + + /** + * The changelog for this version. + */ + changelog?: string; + + /** + * An array of supported mod loaders. + */ + loaders?: string[]; + + /** + * An array of supported Minecraft versions. + */ + gameVersions?: string[]; + + /** + * An array of dependencies required by your project. + */ + dependencies?: Dependency[]; + + /** + * Controls the method used to filter game versions. + */ + gameVersionFilter?: GameVersionFilter; + + /** + * An array of Java versions compatible with your project. + */ + java?: JavaVersion[]; + + /** + * Defines the maximum number of asset publishing attempts. + */ + retryAttempts?: number; + + /** + * Specifies the delay (in milliseconds) between asset publishing attempts. + */ + retryDelay?: number; + + /** + * Controls how the action responds to errors during the mod publishing process. + */ + failMode?: FailMode; +}; + +/** + * Options used to publish Minecraft projects to Modrinth. + */ +export type ModrinthUploadRequest = McPublishInput["modrinth"]; + +/** + * Options used to publish Minecraft projects to CurseForge. + */ +export type CurseForgeUploadRequest = McPublishInput["curseforge"]; + +/** + * Options used to publish Minecraft projects to GitHub. + */ +export type GitHubUploadRequest = McPublishInput["github"]; + +/** + * The output parameters provided by the action. + */ +export interface McPublishOutput { + /** + * Report detailing the status of the project published on Modrinth. + */ + modrinth: { + /** + * The unique identifier of your Modrinth project. + */ + id: string; + + /** + * The unique identifier of the version published on Modrinth by this action. + */ + version: string; + + /** + * The URL directing to the newly published version on Modrinth. + */ + url: string; + + /** + * Array of objects, each containing details about the files published for the new version on Modrinth, such as file `name`, `id`, and download `url`. + */ + files: UploadedFile[]; + }; + + /** + * Report detailing the status of the project published on CurseForge. + */ + curseforge: { + /** + * The unique identifier of your CurseForge project. + */ + id: number; + + /** + * The unique identifier of the version published on CurseForge by this action. + */ + version: number; + + /** + * The URL directing to the newly published version on CurseForge. + */ + url: string; + + /** + * Array of objects, each containing details about the files published for the new version on CurseForge, such as file `name`, `id`, and download `url`. + */ + files: UploadedFile[]; + }; + + /** + * Report detailing the status of the project published on GitHub. + */ + github: { + /** + * The full repository name on GitHub, formatted as 'username/repository'. + */ + repo: string; + + /** + * The Git tag associated with the new or updated release published on GitHub. + */ + tag: string; + + /** + * The URL directing to the newly published version on GitHub. + */ + url: string; + + /** + * Array of objects, each containing details about the files published for the new version on GitHub, such as file `name`, `id`, and download `url`. + */ + files: UploadedFile[]; + }; +}; + +/** + * Report detailing the status of the project published on Modrinth. + */ +export type ModrinthUploadReport = McPublishOutput["modrinth"]; + +/** + * Report detailing the status of the project published on CurseForge. + */ +export type CurseForgeUploadReport = McPublishOutput["curseforge"]; + +/** + * Report detailing the status of the project published on GitHub. + */ +export type GitHubUploadReport = McPublishOutput["github"]; diff --git a/src/utils/reflection/module-loader.g.ts b/src/utils/reflection/module-loader.g.ts index e5ff381..c41d083 100644 --- a/src/utils/reflection/module-loader.g.ts +++ b/src/utils/reflection/module-loader.g.ts @@ -1,3 +1,33 @@ +/* ************************************************************************ */ +/* WARNING: AUTO-GENERATED FILE - DO NOT EDIT! */ +/* */ +/* Please be advised that this is an auto-generated file and should NOT be */ +/* modified. Any changes made to this file WILL BE OVERWRITTEN. */ +/* */ +/* To make changes to the contents of this file, please modify the */ +/* action.template.yml file instead. This will ensure that your changes are */ +/* properly reflected in the auto-generated file. */ +/* ************************************************************************ */ +/* eslint-disable */ +import * as _08266313cf301b8949a6cedcaa47a6c3e43934d9 from "@/platforms/modrinth/modrinth-unfeature-mode"; +import * as _d55dccbfda6518ce241204ddb1a0e427ce862b40 from "@/utils/security/secure-string"; +import * as _52f2d2846827ca15dbb2bc99e7396358640a305c from "@/utils/io/file-info"; +import * as _cece1ed3512bc9bb742f3472360aea9d482df4ac from "@/utils/versioning/version-type"; +import * as _61ccbb54c5e0251e3bf7013ca2e222f64c571674 from "@/dependencies/dependency"; +import * as _12c3001b56ab71951504c91b71926343a997a6c2 from "@/games/game-version-filter"; +import * as _9f1d8775cb694c12b0f9f4e026b96daf7eca20c3 from "@/utils/java/java-version"; +import * as _78525bc7f22a643e04dd785d89dd01e5c9c2f812 from "@/utils/errors/fail-mode"; +import * as _6f74c0ca5e9e22747c834103f851654db4509ca8 from "@/platforms/uploaded-file"; + export const ACTION_MODULE_LOADER = (path: string): Promise> => { - return Promise.resolve(path ? undefined : null); + if (path === "platforms/modrinth/modrinth-unfeature-mode") return Promise.resolve(_08266313cf301b8949a6cedcaa47a6c3e43934d9); + if (path === "utils/security/secure-string") return Promise.resolve(_d55dccbfda6518ce241204ddb1a0e427ce862b40); + if (path === "utils/io/file-info") return Promise.resolve(_52f2d2846827ca15dbb2bc99e7396358640a305c); + if (path === "utils/versioning/version-type") return Promise.resolve(_cece1ed3512bc9bb742f3472360aea9d482df4ac); + if (path === "dependencies/dependency") return Promise.resolve(_61ccbb54c5e0251e3bf7013ca2e222f64c571674); + if (path === "games/game-version-filter") return Promise.resolve(_12c3001b56ab71951504c91b71926343a997a6c2); + if (path === "utils/java/java-version") return Promise.resolve(_9f1d8775cb694c12b0f9f4e026b96daf7eca20c3); + if (path === "utils/errors/fail-mode") return Promise.resolve(_78525bc7f22a643e04dd785d89dd01e5c9c2f812); + if (path === "platforms/uploaded-file") return Promise.resolve(_6f74c0ca5e9e22747c834103f851654db4509ca8); + return Promise.resolve(undefined); };