shipthis 0.1.18 → 0.1.20

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 (85) hide show
  1. package/README.md +54 -18
  2. package/assets/markdown/ios-success.md +17 -0
  3. package/dist/{AppleBundleIdDetails-D41xptO8.js → AppleBundleIdDetails-fvGbPZdv.js} +7 -4
  4. package/dist/Command-I9hBoGAj.js +28 -0
  5. package/dist/{CommandGame-ClEQvI36.js → CommandGame-CdBKIgr-.js} +2 -1
  6. package/dist/{Create-C-7pvYVd.js → Create-4wdfWBjN.js} +6 -3
  7. package/dist/{Import-BfcHPxoi.js → Import-B3j3Faf_.js} +7 -4
  8. package/dist/{JobProgress-CICU69cf.js → JobProgress-DrBLSHdv.js} +8 -5
  9. package/dist/{JobStatusTable-CpPlQBqR.js → JobStatusTable-CHJt8Sci.js} +6 -6
  10. package/dist/{ProjectCredentialsTable-Ch2s5qF1.js → ProjectCredentialsTable-CJdsMx-O.js} +2 -2
  11. package/dist/{UserCredentialsTable-DzyAHhLB.js → UserCredentialsTable-DO3pBaVs.js} +3 -3
  12. package/dist/{baseAppleCommand-BGXyWK-R.js → baseAppleCommand-DwtoHHJe.js} +1 -1
  13. package/dist/{baseGameAndroidCommand-mdFhxanf.js → baseGameAndroidCommand-_iWWt-Rh.js} +2 -2
  14. package/dist/commands/apple/apiKey/create.js +11 -10
  15. package/dist/commands/apple/apiKey/export.js +10 -9
  16. package/dist/commands/apple/apiKey/import.js +10 -9
  17. package/dist/commands/apple/apiKey/status.js +9 -8
  18. package/dist/commands/apple/certificate/create.js +11 -10
  19. package/dist/commands/apple/certificate/export.js +10 -9
  20. package/dist/commands/apple/certificate/import.js +10 -9
  21. package/dist/commands/apple/certificate/status.js +9 -8
  22. package/dist/commands/apple/login.js +2 -2
  23. package/dist/commands/apple/status.js +8 -7
  24. package/dist/commands/dashboard.js +1 -1
  25. package/dist/commands/game/android/apiKey/connect.js +12 -11
  26. package/dist/commands/game/android/apiKey/create.js +14 -13
  27. package/dist/commands/game/android/apiKey/export.js +11 -10
  28. package/dist/commands/game/android/apiKey/import.js +11 -10
  29. package/dist/commands/game/android/apiKey/invite.js +4 -4
  30. package/dist/commands/game/android/apiKey/status.js +11 -10
  31. package/dist/commands/game/android/keyStore/create.js +12 -11
  32. package/dist/commands/game/android/keyStore/export.js +10 -9
  33. package/dist/commands/game/android/keyStore/import.js +13 -12
  34. package/dist/commands/game/android/keyStore/status.js +10 -9
  35. package/dist/commands/game/android/status.js +11 -10
  36. package/dist/commands/game/build/download.js +8 -7
  37. package/dist/commands/game/build/list.js +9 -8
  38. package/dist/commands/game/create.js +2 -2
  39. package/dist/commands/game/details.js +10 -9
  40. package/dist/commands/game/export.js +1 -1
  41. package/dist/commands/game/ios/app/addTester.js +11 -10
  42. package/dist/commands/game/ios/app/create.js +10 -9
  43. package/dist/commands/game/ios/app/status.js +11 -10
  44. package/dist/commands/game/ios/app/sync.js +9 -8
  45. package/dist/commands/game/ios/profile/create.js +11 -10
  46. package/dist/commands/game/ios/profile/export.js +10 -9
  47. package/dist/commands/game/ios/profile/import.js +10 -9
  48. package/dist/commands/game/ios/profile/status.js +10 -9
  49. package/dist/commands/game/ios/status.js +14 -13
  50. package/dist/commands/game/ios/wizard.js +44 -16
  51. package/dist/commands/game/job/list.js +8 -7
  52. package/dist/commands/game/job/status.js +11 -10
  53. package/dist/commands/game/list.js +8 -7
  54. package/dist/commands/game/ship.js +13 -12
  55. package/dist/commands/game/status.js +11 -10
  56. package/dist/commands/game/wizard.js +18 -17
  57. package/dist/commands/internal/fastlane.js +1 -1
  58. package/dist/commands/internal/readme.js +1 -1
  59. package/dist/commands/login.js +2 -2
  60. package/dist/commands/status.js +8 -7
  61. package/dist/{export-Cin4rLWR.js → export-CDgzZlSd.js} +1 -1
  62. package/dist/{import-CXTv9E84.js → import-D9dyGwy2.js} +1 -1
  63. package/dist/{index-Dj-chiHz.js → index-B-jDJolg.js} +1 -1
  64. package/dist/{index-B4v66AKo.js → index-BCO3QRqD.js} +1 -1
  65. package/dist/{Command-DdJBwDHu.js → index-CSBsz7Js.js} +21 -30
  66. package/dist/{index-Dhx6FAHt.js → index-Cn5-DHOL.js} +2 -2
  67. package/dist/{index-_Lan5Hud.js → index-JYXa6bEW.js} +8 -5
  68. package/dist/{index-DlvM24jQ.js → index-xV-xLIQa.js} +7 -4
  69. package/dist/{upload-DZCIfnwf.js → upload-CoVtaz5g.js} +1 -1
  70. package/dist/{useAndroidServiceAccountTestResult-L4oozjag.js → useAndroidServiceAccountTestResult-Bwu7ZeY5.js} +1 -1
  71. package/dist/{useAppleApp-DcSr-q-w.js → useAppleApp-1zogXNDE.js} +1 -1
  72. package/dist/{useAppleBundleId-BnJVPVIz.js → useAppleBundleId-C1shz-fc.js} +1 -1
  73. package/dist/{useJobWatching-W6FYJEPP.js → useJobWatching-mXM2P2E5.js} +3 -3
  74. package/dist/{useProjectCredentials-CI_AoXmH.js → useProjectCredentials-B2wXUghS.js} +3 -3
  75. package/dist/{useWebSocket-ZEZvtpT_.js → useWebSocket-Kupwp5m2.js} +1 -1
  76. package/docs/README.md +7 -7
  77. package/docs/apple/apiKey.md +1 -1
  78. package/docs/apple/certificate.md +1 -1
  79. package/docs/assets/wizard-android-existingx0.5.gif +0 -0
  80. package/docs/dashboard.md +1 -1
  81. package/docs/game/create.md +1 -1
  82. package/docs/login.md +1 -1
  83. package/npm-shrinkwrap.json +44 -79
  84. package/oclif.manifest.json +105 -105
  85. package/package.json +3 -2
