shipthis 0.1.3 → 0.1.4
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/dist/AppleBundleIdDetails-Dxo99Sgu.js +72 -0
- package/dist/Command-1YAl_0zS.js +204 -0
- package/dist/CommandGame-CZUx_VQu.js +8 -0
- package/dist/CreateKeystore-BqJdpvsI.js +56 -0
- package/dist/commands/apple/apiKey/create.js +1 -1
- package/dist/commands/apple/apiKey/export.js +1 -1
- package/dist/commands/apple/apiKey/import.js +1 -1
- package/dist/commands/apple/apiKey/status.js +1 -1
- package/dist/commands/apple/certificate/create.js +1 -1
- package/dist/commands/apple/certificate/export.js +1 -1
- package/dist/commands/apple/certificate/import.js +1 -1
- package/dist/commands/apple/certificate/status.js +1 -1
- package/dist/commands/apple/status.js +1 -1
- package/dist/commands/game/android/apiKey/connect.js +3 -3
- package/dist/commands/game/android/apiKey/create.js +3 -3
- package/dist/commands/game/android/apiKey/export.js +1 -1
- package/dist/commands/game/android/apiKey/import.js +1 -1
- package/dist/commands/game/android/apiKey/status.js +1 -1
- package/dist/commands/game/android/keyStore/create.js +3 -3
- package/dist/commands/game/android/keyStore/export.js +1 -1
- package/dist/commands/game/android/keyStore/import.js +1 -1
- package/dist/commands/game/android/keyStore/status.js +1 -1
- package/dist/commands/game/android/status.js +1 -1
- package/dist/commands/game/android/wizard.js +5 -5
- package/dist/commands/game/build/download.js +1 -1
- package/dist/commands/game/build/list.js +2 -2
- package/dist/commands/game/details.js +1 -1
- package/dist/commands/game/ios/app/addTester.js +1 -1
- package/dist/commands/game/ios/app/create.js +1 -1
- package/dist/commands/game/ios/app/status.js +2 -2
- package/dist/commands/game/ios/app/sync.js +1 -1
- package/dist/commands/game/ios/profile/create.js +1 -1
- package/dist/commands/game/ios/profile/export.js +1 -1
- package/dist/commands/game/ios/profile/import.js +1 -1
- package/dist/commands/game/ios/profile/status.js +1 -1
- package/dist/commands/game/ios/status.js +2 -2
- package/dist/commands/game/job/list.js +1 -1
- package/dist/commands/game/job/status.js +2 -2
- package/dist/commands/game/list.js +1 -1
- package/dist/commands/game/status.js +1 -1
- package/dist/commands/status.js +1 -1
- package/dist/index-DE2Hvx2o.js +122 -0
- package/dist/index-X__XH_Fd.js +144 -0
- package/dist/useJobWatching-BcBJ5dy1.js +43 -0
- package/npm-shrinkwrap.json +2 -2
- package/oclif.manifest.json +219 -219
- package/package.json +1 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
|
+
import { Box, Text } from 'ink';
|
|
3
|
+
import Spinner from 'ink-spinner';
|
|
4
|
+
import './index-BQRxiyqn.js';
|
|
5
|
+
import 'axios';
|
|
6
|
+
import '@tanstack/react-query';
|
|
7
|
+
import 'crypto';
|
|
8
|
+
import 'fs';
|
|
9
|
+
import 'readline-sync';
|
|
10
|
+
import 'node:readline';
|
|
11
|
+
import 'node:path';
|
|
12
|
+
import 'node:url';
|
|
13
|
+
import 'react';
|
|
14
|
+
import 'crypto-js';
|
|
15
|
+
import 'uuid';
|
|
16
|
+
import 'luxon';
|
|
17
|
+
import 'socket.io-client';
|
|
18
|
+
import 'isomorphic-git';
|
|
19
|
+
import '@oclif/core';
|
|
20
|
+
import { u as useAppleApp } from './useAppleApp-DnSjUfSs.js';
|
|
21
|
+
import 'fast-glob';
|
|
22
|
+
import 'yazl';
|
|
23
|
+
import '@inkjs/ui';
|
|
24
|
+
import { T as Title } from './Title-BCQtayg6.js';
|
|
25
|
+
import './Command-1YAl_0zS.js';
|
|
26
|
+
import 'qrcode';
|
|
27
|
+
import { T as Table } from './Table-CvM6pccN.js';
|
|
28
|
+
import 'string-length';
|
|
29
|
+
import 'strip-ansi';
|
|
30
|
+
import { u as useAppleBundleId } from './useAppleBundleId-BNI8swhC.js';
|
|
31
|
+
|
|
32
|
+
const AppleAppDetails = (props) => {
|
|
33
|
+
const { data, isLoading } = useAppleApp(props);
|
|
34
|
+
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
35
|
+
/* @__PURE__ */ jsx(Title, { children: "App Details (in the Apple Developer Portal)" }),
|
|
36
|
+
isLoading && /* @__PURE__ */ jsx(Spinner, { type: "dots" }),
|
|
37
|
+
data && data.summary && /* @__PURE__ */ jsx(Table, { data: [data.summary] })
|
|
38
|
+
] });
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const AppleBundleIdDetails = (props) => {
|
|
42
|
+
const { data, isLoading } = useAppleBundleId(props);
|
|
43
|
+
const { bundleIdSummary, capabilitiesTable, shouldSyncCapabilities, capabilities } = data || {};
|
|
44
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
45
|
+
/* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
46
|
+
/* @__PURE__ */ jsx(Title, { children: "BundleId Details (in the Apple Developer Portal)" }),
|
|
47
|
+
isLoading && /* @__PURE__ */ jsx(Spinner, { type: "dots" }),
|
|
48
|
+
bundleIdSummary && /* @__PURE__ */ jsx(Table, { data: [bundleIdSummary] })
|
|
49
|
+
] }),
|
|
50
|
+
capabilities && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
51
|
+
/* @__PURE__ */ jsx(Title, { children: "Capabilities enabled in the BundleId" }),
|
|
52
|
+
/* @__PURE__ */ jsx(
|
|
53
|
+
Table,
|
|
54
|
+
{
|
|
55
|
+
data: capabilities.map((c) => {
|
|
56
|
+
return { capability: `${c}` };
|
|
57
|
+
})
|
|
58
|
+
}
|
|
59
|
+
)
|
|
60
|
+
] }),
|
|
61
|
+
capabilitiesTable && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
62
|
+
/* @__PURE__ */ jsx(Title, { children: "BundleId Capability Check" }),
|
|
63
|
+
/* @__PURE__ */ jsx(Table, { data: capabilitiesTable })
|
|
64
|
+
] }),
|
|
65
|
+
shouldSyncCapabilities && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
66
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: "The capabilities are out of sync with the Apple Developer Portal." }),
|
|
67
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: "Run shipthis game ios app sync" })
|
|
68
|
+
] })
|
|
69
|
+
] });
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
export { AppleAppDetails as A, AppleBundleIdDetails as a };
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import { Text, useInput, Box } from 'ink';
|
|
3
|
+
import React, { useState, useEffect, useContext, useRef } from 'react';
|
|
4
|
+
import Spinner from 'ink-spinner';
|
|
5
|
+
import open from 'open';
|
|
6
|
+
import { g as getShortUUID, j as getPlatformName, s as scriptDir } from './index-B6V7vGOj.js';
|
|
7
|
+
import { c as cacheKeys, u as useAndroidServiceAccountTestResult, K as KeyTestStatus, a as KeyTestError } from './useAndroidServiceAccountTestResult-D_30xIJA.js';
|
|
8
|
+
import { P as Platform, a5 as getShortDateTime, p as getAuthedHeaders, q as API_URL, J as castArrayObjectDates, K as JobStatus, a6 as getShortTimeDelta, a4 as getJob, H as getProject, a1 as getShortAuthRequiredUrl, a7 as queryClient, Z as WEB_URL } from './index-BQRxiyqn.js';
|
|
9
|
+
import '@inkjs/ui';
|
|
10
|
+
import axios from 'axios';
|
|
11
|
+
import { useQuery, QueryClientProvider } from '@tanstack/react-query';
|
|
12
|
+
import { setOptions, parse } from 'marked';
|
|
13
|
+
import fs__default from 'fs';
|
|
14
|
+
import TerminalRenderer from 'marked-terminal';
|
|
15
|
+
import path from 'path';
|
|
16
|
+
import 'qrcode';
|
|
17
|
+
import 'string-length';
|
|
18
|
+
import 'strip-ansi';
|
|
19
|
+
import 'luxon';
|
|
20
|
+
import 'uuid';
|
|
21
|
+
import 'fast-glob';
|
|
22
|
+
import 'yazl';
|
|
23
|
+
import 'socket.io-client';
|
|
24
|
+
import 'crypto';
|
|
25
|
+
import 'readline-sync';
|
|
26
|
+
import 'node:readline';
|
|
27
|
+
import 'node:path';
|
|
28
|
+
import 'node:url';
|
|
29
|
+
import 'crypto-js';
|
|
30
|
+
import 'isomorphic-git';
|
|
31
|
+
import '@oclif/core';
|
|
32
|
+
|
|
33
|
+
async function queryBuilds({ projectId, ...pageAndSortParams }) {
|
|
34
|
+
try {
|
|
35
|
+
const headers = getAuthedHeaders();
|
|
36
|
+
const url = `${API_URL}/projects/${projectId}/builds`;
|
|
37
|
+
const response = await axios.get(url, { headers, params: pageAndSortParams });
|
|
38
|
+
return {
|
|
39
|
+
...response.data,
|
|
40
|
+
data: castArrayObjectDates(response.data.data)
|
|
41
|
+
};
|
|
42
|
+
} catch (error) {
|
|
43
|
+
console.warn("queryBuilds Error", error);
|
|
44
|
+
throw error;
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function getBuildSummary(build) {
|
|
48
|
+
const filename = build.platform == Platform.IOS ? "output.ipa" : "output.aab";
|
|
49
|
+
return {
|
|
50
|
+
id: getShortUUID(build.id),
|
|
51
|
+
...getJobDetailsSummary(build.jobDetails),
|
|
52
|
+
platform: getPlatformName(build.platform),
|
|
53
|
+
jobId: getShortUUID(build.jobId),
|
|
54
|
+
createdAt: getShortDateTime(build.createdAt),
|
|
55
|
+
cmd: `shipthis game build download ${getShortUUID(build.id)} ${filename}`
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
const useBuilds = (props) => {
|
|
59
|
+
const queryResult = useQuery({
|
|
60
|
+
queryKey: cacheKeys.builds(props),
|
|
61
|
+
queryFn: async () => queryBuilds(props)
|
|
62
|
+
});
|
|
63
|
+
return queryResult;
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
function getJobDetailsSummary(jobDetails) {
|
|
67
|
+
const semanticVersion = jobDetails?.semanticVersion || "N/A";
|
|
68
|
+
const buildNumber = jobDetails?.buildNumber || "N/A";
|
|
69
|
+
const gitCommit = jobDetails?.gitCommitHash ? getShortUUID(jobDetails?.gitCommitHash) : "N/A";
|
|
70
|
+
const gitBranch = jobDetails?.gitBranch || "N/A";
|
|
71
|
+
return {
|
|
72
|
+
version: `${semanticVersion} (${buildNumber})`,
|
|
73
|
+
gitInfo: `${gitCommit} (${gitBranch})`
|
|
74
|
+
};
|
|
75
|
+
}
|
|
76
|
+
function getJobSummary(job, timeNow) {
|
|
77
|
+
const inProgress = ![JobStatus.COMPLETED, JobStatus.FAILED].includes(job.status);
|
|
78
|
+
return {
|
|
79
|
+
id: getShortUUID(job.id),
|
|
80
|
+
...getJobDetailsSummary(job.details),
|
|
81
|
+
platform: getPlatformName(job.type),
|
|
82
|
+
status: job.status,
|
|
83
|
+
createdAt: getShortDateTime(job.createdAt),
|
|
84
|
+
runtime: getShortTimeDelta(job.createdAt, inProgress ? timeNow : job.updatedAt)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
const useJob = (props) => {
|
|
88
|
+
return useQuery({
|
|
89
|
+
queryKey: cacheKeys.job(props),
|
|
90
|
+
queryFn: () => getJob(props.jobId, props.projectId)
|
|
91
|
+
});
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
const CommandContext = React.createContext({
|
|
95
|
+
command: null,
|
|
96
|
+
setCommand: (command) => {
|
|
97
|
+
}
|
|
98
|
+
});
|
|
99
|
+
const CommandProvider = (props) => {
|
|
100
|
+
const [command, setCommand] = useState(props.command || null);
|
|
101
|
+
return /* @__PURE__ */ jsx(CommandContext.Provider, { value: { command, setCommand }, children: props.children });
|
|
102
|
+
};
|
|
103
|
+
|
|
104
|
+
const GameContext = React.createContext({
|
|
105
|
+
gameId: null,
|
|
106
|
+
game: null,
|
|
107
|
+
setGameId: (gameId) => {
|
|
108
|
+
}
|
|
109
|
+
});
|
|
110
|
+
const GameProvider = ({ children }) => {
|
|
111
|
+
const [gameId, setGameId] = useState(null);
|
|
112
|
+
const [game, setGame] = useState(null);
|
|
113
|
+
const { command } = React.useContext(CommandContext);
|
|
114
|
+
const handleLoad = async () => {
|
|
115
|
+
if (command) {
|
|
116
|
+
const commandGameId = await command.getGameId();
|
|
117
|
+
if (commandGameId) setGameId(commandGameId);
|
|
118
|
+
}
|
|
119
|
+
};
|
|
120
|
+
const handleGameIdChange = async () => {
|
|
121
|
+
if (!gameId) {
|
|
122
|
+
setGame(null);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
const game2 = await getProject(gameId);
|
|
126
|
+
setGame(game2);
|
|
127
|
+
};
|
|
128
|
+
useEffect(() => {
|
|
129
|
+
handleGameIdChange();
|
|
130
|
+
}, [gameId]);
|
|
131
|
+
useEffect(() => {
|
|
132
|
+
handleLoad();
|
|
133
|
+
}, [command]);
|
|
134
|
+
return /* @__PURE__ */ jsx(GameContext.Provider, { value: { gameId, game, setGameId }, children });
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const entrypointPath = fs__default.realpathSync(process.argv[1]);
|
|
138
|
+
const root = path.dirname(entrypointPath);
|
|
139
|
+
const Markdown = ({ filename, templateVars, ...options }) => {
|
|
140
|
+
setOptions({ renderer: new TerminalRenderer(options) });
|
|
141
|
+
const mdPath = path.join(root, "..", "assets", "markdown", filename);
|
|
142
|
+
const mdTemplate = fs__default.readFileSync(mdPath, "utf8").trim();
|
|
143
|
+
const markdown = !templateVars ? mdTemplate : mdTemplate.replace(/\${(.*?)}/g, (_, key) => templateVars[key.trim()] || "");
|
|
144
|
+
return /* @__PURE__ */ jsx(Text, { children: parse(markdown).trim() });
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
scriptDir(import.meta);
|
|
148
|
+
const getIsAppFound = (result) => {
|
|
149
|
+
const isFound = result?.status === KeyTestStatus.SUCCESS || result?.status === KeyTestStatus.ERROR && result?.error === KeyTestError.NOT_INVITED;
|
|
150
|
+
return isFound;
|
|
151
|
+
};
|
|
152
|
+
const CreateGooglePlayGame = (props) => {
|
|
153
|
+
const { gameId } = useContext(GameContext);
|
|
154
|
+
return /* @__PURE__ */ jsx(Fragment, { children: gameId && /* @__PURE__ */ jsx(Create, { gameId, ...props }) });
|
|
155
|
+
};
|
|
156
|
+
const Create = ({ onComplete, onError, gameId, ...boxProps }) => {
|
|
157
|
+
const { data: result, isFetching } = useAndroidServiceAccountTestResult({ projectId: gameId });
|
|
158
|
+
const { data: builds } = useBuilds({ projectId: gameId, pageNumber: 0 });
|
|
159
|
+
const previousIsFound = useRef(false);
|
|
160
|
+
useEffect(() => {
|
|
161
|
+
const isFound = getIsAppFound(result);
|
|
162
|
+
if (previousIsFound.current === false && isFound) {
|
|
163
|
+
onComplete();
|
|
164
|
+
}
|
|
165
|
+
previousIsFound.current = isFound;
|
|
166
|
+
}, [result]);
|
|
167
|
+
useInput(async (input) => {
|
|
168
|
+
if (!gameId) return;
|
|
169
|
+
switch (input) {
|
|
170
|
+
case "r":
|
|
171
|
+
queryClient.invalidateQueries({
|
|
172
|
+
queryKey: cacheKeys.androidKeyTestResult({ projectId: gameId })
|
|
173
|
+
});
|
|
174
|
+
break;
|
|
175
|
+
case "d":
|
|
176
|
+
const dashUrl = await getShortAuthRequiredUrl(`/games/${getShortUUID(gameId)}/builds`);
|
|
177
|
+
await open(dashUrl);
|
|
178
|
+
}
|
|
179
|
+
if (input !== "r") return;
|
|
180
|
+
queryClient.invalidateQueries({
|
|
181
|
+
queryKey: cacheKeys.androidKeyTestResult({ projectId: gameId })
|
|
182
|
+
});
|
|
183
|
+
});
|
|
184
|
+
const initialBuild = builds?.data.find((build) => build.platform === Platform.ANDROID);
|
|
185
|
+
const downloadCmd = initialBuild ? `${getBuildSummary(initialBuild).cmd}` : "";
|
|
186
|
+
const templateVars = {
|
|
187
|
+
downloadCmd,
|
|
188
|
+
dashboardURL: new URL(`/games/${getShortUUID(gameId)}/builds`, WEB_URL).toString()
|
|
189
|
+
};
|
|
190
|
+
return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, ...boxProps, children: [
|
|
191
|
+
/* @__PURE__ */ jsxs(Box, { flexDirection: "row", gap: 1, children: [
|
|
192
|
+
/* @__PURE__ */ jsx(Text, { bold: true, children: isFetching ? "Checking..." : "ShipThis has not detected your game in Google Play. Press R to test again." }),
|
|
193
|
+
isFetching && /* @__PURE__ */ jsx(Spinner, { type: "dots" })
|
|
194
|
+
] }),
|
|
195
|
+
/* @__PURE__ */ jsx(Markdown, { filename: "create-google-play-game.md", templateVars })
|
|
196
|
+
] }) });
|
|
197
|
+
};
|
|
198
|
+
|
|
199
|
+
const Command = ({ children, command }) => {
|
|
200
|
+
const width = Math.min(160, process.stdout.columns || 80);
|
|
201
|
+
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(CommandProvider, { command, children: /* @__PURE__ */ jsx(Box, { width, flexDirection: "column", children }) }) });
|
|
202
|
+
};
|
|
203
|
+
|
|
204
|
+
export { Command as C, GameProvider as G, Markdown as M, GameContext as a, useBuilds as b, getBuildSummary as c, CommandContext as d, CreateGooglePlayGame as e, getJobSummary as g, queryBuilds as q, useJob as u };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { C as Command, G as GameProvider } from './Command-1YAl_0zS.js';
|
|
3
|
+
|
|
4
|
+
const CommandGame = ({ children, command }) => {
|
|
5
|
+
return /* @__PURE__ */ jsx(Command, { command, children: /* @__PURE__ */ jsx(GameProvider, { children }) });
|
|
6
|
+
};
|
|
7
|
+
|
|
8
|
+
export { CommandGame as C };
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Box } from 'ink';
|
|
3
|
+
import axios from 'axios';
|
|
4
|
+
import { useContext } from 'react';
|
|
5
|
+
import { useQueryClient } from '@tanstack/react-query';
|
|
6
|
+
import { p as getAuthedHeaders, q as API_URL } from './index-BQRxiyqn.js';
|
|
7
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-D_30xIJA.js';
|
|
8
|
+
import { a as GameContext } from './Command-1YAl_0zS.js';
|
|
9
|
+
import 'ink-spinner';
|
|
10
|
+
import '@inkjs/ui';
|
|
11
|
+
import 'open';
|
|
12
|
+
import 'crypto';
|
|
13
|
+
import 'fs';
|
|
14
|
+
import 'readline-sync';
|
|
15
|
+
import 'node:readline';
|
|
16
|
+
import 'node:path';
|
|
17
|
+
import 'node:url';
|
|
18
|
+
import 'luxon';
|
|
19
|
+
import 'uuid';
|
|
20
|
+
import 'fast-glob';
|
|
21
|
+
import 'yazl';
|
|
22
|
+
import 'socket.io-client';
|
|
23
|
+
import 'isomorphic-git';
|
|
24
|
+
import '@oclif/core';
|
|
25
|
+
import 'qrcode';
|
|
26
|
+
import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
|
|
27
|
+
import 'string-length';
|
|
28
|
+
import 'strip-ansi';
|
|
29
|
+
|
|
30
|
+
const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
|
|
31
|
+
const { gameId } = useContext(GameContext);
|
|
32
|
+
const queryClient = useQueryClient();
|
|
33
|
+
const handleCreate = async () => {
|
|
34
|
+
try {
|
|
35
|
+
if (!gameId) throw new Error("No game");
|
|
36
|
+
const headers = await getAuthedHeaders();
|
|
37
|
+
await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
|
|
38
|
+
headers
|
|
39
|
+
});
|
|
40
|
+
queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
|
|
41
|
+
} catch (err) {
|
|
42
|
+
onError(err);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
|
|
46
|
+
RunWithSpinner,
|
|
47
|
+
{
|
|
48
|
+
executeMethod: handleCreate,
|
|
49
|
+
msgInProgress: "Creating Keystore...",
|
|
50
|
+
msgComplete: "Keystore created",
|
|
51
|
+
onComplete
|
|
52
|
+
}
|
|
53
|
+
) });
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
export { CreateKeystore as C };
|
|
@@ -4,7 +4,7 @@ import { render } from 'ink';
|
|
|
4
4
|
import { P as Platform, C as CredentialsType, A as ApiKey, a as ApiKeyType, U as UserRole } from '../../../index-BQRxiyqn.js';
|
|
5
5
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
6
6
|
import 'react';
|
|
7
|
-
import { C as Command } from '../../../Command-
|
|
7
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
8
8
|
import 'ink-spinner';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-BQRxiyqn.js';
|
|
6
6
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../Command-
|
|
8
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-BQRxiyqn.js';
|
|
6
6
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../Command-
|
|
8
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -3,7 +3,7 @@ import { Flags } from '@oclif/core';
|
|
|
3
3
|
import { Box, Text, render } from 'ink';
|
|
4
4
|
import { b as getShortDate, A as ApiKey, C as CredentialsType, P as Platform, B as BaseAuthenticatedCommand } from '../../../index-BQRxiyqn.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import { C as Command } from '../../../Command-
|
|
6
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
7
7
|
import Spinner from 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'crypto-js';
|
|
@@ -4,7 +4,7 @@ import { render } from 'ink';
|
|
|
4
4
|
import { m as CertificateType, l as Certificate, P as Platform, C as CredentialsType } from '../../../index-BQRxiyqn.js';
|
|
5
5
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
6
6
|
import 'react';
|
|
7
|
-
import { C as Command } from '../../../Command-
|
|
7
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
8
8
|
import 'ink-spinner';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-BQRxiyqn.js';
|
|
6
6
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../Command-
|
|
8
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { B as BaseAuthenticatedCommand, P as Platform, C as CredentialsType } from '../../../index-BQRxiyqn.js';
|
|
6
6
|
import { g as getUserCredentials } from '../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../Command-
|
|
8
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -3,7 +3,7 @@ import { Flags } from '@oclif/core';
|
|
|
3
3
|
import { Box, Text, render } from 'ink';
|
|
4
4
|
import { b as getShortDate, l as Certificate, m as CertificateType, P as Platform, C as CredentialsType, B as BaseAuthenticatedCommand } from '../../../index-BQRxiyqn.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import { C as Command } from '../../../Command-
|
|
6
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
7
7
|
import Spinner from 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'crypto-js';
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { B as BaseAuthenticatedCommand } from '../../index-BQRxiyqn.js';
|
|
3
3
|
import 'react';
|
|
4
4
|
import { render } from 'ink';
|
|
5
|
-
import { C as Command } from '../../Command-
|
|
5
|
+
import { C as Command } from '../../Command-1YAl_0zS.js';
|
|
6
6
|
import 'ink-spinner';
|
|
7
7
|
import 'axios';
|
|
8
8
|
import 'crypto-js';
|
|
@@ -3,12 +3,12 @@ import { render } from 'ink';
|
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import { S as getGoogleStatus, V as disconnectGoogle } from '../../../../index-BQRxiyqn.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import '../../../../Command-
|
|
6
|
+
import '../../../../Command-1YAl_0zS.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import '@inkjs/ui';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import '@tanstack/react-query';
|
|
11
|
-
import { C as ConnectGoogle } from '../../../../index-
|
|
11
|
+
import { C as ConnectGoogle } from '../../../../index-DE2Hvx2o.js';
|
|
12
12
|
import 'crypto';
|
|
13
13
|
import 'fs';
|
|
14
14
|
import 'readline-sync';
|
|
@@ -24,7 +24,7 @@ import 'isomorphic-git';
|
|
|
24
24
|
import 'qrcode';
|
|
25
25
|
import 'string-length';
|
|
26
26
|
import 'strip-ansi';
|
|
27
|
-
import { C as CommandGame } from '../../../../CommandGame
|
|
27
|
+
import { C as CommandGame } from '../../../../CommandGame-CZUx_VQu.js';
|
|
28
28
|
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-B-CFhPnE.js';
|
|
29
29
|
import 'path';
|
|
30
30
|
import '@expo/apple-utils/build/index.js';
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import 'react';
|
|
5
|
-
import '../../../../Command-
|
|
5
|
+
import '../../../../Command-1YAl_0zS.js';
|
|
6
6
|
import { P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
@@ -26,8 +26,8 @@ import 'isomorphic-git';
|
|
|
26
26
|
import 'qrcode';
|
|
27
27
|
import 'string-length';
|
|
28
28
|
import 'strip-ansi';
|
|
29
|
-
import { C as CreateServiceAccountKey } from '../../../../index-
|
|
30
|
-
import { C as CommandGame } from '../../../../CommandGame
|
|
29
|
+
import { C as CreateServiceAccountKey } from '../../../../index-X__XH_Fd.js';
|
|
30
|
+
import { C as CommandGame } from '../../../../CommandGame-CZUx_VQu.js';
|
|
31
31
|
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-B-CFhPnE.js';
|
|
32
32
|
import '../../../../index-B6V7vGOj.js';
|
|
33
33
|
import '../../../../useAndroidServiceAccountTestResult-D_30xIJA.js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
6
6
|
import { a as getProjectCredentials } from '../../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../../Command-
|
|
8
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
6
6
|
import { a as getProjectCredentials } from '../../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../../Command-
|
|
8
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import 'react';
|
|
5
|
-
import { C as Command } from '../../../../Command-
|
|
5
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
6
6
|
import { P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import 'react';
|
|
5
|
-
import '../../../../Command-
|
|
5
|
+
import '../../../../Command-1YAl_0zS.js';
|
|
6
6
|
import { P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
@@ -11,7 +11,7 @@ import 'uuid';
|
|
|
11
11
|
import 'luxon';
|
|
12
12
|
import { a as getProjectCredentials } from '../../../../index-BuZmCvZh.js';
|
|
13
13
|
import '@inkjs/ui';
|
|
14
|
-
import { C as CreateKeystore } from '../../../../CreateKeystore-
|
|
14
|
+
import { C as CreateKeystore } from '../../../../CreateKeystore-BqJdpvsI.js';
|
|
15
15
|
import 'open';
|
|
16
16
|
import 'crypto';
|
|
17
17
|
import 'fs';
|
|
@@ -27,7 +27,7 @@ import 'isomorphic-git';
|
|
|
27
27
|
import 'qrcode';
|
|
28
28
|
import 'string-length';
|
|
29
29
|
import 'strip-ansi';
|
|
30
|
-
import { C as CommandGame } from '../../../../CommandGame
|
|
30
|
+
import { C as CommandGame } from '../../../../CommandGame-CZUx_VQu.js';
|
|
31
31
|
import { B as BaseGameAndroidCommand } from '../../../../baseGameAndroidCommand-B-CFhPnE.js';
|
|
32
32
|
import '../../../../index-B6V7vGOj.js';
|
|
33
33
|
import '../../../../useAndroidServiceAccountTestResult-D_30xIJA.js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { c as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
6
6
|
import { a as getProjectCredentials } from '../../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../../Command-
|
|
8
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -5,7 +5,7 @@ import * as fs from 'fs';
|
|
|
5
5
|
import { c as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
6
6
|
import { a as getProjectCredentials } from '../../../../index-BuZmCvZh.js';
|
|
7
7
|
import 'react';
|
|
8
|
-
import { C as Command } from '../../../../Command-
|
|
8
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
9
9
|
import 'ink-spinner';
|
|
10
10
|
import 'axios';
|
|
11
11
|
import 'crypto-js';
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import 'react';
|
|
4
|
-
import { C as Command } from '../../../../Command-
|
|
4
|
+
import { C as Command } from '../../../../Command-1YAl_0zS.js';
|
|
5
5
|
import { c as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-BQRxiyqn.js';
|
|
6
6
|
import 'ink-spinner';
|
|
7
7
|
import 'axios';
|
|
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import 'react';
|
|
5
|
-
import { C as Command } from '../../../Command-
|
|
5
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
6
6
|
import { c as BaseGameCommand, k as getProjectPlatformProgress, P as Platform, b as getShortDate } from '../../../index-BQRxiyqn.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import '@inkjs/ui';
|
|
@@ -2,7 +2,7 @@ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { Text, Box, render } from 'ink';
|
|
3
3
|
import { p as getAuthedHeaders, q as API_URL, J as castArrayObjectDates, a7 as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, z as getNewUploadTicket, E as startJobsFromUpload, u as getGodotVersion, t as GameEngine, v as createProject, K as JobStatus, P as Platform, Z as WEB_URL, H as getProject, C as CredentialsType, S as getGoogleStatus, B as BaseAuthenticatedCommand, D as DetailsFlags } from '../../../index-BQRxiyqn.js';
|
|
4
4
|
import React, { useState, useContext, useEffect, useRef } from 'react';
|
|
5
|
-
import { d as CommandContext, a as GameContext, b as useBuilds, M as Markdown, q as queryBuilds, G as GameProvider, e as CreateGooglePlayGame, C as Command } from '../../../Command-
|
|
5
|
+
import { d as CommandContext, a as GameContext, b as useBuilds, M as Markdown, q as queryBuilds, G as GameProvider, e as CreateGooglePlayGame, C as Command } from '../../../Command-1YAl_0zS.js';
|
|
6
6
|
import Spinner from 'ink-spinner';
|
|
7
7
|
import { Alert, TextInput } from '@inkjs/ui';
|
|
8
8
|
import axios from 'axios';
|
|
@@ -25,13 +25,13 @@ import '@oclif/core';
|
|
|
25
25
|
import 'qrcode';
|
|
26
26
|
import 'string-length';
|
|
27
27
|
import 'strip-ansi';
|
|
28
|
-
import { C as CreateKeystore } from '../../../CreateKeystore-
|
|
29
|
-
import { C as ConnectGoogle } from '../../../index-
|
|
30
|
-
import { P as ProgressSpinner, C as CreateServiceAccountKey } from '../../../index-
|
|
28
|
+
import { C as CreateKeystore } from '../../../CreateKeystore-BqJdpvsI.js';
|
|
29
|
+
import { C as ConnectGoogle } from '../../../index-DE2Hvx2o.js';
|
|
30
|
+
import { P as ProgressSpinner, C as CreateServiceAccountKey } from '../../../index-X__XH_Fd.js';
|
|
31
31
|
import { c as cacheKeys, f as fetchKeyTestResult, K as KeyTestStatus, a as KeyTestError } from '../../../useAndroidServiceAccountTestResult-D_30xIJA.js';
|
|
32
32
|
import { c as getFileHash } from '../../../index-B6V7vGOj.js';
|
|
33
33
|
import { g as getCWDGitInfo } from '../../../git-DREGq-jc.js';
|
|
34
|
-
import { u as useJobWatching } from '../../../useJobWatching-
|
|
34
|
+
import { u as useJobWatching } from '../../../useJobWatching-BcBJ5dy1.js';
|
|
35
35
|
import { a as getProjectCredentials } from '../../../index-BuZmCvZh.js';
|
|
36
36
|
import { T as Title } from '../../../Title-BCQtayg6.js';
|
|
37
37
|
import 'path';
|
|
@@ -4,7 +4,7 @@ import { render } from 'ink';
|
|
|
4
4
|
import * as fs from 'fs';
|
|
5
5
|
import { c as BaseGameCommand, I as getBuild } from '../../../index-BQRxiyqn.js';
|
|
6
6
|
import 'react';
|
|
7
|
-
import { C as Command } from '../../../Command-
|
|
7
|
+
import { C as Command } from '../../../Command-1YAl_0zS.js';
|
|
8
8
|
import 'ink-spinner';
|
|
9
9
|
import '@inkjs/ui';
|
|
10
10
|
import axios from 'axios';
|
|
@@ -3,7 +3,7 @@ import { Box, Text, render } from 'ink';
|
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import { c as BaseGameCommand } from '../../../index-BQRxiyqn.js';
|
|
5
5
|
import 'react';
|
|
6
|
-
import { b as useBuilds, c as getBuildSummary } from '../../../Command-
|
|
6
|
+
import { b as useBuilds, c as getBuildSummary } from '../../../Command-1YAl_0zS.js';
|
|
7
7
|
import Spinner from 'ink-spinner';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'crypto-js';
|
|
@@ -25,7 +25,7 @@ import 'isomorphic-git';
|
|
|
25
25
|
import 'qrcode';
|
|
26
26
|
import 'string-length';
|
|
27
27
|
import 'strip-ansi';
|
|
28
|
-
import { C as CommandGame } from '../../../CommandGame
|
|
28
|
+
import { C as CommandGame } from '../../../CommandGame-CZUx_VQu.js';
|
|
29
29
|
import { T as Table } from '../../../Table-CvM6pccN.js';
|
|
30
30
|
import { T as Title } from '../../../Title-BCQtayg6.js';
|
|
31
31
|
import 'path';
|
|
@@ -2,7 +2,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
2
2
|
import { render } from 'ink';
|
|
3
3
|
import { Flags } from '@oclif/core';
|
|
4
4
|
import 'react';
|
|
5
|
-
import { C as Command } from '../../Command-
|
|
5
|
+
import { C as Command } from '../../Command-1YAl_0zS.js';
|
|
6
6
|
import { c as BaseGameCommand, D as DetailsFlags, t as GameEngine } from '../../index-BQRxiyqn.js';
|
|
7
7
|
import 'ink-spinner';
|
|
8
8
|
import 'axios';
|