airship-cli 1.1.1 → 1.2.2

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 (57) hide show
  1. package/README.MD +13 -0
  2. package/out/AirshipTypes.d.ts +16 -0
  3. package/out/AirshipTypes.d.ts.map +1 -1
  4. package/out/AirshipTypes.js +2 -0
  5. package/out/AirshipTypes.js.map +1 -1
  6. package/out/cli.d.ts +3 -0
  7. package/out/cli.d.ts.map +1 -1
  8. package/out/cli.js +45 -17
  9. package/out/cli.js.map +1 -1
  10. package/out/commands/ExitCommand.d.ts +3 -0
  11. package/out/commands/ExitCommand.d.ts.map +1 -0
  12. package/out/commands/ExitCommand.js +13 -0
  13. package/out/commands/ExitCommand.js.map +1 -0
  14. package/out/commands/FavoriteGame.d.ts +3 -0
  15. package/out/commands/FavoriteGame.d.ts.map +1 -0
  16. package/out/commands/FavoriteGame.js +22 -0
  17. package/out/commands/FavoriteGame.js.map +1 -0
  18. package/out/commands/HelpCommand.d.ts +3 -0
  19. package/out/commands/HelpCommand.d.ts.map +1 -0
  20. package/out/commands/HelpCommand.js +39 -0
  21. package/out/commands/HelpCommand.js.map +1 -0
  22. package/out/commands/RestartCommand copy.d.ts +3 -0
  23. package/out/commands/RestartCommand copy.d.ts.map +1 -0
  24. package/out/commands/RestartCommand copy.js +14 -0
  25. package/out/commands/RestartCommand copy.js.map +1 -0
  26. package/out/commands/RestartCommand.d.ts +3 -0
  27. package/out/commands/RestartCommand.d.ts.map +1 -0
  28. package/out/commands/RestartCommand.js +14 -0
  29. package/out/commands/RestartCommand.js.map +1 -0
  30. package/out/commands/games/FavoriteGame.d.ts +3 -0
  31. package/out/commands/games/FavoriteGame.d.ts.map +1 -0
  32. package/out/commands/games/FavoriteGame.js +22 -0
  33. package/out/commands/games/FavoriteGame.js.map +1 -0
  34. package/out/commands/games/FetchGame.d.ts +3 -0
  35. package/out/commands/games/FetchGame.d.ts.map +1 -0
  36. package/out/commands/games/FetchGame.js +42 -0
  37. package/out/commands/games/FetchGame.js.map +1 -0
  38. package/out/commands/users/FetchProfilePhoto.d.ts +3 -0
  39. package/out/commands/users/FetchProfilePhoto.d.ts.map +1 -0
  40. package/out/commands/users/FetchProfilePhoto.js +31 -0
  41. package/out/commands/users/FetchProfilePhoto.js.map +1 -0
  42. package/out/commands/users/FetchUser.d.ts +3 -0
  43. package/out/commands/users/FetchUser.d.ts.map +1 -0
  44. package/out/commands/users/FetchUser.js +40 -0
  45. package/out/commands/users/FetchUser.js.map +1 -0
  46. package/out/util/IdentifierConversion.d.ts +2 -0
  47. package/out/util/IdentifierConversion.d.ts.map +1 -0
  48. package/out/util/IdentifierConversion.js +14 -0
  49. package/out/util/IdentifierConversion.js.map +1 -0
  50. package/out/util/TokenManager.d.ts.map +1 -1
  51. package/out/util/TokenManager.js +31 -3
  52. package/out/util/TokenManager.js.map +1 -1
  53. package/out/util/platform/FavoriteGame.d.ts +3 -0
  54. package/out/util/platform/FavoriteGame.d.ts.map +1 -0
  55. package/out/util/platform/FavoriteGame.js +28 -0
  56. package/out/util/platform/FavoriteGame.js.map +1 -0
  57. package/package.json +4 -3
package/README.MD CHANGED
@@ -1,6 +1,8 @@
1
1
  # Airship CLI
2
2
  Interact with the Airship.gg API from your Terminal!
3
3
 