package/README.md CHANGED
@@ -1,5 +1,5 @@
1
1
  <h1 align="center">
2
- <a href="https://shipthis.cc">
2
+ <a href="https://shipth.is">
3
3
  <picture>
4
4
  <source height="56" width="260" srcset="docs/assets/logo_dark.svg" media="(prefers-color-scheme: dark)">
5
5
  <img height="56" width="260" alt="ShipThis Home" src="docs/assets/logo_light.svg">
@@ -11,29 +11,39 @@
11
11
  </a>
12
12
  </h1>
13
13
  <p align="center">
14
- <em><b>ShipThis</b> is a <b>command line tool</b> which manages building and uploading your <a href="https://godotengine.org/">Godot</a> mobile games to the <b>Apple App Store</b> and <b>Google Play</b>.</em>
14
+ <b>ShipThis</b> is a <b>command line tool</b> for building and uploading your <a href="https://godotengine.org/">Godot</a> mobile games to the <b>Apple App Store</b> and <b>Google Play</b>.
15
15
  </p>
16
16
  <p align="center">
17
- <em><b>ShipThis compiles and uploads your Godot games in the cloud, meaning</b> you do not need to install or run Xcode or Android Studio to ship a Godot iOS/Android game.</em>
17
+ ShipThis compiles your game on managed cloud servers no local build tools needed. Use it manually or add it into your CI when you're ready to ship.
18
18
  </p>
19
19
 
20
-
21
20
  <p align="center">
22
21
  <picture>
23
- <img height="266" width="504" alt="ShipThis Home" src="docs/assets/ship-outputx0.8.gif">
22
+ <img height="266" width="504" alt="ShipThis Command - ship output" src="docs/assets/ship-outputx0.8.gif">
24
23
  </picture>
25
24
  </p>
26
25
 
27
26
  ---
28
27
 
