airship-cli 1.0.1 → 1.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/LICENSE +673 -673
  2. package/README.MD +20 -57
  3. package/out/AirshipTypes.d.ts +4 -4
  4. package/out/AirshipTypes.d.ts.map +1 -1
  5. package/out/cli.d.ts +10 -7
  6. package/out/cli.d.ts.map +1 -1
  7. package/out/cli.js +72 -26
  8. package/out/cli.js.map +1 -1
  9. package/out/commands/CommandTypes.d.ts +1 -0
  10. package/out/commands/CommandTypes.d.ts.map +1 -1
  11. package/out/commands/FetchGame.d.ts.map +1 -1
  12. package/out/commands/FetchGame.js +30 -43
  13. package/out/commands/FetchGame.js.map +1 -1
  14. package/out/commands/FetchProfilePhoto.d.ts +3 -0
  15. package/out/commands/FetchProfilePhoto.d.ts.map +1 -0
  16. package/out/commands/FetchProfilePhoto.js +31 -0
  17. package/out/commands/FetchProfilePhoto.js.map +1 -0
  18. package/out/commands/FetchUser.d.ts.map +1 -1
  19. package/out/commands/FetchUser.js +28 -43
  20. package/out/commands/FetchUser.js.map +1 -1
  21. package/out/commands/FetchUserPhoto.d.ts +3 -0
  22. package/out/commands/FetchUserPhoto.d.ts.map +1 -0
  23. package/out/commands/FetchUserPhoto.js +45 -0
  24. package/out/commands/FetchUserPhoto.js.map +1 -0
  25. package/out/commands/{help.d.ts → Help.d.ts} +1 -1
  26. package/out/commands/Help.d.ts.map +1 -0
  27. package/out/commands/{help.js → Help.js} +4 -3
  28. package/out/commands/Help.js.map +1 -0
  29. package/out/util/TokenManager.d.ts +1 -1
  30. package/out/util/TokenManager.d.ts.map +1 -1
  31. package/out/util/TokenManager.js +21 -5
  32. package/out/util/TokenManager.js.map +1 -1
  33. package/out/util/platform/FetchGame.d.ts +6 -0
  34. package/out/util/platform/FetchGame.d.ts.map +1 -0
  35. package/out/util/platform/FetchGame.js +14 -0
  36. package/out/util/platform/FetchGame.js.map +1 -0
  37. package/out/util/platform/FetchUser.d.ts +6 -0
  38. package/out/util/platform/FetchUser.d.ts.map +1 -0
  39. package/out/util/platform/FetchUser.js +14 -0
  40. package/out/util/platform/FetchUser.js.map +1 -0
  41. package/package.json +4 -2
  42. package/.github/workflows/npm-publish.yml +0 -27
  43. package/out/Types.d.ts +0 -2
  44. package/out/Types.d.ts.map +0 -1
  45. package/out/Types.js +0 -2
  46. package/out/Types.js.map +0 -1
  47. package/out/commands/FetchUser copy.d.ts +0 -3
  48. package/out/commands/FetchUser copy.d.ts.map +0 -1
  49. package/out/commands/FetchUser copy.js +0 -46
  50. package/out/commands/FetchUser copy.js.map +0 -1
  51. package/out/commands/help.d.ts.map +0 -1
  52. package/out/commands/help.js.map +0 -1
  53. package/out/index.d.ts.map +0 -1
  54. package/out/index.js.map +0 -1
  55. package/src/AirshipTypes.ts +0 -63
  56. package/src/cli.ts +0 -49
  57. package/src/commands/CommandTypes.ts +0 -7
  58. package/src/commands/FetchGame.ts +0 -61
  59. package/src/commands/FetchUser.ts +0 -61
  60. package/src/commands/Help.ts +0 -36
  61. package/src/util/Styles.ts +0 -20
  62. package/src/util/TokenManager.ts +0 -20
  63. package/tsconfig.json +0 -42
