diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 0000000..9bd5f10 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,110 @@ +/// + +declare module "minecraft-launcher-core" { + type OS = "windows" | "osx" | "linux"; + + interface IOverrides { + minArgs?: number; + minecraftJar?: string; + versionJson?: string; + directory?: string; + natives?: string; + assetRoot?: string; + libraryRoot?: string; + cwd?: string; + detached?: boolean; + classes?: Array; + maxSockets?: number; + url?: { + meta?: string; + resources?: string; + mavenForge?: string; + defaultRepoForge?: string; + fallbackMaven?: string; + }; + } + + interface ILauncherOptions { + clientPackage?: string; + removePackage?: boolean; + installer?: string; + root: string; + os?: OS; + customLaunchArgs?: Array; + customArgs?: Array; + version: { + number: string; + type: string; + custom?: string; + }; + memory: { + max: string | number; + min: string | number; + }; + forge?: string; + javaPath?: string; + server?: { + host: string; + port: string; + }; + proxy?: { + host: string; + port: string; + username?: string; + password?: string; + }; + timeout?: number; + window?: { + width?: number; + height?: number; + fullscreen?: boolean; + }; + overrides?: IOverrides; + authorization: Promise; + } + + interface IUser { + access_token: string; + client_token: string; + uuid: string; + name: string; + user_properties: Partial; + } + + interface IProfile { + id: number; + name: string; + } + + interface IAuthenticator { + getAuth(username: string, password?: string): Promise; + validate( + access_token: string, + client_token: string + ): Promise>; + refreshAuth( + access_token: string, + client_token: string, + selectedProfile: IProfile + ): Promise; + invalidate( + access_token: string, + client_token: string + ): Promise>; + signOut( + username: string, + password: string + ): Promise>; + changeApiUrl(url: string): void; + } + + import { EventEmitter } from 'events' + import { ChildProcessWithoutNullStreams } from 'child_process' + + export class Client extends EventEmitter { + launch(options: ILauncherOptions): ChildProcessWithoutNullStreams | null; + } + + export const Authenticator: IAuthenticator; + } + \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 93917b9..fd2a9e6 100644 --- a/package-lock.json +++ b/package-lock.json @@ -36,6 +36,12 @@ "integrity": "sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==", "dev": true }, + "@types/node": { + "version": "14.0.27", + "resolved": "https://registry.npmjs.org/@types/node/-/node-14.0.27.tgz", + "integrity": "sha512-kVrqXhbclHNHGu9ztnAwSncIgJv/FaxmzXJvGXNdcCpV1b8u1/Mi6z6m0vwy0LzKeXFTPLH0NzwmoJ3fNCIq0g==", + "dev": true + }, "acorn": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", diff --git a/package.json b/package.json index 633d877..a218825 100644 --- a/package.json +++ b/package.json @@ -10,6 +10,7 @@ "uuid": "^3.3.2" }, "devDependencies": { + "@types/node": "^14.0.27", "eslint": "^6.8.0", "eslint-config-standard": "^14.1.1", "eslint-plugin-import": "^2.20.2",