28
+ > [!IMPORTANT]
29
+ > ShipThis is in open beta. While in beta, it is completely free to use.
30
+
31
+ ## ❓ Why use ShipThis?
32
+
33
+ - **✅ Always a free tier** – Enough usage for most solo devs.
34
+ - **✨ One-command setup** – Our interactive [`wizard`](https://shipth.is/docs/reference/game/wizard) guides you through configuration.
35
+ - **⏩ Skip the build tools** – No Xcode, Android Studio, or SDK installation required.
36
+ - **🔐 Simplify provisioning** – We handle iOS certificates, Android keystores, app signing, and API keys.
37
+ - **🚀 One-command deployment** – Publish to TestFlight or Google Play with a single CLI command.
38
+
29
39
  ## ⚡️ Quick start
30
40
 
31
41
  ### What you'll need
32
42
 
33
43
  - A Godot 3.6 or 4.X game
34
44
  - [Node.js](https://nodejs.org/en/download/) version 18.0 or above
35
- - **If you are building an iOS game** - an [Apple Developer account](https://developer.apple.com)
36
- - **If you are building an Android game** - a [Play Console developer account](https://play.google.com/apps/publish/signup)
45
+ - **If you are building an iOS game** an [Apple Developer account](https://developer.apple.com)
46
+ - **If you are building an Android game** a [Play Console developer account](https://play.google.com/apps/publish/signup)
37
47
 
38
48
  ### 1. Install ShipThis
39
49
 
@@ -45,7 +55,9 @@ npm install -g shipthis
45
55
 
46
56
  ### 2. Create an account
47
57
 
48
- Set up an account with ShipThis by logging in for the first time using the [`shipthis login`](https://shipthis.cc/docs/reference/login) command.
58
+ Set up an account with ShipThis by logging in for the first time using the [`shipthis login`](https://shipth.is/docs/reference/login) command.
59
+
60
+ > 🛠 All builds run on managed cloud servers – no need to install Xcode or Android Studio locally.
49
61
 
50
62
  ```bash
51
63
  shipthis login
@@ -53,7 +65,7 @@ shipthis login
53
65
 
54
66
  ### 3. Set up your game
55
67
 
56
- Next, run the [wizard command](https://shipthis.cc/docs/reference/game/wizard) to configure your game on ShipThis. The command takes a platform parameter - this can be either **android** or **ios**. Run this command from within a Godot game directory (with a **project.godot** file):
68
+ Next, run the [wizard command](https://shipth.is/docs/reference/game/wizard) to configure your game on ShipThis. The command takes a platform parameter this can be either **android** or **ios**. Run this command from within a Godot game directory (with a **project.godot** file):
57
69
 
58
70
  ### Set up an Android game
59
71
 
@@ -61,6 +73,21 @@ Next, run the [wizard command](https://shipthis.cc/docs/reference/game/wizard) t
61
73
  shipthis game wizard android
62
74
  ```
63
75
 
76
+ <details>
77
+ <summary>Watch: Android wizard run for a published Google Play game</summary>
78
+
79
+ <p align="center">
80
+ <picture>
81
+ <img height="431" width="672" alt="ShipThis Command - Android Wizard - published game" src="docs/assets/wizard-android-existingx0.5.gif">
82
+ </picture>
83
+ </p>
84
+
85
+ The wizard will ask if you would like to import an existing Keystore. You will need the password and path to the JKS file.
86
+
87
+ If your game is already published on Google Play, the wizard will skip the initial build upload step. Once you have connected ShipThis with Google, the wizard will be able to determine if the game exists in Google Play.
88
+
89
+ </details>
90
+
64
91
  ### Set up an iOS game
65
92
 
66
93
  ```bash
@@ -69,22 +96,31 @@ shipthis game wizard ios
69
96
 
70
97
  ### 4. Ship
71
98
 
72
- Now you can publish new versions your game to TestFlight or Google Play with the [`shipthis game ship`](https://shipthis.cc/docs/reference/game/ship) command:
99
+ Now you can publish new versions of your game to TestFlight or Google Play with the [`shipthis game ship`](https://shipth.is/docs/reference/game/ship) command:
73
100
 
74
101
  ```bash
75
102
  shipthis game ship
76
103
  ```
77
104
 
105
+ - 💡 Having issues? Check the [Troubleshooting](https://shipth.is/docs/troubleshooting) or [join our Discord](https://discord.gg/gPjn3S99k4)
106
+ - 📚 For detailed documentation, visit [shipth.is/docs](https://shipth.is/docs)
107
+
78
108
  ## 📖 Command Reference
79
109
 
80
- ### Topics
110
+ ### 🗂 Topics
111
+
112
+ - [apple](https://shipth.is/docs/reference/apple) – Commands that relate to linking your ShipThis account with your Apple Developer Account
113
+ - [game](https://shipth.is/docs/reference/game) – Commands that relate to configuring the specific game in the current working directory.
114
+
115
+ ### 🔧 Commands
81
116
 
82
- - [apple](https://shipthis.cc/docs/reference/apple) - Commands that relate to linking your ShipThis account with your Apple Developer Account
83
- - [game](https://shipthis.cc/docs/reference/game) - Commands that relate to configuring the specific game in the current working directory.
117
+ - [dashboard](https://shipth.is/docs/reference/dashboard) Opens the web browser to your shipth.is dashboard
118
+ - [login](https://shipth.is/docs/reference/login) Sign in or create a new account
119
+ - [status](https://shipth.is/docs/reference/status) – Display your overall ShipThis account status
120
+ - [help](https://shipth.is/docs/reference/help) – Display help for a specific topic or command
84
121
 
85
- ### Commands
122
+ ## 🌍 Community
86
123
 
87
- - [dashboard](https://shipthis.cc/docs/reference/dashboard) - Opens the web browser to your shipthis.cc dashboard
88
- - [login](https://shipthis.cc/docs/reference/login) - Signin or create a new account
89
- - [status](https://shipthis.cc/docs/reference/status) - Display your overall ShipThis account status
90
- - [help](https://shipthis.cc/docs/reference/help) - Display help for a specific topic or command
124
+ - 💬 [Join us on Discord](https://discord.gg/gPjn3S99k4)
125
+ - 🐛 [Report an issue](https://github.com/shipth-is/cli/issues)
126
+ - 📣 Feature ideas? Feedback? We’d love to hear from you – email support@shipth.is
@@ -0,0 +1,17 @@
1
+ # 🎉 You have successfully configured your game
2
+
3
+ **You are now ready to ship your game to the Apple App Store with a single command.**
4
+
5
+ ```bash
6
+ shipthis game ship
7
+ ```
8
+
9
+ ## 🚀 Next Steps
10
+
11
+ - Check out the **Android set up guide** [${androidSetupURL}](${androidSetupURL})
12
+ - Review the **ShipThis Documentation** [${docsURL}](${docsURL})
13
+
14
+ ### Need help?
15
+
16
+ - Join the Discord [https://discord.gg/HuSvK4GT](https://discord.gg/HuSvK4GT)
17
+ - Report an issue [https://github.com/shipth-is/cli/issues](https://github.com/shipth-is/cli/issues)
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { Box, Text } from 'ink';
3
3
  import Spinner from 'ink-spinner';
4
- import './index-Dhx6FAHt.js';
4
+ import './index-Cn5-DHOL.js';
5
5
  import 'axios';
6
6
  import '@tanstack/react-query';
7
7
  import 'crypto';
@@ -17,18 +17,21 @@ import 'luxon';
17
17
  import 'socket.io-client';
18
18
  import 'isomorphic-git';
19
19
  import '@oclif/core';
20
- import { u as useAppleApp } from './useAppleApp-DcSr-q-w.js';
20
+ import { u as useAppleApp } from './useAppleApp-1zogXNDE.js';
21
21
  import 'fast-glob';
22
22
  import 'yazl';
23
23
  import '@inkjs/ui';
24
- import './Command-DdJBwDHu.js';
24
+ import './index-CSBsz7Js.js';
25
25
  import 'open';
26
26
  import { T as Table } from './Table-CvM6pccN.js';
27
27
  import { T as Title } from './Title-BCQtayg6.js';
28
28
  import 'string-length';
29
29
  import 'strip-ansi';
30
+ import 'marked';
31
+ import 'marked-terminal';
32
+ import 'path';
30
33
  import 'qrcode';
31
- import { u as useAppleBundleId } from './useAppleBundleId-BnJVPVIz.js';
34
+ import { u as useAppleBundleId } from './useAppleBundleId-C1shz-fc.js';
32
35
 
33
36
  const AppleAppDetails = (props) => {
34
37
  const { data, isLoading } = useAppleApp(props);
@@ -0,0 +1,28 @@
1
+ import { jsx } from 'react/jsx-runtime';
2
+ import { Box } from 'ink';
3
+ import { QueryClientProvider } from '@tanstack/react-query';
4
+ import { M as queryClient } from './index-Cn5-DHOL.js';
5
+ import 'axios';
6
+ import 'crypto';
7
+ import 'fs';
8
+ import 'readline-sync';
9
+ import 'node:readline';
10
+ import 'node:path';
11
+ import 'node:url';
12
+ import 'react';
13
+ import 'crypto-js';
14
+ import 'uuid';
15
+ import 'luxon';
16
+ import 'socket.io-client';
17
+ import 'isomorphic-git';
18
+ import '@oclif/core';
19
+ import 'fast-glob';
20
+ import 'yazl';
21
+ import { C as CommandProvider } from './index-CSBsz7Js.js';
22
+
23
+ const Command = ({ children, command }) => {
24
+ const width = process.stdout.columns || 80;
25
+ return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(CommandProvider, { command, children: /* @__PURE__ */ jsx(Box, { width, flexDirection: "column", children }) }) });
26
+ };
27
+
28
+ export { Command as C };
@@ -1,5 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { C as Command, G as GameProvider } from './Command-DdJBwDHu.js';
2
+ import { G as GameProvider } from './index-CSBsz7Js.js';
3
+ import { C as Command } from './Command-I9hBoGAj.js';
3
4
 
4
5
  const CommandGame = ({ children, command }) => {
5
6
  return /* @__PURE__ */ jsx(Command, { command, children: /* @__PURE__ */ jsx(GameProvider, { children }) });
@@ -3,9 +3,9 @@ import { Box } from 'ink';
3
3
  import axios from 'axios';
4
4
  import { useContext } from 'react';
5
5
  import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-Dhx6FAHt.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-L4oozjag.js';
8
- import { a as GameContext } from './Command-DdJBwDHu.js';
6
+ import { p as getAuthedHeaders, q as API_URL } from './index-Cn5-DHOL.js';
7
+ import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
8
+ import { b as GameContext } from './index-CSBsz7Js.js';
9
9
  import 'ink-spinner';
10
10
  import '@inkjs/ui';
11
11
  import 'fs';
@@ -22,6 +22,9 @@ import 'socket.io-client';
22
22
  import 'isomorphic-git';
23
23
  import '@oclif/core';
24
24
  import 'open';
25
+ import 'marked';
26
+ import 'marked-terminal';
27
+ import 'path';
25
28
  import 'qrcode';
26
29
  import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
30
  import 'string-length';
@@ -2,8 +2,8 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { useContext, useState, useEffect } from 'react';
3
3
  import { Box, Text } from 'ink';
4
4
  import Spinner from 'ink-spinner';
5
- import { a as GameContext } from './Command-DdJBwDHu.js';
6
- import { a1 as queryClient, P as Platform, C as CredentialsType } from './index-Dhx6FAHt.js';
5
+ import { b as GameContext } from './index-CSBsz7Js.js';
6
+ import { M as queryClient, P as Platform, C as CredentialsType } from './index-Cn5-DHOL.js';
7
7
  import 'axios';
8
8
  import 'crypto-js';
9
9
  import { v4 } from 'uuid';
@@ -12,8 +12,8 @@ import fs__default from 'fs';
12
12
  import '@inkjs/ui';
13
13
  import { useMutation } from '@tanstack/react-query';
14
14
  import yazl from 'yazl';
15
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-L4oozjag.js';
16
- import { i as importCredential } from './import-CXTv9E84.js';
15
+ import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
16
+ import { i as importCredential } from './import-D9dyGwy2.js';
17
17
  import 'crypto';
18
18
  import 'readline-sync';
19
19
  import 'node:readline';
@@ -24,6 +24,9 @@ import 'socket.io-client';
24
24
  import 'isomorphic-git';
25
25
  import '@oclif/core';
26
26
  import 'open';
27
+ import 'marked';
28
+ import 'marked-terminal';
29
+ import 'path';
27
30
  import 'qrcode';
28
31
  import 'string-length';
29
32
  import 'strip-ansi';
@@ -4,25 +4,28 @@ import fg from 'fast-glob';
4
4
  import fs__default from 'fs';
5
5
  import yazl from 'yazl';
6
6
  import { useMutation } from '@tanstack/react-query';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-L4oozjag.js';
8
- import { a1 as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, a2 as getNewUploadTicket, a3 as startJobsFromUpload, J as JobStatus } from './index-Dhx6FAHt.js';
9
- import { e as getFileHash, f as getPlatformName } from './index-Dj-chiHz.js';
7
+ import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
8
+ import { M as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, a2 as getNewUploadTicket, a3 as startJobsFromUpload, J as JobStatus } from './index-Cn5-DHOL.js';
9
+ import { e as getFileHash, f as getPlatformName } from './index-B-jDJolg.js';
10
10
  import { g as getCWDGitInfo } from './git-DREGq-jc.js';
11
11
  import { jsx, Fragment } from 'react/jsx-runtime';
12
12
  import { useRef } from 'react';
13
13
  import 'ink';
14
- import './Command-DdJBwDHu.js';
14
+ import './index-CSBsz7Js.js';
15
15
  import 'ink-spinner';
16
16
  import 'crypto-js';
17
17
  import 'luxon';
18
18
  import '@inkjs/ui';
19
19
  import 'open';
20
+ import 'marked';
21
+ import 'marked-terminal';
22
+ import 'path';
20
23
  import { P as ProgressSpinner } from './ProgressSpinner-6pw1T8Iw.js';
21
24
  import 'qrcode';
22
25
  import 'string-length';
23
26
  import 'strip-ansi';
24
27
  import 'socket.io-client';
25
- import { u as useJobWatching } from './useJobWatching-W6FYJEPP.js';
28
+ import { u as useJobWatching } from './useJobWatching-mXM2P2E5.js';
26
29
 
27
30
  async function ship({ command, log = () => {
28
31
  } }) {
@@ -1,11 +1,11 @@
1
1
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
2
2
  import { measureElement, Box, Text } from 'ink';
3
3
  import Spinner from 'ink-spinner';
4
- import { h as getStageColor, j as getMessageColor, c as getJobStatusColor } from './index-Dj-chiHz.js';
4
+ import { h as getStageColor, j as getMessageColor, c as getJobStatusColor } from './index-B-jDJolg.js';
5
5
  import { useState, useEffect, useRef } from 'react';
6
6
  import axios from 'axios';
7
7
  import { useInfiniteQuery } from '@tanstack/react-query';
8
- import { p as getAuthedHeaders, q as API_URL, L as castArrayObjectDates, H as castObjectDates, a5 as getShortTime, J as JobStatus } from './index-Dhx6FAHt.js';
8
+ import { p as getAuthedHeaders, q as API_URL, L as castArrayObjectDates, H as castObjectDates, a5 as getShortTime, J as JobStatus } from './index-Cn5-DHOL.js';
9
9
  import 'crypto-js';
10
10
  import 'uuid';
11
11
  import 'fs';
@@ -18,15 +18,15 @@ import 'readline-sync';
18
18
  import 'node:readline';
19
19
  import 'node:path';
20
20
  import 'node:url';
21
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-L4oozjag.js';
21
+ import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
22
22
  import 'isomorphic-git';
23
23
  import '@oclif/core';
24
- import { u as useWebSocket } from './useWebSocket-ZEZvtpT_.js';
24
+ import { u as useWebSocket } from './useWebSocket-Kupwp5m2.js';
25
25
  import { T as Title } from './Title-BCQtayg6.js';
26
26
  import stringLength from 'string-length';
27
27
  import stripAnsi from 'strip-ansi';
28
- import { g as getJobSummary, d as getBuildSummary } from './Command-DdJBwDHu.js';
29
- import { u as useJobWatching } from './useJobWatching-W6FYJEPP.js';
28
+ import { a as getJobSummary, e as getBuildSummary } from './index-CSBsz7Js.js';
29
+ import { u as useJobWatching } from './useJobWatching-mXM2P2E5.js';
30
30
  import { a as StatusRow, b as StatusRowLabel } from './StatusTable-Dm5St4g-.js';
31
31
 
32
32
  async function queryJobLogs({
@@ -10,11 +10,11 @@ import 'node:url';
10
10
  import 'react';
11
11
  import 'axios';
12
12
  import '@tanstack/react-query';
13
- import './index-Dhx6FAHt.js';
13
+ import './index-Cn5-DHOL.js';
14
14
  import 'crypto-js';
15
15
  import 'uuid';
16
16
  import 'luxon';
17
- import { u as useProjectCredentials, g as getProjectCredentialSummary } from './useProjectCredentials-CI_AoXmH.js';
17
+ import { u as useProjectCredentials, g as getProjectCredentialSummary } from './useProjectCredentials-B2wXUghS.js';
18
18
  import 'fast-glob';
19
19
  import 'yazl';
20
20
  import 'socket.io-client';
@@ -10,14 +10,14 @@ import 'node:url';
10
10
  import 'react';
11
11
  import axios from 'axios';
12
12
  import { useQuery } from '@tanstack/react-query';
13
- import { b as getShortDate, p as getAuthedHeaders, q as API_URL, L as castArrayObjectDates } from './index-Dhx6FAHt.js';
13
+ import { b as getShortDate, p as getAuthedHeaders, q as API_URL, L as castArrayObjectDates } from './index-Cn5-DHOL.js';
14
14
  import 'crypto-js';
15
15
  import 'uuid';
16
16
  import 'luxon';
17
17
  import 'fast-glob';
18
18
  import 'yazl';
19
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-L4oozjag.js';
20
- import { g as getShortUUID } from './index-Dj-chiHz.js';
19
+ import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
20
+ import { g as getShortUUID } from './index-B-jDJolg.js';
21
21
  import 'socket.io-client';
22
22
  import 'isomorphic-git';
23
23
  import '@oclif/core';
@@ -1,4 +1,4 @@
1
- import { B as BaseAuthenticatedCommand } from './index-Dhx6FAHt.js';
1
+ import { B as BaseAuthenticatedCommand } from './index-Cn5-DHOL.js';
2
2
 
3
3
  class BaseAppleCommand extends BaseAuthenticatedCommand {
4
4
  async init() {
@@ -1,5 +1,5 @@
1
- import { c as BaseGameCommand, Q as getGodotAndroidPackageName, R as getGoogleStatus } from './index-Dhx6FAHt.js';
2
- import { b as generatePackageName, a as getInput } from './index-Dj-chiHz.js';
1
+ import { c as BaseGameCommand, S as getGodotAndroidPackageName, T as getGoogleStatus } from './index-Cn5-DHOL.js';
2
+ import { b as generatePackageName, a as getInput } from './index-B-jDJolg.js';
3
3
 
4
4
  class BaseGameAndroidCommand extends BaseGameCommand {
5
5
  async init() {
@@ -1,10 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { render } from 'ink';
4
- import { P as Platform, C as CredentialsType, A as ApiKey, a as ApiKeyType, U as UserRole } from '../../../index-Dhx6FAHt.js';
5
- import { g as getUserCredentials } from '../../../index-B4v66AKo.js';
4
+ import { P as Platform, C as CredentialsType, A as ApiKey, a as ApiKeyType, U as UserRole } from '../../../index-Cn5-DHOL.js';
5
+ import { g as getUserCredentials } from '../../../index-BCO3QRqD.js';
6
6
  import 'react';
7
- import { C as Command } from '../../../Command-DdJBwDHu.js';
7
+ import '../../../index-CSBsz7Js.js';
8
8
  import 'ink-spinner';
9
9
  import 'axios';
10
10
  import 'crypto-js';
@@ -23,20 +23,21 @@ import 'fast-glob';
23
23
  import 'socket.io-client';
24
24
  import 'isomorphic-git';
25
25
  import 'open';
26
+ import 'marked';
27
+ import 'marked-terminal';
28
+ import 'path';
26
29
  import 'qrcode';
27
30
  import { R as RunWithSpinner } from '../../../RunWithSpinner-BVXNWGD3.js';
28
31
  import 'string-length';
29
32
  import 'strip-ansi';
30
- import { B as BaseAppleCommand } from '../../../baseAppleCommand-BGXyWK-R.js';
31
- import { u as uploadUserCredentials } from '../../../upload-DZCIfnwf.js';
32
- import 'path';
33
+ import { C as Command } from '../../../Command-I9hBoGAj.js';
34
+ import { B as BaseAppleCommand } from '../../../baseAppleCommand-DwtoHHJe.js';
35
+ import { u as uploadUserCredentials } from '../../../upload-CoVtaz5g.js';
33
36
  import '@expo/apple-utils/build/index.js';
34
37
  import 'ini';
35
38
  import 'deepmerge';
36
- import '../../../index-Dj-chiHz.js';
37
- import '../../../useAndroidServiceAccountTestResult-L4oozjag.js';
38
- import 'marked';
39
- import 'marked-terminal';
39
+ import '../../../index-B-jDJolg.js';
40
+ import '../../../useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
40
41
 
41
42
  class AppleApiKeyCreate extends BaseAppleCommand {
42
43
  static args = {};
@@ -2,10 +2,10 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { Args, Flags } from '@oclif/core';
3
3
  import { render } from 'ink';
4
4
  import * as fs from 'fs';
5
- import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-Dhx6FAHt.js';
6
- import { g as getUserCredentials } from '../../../index-B4v66AKo.js';
5
+ import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-Cn5-DHOL.js';
6
+ import { g as getUserCredentials } from '../../../index-BCO3QRqD.js';
7
7
  import 'react';
8
- import { C as Command } from '../../../Command-DdJBwDHu.js';
8
+ import '../../../index-CSBsz7Js.js';
9
9
  import 'ink-spinner';
10
10
  import 'axios';
11
11
  import 'crypto-js';
@@ -23,19 +23,20 @@ import 'fast-glob';
23
23
  import 'socket.io-client';
24
24
  import 'isomorphic-git';
25
25
  import 'open';
26
+ import 'marked';
27
+ import 'marked-terminal';
28
+ import 'path';
26
29
  import 'qrcode';
27
30
  import { R as RunWithSpinner } from '../../../RunWithSpinner-BVXNWGD3.js';
28
31
  import 'string-length';
29
32
  import 'strip-ansi';
30
- import { e as exportCredential } from '../../../export-Cin4rLWR.js';
31
- import 'path';
33
+ import { C as Command } from '../../../Command-I9hBoGAj.js';
34
+ import { e as exportCredential } from '../../../export-CDgzZlSd.js';
32
35
  import '@expo/apple-utils/build/index.js';
33
36
  import 'ini';
34
37
  import 'deepmerge';
35
- import '../../../index-Dj-chiHz.js';
36
- import '../../../useAndroidServiceAccountTestResult-L4oozjag.js';
37
- import 'marked';
38
- import 'marked-terminal';
38
+ import '../../../index-B-jDJolg.js';
39
+ import '../../../useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
39
40
 
40
41
  class AppleApiKeyExport extends BaseAuthenticatedCommand {
41
42
  static args = {
@@ -2,10 +2,10 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import { Args, Flags } from '@oclif/core';
3
3
  import { render } from 'ink';
4
4
  import * as fs from 'fs';
5
- import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-Dhx6FAHt.js';
6
- import { g as getUserCredentials } from '../../../index-B4v66AKo.js';
5
+ import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-Cn5-DHOL.js';
6
+ import { g as getUserCredentials } from '../../../index-BCO3QRqD.js';
7
7
  import 'react';
8
- import { C as Command } from '../../../Command-DdJBwDHu.js';
8
+ import '../../../index-CSBsz7Js.js';
9
9
  import 'ink-spinner';
10
10
  import 'axios';
11
11
  import 'crypto-js';
@@ -23,19 +23,20 @@ import 'fast-glob';
23
23
  import 'socket.io-client';
24
24
  import 'isomorphic-git';
25
25
  import 'open';
26
+ import 'marked';
27
+ import 'marked-terminal';
28
+ import 'path';
26
29
  import 'qrcode';
27
30
  import { R as RunWithSpinner } from '../../../RunWithSpinner-BVXNWGD3.js';
28
31
  import 'string-length';
29
32
  import 'strip-ansi';
30
- import { i as importCredential } from '../../../import-CXTv9E84.js';
31
- import 'path';
33
+ import { C as Command } from '../../../Command-I9hBoGAj.js';
34
+ import { i as importCredential } from '../../../import-D9dyGwy2.js';
32
35
  import '@expo/apple-utils/build/index.js';
33
36
  import 'ini';
34
37
  import 'deepmerge';
35
- import '../../../index-Dj-chiHz.js';
36
- import '../../../useAndroidServiceAccountTestResult-L4oozjag.js';
37
- import 'marked';
38
- import 'marked-terminal';
38
+ import '../../../index-B-jDJolg.js';
39
+ import '../../../useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
39
40
 
40
41
  class AppleApiKeyImport extends BaseAuthenticatedCommand {
41
42
  static args = {
@@ -1,9 +1,9 @@
1
1
  import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { Box, Text, render } from 'ink';
4
- import { b as getShortDate, A as ApiKey, C as CredentialsType, P as Platform, B as BaseAuthenticatedCommand } from '../../../index-Dhx6FAHt.js';
4
+ import { b as getShortDate, A as ApiKey, C as CredentialsType, P as Platform, B as BaseAuthenticatedCommand } from '../../../index-Cn5-DHOL.js';
5
5
  import 'react';
6
- import { C as Command } from '../../../Command-DdJBwDHu.js';
6
+ import '../../../index-CSBsz7Js.js';
7
7
  import Spinner from 'ink-spinner';
8
8
  import 'axios';
9
9
  import 'crypto-js';
@@ -22,21 +22,22 @@ import 'fast-glob';
22
22
  import 'socket.io-client';
23
23
  import 'isomorphic-git';
24
24
  import 'open';
25
+ import 'marked';
26
+ import 'marked-terminal';
27
+ import 'path';
25
28
  import 'qrcode';
26
29
  import 'string-length';
27
30
  import 'strip-ansi';
28
- import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-DzyAHhLB.js';
31
+ import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-DO3pBaVs.js';
29
32
  import { T as Table } from '../../../Table-CvM6pccN.js';
30
33
  import { T as Title } from '../../../Title-BCQtayg6.js';
31
34
  import { N as NextSteps } from '../../../NextSteps-CK9zHOCt.js';
32
- import 'path';
35
+ import { C as Command } from '../../../Command-I9hBoGAj.js';
33
36
  import '@expo/apple-utils/build/index.js';
34
37
  import 'ini';
35
38
  import 'deepmerge';
36
- import '../../../index-Dj-chiHz.js';
37
- import '../../../useAndroidServiceAccountTestResult-L4oozjag.js';
38
- import 'marked';
39
- import 'marked-terminal';
39
+ import '../../../index-B-jDJolg.js';
40
+ import '../../../useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
40
41
 
41
42
  async function queryAppleApiKeys({ ctx }) {
42
43
  const keys = await ApiKey.getAsync(ctx);
@@ -1,10 +1,10 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { render } from 'ink';
4
- import { m as CertificateType, l as Certificate, P as Platform, C as CredentialsType } from '../../../index-Dhx6FAHt.js';
5
- import { g as getUserCredentials } from '../../../index-B4v66AKo.js';
4
+ import { m as CertificateType, l as Certificate, P as Platform, C as CredentialsType } from '../../../index-Cn5-DHOL.js';
5
+ import { g as getUserCredentials } from '../../../index-BCO3QRqD.js';
6
6
  import 'react';
7
- import { C as Command } from '../../../Command-DdJBwDHu.js';
7
+ import '../../../index-CSBsz7Js.js';
8
8
  import 'ink-spinner';
9
9
  import 'axios';
10
10
  import 'crypto-js';
@@ -23,21 +23,22 @@ import 'fast-glob';
23
23
  import 'socket.io-client';
24
24
  import 'isomorphic-git';
25
25
  import 'open';
26
+ import 'marked';
27
+ import 'marked-terminal';
28
+ import 'path';
26
29
  import 'qrcode';
27
30
  import { R as RunWithSpinner } from '../../../RunWithSpinner-BVXNWGD3.js';
28
31
  import 'string-length';
29
32
  import 'strip-ansi';
33
+ import { C as Command } from '../../../Command-I9hBoGAj.js';
30
34
  import forge from 'node-forge';
31
- import { B as BaseAppleCommand } from '../../../baseAppleCommand-BGXyWK-R.js';
32
- import { u as uploadUserCredentials } from '../../../upload-DZCIfnwf.js';
33
- import 'path';
35
+ import { B as BaseAppleCommand } from '../../../baseAppleCommand-DwtoHHJe.js';
36
+ import { u as uploadUserCredentials } from '../../../upload-CoVtaz5g.js';
34
37
  import '@expo/apple-utils/build/index.js';
35
38
  import 'ini';
36
39
  import 'deepmerge';
37
- import '../../../index-Dj-chiHz.js';
38
- import '../../../useAndroidServiceAccountTestResult-L4oozjag.js';
39
- import 'marked';
40
- import 'marked-terminal';
40
+ import '../../../index-B-jDJolg.js';
41
+ import '../../../useAndroidServiceAccountTestResult-Bwu7ZeY5.js';
41
42
 
42
43
  function decodeCertificate(certificateContent) {
43
44
  const decodedContent = forge.util.decode64(certificateContent);