package/README.MD CHANGED
@@ -1,57 +1,20 @@
1
- # Airship CLI
2
-
3
- [![npm](https://badge.fury.io/js/airship-cli.svg)](https://www.npmjs.com/package/airship-cli)
4
-
5
-
6
-
7
- Give it a try in your own terminal!
8
-
9
- ```sh
10
- npx airship-cli@latest
11
- ```
12
-
13
- # Installation
14
-
15
- <table>
16
- <tr>
17
- <th>npm</th>
18
- <th>yarn</th>
19
- <th>bun</th>
20
- </tr>
21
- <tr>
22
- <td>
23
-
24
- ```sh
25
- npm install airship-cli
26
- ```
27
-
28
- </td>
29
- <td>
30
-
31
- ```sh
32
- yarn add airship-cli
33
- ```
34
-
35
- </td>
36
- <td>
37
-
38
- ```sh
39
- bun add airship-cli
40
- ```
41
-
42
- </td>
43
- </tr>
44
- </table>
45
-
46
- # Usage
47
-
48
- Simply run the command below and you're ready to grab data from the platform API. It's that simple!
49
-
50
- ```sh
51
- airship
52
- ```
53
-
54
- # License
55
-
56
- Copyright (c) 2026 Max McDaniel
57
- Licensed under the GPL 3.0 license.
1
+ # Airship CLI
2
+ Interact with the Airship.gg API from your Terminal!
3
+
4
+ ## How to Use
5
+ Simply install the NPM Package
6
+
7
+ `npm install -g airship-cli`
8
+
9
+ and run the command, `airship`!
10
+
11
+ # Development Stats
12
+ ![Airship CLI - Hackatime Tracker](https://hackatime.hackclub.com/api/v1/badge/U0B7SE5AGTU/Soarin-Games/airship-cli)
13
+ [![NPM Package](https://badge.fury.io/js/airship-cli.svg)](https://www.npmjs.com/package/airship-cli)
14
+
15
+ ![NodeJS](https://img.shields.io/badge/node.js-6DA55F.svg?style=for-the-badge&logo=node.js&logoColor=white)
16
+ ![TypeScript](https://img.shields.io/badge/typescript-%23007ACC.svg?style=for-the-badge&logo=typescript&logoColor=white)
17
+
18
+ # License
19
+
20
+ Copyright (c) 2026 Max McDaniel - Licensed under the GPL 3.0 license.
@@ -7,12 +7,12 @@ export type AirshipUser = {
7
7
  uid: string;
8
8
  username: string;
9
9
  usernameLower: string;
10
- statusText: string;
11
- profileImageId: string;
12
- lastOnlineTime: string;
10
+ statusText?: string;
11
+ profileImageId?: string;
12
+ lastOnlineTime?: string;
13
13
  };
14
14
  };
15
- export type AirshipUserError = {
15
+ export type AirshipError = {
16
16
  message: string[];
17
17
  error: string;
18
18
  statusCode: number;
@@ -1 +1 @@
1
- {"version":3,"file":"AirshipTypes.d.ts","sourceRoot":"","sources":["../src/AirshipTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAA;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,cAAc,EAAE,MAAM,CAAA;KACzB,CAAA;CACJ,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAA;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,QAAQ,GAAG;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAA;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QAC9C,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,mBAAmB,CAAA;KACpC,CAAA;CACJ,CAAC"}
1
+ {"version":3,"file":"AirshipTypes.d.ts","sourceRoot":"","sources":["../src/AirshipTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG;IACtB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,CAAA;CACf,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE;QACF,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;QACjB,aAAa,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAA;KAC1B,CAAA;CACJ,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACvB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAA;CACrB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,cAAc,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,OAAO,CAAA;CACvB,CAAA;AAED,KAAK,QAAQ,GAAG;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,GAAG,EAAE,MAAM,CAAA;CACd,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACtB,IAAI,EAAE;QACF,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;QACpB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,QAAQ,GAAG,UAAU,GAAG,SAAS,CAAC;QAC9C,iBAAiB,EAAE,MAAM,CAAC;QAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QACpC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,KAAK,EAAE,QAAQ,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,CAAC;QACjB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,YAAY,EAAE,mBAAmB,CAAA;KACpC,CAAA;CACJ,CAAC"}
package/out/cli.d.ts CHANGED
@@ -1,9 +1,12 @@
1
1
  #!/usr/bin/env node
2
- export declare const commandMap: {
3
- Help: import("./commands/CommandTypes.js").CLICommand;
4
- "Fetch User": import("./commands/CommandTypes.js").CLICommand;
5
- "Fetch Game": import("./commands/CommandTypes.js").CLICommand;
6
- };
7
- export declare const commandList: string[];
8
- export declare function StartTool(): void;
2
+ import type { CLICommand } from './commands/CommandTypes.js';
3
+ interface CommandMap {
4
+ [key: string]: {
5
+ [key: string]: CLICommand;
6
+ };
7
+ }
8
+ export declare const commandMap: CommandMap;
9
+ export declare function StartTool(): Promise<void>;
10
+ export declare function RestartTool(): Promise<void>;
11
+ export {};
9
12
  //# sourceMappingURL=cli.d.ts.map
package/out/cli.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAUA,eAAO,MAAM,UAAU;;;;CAItB,CAAC;AAEF,eAAO,MAAM,WAAW,UAIvB,CAAC;AAEF,wBAAgB,SAAS,SAMxB"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,UAAU,UAAU;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;KAC5B,CAAA;CACJ;AAGD,eAAO,MAAM,UAAU,EAAE,UAWxB,CAAC;AAEF,wBAAsB,SAAS,kBAK9B;AAED,wBAAsB,WAAW,kBAYhC"}
package/out/cli.js CHANGED
@@ -1,44 +1,90 @@
1
1
  #!/usr/bin/env node
2
- import { input, select } from '@inquirer/prompts';
2
+ import { confirm, input, select } from '@inquirer/prompts';
3
3
  import { PrintHeader, PrintError, PrintTitle } from './util/Styles.js';
4
4
  import { AirshipToken } from './util/TokenManager.js';
5
- import { isInt16Array } from 'node:util/types';
6
- import { helpCommand } from './commands/help.js';
5
+ import { helpCommand } from './commands/Help.js';
7
6
  import { fetchUserCommand } from './commands/FetchUser.js';
8
7
  import { fetchGameCommand } from './commands/FetchGame.js';
8
+ import { setTimeout } from 'node:timers/promises';
9
+ import { FetchProfilePhotoCommand } from './commands/FetchProfilePhoto.js';
10
+ ;
11
+ // TODO: Make default category
9
12
  export const commandMap = {
10
- "Help": helpCommand,
11
- "Fetch User": fetchUserCommand,
12
- "Fetch Game": fetchGameCommand
13
+ /* "default": {
14
+ "Help": helpCommand
15
+ }, */
16
+ "Users": {
17
+ "Fetch User": fetchUserCommand,
18
+ "Fetch Profile Photo": FetchProfilePhotoCommand
19
+ },
20
+ "Games": {
21
+ "Fetch Game": fetchGameCommand
22
+ }
13
23
  };
14
- export const commandList = [
15
- "Help",
16
- "Fetch User",
17
- "Fetch Game"
18
- ];
19
- export function StartTool() {
24
+ export async function StartTool() {
20
25
  PrintTitle();
21
- setTimeout(() => {
22
- PromptCommand();
23
- }, 250);
26
+ await setTimeout(250);
27
+ PromptCommand();
28
+ }
29
+ ;
30
+ export async function RestartTool() {
31
+ try {
32
+ await setTimeout(800);
33
+ const restartTool = await confirm({ message: "Would you like to anything else?" });
34
+ if (restartTool) {
35
+ StartTool();
36
+ }
37
+ ;
38
+ }
39
+ catch (err) {
40
+ console.error(err);
41
+ process.exit(0);
42
+ }
43
+ ;
24
44
  }
25
45
  ;
26
- StartTool();
27
46
  async function PromptCommand() {
28
- const answer = await select({ message: "What would you like to do?", choices: commandList });
29
- for (let command of Object.entries(commandMap)) {
30
- const cmdName = command[0];
31
- const cmdFunction = command[1];
32
- if (answer === cmdName) {
33
- PrintTitle();
34
- setTimeout(() => {
35
- cmdFunction.execute();
36
- }, 250);
37
- return;
47
+ try {
48
+ const categoryAnswer = await select({ message: "Select a command category:", choices: Object.keys(commandMap) });
49
+ const cmdCategories = Object.entries(commandMap);
50
+ for (let [categoryName, commands] of cmdCategories) {
51
+ // TODO: Make back command
52
+ if (categoryAnswer === categoryName) {
53
+ const cmdAnswer = await select({ message: "What would you like to do?", choices: Object.keys(commands) });
54
+ HandleCommand(commands[cmdAnswer], cmdAnswer);
55
+ }
56
+ ;
38
57
  }
39
58
  ;
40
59
  }
60
+ catch (err) {
61
+ console.error(err);
62
+ process.exit(0);
63
+ }
41
64
  ;
42
65
  }
43
66
  ;
67
+ async function HandleCommand(command, answer) {
68
+ const cmdName = command.displayName;
69
+ const requiresToken = command.requiresToken;
70
+ const cmdFunction = command;
71
+ if (answer === cmdName) {
72
+ if (AirshipToken === undefined && requiresToken) {
73
+ PrintError("An authenticated Airship installation is required to run this command!");
74
+ process.exit(1);
75
+ }
76
+ ;
77
+ await setTimeout(250);
78
+ cmdFunction.execute();
79
+ return;
80
+ }
81
+ ;
82
+ }
83
+ ;
84
+ // process.on("exit", (signal) => {
85
+ // if (signal === 0) {
86
+ // console.clear();
87
+ // };
88
+ // });
89
+ StartTool();
44
90
  //# sourceMappingURL=cli.js.map
package/out/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,MAAM,CAAC,MAAM,UAAU,GAAG;IACtB,MAAM,EAAE,WAAW;IACnB,YAAY,EAAE,gBAAgB;IAC9B,YAAY,EAAE,gBAAgB;CACjC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG;IACvB,MAAM;IACN,YAAY;IACZ,YAAY;CACf,CAAC;AAEF,MAAM,UAAU,SAAS;IACrB,UAAU,EAAE,CAAC;IAEb,UAAU,CAAC,GAAG,EAAE;QACZ,aAAa,EAAE,CAAC;IACpB,CAAC,EAAE,GAAG,CAAC,CAAC;AACZ,CAAC;AAAA,CAAC;AAEF,SAAS,EAAE,CAAC;AAEZ,KAAK,UAAU,aAAa;IACxB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,WAAW,EAAC,CAAC,CAAC;IAE5F,KAAK,IAAI,OAAO,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7C,MAAM,OAAO,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAC3B,MAAM,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;QAE/B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;YACrB,UAAU,EAAE,CAAC;YAEb,UAAU,CAAC,GAAG,EAAE;gBACZ,WAAW,CAAC,OAAO,EAAE,CAAC;YAC1B,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,OAAO;QACX,CAAC;QAAA,CAAC;IACN,CAAC;IAAA,CAAC;AACN,CAAC;AAAA,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,6 @@
1
1
  export type CLICommand = {
2
2
  name: string;
3
+ displayName: string;
3
4
  description: string;
4
5
  usage: string;
5
6
  requiresToken: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"CommandTypes.d.ts","sourceRoot":"","sources":["../../src/commands/CommandTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,CAAC"}
1
+ {"version":3,"file":"CommandTypes.d.ts","sourceRoot":"","sources":["../../src/commands/CommandTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,IAAI,CAAA;CACtB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchGame.d.ts","sourceRoot":"","sources":["../../src/commands/FetchGame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD,eAAO,MAAM,gBAAgB,EAAE,UAgD9B,CAAC"}
1
+ {"version":3,"file":"FetchGame.d.ts","sourceRoot":"","sources":["../../src/commands/FetchGame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAQpD,eAAO,MAAM,gBAAgB,EAAE,UAsC9B,CAAC"}
@@ -1,55 +1,42 @@
1
- import { input, select, confirm } from '@inquirer/prompts';
2
- import { PrintHeader, PrintError, PrintTitle } from '../util/Styles.js';
3
- import { AirshipToken } from '../util/TokenManager.js';
4
- import { StartTool } from "../cli.js";
5
- const apiMap = {
6
- "Slug": "https://api.airship.gg/content/games/slug/",
7
- "GameId": "https://api.airship.gg/content/games/game-id/"
8
- };
1
+ import { input, select } from '@inquirer/prompts';
2
+ import { RestartTool } from "../cli.js";
3
+ import { FetchGame, gameApiMap } from "../util/platform/FetchGame.js";
4
+ import { PrintError } from "../util/Styles.js";
5
+ import chalk from "chalk";
9
6
  export const fetchGameCommand = {
10
7
  name: "fetch-game",
8
+ displayName: "Fetch Game",
11
9
  description: "Returns data related to the specified game.",
12
10
  usage: "fetch-game <method: slug | gameId> <identifier: string>",
13
11
  requiresToken: false,
14
12
  execute: async () => {
15
- const fetchMethod = await select({ message: "Which method would you like to use?", choices: [
16
- "Slug",
17
- "GameId"
18
- ] });
13
+ const fetchMethod = await select({ message: "Which method would you like to use?", choices: Object.keys(gameApiMap) });
14
+ const dataType = await select({ message: "How would you like your data?", choices: ["Simple", "Verbose"] });
19
15
  const gameIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
20
- for (let data of Object.entries(apiMap)) {
21
- const method = data[0];
22
- const url = data[1];
23
- if (method === fetchMethod) {
24
- fetch(url + gameIdentifier, {
25
- method: "GET"
26
- }).then(raw => raw.text().then(data => {
27
- const gameData = JSON.parse(data);
28
- const entries = Object.entries(gameData);
29
- if (entries.length === 0) {
30
- PrintError(`Invalid ${fetchMethod}!`);
31
- }
32
- else if (entries.length === 3) {
33
- // const styledError = `${entries[0]?.[1]}`.replaceAll("username", "Username").replaceAll(",", ", ");
34
- // PrintError(styledError);
35
- }
36
- ;
37
- console.log(gameData);
38
- })).catch((err) => {
39
- PrintError(err);
40
- });
41
- setTimeout(async () => {
42
- const restartTool = await confirm({ message: "Would you like to anything else?" });
43
- if (restartTool) {
44
- StartTool();
45
- }
46
- ;
47
- }, 1000);
48
- return;
49
- }
50
- ;
16
+ const result = await FetchGame(fetchMethod, gameIdentifier);
17
+ const entries = Object.entries(result);
18
+ const keys = Object.keys(result);
19
+ if (entries.length === 0 || keys.length === 0 || "error" in result) {
20
+ return PrintError(`Invalid ${fetchMethod}`);
21
+ }
22
+ ;
23
+ const game = result.game;
24
+ switch (dataType) {
25
+ case "Simple":
26
+ console.log(`\n${chalk.green("Game Id")}: ${game.id}`);
27
+ console.log(`${chalk.green("Name")}: ${game.name}`);
28
+ console.log(`${chalk.green("Slug")}: ${game.slug || ""}`);
29
+ console.log(`${chalk.green("Developer")}: ${game.organization.name}`);
30
+ console.log(`${chalk.green("Description")}: ${game.description || ""}\n`);
31
+ break;
32
+ case "Verbose":
33
+ console.dir(result, { depth: null });
34
+ console.log();
35
+ break;
51
36
  }
52
37
  ;
38
+ RestartTool();
39
+ return;
53
40
  }
54
41
  };
55
42
  //# sourceMappingURL=FetchGame.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetchGame.js","sourceRoot":"","sources":["../../src/commands/FetchGame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,GAAG;IACX,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,+CAA+C;CAC5D,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAe;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6CAA6C;IAC1D,KAAK,EAAE,yDAAyD;IAChE,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE;gBACxF,MAAM;gBACN,QAAQ;aACX,EAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBACzB,KAAK,CAAC,GAAG,GAAG,cAAc,EAAE;oBACxB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAqB,CAAC;oBACtD,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,UAAU,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC;oBAC1C,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,qGAAqG;wBACrG,2BAA2B;oBAC/B,CAAC;oBAAA,CAAC;oBAEF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACd,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,UAAU,CAAC,KAAK,IAAI,EAAE;oBAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;oBAEnF,IAAI,WAAW,EAAE,CAAC;wBACd,SAAS,EAAE,CAAC;oBAChB,CAAC;oBAAA,CAAC;gBACN,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,OAAO;YACX,CAAC;YAAA,CAAC;QACN,CAAC;QAAA,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"FetchGame.js","sourceRoot":"","sources":["../../src/commands/FetchGame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,CAAC,MAAM,gBAAgB,GAAe;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,6CAA6C;IAC1D,KAAK,EAAE,yDAAyD;IAChE,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QACtH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAE,QAAQ,EAAE,SAAS,CAAE,EAAE,CAAC,CAAC;QAC9G,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAAA,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QAEzB,QAAO,QAAQ,EAAE,CAAC;YACd,KAAK,QAAQ;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;gBACvD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC1D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,WAAW,IAAI,EAAE,IAAI,CAAC,CAAC;gBAC1E,MAAM;YACV,KAAK,SAAS;gBACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM;QACd,CAAC;QAAA,CAAC;QAEF,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const FetchProfilePhotoCommand: CLICommand;
3
+ //# sourceMappingURL=FetchProfilePhoto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchProfilePhoto.d.ts","sourceRoot":"","sources":["../../src/commands/FetchProfilePhoto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,eAAO,MAAM,wBAAwB,EAAE,UA2BtC,CAAC"}
@@ -0,0 +1,31 @@
1
+ import { PrintError } from "../util/Styles.js";
2
+ import { input, select } from "@inquirer/prompts";
3
+ import chalk from "chalk";
4
+ import { RestartTool } from "../cli.js";
5
+ import { FetchUser, userApiMap } from "../util/platform/FetchUser.js";
6
+ export const FetchProfilePhotoCommand = {
7
+ name: "fetch-profile-photo",
8
+ displayName: "Fetch Profile Photo",
9
+ description: "Returns the profile picture of the given user.",
10
+ usage: "<method: username | userId> <identifier: string>",
11
+ requiresToken: false,
12
+ execute: async () => {
13
+ const fetchMethod = await select({ message: "Which method would you like to use?", choices: Object.keys(userApiMap) });
14
+ const userIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
15
+ const result = await FetchUser(fetchMethod, userIdentifier);
16
+ const entries = Object.entries(result);
17
+ const keys = Object.keys(result);
18
+ if (entries.length === 0 || keys.length === 0 || "error" in result) {
19
+ return PrintError(`Invalid ${fetchMethod}`);
20
+ }
21
+ ;
22
+ const user = result.user;
23
+ const profileImageId = user.profileImageId;
24
+ if (!profileImageId)
25
+ return PrintError("User has no profile image!");
26
+ console.log(chalk.green(`\nhttps://cdn.airship.gg/images/${profileImageId}\n`));
27
+ RestartTool();
28
+ return;
29
+ }
30
+ };
31
+ //# sourceMappingURL=FetchProfilePhoto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchProfilePhoto.js","sourceRoot":"","sources":["../../src/commands/FetchProfilePhoto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,CAAC,MAAM,wBAAwB,GAAe;IAChD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,kDAAkD;IACzD,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QACtH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAAA,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,cAAc;YAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC,CAAC;QAErE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,cAAc,IAAI,CAAC,CAAC,CAAC;QAEhF,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"FetchUser.d.ts","sourceRoot":"","sources":["../../src/commands/FetchUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD,eAAO,MAAM,gBAAgB,EAAE,UAgD9B,CAAC"}
1
+ {"version":3,"file":"FetchUser.d.ts","sourceRoot":"","sources":["../../src/commands/FetchUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,eAAO,MAAM,gBAAgB,EAAE,UAmC9B,CAAC"}
@@ -1,55 +1,40 @@
1
- import { input, select, confirm } from '@inquirer/prompts';
2
- import { PrintHeader, PrintError, PrintTitle } from '../util/Styles.js';
3
- import { AirshipToken } from '../util/TokenManager.js';
4
- import { StartTool } from "../cli.js";
5
- const apiMap = {
6
- "Username": "https://api.airship.gg/game-coordinator/users/user?username=",
7
- "UserId": "https://api.airship.gg/game-coordinator/users/uid/"
8
- };
1
+ import { input, select } from '@inquirer/prompts';
2
+ import { PrintError } from '../util/Styles.js';
3
+ import { RestartTool } from "../cli.js";
4
+ import chalk from "chalk";
5
+ import { FetchUser, userApiMap } from "../util/platform/FetchUser.js";
9
6
  export const fetchUserCommand = {
10
7
  name: "fetch-user",
8
+ displayName: "Fetch User",
11
9
  description: "Returns data related to the specified user.",
12
10
  usage: "fetch-user <method: username | userId> <identifier: string>",
13
11
  requiresToken: false,
14
12
  execute: async () => {
15
- const fetchMethod = await select({ message: "Which method would you like to use?", choices: [
16
- "Username",
17
- "UserId"
18
- ] });
13
+ const fetchMethod = await select({ message: "Which method would you like to use?", choices: Object.keys(userApiMap) });
14
+ const dataType = await select({ message: "How would you like your data?", choices: ["Simple", "Verbose"] });
19
15
  const userIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
20
- for (let data of Object.entries(apiMap)) {
21
- const method = data[0];
22
- const url = data[1];
23
- if (method === fetchMethod) {
24
- fetch(url + userIdentifier, {
25
- method: "GET"
26
- }).then(raw => raw.text().then(data => {
27
- const userData = JSON.parse(data);
28
- const entries = Object.entries(userData);
29
- if (entries.length === 0) {
30
- PrintError(`Invalid ${fetchMethod}!`);
31
- }
32
- else if (entries.length === 3) {
33
- const styledError = `${entries[0]?.[1]}`.replaceAll("username", "Username").replaceAll(",", ", ");
34
- PrintError(styledError);
35
- }
36
- ;
37
- console.log(userData);
38
- })).catch((err) => {
39
- PrintError(err);
40
- });
41
- setTimeout(async () => {
42
- const restartTool = await confirm({ message: "Would you like to anything else?" });
43
- if (restartTool) {
44
- StartTool();
45
- }
46
- ;
47
- }, 1000);
48
- return;
49
- }
50
- ;
16
+ const result = await FetchUser(fetchMethod, userIdentifier);
17
+ const entries = Object.entries(result);
18
+ const keys = Object.keys(result);
19
+ if (entries.length === 0 || keys.length === 0 || "error" in result) {
20
+ return PrintError(`Invalid ${fetchMethod}`);
21
+ }
22
+ ;
23
+ const user = result.user;
24
+ switch (dataType) {
25
+ case "Simple":
26
+ console.log(`\n${chalk.green("User Id")}: ${user.uid}`);
27
+ console.log(`${chalk.green("Username")}: ${user.username}`);
28
+ console.log(`${chalk.green("Status Text")}: ${user.statusText || ""}\n`);
29
+ break;
30
+ case "Verbose":
31
+ console.dir(result, { depth: null });
32
+ console.log();
33
+ break;
51
34
  }
52
35
  ;
36
+ RestartTool();
37
+ return;
53
38
  }
54
39
  };
55
40
  //# sourceMappingURL=FetchUser.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FetchUser.js","sourceRoot":"","sources":["../../src/commands/FetchUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,MAAM,MAAM,GAAG;IACX,UAAU,EAAE,8DAA8D;IAC1E,QAAQ,EAAE,oDAAoD;CACjE,CAAC;AAEF,MAAM,CAAC,MAAM,gBAAgB,GAAe;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,6CAA6C;IAC1D,KAAK,EAAE,6DAA6D;IACpE,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE;gBACxF,UAAU;gBACV,QAAQ;aACX,EAAC,CAAC,CAAC;QAEJ,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,KAAK,IAAI,IAAI,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YACvB,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;YAEpB,IAAI,MAAM,KAAK,WAAW,EAAE,CAAC;gBACzB,KAAK,CAAC,GAAG,GAAG,cAAc,EAAE;oBACxB,MAAM,EAAE,KAAK;iBAChB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;oBAClC,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAwC,CAAC;oBACzE,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;oBAEzC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBACvB,UAAU,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC;oBAC1C,CAAC;yBAAM,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;wBAC9B,MAAM,WAAW,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;wBAClG,UAAU,CAAC,WAAW,CAAC,CAAC;oBAC5B,CAAC;oBAAA,CAAC;oBAEF,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBAC1B,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;oBACd,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpB,CAAC,CAAC,CAAC;gBAEH,UAAU,CAAC,KAAK,IAAI,EAAE;oBAClB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;oBAEnF,IAAI,WAAW,EAAE,CAAC;wBACd,SAAS,EAAE,CAAC;oBAChB,CAAC;oBAAA,CAAC;gBACN,CAAC,EAAE,IAAI,CAAC,CAAC;gBAET,OAAO;YACX,CAAC;YAAA,CAAC;QACN,CAAC;QAAA,CAAC;IACN,CAAC;CACJ,CAAC"}
1
+ {"version":3,"file":"FetchUser.js","sourceRoot":"","sources":["../../src/commands/FetchUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AAEtE,MAAM,CAAC,MAAM,gBAAgB,GAAe;IACxC,IAAI,EAAE,YAAY;IAClB,WAAW,EAAE,YAAY;IACzB,WAAW,EAAE,6CAA6C;IAC1D,KAAK,EAAE,6DAA6D;IACpE,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QACtH,MAAM,QAAQ,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,+BAA+B,EAAE,OAAO,EAAE,CAAE,QAAQ,EAAE,SAAS,CAAE,EAAE,CAAC,CAAC;QAC9G,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;QAC5D,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvC,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;YACjE,OAAO,UAAU,CAAC,WAAW,WAAW,EAAE,CAAC,CAAC;QAChD,CAAC;QAAA,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;QACzB,QAAO,QAAQ,EAAE,CAAC;YACd,KAAK,QAAQ;gBACT,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,KAAK,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC;gBACxD,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;gBAC5D,OAAO,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,UAAU,IAAI,EAAE,IAAI,CAAC,CAAC;gBACzE,MAAM;YACV,KAAK,SAAS;gBACV,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;gBACrC,OAAO,CAAC,GAAG,EAAE,CAAC;gBACd,MAAM;QACd,CAAC;QAAA,CAAC;QAEF,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const FetchUserPhotoCommand: CLICommand;
3
+ //# sourceMappingURL=FetchUserPhoto.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchUserPhoto.d.ts","sourceRoot":"","sources":["../../src/commands/FetchUserPhoto.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAYpD,eAAO,MAAM,qBAAqB,EAAE,UAuCnC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { setTimeout } from "node:timers/promises";
2
+ import { PrintError, PrintHeader } from "../util/Styles.js";
3
+ import { input, select } from "@inquirer/prompts";
4
+ import chalk from "chalk";
5
+ import { RestartTool } from "../cli.js";
6
+ const apiMap = {
7
+ "Username": "https://api.airship.gg/game-coordinator/users/user?username=",
8
+ "UserId": "https://api.airship.gg/game-coordinator/users/uid/"
9
+ };
10
+ export const FetchUserPhotoCommand = {
11
+ name: "fetch-profile-photo",
12
+ displayName: "Fetch Profile Photo",
13
+ description: "Returns the profile picture of the given user.",
14
+ usage: "<method: username | userId> <identifier: string>",
15
+ requiresToken: false,
16
+ execute: async () => {
17
+ const fetchMethod = await select({ message: "Which method would you like to use?", choices: Object.keys(apiMap) });
18
+ const userIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
19
+ // for (let [ method, url ] of Object.entries(apiMap)) {
20
+ // if (method === fetchMethod) {
21
+ // fetch(url )
22
+ // };
23
+ // };
24
+ fetch(apiMap[fetchMethod] + userIdentifier, {
25
+ method: "GET"
26
+ }).then((raw) => raw.text().then((data) => {
27
+ const result = JSON.parse(data);
28
+ const keys = Object.keys(result);
29
+ const entries = Object.entries(result);
30
+ if (entries.length === 0 || "error" in result || keys.length === 0) {
31
+ PrintError(`Invalid ${fetchMethod}!`);
32
+ return;
33
+ }
34
+ ;
35
+ const user = result.user;
36
+ const profileImageId = user.profileImageId;
37
+ if (!profileImageId)
38
+ return PrintError("User has no profile image!");
39
+ console.log(chalk.green(`\nhttps://cdn.airship.gg/images/${profileImageId}\n`));
40
+ }));
41
+ RestartTool();
42
+ return;
43
+ }
44
+ };
45
+ //# sourceMappingURL=FetchUserPhoto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchUserPhoto.js","sourceRoot":"","sources":["../../src/commands/FetchUserPhoto.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAElD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,MAAM,GAA8B;IACtC,UAAU,EAAE,8DAA8D;IAC1E,QAAQ,EAAE,oDAAoD;CACjE,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAe;IAC7C,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,kDAAkD;IACzD,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,EAAC,CAAC,CAAC;QAClH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,oBAAoB,WAAW,GAAG,EAAE,CAAC,CAAC;QAEpF,wDAAwD;QACxD,oCAAoC;QACpC,sBAAsB;QACtB,SAAS;QACT,KAAK;QAEL,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,GAAG,cAAc,EAAE;YACxC,MAAM,EAAE,KAAK;SAChB,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE;YACtC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAA+B,CAAC;YAC9D,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;YAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBACjE,UAAU,CAAC,WAAW,WAAW,GAAG,CAAC,CAAC;gBACtC,OAAO;YACX,CAAC;YAAA,CAAC;YAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACzB,MAAM,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;YAC3C,IAAI,CAAC,cAAc;gBAAE,OAAO,UAAU,CAAC,4BAA4B,CAAC,CAAC;YAErE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,cAAc,IAAI,CAAC,CAAC,CAAC;QACpF,CAAC,CAAC,CAAC,CAAC;QAEJ,WAAW,EAAE,CAAC;QAEd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -1,3 +1,3 @@
1
1
  import type { CLICommand } from "./CommandTypes.js";
2
2
  export declare const helpCommand: CLICommand;
3
- //# sourceMappingURL=help.d.ts.map
3
+ //# sourceMappingURL=Help.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Help.d.ts","sourceRoot":"","sources":["../../src/commands/Help.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,eAAO,MAAM,WAAW,EAAE,UA6BzB,CAAC"}