4
+ ![CLI Demo](https://github.com/DodoSeal/airship-cli/blob/master/media/demo-gif.gif?raw=true)
5
+
4
6
  ## How to Use
5
7
  Simply install the NPM Package
6
8
 
@@ -8,6 +10,17 @@ Simply install the NPM Package
8
10
 
9
11
  and run the command, `airship`!
10
12
 
13
+ ## Current Commands
14
+ *Note: Some commands (marked below) require an [Airship Installation](https://store.steampowered.com/app/2381730/Airship/) for the authentication token!*
15
+
16
+ Users:
17
+ - Fetch User
18
+ - Fetch Profile Picture (returns CDN path)
19
+
20
+ Games:
21
+ - Fetch Game
22
+ - Favorite Game *(auth)*
23
+
11
24
  # Development Stats
12
25
  ![Airship CLI - Hackatime Tracker](https://hackatime.hackclub.com/api/v1/badge/U0B7SE5AGTU/Soarin-Games/airship-cli)
13
26
  [![NPM Package](https://badge.fury.io/js/airship-cli.svg)](https://www.npmjs.com/package/airship-cli)
@@ -56,5 +56,21 @@ export type AirshipGame = {
56
56
  organization: AirshipOrganization;
57
57
  };
58
58
  };
59
+ export interface AccessTokenResult {
60
+ access_token: string;
61
+ expires_in: string;
62
+ token_type: string;
63
+ refresh_token: string;
64
+ id_token: string;
65
+ user_id: string;
66
+ project_id: string;
67
+ }
68
+ export interface AccessTokenError {
69
+ error: {
70
+ code: number;
71
+ message: string;
72
+ status: string;
73
+ };
74
+ }
59
75
  export {};
60
76
  //# sourceMappingURL=AirshipTypes.d.ts.map
@@ -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,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"}
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;AAEF,MAAM,WAAW,iBAAiB;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAA;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC7B,KAAK,EAAE;QACH,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAA;KACjB,CAAA;CACJ"}
@@ -1,2 +1,4 @@
1
+ ;
2
+ ;
1
3
  export {};
2
4
  //# sourceMappingURL=AirshipTypes.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AirshipTypes.js","sourceRoot":"","sources":["../src/AirshipTypes.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"AirshipTypes.js","sourceRoot":"","sources":["../src/AirshipTypes.ts"],"names":[],"mappings":"AAwEC,CAAC;AAQD,CAAC"}
package/out/cli.d.ts CHANGED
@@ -1,6 +1,9 @@
1
1
  #!/usr/bin/env node
2
2
  import type { CLICommand } from './commands/CommandTypes.js';
3
3
  interface CommandMap {
4
+ "default": {
5
+ [key: string]: CLICommand;
6
+ };
4
7
  [key: string]: {
5
8
  [key: string]: CLICommand;
6
9
  };
package/out/cli.d.ts.map CHANGED
@@ -1 +1 @@
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"}
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAUA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAK7D,UAAU,UAAU;IAChB,SAAS,EAAE;QACP,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;KAC5B,CAAC;IAEF,CAAC,GAAG,EAAE,MAAM,GAAG;QACX,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAA;KAC5B,CAAA;CACJ;AAED,eAAO,MAAM,UAAU,EAAE,UAaxB,CAAC;AAEF,wBAAsB,SAAS,kBAK9B;AAED,wBAAsB,WAAW,kBAYhC"}
package/out/cli.js CHANGED
@@ -2,23 +2,27 @@
2
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 { helpCommand } from './commands/Help.js';
6
- import { fetchUserCommand } from './commands/FetchUser.js';
7
- import { fetchGameCommand } from './commands/FetchGame.js';
5
+ import { helpCommand } from './commands/HelpCommand.js';
6
+ import { fetchUserCommand } from './commands/users/FetchUser.js';
7
+ import { fetchGameCommand } from './commands/games/FetchGame.js';
8
8
  import { setTimeout } from 'node:timers/promises';
9
- import { FetchProfilePhotoCommand } from './commands/FetchProfilePhoto.js';
9
+ import { fetchProfilePhotoCommand } from './commands/users/FetchProfilePhoto.js';
10
+ import { favoriteGameCommand } from './commands/games/FavoriteGame.js';
11
+ import { restartCommand } from './commands/RestartCommand.js';
12
+ import { exitCommand } from './commands/ExitCommand.js';
10
13
  ;
11
- // TODO: Make default category
12
14
  export const commandMap = {
13
- /* "default": {
14
- "Help": helpCommand
15
- }, */
15
+ "default": {
16
+ "Help": helpCommand,
17
+ "Exit": exitCommand
18
+ },
16
19
  "Users": {
17
20
  "Fetch User": fetchUserCommand,
18
- "Fetch Profile Photo": FetchProfilePhotoCommand
21
+ "Fetch Profile Photo": fetchProfilePhotoCommand
19
22
  },
20
23
  "Games": {
21
- "Fetch Game": fetchGameCommand
24
+ "Fetch Game": fetchGameCommand,
25
+ "Favorite Game": favoriteGameCommand
22
26
  }
23
27
  };
24
28
  export async function StartTool() {
@@ -45,13 +49,35 @@ export async function RestartTool() {
45
49
  ;
46
50
  async function PromptCommand() {
47
51
  try {
48
- const categoryAnswer = await select({ message: "Select a command category:", choices: Object.keys(commandMap) });
52
+ // Remove "default" from choices
53
+ let choices = Object.keys(commandMap).slice(1);
54
+ // Readd the default commands yay!
55
+ for (let defaultCmd of Object.keys(commandMap.default)) {
56
+ choices.push(defaultCmd);
57
+ }
58
+ ;
59
+ const categoryAnswer = await select({ message: "What would you like to do?", choices });
49
60
  const cmdCategories = Object.entries(commandMap);
50
61
  for (let [categoryName, commands] of cmdCategories) {
51
- // TODO: Make back command
62
+ // Handle special exceptions for commands in default category
63
+ if (categoryName === "default") {
64
+ if (categoryAnswer === "Help") {
65
+ helpCommand.execute();
66
+ continue;
67
+ }
68
+ ;
69
+ if (categoryAnswer === "Exit") {
70
+ exitCommand.execute();
71
+ continue;
72
+ }
73
+ ;
74
+ }
75
+ ;
52
76
  if (categoryAnswer === categoryName) {
77
+ commands["Back"] = restartCommand;
53
78
  const cmdAnswer = await select({ message: "What would you like to do?", choices: Object.keys(commands) });
54
79
  HandleCommand(commands[cmdAnswer], cmdAnswer);
80
+ return;
55
81
  }
56
82
  ;
57
83
  }
@@ -81,10 +107,12 @@ async function HandleCommand(command, answer) {
81
107
  ;
82
108
  }
83
109
  ;
84
- // process.on("exit", (signal) => {
85
- // if (signal === 0) {
86
- // console.clear();
87
- // };
88
- // });
110
+ process.on("exit", (signal) => {
111
+ if (signal === 0) {
112
+ console.clear();
113
+ }
114
+ ;
115
+ });
116
+ process.on("SIGINT", (signal) => { });
89
117
  StartTool();
90
118
  //# 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,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,wBAAwB,EAAE,MAAM,iCAAiC,CAAC;AAO1E,CAAC;AAEF,8BAA8B;AAC9B,MAAM,CAAC,MAAM,UAAU,GAAe;IAClC;;SAEK;IACL,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;QAC9B,qBAAqB,EAAE,wBAAwB;KAClD;IACD,OAAO,EAAE;QACL,YAAY,EAAE,gBAAgB;KACjC;CACJ,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,SAAS;IAC3B,UAAU,EAAE,CAAC;IAEb,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;IACtB,aAAa,EAAE,CAAC;AACpB,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,KAAK,UAAU,WAAW;IAC7B,IAAI,CAAC;QACD,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACtB,MAAM,WAAW,GAAG,MAAM,OAAO,CAAC,EAAE,OAAO,EAAE,kCAAkC,EAAE,CAAC,CAAC;QAEnF,IAAI,WAAW,EAAE,CAAC;YACd,SAAS,EAAE,CAAC;QAChB,CAAC;QAAA,CAAC;IACN,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAA,CAAC;AACN,CAAC;AAAA,CAAC;AAEF,KAAK,UAAU,aAAa;IACxB,IAAI,CAAC;QACD,MAAM,cAAc,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAC,CAAC,CAAC;QAChH,MAAM,aAAa,GAAG,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAEjD,KAAK,IAAI,CAAE,YAAY,EAAE,QAAQ,CAAE,IAAI,aAAa,EAAE,CAAC;YACnD,0BAA0B;YAE1B,IAAI,cAAc,KAAK,YAAY,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;gBAE1G,aAAa,CAAC,QAAQ,CAAC,SAAS,CAAE,EAAE,SAAS,CAAC,CAAC;YACnD,CAAC;YAAA,CAAC;QACN,CAAC;QAAA,CAAC;IACN,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QACnB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;IAAA,CAAC;AACN,CAAC;AAAA,CAAC;AAEF,KAAK,UAAU,aAAa,CAAC,OAAmB,EAAE,MAAc;IAC5D,MAAM,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IACpC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;IAC5C,MAAM,WAAW,GAAG,OAAO,CAAA;IAE3B,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;QACrB,IAAI,YAAY,KAAK,SAAS,IAAI,aAAa,EAAE,CAAC;YAC9C,UAAU,CAAC,wEAAwE,CAAC,CAAC;YACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QAAA,CAAC;QAEF,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;QACtB,WAAW,CAAC,OAAO,EAAE,CAAC;QACtB,OAAO;IACX,CAAC;IAAA,CAAC;AACN,CAAC;AAAA,CAAC;AAEF,mCAAmC;AACnC,0BAA0B;AAC1B,2BAA2B;AAC3B,SAAS;AACT,MAAM;AAEN,SAAS,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const exitCommand: CLICommand;
3
+ //# sourceMappingURL=ExitCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExitCommand.d.ts","sourceRoot":"","sources":["../../src/commands/ExitCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,WAAW,EAAE,UAUzB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { setTimeout } from "node:timers/promises";
2
+ export const exitCommand = {
3
+ name: "exit",
4
+ displayName: "Exit",
5
+ description: "Exits the CLI tool.",
6
+ usage: "exit",
7
+ requiresToken: false,
8
+ execute: async () => {
9
+ console.clear();
10
+ process.exit(0);
11
+ }
12
+ };
13
+ //# sourceMappingURL=ExitCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExitCommand.js","sourceRoot":"","sources":["../../src/commands/ExitCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,MAAM,CAAC,MAAM,WAAW,GAAe;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,qBAAqB;IAClC,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,OAAO,CAAC,KAAK,EAAE,CAAC;QAChB,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpB,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const favoriteGameCommand: CLICommand;
3
+ //# sourceMappingURL=FavoriteGame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.d.ts","sourceRoot":"","sources":["../../src/commands/FavoriteGame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAKpD,eAAO,MAAM,mBAAmB,EAAE,UAmBjC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { input, select } from "@inquirer/prompts";
2
+ import { FetchGame, gameApiMap } from "../util/platform/FetchGame.js";
3
+ import { FavoriteGame } from "../util/platform/FavoriteGame.js";
4
+ import { RestartTool } from "../cli.js";
5
+ export const favoriteGameCommand = {
6
+ name: "favorite-game",
7
+ displayName: "Favorite Game",
8
+ description: "Mark a game as your favorite. Requires Auth Token!",
9
+ usage: "",
10
+ requiresToken: true,
11
+ execute: async () => {
12
+ const action = await select({ message: "What would you like to do?", choices: ["Favorite", "Remove Favorite"] });
13
+ const fetchType = await select({ message: "Which method would you like to use?", choices: Object.keys(gameApiMap) });
14
+ const gameIdentifier = await input({ message: `What is the ${fetchType}?` });
15
+ const isFavorite = action === "Favorite" ? true : false;
16
+ const result = await FavoriteGame(fetchType, gameIdentifier, isFavorite);
17
+ console.log(result);
18
+ RestartTool();
19
+ return;
20
+ }
21
+ };
22
+ //# sourceMappingURL=FavoriteGame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.js","sourceRoot":"","sources":["../../src/commands/FavoriteGame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,+BAA+B,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAExC,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC3C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,oDAAoD;IACjE,KAAK,EAAE,EAAE;IACT,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAE,UAAU,EAAE,iBAAiB,CAAE,EAAE,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,SAAS,GAAG,EAAE,CAAC,CAAC;QAE7E,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const helpCommand: CLICommand;
3
+ //# sourceMappingURL=HelpCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpCommand.d.ts","sourceRoot":"","sources":["../../src/commands/HelpCommand.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAOpD,eAAO,MAAM,WAAW,EAAE,UAgCzB,CAAC"}
@@ -0,0 +1,39 @@
1
+ import chalk from "chalk";
2
+ import { input, select, confirm } from '@inquirer/prompts';
3
+ import { PrintHeader, PrintError, PrintTitle } from '../util/Styles.js';
4
+ import { AirshipToken } from '../util/TokenManager.js';
5
+ import { commandMap, RestartTool, StartTool } from "../cli.js";
6
+ export const helpCommand = {
7
+ name: "help",
8
+ displayName: "Help",
9
+ description: "Returns the usage of a command.",
10
+ usage: "help <command: string>",
11
+ requiresToken: false,
12
+ execute: async () => {
13
+ let helpInfo = [];
14
+ let choices = [];
15
+ for (let [categoryName, category] of Object.entries(commandMap)) {
16
+ if (categoryName === "default")
17
+ continue;
18
+ for (let [cmdName, cmd] of Object.entries(category)) {
19
+ helpInfo.push(cmd);
20
+ choices.push(cmdName);
21
+ }
22
+ ;
23
+ }
24
+ ;
25
+ const commandSelect = await select({ message: "Which command do you need help with?", choices });
26
+ for (let command of helpInfo) {
27
+ if (command.displayName === commandSelect) {
28
+ console.log(`\n${chalk.bold(chalk.green(`${commandSelect} Help:`))}`);
29
+ console.log(`- Description: ${chalk.gray(command.description)}`);
30
+ console.log(`- Usage: ${chalk.gray(command.usage)}\n`);
31
+ }
32
+ ;
33
+ }
34
+ ;
35
+ RestartTool();
36
+ return;
37
+ }
38
+ };
39
+ //# sourceMappingURL=HelpCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HelpCommand.js","sourceRoot":"","sources":["../../src/commands/HelpCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,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;AACvD,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAE/D,MAAM,CAAC,MAAM,WAAW,GAAe;IACnC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,iCAAiC;IAC9C,KAAK,EAAE,wBAAwB;IAC/B,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,IAAI,QAAQ,GAAiB,EAAE,CAAC;QAChC,IAAI,OAAO,GAAa,EAAE,CAAC;QAE3B,KAAK,IAAI,CAAE,YAAY,EAAE,QAAQ,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;YAChE,IAAI,YAAY,KAAK,SAAS;gBAAE,SAAS;YAEzC,KAAK,IAAI,CAAE,OAAO,EAAE,GAAG,CAAE,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;gBACpD,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;YAC1B,CAAC;YAAA,CAAC;QACN,CAAC;QAAA,CAAC;QAEF,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,sCAAsC,EAAE,OAAO,EAAE,CAAC,CAAC;QAEjG,KAAK,IAAI,OAAO,IAAI,QAAQ,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,WAAW,KAAK,aAAa,EAAE,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,aAAa,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;gBACtE,OAAO,CAAC,GAAG,CAAC,kBAAkB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;gBACjE,OAAO,CAAC,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAC3D,CAAC;YAAA,CAAC;QACN,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 restartCommand: CLICommand;
3
+ //# sourceMappingURL=RestartCommand%20copy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartCommand copy.d.ts","sourceRoot":"","sources":["../../src/commands/RestartCommand copy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,UAY5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { StartTool } from "../cli.js";
2
+ export const restartCommand = {
3
+ name: "back",
4
+ displayName: "Back",
5
+ description: "Returns to the main command list.",
6
+ usage: "back",
7
+ requiresToken: false,
8
+ execute: async () => {
9
+ console.clear();
10
+ StartTool();
11
+ return;
12
+ }
13
+ };
14
+ //# sourceMappingURL=RestartCommand%20copy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartCommand copy.js","sourceRoot":"","sources":["../../src/commands/RestartCommand copy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,CAAC,MAAM,cAAc,GAAe;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,mCAAmC;IAChD,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,SAAS,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "./CommandTypes.js";
2
+ export declare const restartCommand: CLICommand;
3
+ //# sourceMappingURL=RestartCommand.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartCommand.d.ts","sourceRoot":"","sources":["../../src/commands/RestartCommand.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEpD,eAAO,MAAM,cAAc,EAAE,UAY5B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { StartTool } from "../cli.js";
2
+ export const restartCommand = {
3
+ name: "back",
4
+ displayName: "Back",
5
+ description: "Returns to the main command list.",
6
+ usage: "back",
7
+ requiresToken: false,
8
+ execute: async () => {
9
+ console.clear();
10
+ StartTool();
11
+ return;
12
+ }
13
+ };
14
+ //# sourceMappingURL=RestartCommand.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RestartCommand.js","sourceRoot":"","sources":["../../src/commands/RestartCommand.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,MAAM,CAAC,MAAM,cAAc,GAAe;IACtC,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,MAAM;IACnB,WAAW,EAAE,mCAAmC;IAChD,KAAK,EAAE,MAAM;IACb,aAAa,EAAE,KAAK;IACpB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,OAAO,CAAC,KAAK,EAAE,CAAC;QAEhB,SAAS,EAAE,CAAC;QACZ,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "../CommandTypes.js";
2
+ export declare const favoriteGameCommand: CLICommand;
3
+ //# sourceMappingURL=FavoriteGame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.d.ts","sourceRoot":"","sources":["../../../src/commands/games/FavoriteGame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAKrD,eAAO,MAAM,mBAAmB,EAAE,UAmBjC,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { input, select } from "@inquirer/prompts";
2
+ import { FetchGame, gameApiMap } from "../../util/platform/FetchGame.js";
3
+ import { FavoriteGame } from "../../util/platform/FavoriteGame.js";
4
+ import { RestartTool } from "../../cli.js";
5
+ export const favoriteGameCommand = {
6
+ name: "favorite-game",
7
+ displayName: "Favorite Game",
8
+ description: "Mark a game as your favorite. Requires Auth Token!",
9
+ usage: "favorite-game <action: Favorite | Remove Favorite> <method: Slug | GameId> <identifier: string> <isFavorite?: boolean>",
10
+ requiresToken: true,
11
+ execute: async () => {
12
+ const action = await select({ message: "What would you like to do?", choices: ["Favorite", "Remove Favorite"] });
13
+ const fetchType = await select({ message: "Which method would you like to use?", choices: Object.keys(gameApiMap) });
14
+ const gameIdentifier = await input({ message: `What is the ${fetchType}?` });
15
+ const isFavorite = action === "Favorite" ? true : false;
16
+ const result = await FavoriteGame(fetchType, gameIdentifier, isFavorite);
17
+ console.log(result);
18
+ RestartTool();
19
+ return;
20
+ }
21
+ };
22
+ //# sourceMappingURL=FavoriteGame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.js","sourceRoot":"","sources":["../../../src/commands/games/FavoriteGame.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,YAAY,EAAE,MAAM,qCAAqC,CAAC;AACnE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,mBAAmB,GAAe;IAC3C,IAAI,EAAE,eAAe;IACrB,WAAW,EAAE,eAAe;IAC5B,WAAW,EAAE,oDAAoD;IACjE,KAAK,EAAE,wHAAwH;IAC/H,aAAa,EAAE,IAAI;IACnB,OAAO,EAAE,KAAK,IAAI,EAAE;QAChB,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,4BAA4B,EAAE,OAAO,EAAE,CAAE,UAAU,EAAE,iBAAiB,CAAE,EAAE,CAAC,CAAC;QACnH,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,EAAE,OAAO,EAAE,qCAAqC,EAAE,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;QACrH,MAAM,cAAc,GAAG,MAAM,KAAK,CAAC,EAAE,OAAO,EAAE,eAAe,SAAS,GAAG,EAAE,CAAC,CAAC;QAE7E,MAAM,UAAU,GAAG,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;QACxD,MAAM,MAAM,GAAG,MAAM,YAAY,CAAC,SAAS,EAAE,cAAc,EAAE,UAAU,CAAC,CAAC;QAEzE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEpB,WAAW,EAAE,CAAC;QACd,OAAO;IACX,CAAC;CACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "../CommandTypes.js";
2
+ export declare const fetchGameCommand: CLICommand;
3
+ //# sourceMappingURL=FetchGame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchGame.d.ts","sourceRoot":"","sources":["../../../src/commands/games/FetchGame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAQrD,eAAO,MAAM,gBAAgB,EAAE,UAsC9B,CAAC"}
@@ -0,0 +1,42 @@
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";
6
+ export const fetchGameCommand = {
7
+ name: "fetch-game",
8
+ displayName: "Fetch Game",
9
+ description: "Returns data related to the specified game.",
10
+ usage: "fetch-game <method: slug | gameId> <identifier: string>",
11
+ requiresToken: false,
12
+ execute: async () => {
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"] });
15
+ const gameIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
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;
36
+ }
37
+ ;
38
+ RestartTool();
39
+ return;
40
+ }
41
+ };
42
+ //# sourceMappingURL=FetchGame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchGame.js","sourceRoot":"","sources":["../../../src/commands/games/FetchGame.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAElD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,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/users/FetchProfilePhoto.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD,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: "fetch-profile-photo <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/users/FetchProfilePhoto.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEzE,MAAM,CAAC,MAAM,wBAAwB,GAAe;IAChD,IAAI,EAAE,qBAAqB;IAC3B,WAAW,EAAE,qBAAqB;IAClC,WAAW,EAAE,gDAAgD;IAC7D,KAAK,EAAE,sEAAsE;IAC7E,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"}
@@ -0,0 +1,3 @@
1
+ import type { CLICommand } from "../CommandTypes.js";
2
+ export declare const fetchUserCommand: CLICommand;
3
+ //# sourceMappingURL=FetchUser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchUser.d.ts","sourceRoot":"","sources":["../../../src/commands/users/FetchUser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAOrD,eAAO,MAAM,gBAAgB,EAAE,UAmC9B,CAAC"}
@@ -0,0 +1,40 @@
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";
6
+ export const fetchUserCommand = {
7
+ name: "fetch-user",
8
+ displayName: "Fetch User",
9
+ description: "Returns data related to the specified user.",
10
+ usage: "fetch-user <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 dataType = await select({ message: "How would you like your data?", choices: ["Simple", "Verbose"] });
15
+ const userIdentifier = await input({ message: `Please enter the ${fetchMethod}:` });
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;
34
+ }
35
+ ;
36
+ RestartTool();
37
+ return;
38
+ }
39
+ };
40
+ //# sourceMappingURL=FetchUser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FetchUser.js","sourceRoot":"","sources":["../../../src/commands/users/FetchUser.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AAEzE,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,2 @@
1
+ export declare function ConvertSlugToGameId(slug: string): Promise<string | boolean>;
2
+ //# sourceMappingURL=IdentifierConversion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifierConversion.d.ts","sourceRoot":"","sources":["../../src/util/IdentifierConversion.ts"],"names":[],"mappings":"AAEA,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,OAAO,CAAC,CAWjF"}
@@ -0,0 +1,14 @@
1
+ import { FetchGame } from "./platform/FetchGame.js";
2
+ export async function ConvertSlugToGameId(slug) {
3
+ const result = await FetchGame("Slug", slug);
4
+ const entries = Object.entries(result);
5
+ if (entries.length === 0 || "error" in result) {
6
+ // TODO: Handle Error!
7
+ return false;
8
+ }
9
+ ;
10
+ const game = result.game;
11
+ return game.id;
12
+ }
13
+ ;
14
+ //# sourceMappingURL=IdentifierConversion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdentifierConversion.js","sourceRoot":"","sources":["../../src/util/IdentifierConversion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAEpD,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,IAAY;IAClD,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IAC7C,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;IAEvC,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QAC5C,sBAAsB;QACtB,OAAO,KAAK,CAAC;IACjB,CAAC;IAAA,CAAC;IAEF,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;IACzB,OAAO,IAAI,CAAC,EAAE,CAAC;AACnB,CAAC;AAAA,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/util/TokenManager.ts"],"names":[],"mappings":"AAmCA,eAAO,MAAM,YAAY,oBAAsB,CAAC"}
1
+ {"version":3,"file":"TokenManager.d.ts","sourceRoot":"","sources":["../../src/util/TokenManager.ts"],"names":[],"mappings":"AAoEA,eAAO,MAAM,YAAY,oBAA0B,CAAC"}
@@ -1,6 +1,7 @@
1
1
  import * as fs from 'fs';
2
2
  import { PrintError } from './Styles.js';
3
- import path from 'path';
3
+ import path, { join } from 'path';
4
+ const firebaseApiKey = "AIzaSyAYw0C18Mt3wijT0ZHKGcS7zVdaPlR_sGI";
4
5
  // Ya'know, this is probably horrific but who cares!
5
6
  const platformPathMap = {
6
7
  "win32": path.join(`${process.env.APPDATA}`, `../../LocalLow`),
@@ -13,7 +14,7 @@ function GetApplicationPath() {
13
14
  return applicationPath;
14
15
  }
15
16
  ;
16
- function FetchAirshipToken() {
17
+ function FetchAirshipRefreshToken() {
17
18
  let jsonData;
18
19
  const airshipAccountPath = path.join(GetApplicationPath() + `/Easy/Airship/account.json`);
19
20
  try {
@@ -28,5 +29,32 @@ function FetchAirshipToken() {
28
29
  return jsonData.refreshToken;
29
30
  }
30
31
  ;
31
- export const AirshipToken = FetchAirshipToken();
32
+ async function UseRefreshToken() {
33
+ const refreshToken = FetchAirshipRefreshToken();
34
+ if (refreshToken === undefined) {
35
+ // TODO: Handle Error!
36
+ return;
37
+ }
38
+ ;
39
+ const body = `grantType=refresh_token&refresh_token=${refreshToken}`;
40
+ const request = await fetch(`https://securetoken.googleapis.com/v1/token?key=${firebaseApiKey}&${body}`, {
41
+ method: "POST",
42
+ headers: {
43
+ "Content-Type": "application/x-www-form-urlencoded"
44
+ }
45
+ });
46
+ const data = await request.text();
47
+ const result = JSON.parse(data);
48
+ if ("error" in result) {
49
+ // TODO: Handle Error!
50
+ return;
51
+ }
52
+ ;
53
+ // const newRefresh = result.refresh_token;
54
+ const accessToken = result.access_token;
55
+ return "Bearer " + accessToken;
56
+ }
57
+ ;
58
+ UseRefreshToken();
59
+ export const AirshipToken = await UseRefreshToken();
32
60
  //# sourceMappingURL=TokenManager.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/util/TokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,MAAM,MAAM,CAAC;AAExB,oDAAoD;AACpD,MAAM,eAAe,GAA8B;IAC/C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC;IAC9D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;IACpE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAY,EAAE,wFAAwF,CAAC;CAChJ,CAAC;AAEF,SAAS,kBAAkB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAAA,CAAC;AAEF,SAAS,iBAAiB;IACtB,IAAI,QAAqB,CAAC;IAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAE1F,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAEzD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,UAAU,CAAC,gCAAgC,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACrB,CAAC;IAAA,CAAC;IAEF,OAAO,QAAQ,CAAC,YAAY,CAAC;AACjC,CAAC;AAAA,CAAC;AAEF,MAAM,CAAC,MAAM,YAAY,GAAG,iBAAiB,EAAE,CAAC"}
1
+ {"version":3,"file":"TokenManager.js","sourceRoot":"","sources":["../../src/util/TokenManager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AAEzB,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAElC,MAAM,cAAc,GAAG,yCAAyC,CAAC;AAEjE,oDAAoD;AACpD,MAAM,eAAe,GAA8B;IAC/C,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,EAAE,gBAAgB,CAAC;IAC9D,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,aAAa,CAAC;IACpE,OAAO,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,IAAI,EAAY,EAAE,wFAAwF,CAAC;CAChJ,CAAC;AAEF,SAAS,kBAAkB;IACvB,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;IAClC,MAAM,eAAe,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAElD,OAAO,eAAe,CAAC;AAC3B,CAAC;AAAA,CAAC;AAEF,SAAS,wBAAwB;IAC7B,IAAI,QAAqB,CAAC;IAC1B,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,4BAA4B,CAAC,CAAC;IAE1F,IAAI,CAAC;QACD,MAAM,YAAY,GAAG,EAAE,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;QAEzD,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAAC,OAAM,GAAG,EAAE,CAAC;QACV,UAAU,CAAC,gCAAgC,CAAC,CAAC;QAC7C,OAAO,SAAS,CAAC;IACrB,CAAC;IAAA,CAAC;IAEF,OAAO,QAAQ,CAAC,YAAY,CAAC;AACjC,CAAC;AAAA,CAAC;AAEF,KAAK,UAAU,eAAe;IAC1B,MAAM,YAAY,GAAG,wBAAwB,EAAE,CAAC;IAChD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;QAC7B,sBAAsB;QACtB,OAAO;IACX,CAAC;IAAA,CAAC;IAEF,MAAM,IAAI,GAAG,yCAAyC,YAAY,EAAE,CAAC;IACrE,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,mDAAmD,cAAc,IAAI,IAAI,EAAE,EAAE;QACrG,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACL,cAAc,EAAE,mCAAmC;SACtD;KACJ,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAyC,CAAC;IAExE,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACpB,sBAAsB;QACtB,OAAO;IACX,CAAC;IAAA,CAAC;IAEF,2CAA2C;IAC3C,MAAM,WAAW,GAAG,MAAM,CAAC,YAAY,CAAC;IAExC,OAAO,SAAS,GAAG,WAAW,CAAC;AACnC,CAAC;AAAA,CAAC;AAEF,eAAe,EAAE,CAAC;AAElB,MAAM,CAAC,MAAM,YAAY,GAAG,MAAM,eAAe,EAAE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import type { AirshipError } from "../../AirshipTypes.js";
2
+ export declare function FavoriteGame(fetchMethod: string, gameIdentifier: string, isFavorite: boolean): Promise<{} | AirshipError>;
3
+ //# sourceMappingURL=FavoriteGame.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.d.ts","sourceRoot":"","sources":["../../../src/util/platform/FavoriteGame.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAe,MAAM,uBAAuB,CAAC;AAMvE,wBAAsB,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,GAAG,OAAO,CAAC,EAAE,GAAG,YAAY,CAAC,CAsB/H"}
@@ -0,0 +1,28 @@
1
+ import chalk from "chalk";
2
+ import { ConvertSlugToGameId } from "../IdentifierConversion.js";
3
+ import { AirshipToken } from "../TokenManager.js";
4
+ const apiPath = "https://api.airship.gg/content/favorites/GAME";
5
+ export async function FavoriteGame(fetchMethod, gameIdentifier, isFavorite) {
6
+ const gameId = fetchMethod === "Slug" ? await ConvertSlugToGameId(gameIdentifier) : gameIdentifier;
7
+ if (gameId === false) {
8
+ // TODO: Handle Error!
9
+ return {};
10
+ }
11
+ ;
12
+ const request = await fetch(apiPath, {
13
+ method: "POST",
14
+ body: JSON.stringify({
15
+ "resourceId": gameId,
16
+ "isFavorite": isFavorite
17
+ }),
18
+ headers: {
19
+ "Authorization": AirshipToken,
20
+ "Content-Type": "application/json"
21
+ }
22
+ });
23
+ const data = await request.text();
24
+ const result = data ? JSON.parse(data) : chalk.green(`\nSuccessfully set Favorite to "${isFavorite}" on "${gameIdentifier}"!\n`);
25
+ return result;
26
+ }
27
+ ;
28
+ //# sourceMappingURL=FavoriteGame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FavoriteGame.js","sourceRoot":"","sources":["../../../src/util/platform/FavoriteGame.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,MAAM,OAAO,GAAG,+CAA+C,CAAC;AAEhE,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,WAAmB,EAAE,cAAsB,EAAE,UAAmB;IAC/F,MAAM,MAAM,GAAG,WAAW,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,mBAAmB,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC;IACnG,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACnB,sBAAsB;QACtB,OAAO,EAAkB,CAAC;IAC9B,CAAC;IAAA,CAAC;IAEF,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,OAAO,EAAE;QACjC,MAAM,EAAE,MAAM;QACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;YACjB,YAAY,EAAE,MAAM;YACpB,YAAY,EAAE,UAAU;SAC3B,CAAC;QACF,OAAO,EAAE;YACL,eAAe,EAAE,YAAa;YAC9B,cAAc,EAAE,kBAAkB;SACrC;KACJ,CAAC,CAAC;IACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAE,CAAC;IAClC,MAAM,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAsB,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,mCAAmC,UAAU,SAAS,cAAc,MAAM,CAAC,CAAC;IAEtJ,OAAO,MAAM,CAAC;AAClB,CAAC;AAAA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "airship-cli",
3
- "version": "1.1.1",
3
+ "version": "1.2.2",
4
4
  "description": "A CLI Tool to interact with Airship's API endpoints.",
5
5
  "main": "out/cli.js",
6
6
  "bin": {
@@ -11,7 +11,8 @@
11
11
  ],
12
12
  "type": "module",
13
13
  "scripts": {
14
- "tsc": "tsc --w"
14
+ "tsc": "tsc --w",
15
+ "publish-npm": "npm ci && npm publish"
15
16
  },
16
17
  "author": "Max McDaniel",
17
18
  "license": "ISC",
@@ -24,4 +25,4 @@
24
25
  "devDependencies": {
25
26
  "@types/node": "^25.0.10"
26
27
  }
27
- }
28
+ }