shipthis 0.1.33 → 0.1.35
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.
- package/README.md +8 -7
- package/assets/markdown/{android-success.md → android-success.md.ejs} +2 -2
- package/assets/markdown/apikey-create.md.ejs +11 -0
- package/assets/markdown/{create-google-play-game.md → create-google-play-game.md.ejs} +2 -2
- package/assets/markdown/{invite-service-account.md → invite-service-account.md.ejs} +1 -1
- package/assets/markdown/{ios-success.md → ios-success.md.ejs} +2 -2
- package/assets/markdown/{privacy-notification.md → privacy-notification.md.ejs} +1 -1
- package/assets/markdown/service-account-policy-wizard.md.ejs +26 -0
- package/assets/markdown/service-account-policy.md.ejs +30 -0
- package/assets/markdown/{ship-failure.md → ship-failure.md.ejs} +1 -1
- package/assets/markdown/{ship-success.md → ship-success.md.ejs} +2 -2
- package/dist/{AppleBundleIdDetails-BhHPCvRm.js → AppleBundleIdDetails-N_j1wv6f.js} +5 -4
- package/dist/{Command-BDIkuv2g.js → Command-DN1j3tjt.js} +2 -2
- package/dist/{CommandGame-CvBIjPZp.js → CommandGame-D2NqytWc.js} +2 -2
- package/dist/{Create-Lpe0B8nT.js → Create-BRdv5jXQ.js} +5 -4
- package/dist/{GameStatus-5XpufIY_.js → GameStatus-joyHPy0f.js} +12 -17
- package/dist/{Import-DFzrAG04.js → Import-BNMHsJoM.js} +5 -4
- package/dist/{JobLogTail-BYcJgPcL.js → JobLogTail-D35FO5v-.js} +5 -5
- package/dist/{JobProgress-BcrE7CUK.js → JobProgress-D-9KESaA.js} +6 -5
- package/dist/{JobStatusTable-Bi-y8ZZT.js → JobStatusTable-DIJ_h-gi.js} +4 -4
- package/dist/{ProjectCredentialsTable-B4vDJl4l.js → ProjectCredentialsTable-BMKgv99h.js} +2 -2
- package/dist/{RunWithSpinner-gMVA07bZ.js → RunWithSpinner-DucRnFp6.js} +2 -1
- package/dist/{UserCredentialsTable-CwkZTFBD.js → UserCredentialsTable-CUrTDzTK.js} +10 -10
- package/dist/{baseAppleCommand-BKXweb-U.js → baseAppleCommand-Cs9a52e5.js} +1 -1
- package/dist/{baseGameAndroidCommand-CAi-BSsH.js → baseGameAndroidCommand-BCB1SMCf.js} +2 -2
- package/dist/commands/apiKey/create.js +100 -0
- package/dist/commands/apiKey/list.js +94 -0
- package/dist/commands/apiKey/revoke.js +85 -0
- package/dist/commands/apple/apiKey/create.js +12 -9
- package/dist/commands/apple/apiKey/export.js +11 -8
- package/dist/commands/apple/apiKey/import.js +11 -8
- package/dist/commands/apple/apiKey/status.js +16 -13
- package/dist/commands/apple/certificate/create.js +12 -9
- package/dist/commands/apple/certificate/export.js +11 -8
- package/dist/commands/apple/certificate/import.js +11 -8
- package/dist/commands/apple/certificate/status.js +16 -13
- package/dist/commands/apple/login.js +2 -2
- package/dist/commands/apple/status.js +8 -5
- package/dist/commands/dashboard.js +1 -1
- package/dist/commands/game/android/apiKey/connect.js +13 -9
- package/dist/commands/game/android/apiKey/create.js +15 -11
- package/dist/commands/game/android/apiKey/export.js +12 -9
- package/dist/commands/game/android/apiKey/import.js +12 -9
- package/dist/commands/game/android/apiKey/invite.js +4 -4
- package/dist/commands/game/android/apiKey/policy.js +87 -0
- package/dist/commands/game/android/apiKey/status.js +11 -8
- package/dist/commands/game/android/keyStore/create.js +13 -10
- package/dist/commands/game/android/keyStore/export.js +11 -8
- package/dist/commands/game/android/keyStore/import.js +13 -10
- package/dist/commands/game/android/keyStore/status.js +10 -7
- package/dist/commands/game/android/status.js +1 -1
- package/dist/commands/game/build/download.js +9 -6
- package/dist/commands/game/build/list.js +9 -6
- package/dist/commands/game/create.js +2 -2
- package/dist/commands/game/details.js +8 -5
- package/dist/commands/game/export.js +1 -1
- package/dist/commands/game/ios/app/addTester.js +16 -13
- package/dist/commands/game/ios/app/create.js +9 -6
- package/dist/commands/game/ios/app/status.js +11 -8
- package/dist/commands/game/ios/app/sync.js +10 -7
- package/dist/commands/game/ios/profile/create.js +12 -9
- package/dist/commands/game/ios/profile/export.js +11 -8
- package/dist/commands/game/ios/profile/import.js +11 -8
- package/dist/commands/game/ios/profile/status.js +10 -7
- package/dist/commands/game/ios/status.js +13 -10
- package/dist/commands/game/ios/wizard.js +9 -6
- package/dist/commands/game/job/list.js +8 -5
- package/dist/commands/game/job/status.js +11 -8
- package/dist/commands/game/list.js +15 -10
- package/dist/commands/game/ship.js +15 -12
- package/dist/commands/game/status.js +10 -7
- package/dist/commands/game/wizard.js +24 -20
- package/dist/commands/internal/fastlane.js +1 -1
- package/dist/commands/internal/readme.js +4 -715
- package/dist/commands/login.js +2 -2
- package/dist/commands/status.js +14 -14
- package/dist/ejs-DirFZbza.js +716 -0
- package/dist/{export-DLQrUEBK.js → export-DFCZKNQk.js} +1 -1
- package/dist/{import-BoY5e0uJ.js → import-BpGyif-m.js} +1 -1
- package/dist/{index-CisLwc7e.js → index-BTXEUd8W.js} +59 -16
- package/dist/{index-pj8JVg5X.js → index-BwnzoldS.js} +37 -2
- package/dist/{index-B27WJDxn.js → index-CJWMt1s-.js} +1 -1
- package/dist/{index-DC0GJtAy.js → index-DlE_SPt3.js} +7 -11
- package/dist/{index-DfUg5j06.js → index-hoHfGrjg.js} +33 -33
- package/dist/{index-Crv7S0bl.js → index-izrACZbC.js} +1 -1
- package/dist/{upload-C8S17EU_.js → upload-D19OQsbn.js} +1 -1
- package/dist/{useAndroidServiceAccountTestResult-D4e5AKAZ.js → useAndroidServiceAccountTestResult-CwKeW0ED.js} +1 -1
- package/dist/{useAppleApp-Dr6URQvC.js → useAppleApp-BZc_cNa-.js} +1 -1
- package/dist/{useAppleBundleId-DELAwSQp.js → useAppleBundleId-DvMXAvWD.js} +1 -1
- package/dist/useGoogleStatus-Cx_QIsXa.js +10 -0
- package/dist/{useProjectCredentials-BjvdJdQg.js → useProjectCredentials-DxdwJCfU.js} +14 -11
- package/dist/{useWebSocket-CRV7V69Q.js → useWebSocket-cM5yOcDv.js} +1 -1
- package/docs/README.md +3 -2
- package/docs/apiKey/create.md +27 -0
- package/docs/apiKey/list.md +30 -0
- package/docs/apiKey/revoke.md +26 -0
- package/docs/apiKey.md +103 -0
- package/docs/game/android/apiKey/policy.md +28 -0
- package/docs/game/android/keyStore.md +14 -4
- package/docs/game/android/status.md +4 -0
- package/docs/game/android.md +9 -305
- package/docs/game/ship.md +43 -11
- package/docs/game.md +7 -1
- package/package.json +11 -3
- /package/assets/markdown/{create-or-import-keystore.md → create-or-import-keystore.md.ejs} +0 -0
package/README.md
CHANGED
|
@@ -199,18 +199,19 @@ ShipThis is currently in open-beta as so it is completely free to use. You can s
|
|
|
199
199
|
|
|
200
200
|
### 🗂 Topics
|
|
201
201
|
|
|
202
|
-
- [
|
|
203
|
-
- [
|
|
202
|
+
- [apiKey](https://shipth.is/docs/reference/apiKey) - Commands related to ShipThis API Keys
|
|
203
|
+
- [apple](https://shipth.is/docs/reference/apple) - Commands that relate to linking your ShipThis account with your Apple Developer Account
|
|
204
|
+
- [game](https://shipth.is/docs/reference/game) - Commands that relate to configuring the specific game in the current working directory.
|
|
204
205
|
|
|
205
206
|
### 🔧 Commands
|
|
206
207
|
|
|
207
|
-
- [dashboard](https://shipth.is/docs/reference/dashboard)
|
|
208
|
-
- [login](https://shipth.is/docs/reference/login)
|
|
209
|
-
- [status](https://shipth.is/docs/reference/status)
|
|
210
|
-
- [help](https://shipth.is/docs/reference/help)
|
|
208
|
+
- [dashboard](https://shipth.is/docs/reference/dashboard) - Opens the web browser to your shipth.is dashboard
|
|
209
|
+
- [login](https://shipth.is/docs/reference/login) - Sign in or create a new account
|
|
210
|
+
- [status](https://shipth.is/docs/reference/status) - Display your overall ShipThis account status
|
|
211
|
+
- [help](https://shipth.is/docs/reference/help) - Display help for a specific topic or command
|
|
211
212
|
|
|
212
213
|
## 🌍 Community
|
|
213
214
|
|
|
214
215
|
- 💬 [Join us on Discord](https://discord.gg/gPjn3S99k4)
|
|
215
216
|
- 🐛 [Report an issue](https://github.com/shipth-is/cli/issues)
|
|
216
|
-
- 📣 Feature ideas? Feedback? We’d love to hear from you
|
|
217
|
+
- 📣 Feature ideas? Feedback? We’d love to hear from you - email support@shipth.is
|
|
@@ -8,8 +8,8 @@ shipthis game ship
|
|
|
8
8
|
|
|
9
9
|
## 🚀 Next Steps
|
|
10
10
|
|
|
11
|
-
- Check out the **iOS set up guide** [
|
|
12
|
-
- Review the **ShipThis Documentation** [
|
|
11
|
+
- Check out the **iOS set up guide** [<%= iosSetupURL %>](<%= iosSetupURL %>)
|
|
12
|
+
- Review the **ShipThis Documentation** [<%= docsURL %>](<%= docsURL %>)
|
|
13
13
|
|
|
14
14
|
### Need help?
|
|
15
15
|
|
|
@@ -12,7 +12,7 @@ You will need to manually create an "app" in Google Play.
|
|
|
12
12
|
To download the AAB file from the previous step, please run:
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
|
|
15
|
+
<%= downloadCmd %>
|
|
16
16
|
```
|
|
17
17
|
|
|
18
|
-
The build is also available for download from your **ShipThis Dashboard** [
|
|
18
|
+
The build is also available for download from your **ShipThis Dashboard** [<%= dashboardURL %>](<%= dashboardURL %>). **Press D to open the dashboard in your browser**
|
|
@@ -4,7 +4,7 @@ Before the Service Account API Key can submit your games automatically, you will
|
|
|
4
4
|
|
|
5
5
|
## How To find your Google Play Account ID
|
|
6
6
|
|
|
7
|
-
You can read our help page about this on the **ShipThis Documentation** [
|
|
7
|
+
You can read our help page about this on the **ShipThis Documentation** [<%= guideURL %>](<%= guideURL %>)
|
|
8
8
|
|
|
9
9
|
1. Log in to the **Google Play Console** [https://play.google.com/console](https://play.google.com/console)
|
|
10
10
|
1. Below your account name there is a label **Account ID**
|
|
@@ -8,8 +8,8 @@ shipthis game ship
|
|
|
8
8
|
|
|
9
9
|
## 🚀 Next Steps
|
|
10
10
|
|
|
11
|
-
- Check out the **Android set up guide** [
|
|
12
|
-
- Review the **ShipThis Documentation** [
|
|
11
|
+
- Check out the **Android set up guide** [<%= androidSetupURL %>](<%= androidSetupURL %>)
|
|
12
|
+
- Review the **ShipThis Documentation** [<%= docsURL %>](<%= docsURL %>)
|
|
13
13
|
|
|
14
14
|
### Need help?
|
|
15
15
|
|
|
@@ -7,4 +7,4 @@ By connecting your Google account, ShipThis will generate a short-lived access t
|
|
|
7
7
|
- Securely store your Service Account API Key in the ShipThis backend for deploying new game builds.
|
|
8
8
|
- Invite the Service Account to your Google Play account.
|
|
9
9
|
|
|
10
|
-
**To learn more about how ShipThis accesses, uses, and protects your Google data, please review our Privacy Policy [
|
|
10
|
+
**To learn more about how ShipThis accesses, uses, and protects your Google data, please review our Privacy Policy [<%= privacyURL %>](<%= privacyURL %>).**
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
# Google Organization Policy Change Needed
|
|
2
|
+
|
|
3
|
+
| Organization | Resource | Created |
|
|
4
|
+
|--------------|----------|---------|
|
|
5
|
+
| <%= orgName %> | <%= orgResourceName %> | <%= orgCreatedAt %> |
|
|
6
|
+
|
|
7
|
+
## What you need to do
|
|
8
|
+
|
|
9
|
+
Before ShipThis can create a Service Account API key for your game, you need to ensure that your Google Organization Policy allows Service Account key creation. This is a security measure present on some Google Organization accounts to prevent unauthorized access to resources.
|
|
10
|
+
|
|
11
|
+
If your organization was created on or after **May 3, 2024**, this policy is enforced by default and will need to be changed.
|
|
12
|
+
|
|
13
|
+
Learn more: https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts?authuser=2#disable_service_account_key_creation
|
|
14
|
+
|
|
15
|
+
**ShipThis can change this policy for you. Press P to proceed and let ShipThis change the policy.**
|
|
16
|
+
|
|
17
|
+
If you would like to change this policy manually, please see:
|
|
18
|
+
|
|
19
|
+
- https://www.youtube.com/watch?v=ABIiOM9X5kM
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
You can re-enable the policy at any time:
|
|
23
|
+
|
|
24
|
+
```bash
|
|
25
|
+
shipthis game android apiKey policy --enforce
|
|
26
|
+
```
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
# Google Organization Policy: Disable Service Account Key Creation
|
|
2
|
+
|
|
3
|
+
**Organization:** <%= orgName %>
|
|
4
|
+
**Resource:** <%= orgResourceName %>
|
|
5
|
+
**Created:** <%= orgCreatedAt %>
|
|
6
|
+
**Policy Change Needed:** <%= needsPolicyChange ? 'Yes' : 'No' %>
|
|
7
|
+
|
|
8
|
+
Note: If your organization was created on or after **May 3, 2024**, this constraint is enforced by default.
|
|
9
|
+
Learn more: https://cloud.google.com/resource-manager/docs/organization-policy/restricting-service-accounts?authuser=2#disable_service_account_key_creation
|
|
10
|
+
|
|
11
|
+
If you would like to change this policy manually, please see:
|
|
12
|
+
|
|
13
|
+
- https://www.youtube.com/watch?v=ABIiOM9X5kM
|
|
14
|
+
|
|
15
|
+
<% if (needsPolicyChange) { %>
|
|
16
|
+
This organization currently **enforces** the policy that disables service account key creation.
|
|
17
|
+
|
|
18
|
+
To create an API key, you must **revoke** this policy:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
shipthis game android apiKey policy --revoke
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
You can re-enable the policy at any time:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
shipthis game android apiKey policy --enforce
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
<% } %>
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
## What now?
|
|
6
6
|
|
|
7
7
|
- **The last 10 lines of the failed jobs are shown below**
|
|
8
|
-
- Check out the full output in the **ShipThis Dashboard** [
|
|
8
|
+
- Check out the full output in the **ShipThis Dashboard** [<%= jobDashboardUrl %>](<%= jobDashboardUrl %>)
|
|
9
9
|
|
|
10
10
|
### Need help?
|
|
11
11
|
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
# 🚀 Shipped
|
|
2
2
|
|
|
3
|
-
**Your game has been successfully built
|
|
3
|
+
**Your game has been successfully built<% if (wasPublished) { %> and published<% } %>.**
|
|
4
4
|
|
|
5
5
|
## Next Steps
|
|
6
6
|
|
|
7
|
-
- See all builds in the **Dashboard** [
|
|
7
|
+
- See all builds in the **Dashboard** [<%= gameBuildsUrl %>](<%= gameBuildsUrl %>)
|
|
8
8
|
|
|
9
9
|
### Need help?
|
|
10
10
|
|
|
@@ -11,13 +11,13 @@ import 'readline-sync';
|
|
|
11
11
|
import 'luxon';
|
|
12
12
|
import 'axios';
|
|
13
13
|
import 'isomorphic-git';
|
|
14
|
-
import './index-
|
|
14
|
+
import './index-BwnzoldS.js';
|
|
15
15
|
import '@oclif/core';
|
|
16
16
|
import '@tanstack/react-query';
|
|
17
17
|
import 'react';
|
|
18
18
|
import 'crypto-js';
|
|
19
19
|
import 'uuid';
|
|
20
|
-
import { u as useAppleApp } from './useAppleApp-
|
|
20
|
+
import { u as useAppleApp } from './useAppleApp-BZc_cNa-.js';
|
|
21
21
|
import 'fast-glob';
|
|
22
22
|
import 'yazl';
|
|
23
23
|
import 'socket.io-client';
|
|
@@ -27,11 +27,12 @@ import { T as Title } from './Title-BCQtayg6.js';
|
|
|
27
27
|
import 'string-length';
|
|
28
28
|
import 'strip-ansi';
|
|
29
29
|
import 'open';
|
|
30
|
-
import './index-
|
|
30
|
+
import './index-hoHfGrjg.js';
|
|
31
|
+
import './ejs-DirFZbza.js';
|
|
31
32
|
import 'marked';
|
|
32
33
|
import 'marked-terminal';
|
|
33
34
|
import 'qrcode';
|
|
34
|
-
import { u as useAppleBundleId } from './useAppleBundleId-
|
|
35
|
+
import { u as useAppleBundleId } from './useAppleBundleId-DvMXAvWD.js';
|
|
35
36
|
|
|
36
37
|
const AppleAppDetails = (props) => {
|
|
37
38
|
const { data, isLoading } = useAppleApp(props);
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { QueryClientProvider } from '@tanstack/react-query';
|
|
3
3
|
import { useScreenSize } from 'fullscreen-ink';
|
|
4
4
|
import { Box } from 'ink';
|
|
5
|
-
import { K as queryClient } from './index-
|
|
5
|
+
import { K as queryClient } from './index-BwnzoldS.js';
|
|
6
6
|
import 'axios';
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'crypto-js';
|
|
@@ -19,7 +19,7 @@ import 'react';
|
|
|
19
19
|
import 'socket.io-client';
|
|
20
20
|
import 'fast-glob';
|
|
21
21
|
import 'yazl';
|
|
22
|
-
import { b as CommandProvider } from './index-
|
|
22
|
+
import { b as CommandProvider } from './index-hoHfGrjg.js';
|
|
23
23
|
|
|
24
24
|
const Command = ({ children, command }) => {
|
|
25
25
|
const { width } = useScreenSize();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { c as GameProvider } from './index-
|
|
3
|
-
import { C as Command } from './Command-
|
|
2
|
+
import { c as GameProvider } from './index-hoHfGrjg.js';
|
|
3
|
+
import { C as Command } from './Command-DN1j3tjt.js';
|
|
4
4
|
|
|
5
5
|
const CommandGame = ({ children, command }) => /* @__PURE__ */ jsx(Command, { command, children: /* @__PURE__ */ jsx(GameProvider, { children }) });
|
|
6
6
|
|
|
@@ -3,7 +3,7 @@ import { useQueryClient } from '@tanstack/react-query';
|
|
|
3
3
|
import axios from 'axios';
|
|
4
4
|
import { Box } from 'ink';
|
|
5
5
|
import { useContext } from 'react';
|
|
6
|
-
import { p as getAuthedHeaders, o as API_URL } from './index-
|
|
6
|
+
import { p as getAuthedHeaders, o as API_URL } from './index-BwnzoldS.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:fs';
|
|
@@ -14,7 +14,7 @@ import 'readline-sync';
|
|
|
14
14
|
import 'luxon';
|
|
15
15
|
import 'isomorphic-git';
|
|
16
16
|
import '@oclif/core';
|
|
17
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
17
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
18
18
|
import 'fast-glob';
|
|
19
19
|
import 'uuid';
|
|
20
20
|
import 'yazl';
|
|
@@ -24,11 +24,12 @@ import 'string-length';
|
|
|
24
24
|
import 'strip-ansi';
|
|
25
25
|
import 'open';
|
|
26
26
|
import '@inkjs/ui';
|
|
27
|
+
import './ejs-DirFZbza.js';
|
|
27
28
|
import 'marked';
|
|
28
29
|
import 'marked-terminal';
|
|
29
30
|
import 'qrcode';
|
|
30
|
-
import { R as RunWithSpinner } from './RunWithSpinner-
|
|
31
|
-
import { G as GameContext } from './index-
|
|
31
|
+
import { R as RunWithSpinner } from './RunWithSpinner-DucRnFp6.js';
|
|
32
|
+
import { G as GameContext } from './index-hoHfGrjg.js';
|
|
32
33
|
|
|
33
34
|
const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
|
|
34
35
|
const { gameId } = useContext(GameContext);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { Text, Box } from 'ink';
|
|
3
3
|
import { useState, useEffect, useContext } from 'react';
|
|
4
|
-
import { b as getShortDate, P as Platform, E as getProject, F as getProjectPlatformProgress } from './index-
|
|
4
|
+
import { b as getShortDate, P as Platform, E as getProject, F as getProjectPlatformProgress } from './index-BwnzoldS.js';
|
|
5
5
|
import 'ink-spinner';
|
|
6
|
-
import { g as getShortUUID, m as makeHumanReadable } from './index-
|
|
6
|
+
import { g as getShortUUID, m as makeHumanReadable } from './index-CJWMt1s-.js';
|
|
7
7
|
import '@tanstack/react-query';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'luxon';
|
|
@@ -19,11 +19,12 @@ import { S as StatusTable } from './StatusTable-DzRWcMr4.js';
|
|
|
19
19
|
import 'open';
|
|
20
20
|
import '@inkjs/ui';
|
|
21
21
|
import 'node:path';
|
|
22
|
+
import './ejs-DirFZbza.js';
|
|
22
23
|
import 'marked';
|
|
23
24
|
import 'marked-terminal';
|
|
24
25
|
import { N as NextSteps } from './NextSteps-DbJHmscQ.js';
|
|
25
26
|
import 'qrcode';
|
|
26
|
-
import { G as GameContext, C as CommandContext } from './index-
|
|
27
|
+
import { G as GameContext, C as CommandContext } from './index-hoHfGrjg.js';
|
|
27
28
|
|
|
28
29
|
function isPlatformConfigured(platform, progress) {
|
|
29
30
|
if (!progress) return false;
|
|
@@ -95,21 +96,15 @@ const GameStatusDetails = ({ children, gameId, onComplete, onError, platforms })
|
|
|
95
96
|
}, []);
|
|
96
97
|
if (!state) return /* @__PURE__ */ jsx(Text, {});
|
|
97
98
|
const { game, statuses, steps } = state;
|
|
99
|
+
const gameDetails = {};
|
|
100
|
+
gameDetails["Game ID"] = getShortUUID(game.id);
|
|
101
|
+
gameDetails.Name = game.name;
|
|
102
|
+
gameDetails.Version = game.details?.semanticVersion || "0.0.1";
|
|
103
|
+
gameDetails["Build Number"] = `${game.details?.buildNumber || 1}`;
|
|
104
|
+
gameDetails["Created At"] = getShortDate(game.createdAt);
|
|
105
|
+
gameDetails["Game Engine"] = `${game.details?.gameEngine || "godot"} ${game.details?.gameEngineVersion || "4.3"}`;
|
|
98
106
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
99
|
-
/* @__PURE__ */ jsx(
|
|
100
|
-
StatusTable,
|
|
101
|
-
{
|
|
102
|
-
statuses: {
|
|
103
|
-
"Build Number": `${game.details?.buildNumber || 1}`,
|
|
104
|
-
"Created At": getShortDate(game.createdAt),
|
|
105
|
-
"Game Engine": `${game.details?.gameEngine || "godot"} ${game.details?.gameEngineVersion || "4.3"}`,
|
|
106
|
-
"Game ID": getShortUUID(game.id),
|
|
107
|
-
Name: game.name,
|
|
108
|
-
Version: game.details?.semanticVersion || "0.0.1"
|
|
109
|
-
},
|
|
110
|
-
title: "Game Details"
|
|
111
|
-
}
|
|
112
|
-
),
|
|
107
|
+
/* @__PURE__ */ jsx(StatusTable, { statuses: gameDetails, title: "Game Details" }),
|
|
113
108
|
platforms.map((platform) => {
|
|
114
109
|
const status = statuses[platform];
|
|
115
110
|
const label = platform === Platform.IOS ? "iOS" : "Android";
|
|
@@ -11,7 +11,7 @@ import 'readline-sync';
|
|
|
11
11
|
import 'luxon';
|
|
12
12
|
import 'axios';
|
|
13
13
|
import 'isomorphic-git';
|
|
14
|
-
import { K as queryClient, P as Platform, C as CredentialsType } from './index-
|
|
14
|
+
import { K as queryClient, P as Platform, C as CredentialsType } from './index-BwnzoldS.js';
|
|
15
15
|
import '@oclif/core';
|
|
16
16
|
import { useMutation } from '@tanstack/react-query';
|
|
17
17
|
import 'crypto-js';
|
|
@@ -24,12 +24,13 @@ import 'string-length';
|
|
|
24
24
|
import 'strip-ansi';
|
|
25
25
|
import 'open';
|
|
26
26
|
import '@inkjs/ui';
|
|
27
|
+
import './ejs-DirFZbza.js';
|
|
27
28
|
import 'marked';
|
|
28
29
|
import 'marked-terminal';
|
|
29
30
|
import 'qrcode';
|
|
30
|
-
import { G as GameContext } from './index-
|
|
31
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
32
|
-
import { i as importCredential } from './import-
|
|
31
|
+
import { G as GameContext } from './index-hoHfGrjg.js';
|
|
32
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
33
|
+
import { i as importCredential } from './import-BpGyif-m.js';
|
|
33
34
|
|
|
34
35
|
async function importKeystore({ log = () => {
|
|
35
36
|
}, ...opt }) {
|
|
@@ -7,13 +7,13 @@ import { useState, useRef, useEffect } from 'react';
|
|
|
7
7
|
import 'node:fs';
|
|
8
8
|
import 'crypto-js';
|
|
9
9
|
import 'uuid';
|
|
10
|
-
import { p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, J as JobStatus,
|
|
11
|
-
import { d as getStageColor, j as getMessageColor } from './index-
|
|
10
|
+
import { p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, J as JobStatus, a9 as castJobDates, a7 as castObjectDates, aa as getShortTime } from './index-BwnzoldS.js';
|
|
11
|
+
import { d as getStageColor, j as getMessageColor } from './index-CJWMt1s-.js';
|
|
12
12
|
import 'luxon';
|
|
13
13
|
import 'fast-glob';
|
|
14
14
|
import 'yazl';
|
|
15
15
|
import 'socket.io-client';
|
|
16
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
16
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
17
17
|
import 'node:crypto';
|
|
18
18
|
import 'node:path';
|
|
19
19
|
import 'node:readline';
|
|
@@ -22,8 +22,8 @@ import 'readline-sync';
|
|
|
22
22
|
import 'isomorphic-git';
|
|
23
23
|
import '@oclif/core';
|
|
24
24
|
import 'fullscreen-ink';
|
|
25
|
-
import { f as useJob } from './index-
|
|
26
|
-
import { u as useWebSocket } from './useWebSocket-
|
|
25
|
+
import { f as useJob } from './index-hoHfGrjg.js';
|
|
26
|
+
import { u as useWebSocket } from './useWebSocket-cM5yOcDv.js';
|
|
27
27
|
import { T as Title } from './Title-BCQtayg6.js';
|
|
28
28
|
import stringLength from 'string-length';
|
|
29
29
|
import stripAnsi from 'strip-ansi';
|
|
@@ -4,9 +4,9 @@ import axios from 'axios';
|
|
|
4
4
|
import fg from 'fast-glob';
|
|
5
5
|
import { v4 } from 'uuid';
|
|
6
6
|
import { ZipFile } from 'yazl';
|
|
7
|
-
import { K as queryClient, v as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS,
|
|
8
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
9
|
-
import { f as getFileHash, h as getPlatformName } from './index-
|
|
7
|
+
import { K as queryClient, v as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, a4 as getNewUploadTicket, a5 as startJobsFromUpload } from './index-BwnzoldS.js';
|
|
8
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
9
|
+
import { f as getFileHash, h as getPlatformName } from './index-CJWMt1s-.js';
|
|
10
10
|
import { g as getCWDGitInfo } from './git-BpsfNFZ_.js';
|
|
11
11
|
import { jsx, Fragment } from 'react/jsx-runtime';
|
|
12
12
|
import 'ink';
|
|
@@ -15,18 +15,19 @@ import 'react';
|
|
|
15
15
|
import 'crypto-js';
|
|
16
16
|
import 'luxon';
|
|
17
17
|
import 'socket.io-client';
|
|
18
|
-
import { u as useJobWatching } from './JobLogTail-
|
|
18
|
+
import { u as useJobWatching } from './JobLogTail-D35FO5v-.js';
|
|
19
19
|
import 'fullscreen-ink';
|
|
20
20
|
import 'string-length';
|
|
21
21
|
import 'strip-ansi';
|
|
22
22
|
import 'open';
|
|
23
23
|
import '@inkjs/ui';
|
|
24
24
|
import 'node:path';
|
|
25
|
+
import './ejs-DirFZbza.js';
|
|
25
26
|
import 'marked';
|
|
26
27
|
import 'marked-terminal';
|
|
27
28
|
import { P as ProgressSpinner } from './ProgressSpinner-Um6ARKlk.js';
|
|
28
29
|
import 'qrcode';
|
|
29
|
-
import './index-
|
|
30
|
+
import './index-hoHfGrjg.js';
|
|
30
31
|
|
|
31
32
|
async function ship({ command, log = () => {
|
|
32
33
|
}, shipFlags }) {
|
|
@@ -3,18 +3,18 @@ import { Box, Text } from 'ink';
|
|
|
3
3
|
import Spinner from 'ink-spinner';
|
|
4
4
|
import { DateTime } from 'luxon';
|
|
5
5
|
import { useState, useEffect } from 'react';
|
|
6
|
-
import { J as JobStatus } from './index-
|
|
6
|
+
import { J as JobStatus } from './index-BwnzoldS.js';
|
|
7
7
|
import '@tanstack/react-query';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'node:fs';
|
|
10
10
|
import 'crypto-js';
|
|
11
11
|
import 'uuid';
|
|
12
|
-
import { d as getStageColor, c as getJobStatusColor } from './index-
|
|
13
|
-
import { a as getJobSummary } from './index-
|
|
12
|
+
import { d as getStageColor, c as getJobStatusColor } from './index-CJWMt1s-.js';
|
|
13
|
+
import { a as getJobSummary } from './index-hoHfGrjg.js';
|
|
14
14
|
import 'fast-glob';
|
|
15
15
|
import 'yazl';
|
|
16
16
|
import 'socket.io-client';
|
|
17
|
-
import { u as useJobWatching } from './JobLogTail-
|
|
17
|
+
import { u as useJobWatching } from './JobLogTail-D35FO5v-.js';
|
|
18
18
|
import 'fullscreen-ink';
|
|
19
19
|
import { a as StatusRow, b as StatusRowLabel } from './StatusTable-DzRWcMr4.js';
|
|
20
20
|
import { T as Title } from './Title-BCQtayg6.js';
|
|
@@ -10,13 +10,13 @@ import 'readline-sync';
|
|
|
10
10
|
import 'luxon';
|
|
11
11
|
import 'axios';
|
|
12
12
|
import 'isomorphic-git';
|
|
13
|
-
import './index-
|
|
13
|
+
import './index-BwnzoldS.js';
|
|
14
14
|
import '@oclif/core';
|
|
15
15
|
import '@tanstack/react-query';
|
|
16
16
|
import 'react';
|
|
17
17
|
import 'crypto-js';
|
|
18
18
|
import 'uuid';
|
|
19
|
-
import { u as useProjectCredentials, g as getProjectCredentialSummary } from './useProjectCredentials-
|
|
19
|
+
import { u as useProjectCredentials, g as getProjectCredentialSummary } from './useProjectCredentials-DxdwJCfU.js';
|
|
20
20
|
import 'fast-glob';
|
|
21
21
|
import 'yazl';
|
|
22
22
|
import 'socket.io-client';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { Box, Text } from 'ink';
|
|
3
3
|
import Spinner from 'ink-spinner';
|
|
4
4
|
import React from 'react';
|
|
@@ -18,6 +18,7 @@ const RunWithSpinner = ({
|
|
|
18
18
|
return onComplete();
|
|
19
19
|
});
|
|
20
20
|
}, []);
|
|
21
|
+
if (!isInProgress && !msgComplete) return /* @__PURE__ */ jsx(Fragment, {});
|
|
21
22
|
return /* @__PURE__ */ jsxs(Box, { children: [
|
|
22
23
|
/* @__PURE__ */ jsx(Text, { children: isInProgress ? msgInProgress : msgComplete }),
|
|
23
24
|
isInProgress && /* @__PURE__ */ jsx(Spinner, { type: spinnerType })
|
|
@@ -10,7 +10,7 @@ import 'readline-sync';
|
|
|
10
10
|
import 'luxon';
|
|
11
11
|
import axios from 'axios';
|
|
12
12
|
import 'isomorphic-git';
|
|
13
|
-
import { b as getShortDate, p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates } from './index-
|
|
13
|
+
import { b as getShortDate, p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates } from './index-BwnzoldS.js';
|
|
14
14
|
import '@oclif/core';
|
|
15
15
|
import { useQuery } from '@tanstack/react-query';
|
|
16
16
|
import 'react';
|
|
@@ -18,8 +18,8 @@ import 'crypto-js';
|
|
|
18
18
|
import 'uuid';
|
|
19
19
|
import 'fast-glob';
|
|
20
20
|
import 'yazl';
|
|
21
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
22
|
-
import { g as getShortUUID } from './index-
|
|
21
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
22
|
+
import { g as getShortUUID } from './index-CJWMt1s-.js';
|
|
23
23
|
import 'socket.io-client';
|
|
24
24
|
import 'fullscreen-ink';
|
|
25
25
|
import { T as Table } from './Table-FaNgpyeq.js';
|
|
@@ -40,13 +40,13 @@ async function queryUserCredentials(params) {
|
|
|
40
40
|
}
|
|
41
41
|
}
|
|
42
42
|
function getUserCredentialSummary(credential) {
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
43
|
+
const summary = {};
|
|
44
|
+
summary.id = getShortUUID(credential.id);
|
|
45
|
+
summary.type = credential.type;
|
|
46
|
+
summary.serial = credential.serialNumber;
|
|
47
|
+
summary.isActive = credential.isActive;
|
|
48
|
+
summary.createdAt = getShortDate(credential.createdAt);
|
|
49
|
+
return summary;
|
|
50
50
|
}
|
|
51
51
|
const useUserCredentials = ({
|
|
52
52
|
platform,
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { c as BaseGameCommand, Q as getGoogleStatus, R as getGodotAndroidPackageName } from './index-
|
|
2
|
-
import { b as generatePackageName, a as getInput } from './index-
|
|
1
|
+
import { c as BaseGameCommand, Q as getGoogleStatus, R as getGodotAndroidPackageName } from './index-BwnzoldS.js';
|
|
2
|
+
import { b as generatePackageName, a as getInput } from './index-CJWMt1s-.js';
|
|
3
3
|
|
|
4
4
|
class BaseGameAndroidCommand extends BaseGameCommand {
|
|
5
5
|
async checkGoogleAuth(waitForAuth = false) {
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Flags } from '@oclif/core';
|
|
3
|
+
import { render } from 'ink';
|
|
4
|
+
import { v4 } from 'uuid';
|
|
5
|
+
import { B as BaseAuthenticatedCommand, _ as createAPIKey, b as getShortDate } from '../../index-BwnzoldS.js';
|
|
6
|
+
import 'ink-spinner';
|
|
7
|
+
import { g as getShortUUID } from '../../index-CJWMt1s-.js';
|
|
8
|
+
import 'react';
|
|
9
|
+
import '@tanstack/react-query';
|
|
10
|
+
import 'axios';
|
|
11
|
+
import 'luxon';
|
|
12
|
+
import 'node:fs';
|
|
13
|
+
import 'fast-glob';
|
|
14
|
+
import 'yazl';
|
|
15
|
+
import 'socket.io-client';
|
|
16
|
+
import 'fullscreen-ink';
|
|
17
|
+
import 'string-length';
|
|
18
|
+
import 'strip-ansi';
|
|
19
|
+
import 'open';
|
|
20
|
+
import '@inkjs/ui';
|
|
21
|
+
import { g as getRenderedMarkdown } from '../../index-hoHfGrjg.js';
|
|
22
|
+
import 'qrcode';
|
|
23
|
+
import { R as RunWithSpinner } from '../../RunWithSpinner-DucRnFp6.js';
|
|
24
|
+
import { C as Command } from '../../Command-DN1j3tjt.js';
|
|
25
|
+
import 'crypto-js';
|
|
26
|
+
import 'node:path';
|
|
27
|
+
import '@expo/apple-utils/build/index.js';
|
|
28
|
+
import 'node:crypto';
|
|
29
|
+
import 'node:readline';
|
|
30
|
+
import 'node:url';
|
|
31
|
+
import 'readline-sync';
|
|
32
|
+
import 'isomorphic-git';
|
|
33
|
+
import 'deepmerge';
|
|
34
|
+
import 'ini';
|
|
35
|
+
import '../../useAndroidServiceAccountTestResult-CwKeW0ED.js';
|
|
36
|
+
import '../../ejs-DirFZbza.js';
|
|
37
|
+
import 'fs';
|
|
38
|
+
import 'path';
|
|
39
|
+
import 'marked';
|
|
40
|
+
import 'marked-terminal';
|
|
41
|
+
|
|
42
|
+
class ApiKeyCreate extends BaseAuthenticatedCommand {
|
|
43
|
+
static args = {};
|
|
44
|
+
static description = "Create a new API key for your ShipThis account.";
|
|
45
|
+
static examples = [
|
|
46
|
+
"<%= config.bin %> <%= command.id %> --durationDays 30",
|
|
47
|
+
"<%= config.bin %> <%= command.id %> --name ci-key --durationDays 90",
|
|
48
|
+
"<%= config.bin %> <%= command.id %> --name ci-key-headless --durationDays 365 --quiet"
|
|
49
|
+
];
|
|
50
|
+
static flags = {
|
|
51
|
+
durationDays: Flags.integer({
|
|
52
|
+
char: "d",
|
|
53
|
+
default: 365,
|
|
54
|
+
description: "duration of the API key in days"
|
|
55
|
+
}),
|
|
56
|
+
name: Flags.string({
|
|
57
|
+
char: "n",
|
|
58
|
+
description: "name to apply to the API key (if not provided, a random name will be generated)"
|
|
59
|
+
}),
|
|
60
|
+
quiet: Flags.boolean({
|
|
61
|
+
char: "q",
|
|
62
|
+
default: false,
|
|
63
|
+
description: "Outputs just the secret value"
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
async run() {
|
|
67
|
+
const { durationDays, name } = this.flags;
|
|
68
|
+
const createKey = async () => {
|
|
69
|
+
const apiKeyName = name ? name : `api-key-${getShortUUID(v4())}`;
|
|
70
|
+
const apiKeyWithSecret = await createAPIKey({ durationDays, name: apiKeyName });
|
|
71
|
+
const successMessage = getRenderedMarkdown({
|
|
72
|
+
filename: "apikey-create.md.ejs",
|
|
73
|
+
templateVars: {
|
|
74
|
+
keyExpiry: getShortDate(apiKeyWithSecret.expiresAt),
|
|
75
|
+
keyId: getShortUUID(apiKeyWithSecret.id),
|
|
76
|
+
keyName: apiKeyWithSecret.name,
|
|
77
|
+
keySecret: apiKeyWithSecret.secret
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
if (this.flags.quiet) {
|
|
81
|
+
this.log(apiKeyWithSecret.secret);
|
|
82
|
+
return;
|
|
83
|
+
}
|
|
84
|
+
this.log(successMessage);
|
|
85
|
+
};
|
|
86
|
+
if (this.flags.quiet) return await createKey();
|
|
87
|
+
render(
|
|
88
|
+
/* @__PURE__ */ jsx(Command, { command: this, children: /* @__PURE__ */ jsx(
|
|
89
|
+
RunWithSpinner,
|
|
90
|
+
{
|
|
91
|
+
executeMethod: createKey,
|
|
92
|
+
msgInProgress: "Creating ShipThis API key...",
|
|
93
|
+
onComplete: () => process.exit(0)
|
|
94
|
+
}
|
|
95
|
+
) })
|
|
96
|
+
);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { ApiKeyCreate as default };
|