shipthis 0.1.36 → 0.1.37
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 +17 -9
- package/assets/markdown/confirm-delete-android-keystore.md.ejs +22 -0
- package/assets/markdown/confirm-delete-android-serviceaccountkey.md.ejs +24 -0
- package/assets/markdown/confirm-delete-apple-credential.md.ejs +29 -0
- package/dist/{AppleBundleIdDetails-pEVOUXTQ.js → AppleBundleIdDetails-KMzyex1H.js} +3 -3
- package/dist/{Command-DhAVAdiI.js → Command-CHh8RDXK.js} +1 -1
- package/dist/{CommandGame-C-oV-hb4.js → CommandGame-Rvmsa7b0.js} +2 -2
- package/dist/{Create-Dg9ZlwEd.js → Create-DInZ_pw-.js} +1 -1
- package/dist/{GameStatus-Dm9TqFfW.js → GameStatus-D7ID10tS.js} +1 -1
- package/dist/{Import-BFNNkN-I.js → Import-BmO8EYKj.js} +2 -2
- package/dist/{JobLogTail-RTNIiAUk.js → JobLogTail-CYdceTKL.js} +2 -2
- package/dist/{JobProgress-dFWcT0CQ.js → JobProgress-DBCYbWrO.js} +2 -2
- package/dist/{JobStatusTable-BlvMuWF7.js → JobStatusTable-DhnhY1_i.js} +2 -2
- package/dist/{ProjectCredentialsTable-CMBnYLou.js → ProjectCredentialsTable-BDYVYqAq.js} +5 -3
- package/dist/{UserCredentialsTable-oxE3mDmE.js → UserCredentialsTable-cDPvjF-F.js} +4 -2
- package/dist/{baseAppleCommand-cnLvBz95.js → baseAppleCommand-CQ5dOna7.js} +1 -1
- package/dist/{baseGameAndroidCommand-DUDYisYm.js → baseGameAndroidCommand-D4ryZS6A.js} +1 -1
- package/dist/commands/apiKey/create.js +3 -2
- package/dist/commands/apiKey/list.js +3 -2
- package/dist/commands/apiKey/revoke.js +3 -2
- package/dist/commands/apple/apiKey/create.js +7 -6
- package/dist/commands/apple/apiKey/delete.js +118 -0
- package/dist/commands/apple/apiKey/export.js +6 -5
- package/dist/commands/apple/apiKey/import.js +6 -5
- package/dist/commands/apple/apiKey/status.js +4 -3
- package/dist/commands/apple/certificate/create.js +7 -6
- package/dist/commands/apple/certificate/delete.js +127 -0
- package/dist/commands/apple/certificate/export.js +6 -5
- package/dist/commands/apple/certificate/import.js +6 -5
- package/dist/commands/apple/certificate/status.js +4 -3
- package/dist/commands/apple/login.js +12 -3
- package/dist/commands/apple/status.js +3 -2
- package/dist/commands/dashboard.js +2 -1
- package/dist/commands/game/android/apiKey/connect.js +8 -7
- package/dist/commands/game/android/apiKey/create.js +10 -9
- package/dist/commands/game/android/apiKey/delete.js +100 -0
- package/dist/commands/game/android/apiKey/export.js +6 -5
- package/dist/commands/game/android/apiKey/import.js +6 -5
- package/dist/commands/game/android/apiKey/invite.js +3 -2
- package/dist/commands/game/android/apiKey/policy.js +3 -2
- package/dist/commands/game/android/apiKey/status.js +6 -5
- package/dist/commands/game/android/keyStore/create.js +7 -6
- package/dist/commands/game/android/keyStore/delete.js +100 -0
- package/dist/commands/game/android/keyStore/export.js +5 -4
- package/dist/commands/game/android/keyStore/import.js +8 -7
- package/dist/commands/game/android/keyStore/status.js +5 -4
- package/dist/commands/game/android/status.js +2 -1
- package/dist/commands/game/build/download.js +3 -2
- package/dist/commands/game/build/list.js +4 -3
- package/dist/commands/game/create.js +2 -1
- package/dist/commands/game/details.js +3 -2
- package/dist/commands/game/export.js +2 -1
- package/dist/commands/game/ios/app/addTester.js +4 -3
- package/dist/commands/game/ios/app/create.js +3 -2
- package/dist/commands/game/ios/app/status.js +6 -5
- package/dist/commands/game/ios/app/sync.js +4 -3
- package/dist/commands/game/ios/profile/create.js +6 -5
- package/dist/commands/game/ios/profile/delete.js +123 -0
- package/dist/commands/game/ios/profile/export.js +5 -4
- package/dist/commands/game/ios/profile/import.js +5 -4
- package/dist/commands/game/ios/profile/status.js +8 -47
- package/dist/commands/game/ios/status.js +8 -7
- package/dist/commands/game/ios/wizard.js +2 -2
- package/dist/commands/game/job/list.js +3 -2
- package/dist/commands/game/job/status.js +6 -5
- package/dist/commands/game/list.js +3 -2
- package/dist/commands/game/ship.js +8 -7
- package/dist/commands/game/status.js +5 -4
- package/dist/commands/game/wizard.js +14 -13
- package/dist/commands/internal/fastlane.js +2 -1
- package/dist/commands/internal/readme.js +2 -1
- package/dist/commands/login.js +2 -1
- package/dist/commands/status.js +2 -2
- package/dist/{export-Bd552LBe.js → export-DujIwhJw.js} +1 -1
- package/dist/{import-D-EL9sQJ.js → import-DGCqCAcC.js} +1 -1
- package/dist/{index-DCN43FhY.js → index-9LxGafAo.js} +3 -3
- package/dist/{index-DwATmUTQ.js → index-BPh_qt7t.js} +4 -4
- package/dist/index-CNsmEDXi.js +48 -0
- package/dist/{index-BtPf4vzY.js → index-CmuXyPed.js} +4 -2
- package/dist/{upload-Dm38PqhN.js → upload-D4x4yCia.js} +1 -1
- package/dist/{useAppleApp-BKPntZPm.js → useAppleApp-taaewPSf.js} +1 -1
- package/dist/{useAppleBundleId-DvQKEEy4.js → useAppleBundleId-BeGViMe7.js} +1 -1
- package/dist/useAppleProfiles-1TtO0aO6.js +63 -0
- package/dist/{useGoogleStatus-D9jjGa--.js → useGoogleStatus-CSsxEvX7.js} +1 -1
- package/dist/{useProjectCredentials-BjsS28hP.js → useProjectCredentials-Cm50WMZU.js} +1 -1
- package/dist/{useWebSocket-CIeyHqxG.js → useWebSocket-BVfn36be.js} +1 -1
- package/docs/apple/apiKey/delete.md +25 -0
- package/docs/apple/apiKey.md +26 -0
- package/docs/apple/certificate/delete.md +25 -0
- package/docs/apple/certificate.md +26 -0
- package/docs/game/android/apiKey/delete.md +25 -0
- package/docs/game/android/apiKey.md +26 -0
- package/docs/game/android/keyStore/delete.md +25 -0
- package/docs/game/android/keyStore.md +26 -0
- package/docs/game/ios/profile/delete.md +26 -0
- package/docs/game/ios/profile.md +27 -0
- package/package.json +6 -1
- package/dist/index-1H48f5j2.js +0 -24
|
@@ -1,7 +1,7 @@
|
|
|
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 {
|
|
4
|
+
import { f as getShortDate, A as ApiKey, C as CredentialsType, P as Platform, B as BaseAuthenticatedCommand } from '../../../index-CmuXyPed.js';
|
|
5
5
|
import Spinner from 'ink-spinner';
|
|
6
6
|
import 'node:crypto';
|
|
7
7
|
import 'node:fs';
|
|
@@ -23,7 +23,7 @@ import 'fullscreen-ink';
|
|
|
23
23
|
import 'string-length';
|
|
24
24
|
import 'strip-ansi';
|
|
25
25
|
import 'open';
|
|
26
|
-
import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-
|
|
26
|
+
import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-cDPvjF-F.js';
|
|
27
27
|
import '@inkjs/ui';
|
|
28
28
|
import 'marked';
|
|
29
29
|
import 'marked-terminal';
|
|
@@ -31,7 +31,8 @@ import 'qrcode';
|
|
|
31
31
|
import { T as Table } from '../../../Table-FaNgpyeq.js';
|
|
32
32
|
import { T as Title } from '../../../Title-BCQtayg6.js';
|
|
33
33
|
import { N as NextSteps } from '../../../NextSteps-DbJHmscQ.js';
|
|
34
|
-
import { C as Command } from '../../../Command-
|
|
34
|
+
import { C as Command } from '../../../Command-CHh8RDXK.js';
|
|
35
|
+
import 'chalk';
|
|
35
36
|
import '@expo/apple-utils/build/index.js';
|
|
36
37
|
import 'deepmerge';
|
|
37
38
|
import 'ini';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Flags } from '@oclif/core';
|
|
3
3
|
import { render } from 'ink';
|
|
4
|
-
import { g as getUserCredentials } from '../../../index-
|
|
4
|
+
import { g as getUserCredentials } from '../../../index-CNsmEDXi.js';
|
|
5
5
|
import forge from 'node-forge';
|
|
6
|
-
import { p as CertificateType,
|
|
6
|
+
import { p as CertificateType, d as Certificate, P as Platform, C as CredentialsType } from '../../../index-CmuXyPed.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:fs';
|
|
@@ -30,9 +30,10 @@ import 'marked';
|
|
|
30
30
|
import 'marked-terminal';
|
|
31
31
|
import 'qrcode';
|
|
32
32
|
import { R as RunWithSpinner } from '../../../RunWithSpinner-DucRnFp6.js';
|
|
33
|
-
import { C as Command } from '../../../Command-
|
|
34
|
-
import { B as BaseAppleCommand } from '../../../baseAppleCommand-
|
|
35
|
-
import { u as uploadUserCredentials } from '../../../upload-
|
|
33
|
+
import { C as Command } from '../../../Command-CHh8RDXK.js';
|
|
34
|
+
import { B as BaseAppleCommand } from '../../../baseAppleCommand-CQ5dOna7.js';
|
|
35
|
+
import { u as uploadUserCredentials } from '../../../upload-D4x4yCia.js';
|
|
36
|
+
import 'chalk';
|
|
36
37
|
import '@expo/apple-utils/build/index.js';
|
|
37
38
|
import 'deepmerge';
|
|
38
39
|
import 'ini';
|
|
@@ -90,7 +91,7 @@ class AppleCertificateCreate extends BaseAppleCommand {
|
|
|
90
91
|
const { force } = flags;
|
|
91
92
|
const userCredentials = await getUserCredentials();
|
|
92
93
|
const userAppleDistCredentials = userCredentials.filter(
|
|
93
|
-
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE
|
|
94
|
+
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE && cred.isActive
|
|
94
95
|
);
|
|
95
96
|
if (userAppleDistCredentials.length > 0 && !force) {
|
|
96
97
|
this.error("An Apple Distribution Certificate already exists. Use --force to overwrite it.");
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { P as Platform, C as CredentialsType, d as Certificate, g as getShortUUID, b as getRenderedMarkdown, c as getInput } from '../../../index-CmuXyPed.js';
|
|
3
|
+
import 'node:fs';
|
|
4
|
+
import 'axios';
|
|
5
|
+
import 'crypto-js';
|
|
6
|
+
import 'uuid';
|
|
7
|
+
import 'luxon';
|
|
8
|
+
import { g as getUserCredentials, d as deleteUserCredential } from '../../../index-CNsmEDXi.js';
|
|
9
|
+
import 'react/jsx-runtime';
|
|
10
|
+
import '@inkjs/ui';
|
|
11
|
+
import 'ink';
|
|
12
|
+
import 'ink-spinner';
|
|
13
|
+
import 'react';
|
|
14
|
+
import '@tanstack/react-query';
|
|
15
|
+
import 'fast-glob';
|
|
16
|
+
import 'yazl';
|
|
17
|
+
import 'socket.io-client';
|
|
18
|
+
import 'fullscreen-ink';
|
|
19
|
+
import 'string-length';
|
|
20
|
+
import 'strip-ansi';
|
|
21
|
+
import 'open';
|
|
22
|
+
import 'qrcode';
|
|
23
|
+
import { B as BaseAppleCommand } from '../../../baseAppleCommand-CQ5dOna7.js';
|
|
24
|
+
import 'node:path';
|
|
25
|
+
import 'chalk';
|
|
26
|
+
import '@expo/apple-utils/build/index.js';
|
|
27
|
+
import 'node:crypto';
|
|
28
|
+
import 'node:readline';
|
|
29
|
+
import 'node:url';
|
|
30
|
+
import 'readline-sync';
|
|
31
|
+
import 'isomorphic-git';
|
|
32
|
+
import 'deepmerge';
|
|
33
|
+
import 'ini';
|
|
34
|
+
import 'fs';
|
|
35
|
+
import 'path';
|
|
36
|
+
import 'marked';
|
|
37
|
+
import 'marked-terminal';
|
|
38
|
+
|
|
39
|
+
class AppleCertificateDelete extends BaseAppleCommand {
|
|
40
|
+
static args = {};
|
|
41
|
+
static description = "Delete an iOS Distribution Certificate from ShipThis and optionally from Apple";
|
|
42
|
+
static examples = [
|
|
43
|
+
"<%= config.bin %> <%= command.id %>",
|
|
44
|
+
"<%= config.bin %> <%= command.id %> --immediate --revokeInApple --iAmSure"
|
|
45
|
+
];
|
|
46
|
+
static flags = {
|
|
47
|
+
immediate: Flags.boolean({
|
|
48
|
+
char: "i",
|
|
49
|
+
description: "Remove from storage immediately (rather than waiting for automatic cleanup - cannot be undone)",
|
|
50
|
+
required: false
|
|
51
|
+
}),
|
|
52
|
+
iAmSure: Flags.boolean({
|
|
53
|
+
char: "y",
|
|
54
|
+
description: "I am sure I want to do this - do not prompt me",
|
|
55
|
+
required: false
|
|
56
|
+
}),
|
|
57
|
+
revokeInApple: Flags.boolean({
|
|
58
|
+
char: "a",
|
|
59
|
+
description: "Also revoke the Certificate in Apple (cannot be undone)",
|
|
60
|
+
required: false
|
|
61
|
+
})
|
|
62
|
+
};
|
|
63
|
+
async run() {
|
|
64
|
+
const { flags } = await this.parse(AppleCertificateDelete);
|
|
65
|
+
const { immediate, iAmSure, revokeInApple } = flags;
|
|
66
|
+
const userCredentials = await getUserCredentials();
|
|
67
|
+
const userCerts = userCredentials.filter(
|
|
68
|
+
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE && cred.isActive
|
|
69
|
+
);
|
|
70
|
+
if (userCerts.length === 0) {
|
|
71
|
+
this.error("No iOS Distribution Certificate found which can be deleted.");
|
|
72
|
+
}
|
|
73
|
+
const [cert] = userCerts;
|
|
74
|
+
let appleCert = null;
|
|
75
|
+
let authState = null;
|
|
76
|
+
let ctx = null;
|
|
77
|
+
if (revokeInApple) {
|
|
78
|
+
authState = await this.refreshAppleAuthState();
|
|
79
|
+
ctx = authState.context;
|
|
80
|
+
const appleCerts = await Certificate.getAsync(ctx, {
|
|
81
|
+
query: {
|
|
82
|
+
filter: {
|
|
83
|
+
serialNumber: cert.serialNumber
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
});
|
|
87
|
+
if (appleCerts.length !== 1) {
|
|
88
|
+
this.error("The iOS Distribution Certificate was not found in Apple, so cannot be revoked there.");
|
|
89
|
+
}
|
|
90
|
+
appleCert = appleCerts[0];
|
|
91
|
+
}
|
|
92
|
+
const getAreYouSure = async () => {
|
|
93
|
+
if (iAmSure) return true;
|
|
94
|
+
const confirmString = getShortUUID(cert.id);
|
|
95
|
+
const prompt = getRenderedMarkdown({
|
|
96
|
+
filename: "confirm-delete-apple-credential.md.ejs",
|
|
97
|
+
templateVars: {
|
|
98
|
+
confirmString,
|
|
99
|
+
credentialType: "iOS Distribution Certificate",
|
|
100
|
+
exportCommand: `shipthis apple certificate export cert.zip`,
|
|
101
|
+
immediate,
|
|
102
|
+
revokeInApple
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
this.log(prompt);
|
|
106
|
+
const input = await getInput("");
|
|
107
|
+
return input.trim().toLowerCase() === confirmString.toLowerCase();
|
|
108
|
+
};
|
|
109
|
+
const areYouSure = await getAreYouSure();
|
|
110
|
+
if (!areYouSure) {
|
|
111
|
+
this.log("Aborting - not deleting the iOS Distribution Certificate");
|
|
112
|
+
this.exit(0);
|
|
113
|
+
}
|
|
114
|
+
await deleteUserCredential({
|
|
115
|
+
credentialId: cert.id,
|
|
116
|
+
isImmediate: immediate
|
|
117
|
+
});
|
|
118
|
+
this.log("The iOS Distribution Certificate has been deleted from ShipThis.");
|
|
119
|
+
if (revokeInApple && appleCert?.id) {
|
|
120
|
+
Certificate.deleteAsync(ctx, { id: appleCert.id });
|
|
121
|
+
this.log("The iOS Distribution Certificate has been deleted in Apple.");
|
|
122
|
+
}
|
|
123
|
+
await this.config.runCommand(`apple:certificate:status`, [!revokeInApple ? "--noAppleAuth" : ""].filter(Boolean));
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { AppleCertificateDelete as default };
|
|
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
4
|
import { render } from 'ink';
|
|
5
|
-
import { g as getUserCredentials } from '../../../index-
|
|
6
|
-
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-
|
|
5
|
+
import { g as getUserCredentials } from '../../../index-CNsmEDXi.js';
|
|
6
|
+
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-CmuXyPed.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:path';
|
|
@@ -29,8 +29,9 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
31
|
import { R as RunWithSpinner } from '../../../RunWithSpinner-DucRnFp6.js';
|
|
32
|
-
import { C as Command } from '../../../Command-
|
|
33
|
-
import { e as exportCredential } from '../../../export-
|
|
32
|
+
import { C as Command } from '../../../Command-CHh8RDXK.js';
|
|
33
|
+
import { e as exportCredential } from '../../../export-DujIwhJw.js';
|
|
34
|
+
import 'chalk';
|
|
34
35
|
import '@expo/apple-utils/build/index.js';
|
|
35
36
|
import 'deepmerge';
|
|
36
37
|
import 'ini';
|
|
@@ -56,7 +57,7 @@ class AppleCertificateExport extends BaseAuthenticatedCommand {
|
|
|
56
57
|
}
|
|
57
58
|
const userCredentials = await getUserCredentials();
|
|
58
59
|
const userAppleDistCredentials = userCredentials.filter(
|
|
59
|
-
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE
|
|
60
|
+
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE && cred.isActive
|
|
60
61
|
);
|
|
61
62
|
if (userAppleDistCredentials.length === 0) {
|
|
62
63
|
this.error("No Apple Distribution Certificate found which can be exported.");
|
|
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
4
|
import { render } from 'ink';
|
|
5
|
-
import { g as getUserCredentials } from '../../../index-
|
|
6
|
-
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-
|
|
5
|
+
import { g as getUserCredentials } from '../../../index-CNsmEDXi.js';
|
|
6
|
+
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-CmuXyPed.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:path';
|
|
@@ -29,8 +29,9 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
31
|
import { R as RunWithSpinner } from '../../../RunWithSpinner-DucRnFp6.js';
|
|
32
|
-
import { C as Command } from '../../../Command-
|
|
33
|
-
import { i as importCredential } from '../../../import-
|
|
32
|
+
import { C as Command } from '../../../Command-CHh8RDXK.js';
|
|
33
|
+
import { i as importCredential } from '../../../import-DGCqCAcC.js';
|
|
34
|
+
import 'chalk';
|
|
34
35
|
import '@expo/apple-utils/build/index.js';
|
|
35
36
|
import 'deepmerge';
|
|
36
37
|
import 'ini';
|
|
@@ -59,7 +60,7 @@ class AppleCertificateImport extends BaseAuthenticatedCommand {
|
|
|
59
60
|
}
|
|
60
61
|
const userCredentials = await getUserCredentials();
|
|
61
62
|
const userAppleDistCredentials = userCredentials.filter(
|
|
62
|
-
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE
|
|
63
|
+
(cred) => cred.platform === Platform.IOS && cred.type === CredentialsType.CERTIFICATE && cred.isActive
|
|
63
64
|
);
|
|
64
65
|
if (userAppleDistCredentials.length > 0 && !force) {
|
|
65
66
|
this.error("An Apple Distribution Certificate already exists. Use --force to overwrite it.");
|
|
@@ -1,7 +1,7 @@
|
|
|
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 {
|
|
4
|
+
import { g as getShortUUID, f as getShortDate, d as Certificate, p as CertificateType, P as Platform, C as CredentialsType, B as BaseAuthenticatedCommand } from '../../../index-CmuXyPed.js';
|
|
5
5
|
import Spinner from 'ink-spinner';
|
|
6
6
|
import 'node:crypto';
|
|
7
7
|
import 'node:fs';
|
|
@@ -23,7 +23,7 @@ import 'fullscreen-ink';
|
|
|
23
23
|
import 'string-length';
|
|
24
24
|
import 'strip-ansi';
|
|
25
25
|
import 'open';
|
|
26
|
-
import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-
|
|
26
|
+
import { u as useUserCredentials, U as UserCredentialsTable } from '../../../UserCredentialsTable-cDPvjF-F.js';
|
|
27
27
|
import '@inkjs/ui';
|
|
28
28
|
import 'marked';
|
|
29
29
|
import 'marked-terminal';
|
|
@@ -31,7 +31,8 @@ import 'qrcode';
|
|
|
31
31
|
import { T as Table } from '../../../Table-FaNgpyeq.js';
|
|
32
32
|
import { T as Title } from '../../../Title-BCQtayg6.js';
|
|
33
33
|
import { N as NextSteps } from '../../../NextSteps-DbJHmscQ.js';
|
|
34
|
-
import { C as Command } from '../../../Command-
|
|
34
|
+
import { C as Command } from '../../../Command-CHh8RDXK.js';
|
|
35
|
+
import 'chalk';
|
|
35
36
|
import '@expo/apple-utils/build/index.js';
|
|
36
37
|
import 'deepmerge';
|
|
37
38
|
import 'ini';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import { ak as Auth, B as BaseAuthenticatedCommand,
|
|
2
|
+
import { ak as Auth, B as BaseAuthenticatedCommand, c as getInput, al as getMaskedInput } from '../../index-CmuXyPed.js';
|
|
3
3
|
import 'node:fs';
|
|
4
4
|
import 'axios';
|
|
5
5
|
import 'crypto-js';
|
|
6
6
|
import 'uuid';
|
|
7
7
|
import 'luxon';
|
|
8
8
|
import 'node:path';
|
|
9
|
+
import 'chalk';
|
|
9
10
|
import '@expo/apple-utils/build/index.js';
|
|
10
11
|
import 'node:crypto';
|
|
11
12
|
import 'node:readline';
|
|
@@ -46,7 +47,8 @@ class AppleLogin extends BaseAuthenticatedCommand {
|
|
|
46
47
|
static description = "Authenticate with Apple - saves the session to the auth file";
|
|
47
48
|
static examples = [
|
|
48
49
|
"<%= config.bin %> <%= command.id %>",
|
|
49
|
-
"<%= config.bin %> <%= command.id %> --force --appleEmail me@email.nowhere"
|
|
50
|
+
"<%= config.bin %> <%= command.id %> --force --appleEmail me@email.nowhere",
|
|
51
|
+
"<%= config.bin %> <%= command.id %> --logout"
|
|
50
52
|
];
|
|
51
53
|
static flags = {
|
|
52
54
|
appleEmail: Flags.string({
|
|
@@ -54,10 +56,17 @@ class AppleLogin extends BaseAuthenticatedCommand {
|
|
|
54
56
|
description: "Your Apple Developer email address"
|
|
55
57
|
}),
|
|
56
58
|
force: Flags.boolean({ char: "f" }),
|
|
57
|
-
quiet: Flags.boolean({ char: "q", description: "Avoid output except for interactions and errors" })
|
|
59
|
+
quiet: Flags.boolean({ char: "q", description: "Avoid output except for interactions and errors" }),
|
|
60
|
+
logout: Flags.boolean({ char: "l", description: "Forget the saved Apple session (log out)" })
|
|
58
61
|
};
|
|
59
62
|
async run() {
|
|
60
63
|
const { flags } = this;
|
|
64
|
+
if (flags.logout) {
|
|
65
|
+
await this.setAppleCookies(void 0);
|
|
66
|
+
if (!this.flags.quiet) this.log("You have been logged out of Apple.");
|
|
67
|
+
await this.config.runCommand(`apple:status`);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
61
70
|
const isLoggedIn = await this.hasValidAppleAuthState();
|
|
62
71
|
if (isLoggedIn && !flags.force) {
|
|
63
72
|
throw new Error("You are already logged in to Apple. Use --force to re-authenticate.");
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { render } from 'ink';
|
|
3
|
-
import { B as BaseAuthenticatedCommand } from '../../index-
|
|
3
|
+
import { B as BaseAuthenticatedCommand } from '../../index-CmuXyPed.js';
|
|
4
4
|
import 'ink-spinner';
|
|
5
5
|
import 'node:crypto';
|
|
6
6
|
import 'node:fs';
|
|
@@ -29,7 +29,8 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import { N as NextSteps } from '../../NextSteps-DbJHmscQ.js';
|
|
31
31
|
import 'qrcode';
|
|
32
|
-
import { C as Command } from '../../Command-
|
|
32
|
+
import { C as Command } from '../../Command-CHh8RDXK.js';
|
|
33
|
+
import 'chalk';
|
|
33
34
|
import '@expo/apple-utils/build/index.js';
|
|
34
35
|
import 'deepmerge';
|
|
35
36
|
import 'ini';
|
|
@@ -1,11 +1,12 @@
|
|
|
1
1
|
import open from 'open';
|
|
2
|
-
import { B as BaseAuthenticatedCommand, ah as getSingleUseUrl } from '../index-
|
|
2
|
+
import { B as BaseAuthenticatedCommand, ah as getSingleUseUrl } from '../index-CmuXyPed.js';
|
|
3
3
|
import 'node:fs';
|
|
4
4
|
import 'axios';
|
|
5
5
|
import 'crypto-js';
|
|
6
6
|
import 'uuid';
|
|
7
7
|
import 'luxon';
|
|
8
8
|
import 'node:path';
|
|
9
|
+
import 'chalk';
|
|
9
10
|
import '@oclif/core';
|
|
10
11
|
import '@expo/apple-utils/build/index.js';
|
|
11
12
|
import 'node:crypto';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Flags } from '@oclif/core';
|
|
3
3
|
import { render } from 'ink';
|
|
4
|
-
import { a2 as getGoogleStatus, ab as disconnectGoogle } from '../../../../index-
|
|
4
|
+
import { a2 as getGoogleStatus, ab as disconnectGoogle } from '../../../../index-CmuXyPed.js';
|
|
5
5
|
import 'ink-spinner';
|
|
6
6
|
import 'node:crypto';
|
|
7
7
|
import 'node:fs';
|
|
@@ -22,22 +22,23 @@ import 'fullscreen-ink';
|
|
|
22
22
|
import 'string-length';
|
|
23
23
|
import 'strip-ansi';
|
|
24
24
|
import 'open';
|
|
25
|
-
import { C as ConnectGoogle } from '../../../../index-
|
|
25
|
+
import { C as ConnectGoogle } from '../../../../index-9LxGafAo.js';
|
|
26
26
|
import '@inkjs/ui';
|
|
27
27
|
import 'marked';
|
|
28
28
|
import 'marked-terminal';
|
|
29
29
|
import 'qrcode';
|
|
30
|
-
import { C as CommandGame } from '../../../../CommandGame-
|
|
31
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
30
|
+
import { C as CommandGame } from '../../../../CommandGame-Rvmsa7b0.js';
|
|
31
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
32
32
|
import 'crypto-js';
|
|
33
|
+
import 'chalk';
|
|
33
34
|
import '@expo/apple-utils/build/index.js';
|
|
34
35
|
import 'deepmerge';
|
|
35
36
|
import 'ini';
|
|
36
37
|
import 'fs';
|
|
37
38
|
import 'path';
|
|
38
|
-
import '../../../../useGoogleStatus-
|
|
39
|
-
import '../../../../useWebSocket-
|
|
40
|
-
import '../../../../Command-
|
|
39
|
+
import '../../../../useGoogleStatus-CSsxEvX7.js';
|
|
40
|
+
import '../../../../useWebSocket-BVfn36be.js';
|
|
41
|
+
import '../../../../Command-CHh8RDXK.js';
|
|
41
42
|
|
|
42
43
|
class GameAndroidApiKeyConnect extends BaseGameAndroidCommand {
|
|
43
44
|
static args = {};
|
|
@@ -5,9 +5,9 @@ import 'node:fs';
|
|
|
5
5
|
import 'axios';
|
|
6
6
|
import 'crypto-js';
|
|
7
7
|
import 'uuid';
|
|
8
|
-
import { P as Platform, C as CredentialsType } from '../../../../index-
|
|
8
|
+
import { P as Platform, C as CredentialsType } from '../../../../index-CmuXyPed.js';
|
|
9
9
|
import 'luxon';
|
|
10
|
-
import { a as getProjectCredentials } from '../../../../index-
|
|
10
|
+
import { a as getProjectCredentials } from '../../../../index-CNsmEDXi.js';
|
|
11
11
|
import 'ink-spinner';
|
|
12
12
|
import 'node:crypto';
|
|
13
13
|
import 'node:path';
|
|
@@ -28,19 +28,20 @@ import '@inkjs/ui';
|
|
|
28
28
|
import 'marked';
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
|
-
import { C as CreateServiceAccountKey } from '../../../../index-
|
|
32
|
-
import { C as CommandGame } from '../../../../CommandGame-
|
|
33
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
31
|
+
import { C as CreateServiceAccountKey } from '../../../../index-BPh_qt7t.js';
|
|
32
|
+
import { C as CommandGame } from '../../../../CommandGame-Rvmsa7b0.js';
|
|
33
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
34
|
+
import 'chalk';
|
|
34
35
|
import '@expo/apple-utils/build/index.js';
|
|
35
36
|
import 'deepmerge';
|
|
36
37
|
import 'ini';
|
|
37
38
|
import 'fs';
|
|
38
39
|
import 'path';
|
|
39
|
-
import '../../../../useWebSocket-
|
|
40
|
-
import '../../../../useProjectCredentials-
|
|
41
|
-
import '../../../../useGoogleStatus-
|
|
40
|
+
import '../../../../useWebSocket-BVfn36be.js';
|
|
41
|
+
import '../../../../useProjectCredentials-Cm50WMZU.js';
|
|
42
|
+
import '../../../../useGoogleStatus-CSsxEvX7.js';
|
|
42
43
|
import '../../../../ProgressSpinner-Um6ARKlk.js';
|
|
43
|
-
import '../../../../Command-
|
|
44
|
+
import '../../../../Command-CHh8RDXK.js';
|
|
44
45
|
|
|
45
46
|
class GameAndroidApiKeyCreate extends BaseGameAndroidCommand {
|
|
46
47
|
static args = {};
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import { Flags } from '@oclif/core';
|
|
2
|
+
import { P as Platform, C as CredentialsType, g as getShortUUID, b as getRenderedMarkdown, c as getInput } from '../../../../index-CmuXyPed.js';
|
|
3
|
+
import 'node:fs';
|
|
4
|
+
import 'axios';
|
|
5
|
+
import 'crypto-js';
|
|
6
|
+
import 'uuid';
|
|
7
|
+
import 'luxon';
|
|
8
|
+
import { a as getProjectCredentials, b as deleteProjectCredential } from '../../../../index-CNsmEDXi.js';
|
|
9
|
+
import 'react/jsx-runtime';
|
|
10
|
+
import 'ink';
|
|
11
|
+
import 'ink-spinner';
|
|
12
|
+
import 'react';
|
|
13
|
+
import '@tanstack/react-query';
|
|
14
|
+
import 'fast-glob';
|
|
15
|
+
import 'yazl';
|
|
16
|
+
import 'socket.io-client';
|
|
17
|
+
import 'fullscreen-ink';
|
|
18
|
+
import 'string-length';
|
|
19
|
+
import 'strip-ansi';
|
|
20
|
+
import 'open';
|
|
21
|
+
import '@inkjs/ui';
|
|
22
|
+
import 'qrcode';
|
|
23
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
24
|
+
import 'node:path';
|
|
25
|
+
import 'chalk';
|
|
26
|
+
import '@expo/apple-utils/build/index.js';
|
|
27
|
+
import 'node:crypto';
|
|
28
|
+
import 'node:readline';
|
|
29
|
+
import 'node:url';
|
|
30
|
+
import 'readline-sync';
|
|
31
|
+
import 'isomorphic-git';
|
|
32
|
+
import 'deepmerge';
|
|
33
|
+
import 'ini';
|
|
34
|
+
import 'fs';
|
|
35
|
+
import 'path';
|
|
36
|
+
import 'marked';
|
|
37
|
+
import 'marked-terminal';
|
|
38
|
+
|
|
39
|
+
class GameAndroidApiKeyDelete extends BaseGameAndroidCommand {
|
|
40
|
+
static args = {};
|
|
41
|
+
static description = "Delete the active Android API Key from ShipThis";
|
|
42
|
+
static examples = [
|
|
43
|
+
"<%= config.bin %> <%= command.id %>",
|
|
44
|
+
"<%= config.bin %> <%= command.id %> --immediate --iAmSure"
|
|
45
|
+
];
|
|
46
|
+
static flags = {
|
|
47
|
+
...BaseGameAndroidCommand.flags,
|
|
48
|
+
immediate: Flags.boolean({
|
|
49
|
+
char: "i",
|
|
50
|
+
description: "Remove from storage immediately (rather than waiting for automatic cleanup - cannot be undone)",
|
|
51
|
+
required: false
|
|
52
|
+
}),
|
|
53
|
+
iAmSure: Flags.boolean({
|
|
54
|
+
char: "y",
|
|
55
|
+
description: "I am sure I want to do this - do not prompt me",
|
|
56
|
+
required: false
|
|
57
|
+
})
|
|
58
|
+
};
|
|
59
|
+
async run() {
|
|
60
|
+
const { flags } = await this.parse(GameAndroidApiKeyDelete);
|
|
61
|
+
const { immediate, iAmSure } = flags;
|
|
62
|
+
const game = await this.getGame();
|
|
63
|
+
const projectCredentials = await getProjectCredentials(game.id);
|
|
64
|
+
const activeKeys = projectCredentials.filter(
|
|
65
|
+
(cred) => cred.platform === Platform.ANDROID && cred.type === CredentialsType.KEY && cred.isActive
|
|
66
|
+
);
|
|
67
|
+
if (activeKeys.length === 0) {
|
|
68
|
+
this.log("No active Android API Key found which can be deleted.");
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
const [apiKey] = activeKeys;
|
|
72
|
+
const getAreYouSure = async () => {
|
|
73
|
+
if (iAmSure) return true;
|
|
74
|
+
const confirmString = getShortUUID(apiKey.id);
|
|
75
|
+
const prompt = getRenderedMarkdown({
|
|
76
|
+
filename: "confirm-delete-android-serviceaccountkey.md.ejs",
|
|
77
|
+
templateVars: {
|
|
78
|
+
confirmString,
|
|
79
|
+
exportCommand: `shipthis game android apiKey export apiKey.json`,
|
|
80
|
+
immediate
|
|
81
|
+
}
|
|
82
|
+
});
|
|
83
|
+
this.log(prompt);
|
|
84
|
+
const input = await getInput("");
|
|
85
|
+
return input.trim().toLowerCase() === confirmString.toLowerCase();
|
|
86
|
+
};
|
|
87
|
+
const areYouSure = await getAreYouSure();
|
|
88
|
+
if (!areYouSure) {
|
|
89
|
+
this.log("Aborting - Android API Key not deleted");
|
|
90
|
+
this.exit(0);
|
|
91
|
+
}
|
|
92
|
+
await deleteProjectCredential(game.id, {
|
|
93
|
+
credentialId: apiKey.id,
|
|
94
|
+
isImmediate: immediate
|
|
95
|
+
});
|
|
96
|
+
this.log("The Android API Key has been deleted from ShipThis.");
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
export { GameAndroidApiKeyDelete as default };
|
|
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
4
|
import { render } from 'ink';
|
|
5
|
-
import { a as getProjectCredentials } from '../../../../index-
|
|
6
|
-
import { P as Platform, C as CredentialsType } from '../../../../index-
|
|
5
|
+
import { a as getProjectCredentials } from '../../../../index-CNsmEDXi.js';
|
|
6
|
+
import { P as Platform, C as CredentialsType } from '../../../../index-CmuXyPed.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:path';
|
|
@@ -29,9 +29,10 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
31
|
import { R as RunWithSpinner } from '../../../../RunWithSpinner-DucRnFp6.js';
|
|
32
|
-
import { C as Command } from '../../../../Command-
|
|
33
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
34
|
-
import { e as exportCredential } from '../../../../export-
|
|
32
|
+
import { C as Command } from '../../../../Command-CHh8RDXK.js';
|
|
33
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
34
|
+
import { e as exportCredential } from '../../../../export-DujIwhJw.js';
|
|
35
|
+
import 'chalk';
|
|
35
36
|
import '@expo/apple-utils/build/index.js';
|
|
36
37
|
import 'deepmerge';
|
|
37
38
|
import 'ini';
|
|
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import * as fs from 'node:fs';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
4
|
import { render } from 'ink';
|
|
5
|
-
import { a as getProjectCredentials } from '../../../../index-
|
|
6
|
-
import { P as Platform, C as CredentialsType } from '../../../../index-
|
|
5
|
+
import { a as getProjectCredentials } from '../../../../index-CNsmEDXi.js';
|
|
6
|
+
import { P as Platform, C as CredentialsType } from '../../../../index-CmuXyPed.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'node:crypto';
|
|
9
9
|
import 'node:path';
|
|
@@ -29,9 +29,10 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
31
|
import { R as RunWithSpinner } from '../../../../RunWithSpinner-DucRnFp6.js';
|
|
32
|
-
import { C as Command } from '../../../../Command-
|
|
33
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
34
|
-
import { i as importCredential } from '../../../../import-
|
|
32
|
+
import { C as Command } from '../../../../Command-CHh8RDXK.js';
|
|
33
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
34
|
+
import { i as importCredential } from '../../../../import-DGCqCAcC.js';
|
|
35
|
+
import 'chalk';
|
|
35
36
|
import '@expo/apple-utils/build/index.js';
|
|
36
37
|
import 'deepmerge';
|
|
37
38
|
import 'ini';
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import { Args, Flags } from '@oclif/core';
|
|
2
|
-
import { a6 as fetchKeyTestResult, a8 as KeyTestStatus, a9 as KeyTestError, a7 as niceError, aa as inviteServiceAccount,
|
|
3
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
2
|
+
import { a6 as fetchKeyTestResult, a8 as KeyTestStatus, a9 as KeyTestError, a7 as niceError, aa as inviteServiceAccount, c as getInput } from '../../../../index-CmuXyPed.js';
|
|
3
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
4
4
|
import 'node:fs';
|
|
5
5
|
import 'axios';
|
|
6
6
|
import 'crypto-js';
|
|
7
7
|
import 'uuid';
|
|
8
8
|
import 'luxon';
|
|
9
9
|
import 'node:path';
|
|
10
|
+
import 'chalk';
|
|
10
11
|
import '@expo/apple-utils/build/index.js';
|
|
11
12
|
import 'node:crypto';
|
|
12
13
|
import 'node:readline';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
|
-
import { a4 as enforcePolicy, a5 as revokePolicy, a2 as getGoogleStatus,
|
|
2
|
+
import { a4 as enforcePolicy, a5 as revokePolicy, a2 as getGoogleStatus, b as getRenderedMarkdown } from '../../../../index-CmuXyPed.js';
|
|
3
3
|
import 'react/jsx-runtime';
|
|
4
4
|
import 'ink';
|
|
5
5
|
import 'ink-spinner';
|
|
@@ -24,8 +24,9 @@ import 'strip-ansi';
|
|
|
24
24
|
import 'open';
|
|
25
25
|
import '@inkjs/ui';
|
|
26
26
|
import 'qrcode';
|
|
27
|
-
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-
|
|
27
|
+
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-D4ryZS6A.js';
|
|
28
28
|
import 'crypto-js';
|
|
29
|
+
import 'chalk';
|
|
29
30
|
import '@expo/apple-utils/build/index.js';
|
|
30
31
|
import 'deepmerge';
|
|
31
32
|
import 'ini';
|