shipthis 0.1.32 → 0.1.33
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-6H3cNWxw.js → AppleBundleIdDetails-BhHPCvRm.js} +4 -4
- package/dist/{Command-WPpmLPkL.js → Command-BDIkuv2g.js} +2 -2
- package/dist/{CommandGame-cxzWG4nT.js → CommandGame-CvBIjPZp.js} +2 -2
- package/dist/{Create-3Ob8sjik.js → Create-Lpe0B8nT.js} +3 -3
- package/dist/{GameStatus-BQEtVKvv.js → GameStatus-5XpufIY_.js} +3 -3
- package/dist/{Import-CFuPDI0K.js → Import-DFzrAG04.js} +6 -6
- package/dist/{JobLogTail-0CBLoG8N.js → JobLogTail-BYcJgPcL.js} +5 -5
- package/dist/{JobProgress-lKqVT88m.js → JobProgress-BcrE7CUK.js} +11 -8
- package/dist/{JobStatusTable-C_ZsZJCm.js → JobStatusTable-Bi-y8ZZT.js} +4 -4
- package/dist/{ProgressSpinner-DGcakQSK.js → ProgressSpinner-Um6ARKlk.js} +1 -1
- package/dist/{ProjectCredentialsTable-B5pHOnGu.js → ProjectCredentialsTable-B4vDJl4l.js} +2 -2
- package/dist/{UserCredentialsTable-3W3qesh7.js → UserCredentialsTable-CwkZTFBD.js} +3 -3
- package/dist/{baseAppleCommand-BGV088--.js → baseAppleCommand-BKXweb-U.js} +1 -1
- package/dist/{baseGameAndroidCommand-CsemgVjp.js → baseGameAndroidCommand-CAi-BSsH.js} +2 -2
- package/dist/commands/apple/apiKey/create.js +9 -9
- package/dist/commands/apple/apiKey/export.js +8 -8
- package/dist/commands/apple/apiKey/import.js +8 -8
- package/dist/commands/apple/apiKey/status.js +7 -7
- package/dist/commands/apple/certificate/create.js +9 -9
- package/dist/commands/apple/certificate/export.js +8 -8
- package/dist/commands/apple/certificate/import.js +8 -8
- package/dist/commands/apple/certificate/status.js +8 -8
- package/dist/commands/apple/login.js +3 -2
- package/dist/commands/apple/status.js +5 -5
- package/dist/commands/dashboard.js +2 -1
- package/dist/commands/game/android/apiKey/connect.js +9 -9
- package/dist/commands/game/android/apiKey/create.js +13 -13
- package/dist/commands/game/android/apiKey/export.js +9 -9
- package/dist/commands/game/android/apiKey/import.js +9 -9
- package/dist/commands/game/android/apiKey/invite.js +5 -4
- package/dist/commands/game/android/apiKey/status.js +9 -9
- package/dist/commands/game/android/keyStore/create.js +10 -10
- package/dist/commands/game/android/keyStore/export.js +8 -8
- package/dist/commands/game/android/keyStore/import.js +11 -11
- package/dist/commands/game/android/keyStore/status.js +7 -7
- package/dist/commands/game/android/status.js +2 -1
- package/dist/commands/game/build/download.js +5 -5
- package/dist/commands/game/build/list.js +6 -6
- package/dist/commands/game/create.js +3 -2
- package/dist/commands/game/details.js +5 -5
- package/dist/commands/game/export.js +2 -1
- package/dist/commands/game/ios/app/addTester.js +19 -14
- package/dist/commands/game/ios/app/create.js +5 -5
- package/dist/commands/game/ios/app/status.js +8 -8
- package/dist/commands/game/ios/app/sync.js +6 -6
- package/dist/commands/game/ios/profile/create.js +10 -10
- package/dist/commands/game/ios/profile/export.js +8 -8
- package/dist/commands/game/ios/profile/import.js +8 -8
- package/dist/commands/game/ios/profile/status.js +7 -7
- package/dist/commands/game/ios/status.js +10 -10
- package/dist/commands/game/ios/wizard.js +13 -8
- package/dist/commands/game/job/list.js +5 -5
- package/dist/commands/game/job/status.js +9 -9
- package/dist/commands/game/list.js +6 -6
- package/dist/commands/game/ship.js +19 -17
- package/dist/commands/game/status.js +7 -7
- package/dist/commands/game/wizard.js +21 -21
- package/dist/commands/internal/fastlane.js +2 -1
- package/dist/commands/internal/readme.js +2 -1
- package/dist/commands/login.js +3 -2
- package/dist/commands/status.js +5 -5
- package/dist/{export-CXsVPXA1.js → export-DLQrUEBK.js} +1 -1
- package/dist/{import-DGvG5REx.js → import-BoY5e0uJ.js} +1 -1
- package/dist/{index-CGBdOm1q.js → index-B27WJDxn.js} +2 -1
- package/dist/{index-CS9Gwcb0.js → index-CisLwc7e.js} +7 -7
- package/dist/{index-CtTI85m-.js → index-Crv7S0bl.js} +1 -1
- package/dist/{index-C03TV1_J.js → index-DC0GJtAy.js} +17 -9
- package/dist/{index-C66Dd8Xc.js → index-DfUg5j06.js} +23 -12
- package/dist/{index-BhhiXbey.js → index-pj8JVg5X.js} +4 -3
- package/dist/{upload-8y5MQEm9.js → upload-C8S17EU_.js} +1 -1
- package/dist/{useAndroidServiceAccountTestResult-DZk5SMxI.js → useAndroidServiceAccountTestResult-D4e5AKAZ.js} +1 -1
- package/dist/{useAppleApp-DWYGURwU.js → useAppleApp-Dr6URQvC.js} +1 -1
- package/dist/{useAppleBundleId-PsTJ2g1B.js → useAppleBundleId-DELAwSQp.js} +1 -1
- package/dist/{useProjectCredentials-BEphqa18.js → useProjectCredentials-BjvdJdQg.js} +3 -3
- package/dist/{useWebSocket-5PYa2QER.js → useWebSocket-CRV7V69Q.js} +1 -1
- package/package.json +2 -2
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { Flags } from '@oclif/core';
|
|
3
3
|
import { render, Box, Text } from 'ink';
|
|
4
|
-
import { B as BaseAuthenticatedCommand, g as getProjects, b as getShortDate } from '../../index-
|
|
4
|
+
import { B as BaseAuthenticatedCommand, g as getProjects, b as getShortDate } from '../../index-pj8JVg5X.js';
|
|
5
5
|
import 'ink-spinner';
|
|
6
|
-
import { g as getShortUUID } from '../../index-
|
|
6
|
+
import { g as getShortUUID } from '../../index-B27WJDxn.js';
|
|
7
7
|
import { T as Table } from '../../Table-FaNgpyeq.js';
|
|
8
8
|
import 'react';
|
|
9
9
|
import '@tanstack/react-query';
|
|
@@ -23,8 +23,8 @@ import 'node:path';
|
|
|
23
23
|
import 'marked';
|
|
24
24
|
import 'marked-terminal';
|
|
25
25
|
import 'qrcode';
|
|
26
|
-
import '../../index-
|
|
27
|
-
import { C as Command } from '../../Command-
|
|
26
|
+
import '../../index-DfUg5j06.js';
|
|
27
|
+
import { C as Command } from '../../Command-BDIkuv2g.js';
|
|
28
28
|
import 'crypto-js';
|
|
29
29
|
import '@expo/apple-utils/build/index.js';
|
|
30
30
|
import 'node:crypto';
|
|
@@ -34,7 +34,7 @@ import 'readline-sync';
|
|
|
34
34
|
import 'isomorphic-git';
|
|
35
35
|
import 'deepmerge';
|
|
36
36
|
import 'ini';
|
|
37
|
-
import '../../useAndroidServiceAccountTestResult-
|
|
37
|
+
import '../../useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
38
38
|
|
|
39
39
|
class GameList extends BaseAuthenticatedCommand {
|
|
40
40
|
static args = {};
|
|
@@ -67,7 +67,7 @@ class GameList extends BaseAuthenticatedCommand {
|
|
|
67
67
|
}));
|
|
68
68
|
render(
|
|
69
69
|
/* @__PURE__ */ jsxs(Command, { command: this, children: [
|
|
70
|
-
data.length === 0 && params.pageNumber
|
|
70
|
+
data.length === 0 && params.pageNumber === 0 && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
71
71
|
/* @__PURE__ */ jsx(Text, { children: "No games found. Create one now with:" }),
|
|
72
72
|
/* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginLeft: 2, marginTop: 1, children: [
|
|
73
73
|
/* @__PURE__ */ jsx(Text, { children: "shipthis game wizard android" }),
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import { Flags } from '@oclif/core';
|
|
3
|
-
import {
|
|
4
|
-
import { M as LogLevel,
|
|
3
|
+
import { Box, Text, render } from 'ink';
|
|
4
|
+
import { M as LogLevel, W as WEB_URL, a2 as getShortAuthRequiredUrl, c as BaseGameCommand, z as getJob, H as downloadBuildById } from '../../index-pj8JVg5X.js';
|
|
5
5
|
import 'ink-spinner';
|
|
6
6
|
import 'node:crypto';
|
|
7
7
|
import 'node:fs';
|
|
@@ -22,27 +22,27 @@ import 'fullscreen-ink';
|
|
|
22
22
|
import 'string-length';
|
|
23
23
|
import 'strip-ansi';
|
|
24
24
|
import open from 'open';
|
|
25
|
-
import { g as getShortUUID } from '../../index-
|
|
25
|
+
import { g as getShortUUID } from '../../index-B27WJDxn.js';
|
|
26
26
|
import 'crypto-js';
|
|
27
|
-
import { u as useJobWatching, J as JobLogTail } from '../../JobLogTail-
|
|
28
|
-
import { J as JobStatusTable } from '../../JobStatusTable-
|
|
27
|
+
import { u as useJobWatching, J as JobLogTail } from '../../JobLogTail-BYcJgPcL.js';
|
|
28
|
+
import { J as JobStatusTable } from '../../JobStatusTable-Bi-y8ZZT.js';
|
|
29
29
|
import '@inkjs/ui';
|
|
30
|
-
import { u as useShip, J as JobProgress } from '../../JobProgress-
|
|
31
|
-
import { C as CommandContext, G as GameContext, M as Markdown } from '../../index-
|
|
30
|
+
import { u as useShip, J as JobProgress } from '../../JobProgress-BcrE7CUK.js';
|
|
31
|
+
import { C as CommandContext, G as GameContext, e as useSafeInput, M as Markdown } from '../../index-DfUg5j06.js';
|
|
32
32
|
import 'qrcode';
|
|
33
33
|
import 'marked';
|
|
34
34
|
import 'marked-terminal';
|
|
35
|
-
import { C as CommandGame } from '../../CommandGame-
|
|
35
|
+
import { C as CommandGame } from '../../CommandGame-CvBIjPZp.js';
|
|
36
36
|
import '@expo/apple-utils/build/index.js';
|
|
37
37
|
import 'deepmerge';
|
|
38
38
|
import 'ini';
|
|
39
|
-
import '../../useAndroidServiceAccountTestResult-
|
|
40
|
-
import '../../useWebSocket-
|
|
39
|
+
import '../../useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
40
|
+
import '../../useWebSocket-CRV7V69Q.js';
|
|
41
41
|
import '../../Title-BCQtayg6.js';
|
|
42
42
|
import '../../StatusTable-DzRWcMr4.js';
|
|
43
43
|
import '../../git-BpsfNFZ_.js';
|
|
44
|
-
import '../../ProgressSpinner-
|
|
45
|
-
import '../../Command-
|
|
44
|
+
import '../../ProgressSpinner-Um6ARKlk.js';
|
|
45
|
+
import '../../Command-BDIkuv2g.js';
|
|
46
46
|
|
|
47
47
|
function isNetworkError(exception) {
|
|
48
48
|
if (!axios.isAxiosError(exception)) return false;
|
|
@@ -73,7 +73,7 @@ const JobFollow = ({ jobId, onComplete, onFailure, projectId }) => {
|
|
|
73
73
|
onComplete,
|
|
74
74
|
onFailure,
|
|
75
75
|
onNewLogEntry(logEntry) {
|
|
76
|
-
if (logEntry.level
|
|
76
|
+
if (logEntry.level === LogLevel.ERROR) console.error(logEntry.message);
|
|
77
77
|
else console.log(logEntry.message);
|
|
78
78
|
},
|
|
79
79
|
projectId
|
|
@@ -94,15 +94,17 @@ const Ship = ({ onComplete, onError }) => {
|
|
|
94
94
|
const [isComplete, setIsComplete] = useState(false);
|
|
95
95
|
const handleStartOnMount = async () => {
|
|
96
96
|
if (!command) throw new Error("No command in context");
|
|
97
|
-
const
|
|
97
|
+
const logFn = flags?.follow ? console.log : setShipLog;
|
|
98
|
+
const startedJobs = await shipMutation.mutateAsync({ command, log: logFn });
|
|
98
99
|
setJobs(startedJobs);
|
|
99
100
|
};
|
|
100
101
|
useEffect(() => {
|
|
101
102
|
handleStartOnMount().catch(onError);
|
|
102
103
|
}, []);
|
|
103
|
-
|
|
104
|
+
useSafeInput(async (input) => {
|
|
104
105
|
if (!gameId) return;
|
|
105
|
-
|
|
106
|
+
const i = input.toLowerCase();
|
|
107
|
+
switch (i) {
|
|
106
108
|
case "l": {
|
|
107
109
|
setShowLog((prev) => !prev);
|
|
108
110
|
break;
|
|
@@ -141,7 +143,7 @@ const Ship = ({ onComplete, onError }) => {
|
|
|
141
143
|
return /* @__PURE__ */ jsx(Fragment, {});
|
|
142
144
|
}
|
|
143
145
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", children: [
|
|
144
|
-
jobs
|
|
146
|
+
jobs === null && /* @__PURE__ */ jsx(Text, { children: shipLog }),
|
|
145
147
|
jobs && jobs.map((job) => /* @__PURE__ */ jsxs(Box, { flexDirection: "column", marginBottom: 1, children: [
|
|
146
148
|
/* @__PURE__ */ jsx(JobStatusTable, { isWatching: true, jobId: job.id, projectId: job.project.id }),
|
|
147
149
|
/* @__PURE__ */ jsx(Box, { flexDirection: "column", children: /* @__PURE__ */ jsx(JobProgress, { job, onComplete: handleJobComplete, onFailure: handleJobFailure }) }),
|
|
@@ -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 { B as BaseAuthenticatedCommand } from '../../index-
|
|
4
|
+
import { B as BaseAuthenticatedCommand } from '../../index-pj8JVg5X.js';
|
|
5
5
|
import 'ink-spinner';
|
|
6
6
|
import 'node:crypto';
|
|
7
7
|
import 'node:fs';
|
|
@@ -20,7 +20,7 @@ import 'fast-glob';
|
|
|
20
20
|
import 'yazl';
|
|
21
21
|
import 'socket.io-client';
|
|
22
22
|
import 'fullscreen-ink';
|
|
23
|
-
import { a as GameStatus$1 } from '../../GameStatus-
|
|
23
|
+
import { a as GameStatus$1 } from '../../GameStatus-5XpufIY_.js';
|
|
24
24
|
import 'string-length';
|
|
25
25
|
import 'strip-ansi';
|
|
26
26
|
import 'open';
|
|
@@ -28,17 +28,17 @@ import '@inkjs/ui';
|
|
|
28
28
|
import 'marked';
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import 'qrcode';
|
|
31
|
-
import '../../index-
|
|
32
|
-
import { C as CommandGame } from '../../CommandGame-
|
|
31
|
+
import '../../index-DfUg5j06.js';
|
|
32
|
+
import { C as CommandGame } from '../../CommandGame-CvBIjPZp.js';
|
|
33
33
|
import '@expo/apple-utils/build/index.js';
|
|
34
34
|
import 'deepmerge';
|
|
35
35
|
import 'ini';
|
|
36
|
-
import '../../index-
|
|
36
|
+
import '../../index-B27WJDxn.js';
|
|
37
37
|
import '../../StatusTable-DzRWcMr4.js';
|
|
38
38
|
import '../../Title-BCQtayg6.js';
|
|
39
39
|
import '../../NextSteps-DbJHmscQ.js';
|
|
40
|
-
import '../../useAndroidServiceAccountTestResult-
|
|
41
|
-
import '../../Command-
|
|
40
|
+
import '../../useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
41
|
+
import '../../Command-BDIkuv2g.js';
|
|
42
42
|
|
|
43
43
|
class GameStatus extends BaseAuthenticatedCommand {
|
|
44
44
|
static args = {};
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
2
2
|
import { Args } from '@oclif/core';
|
|
3
3
|
import { useScreenSize, withFullScreen } from 'fullscreen-ink';
|
|
4
|
-
import { K as queryClient, p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, a9 as updateProject, t as getGodotVersion, s as GameEngine, u as createProject, v as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, P as Platform, J as JobStatus, W as WEB_URL, E as getProject, C as CredentialsType, Q as getGoogleStatus, B as BaseAuthenticatedCommand, j as isCWDGodotGame } from '../../index-
|
|
5
|
-
import { Box, Text
|
|
4
|
+
import { K as queryClient, p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, a9 as updateProject, t as getGodotVersion, s as GameEngine, u as createProject, v as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, P as Platform, J as JobStatus, W as WEB_URL, E as getProject, C as CredentialsType, Q as getGoogleStatus, B as BaseAuthenticatedCommand, j as isCWDGodotGame } from '../../index-pj8JVg5X.js';
|
|
5
|
+
import { Box, Text } from 'ink';
|
|
6
6
|
import Spinner from 'ink-spinner';
|
|
7
7
|
import 'node:crypto';
|
|
8
8
|
import fs__default from 'node:fs';
|
|
@@ -23,31 +23,31 @@ import 'socket.io-client';
|
|
|
23
23
|
import 'string-length';
|
|
24
24
|
import 'strip-ansi';
|
|
25
25
|
import 'open';
|
|
26
|
-
import { C as ConnectGoogle } from '../../index-
|
|
27
|
-
import { C as CommandContext, G as GameContext, u as useBuilds, M as Markdown, q as queryBuilds, c as GameProvider,
|
|
26
|
+
import { C as ConnectGoogle } from '../../index-DC0GJtAy.js';
|
|
27
|
+
import { C as CommandContext, G as GameContext, u as useBuilds, M as Markdown, e as useSafeInput, q as queryBuilds, c as GameProvider, h as CreateGooglePlayGame } from '../../index-DfUg5j06.js';
|
|
28
28
|
import { TextInput, Alert } from '@inkjs/ui';
|
|
29
29
|
import 'marked';
|
|
30
30
|
import 'marked-terminal';
|
|
31
31
|
import 'qrcode';
|
|
32
|
-
import { g as getShortUUID } from '../../index-
|
|
33
|
-
import { J as JobLogTail } from '../../JobLogTail-
|
|
34
|
-
import { c as cacheKeys, f as fetchKeyTestResult, K as KeyTestStatus, a as KeyTestError } from '../../useAndroidServiceAccountTestResult-
|
|
35
|
-
import { u as useShip, J as JobProgress } from '../../JobProgress-
|
|
36
|
-
import { C as CreateServiceAccountKey } from '../../index-
|
|
37
|
-
import { C as CreateKeystore } from '../../Create-
|
|
38
|
-
import { I as ImportKeystore } from '../../Import-
|
|
39
|
-
import { a as getProjectCredentials } from '../../index-
|
|
32
|
+
import { g as getShortUUID } from '../../index-B27WJDxn.js';
|
|
33
|
+
import { J as JobLogTail } from '../../JobLogTail-BYcJgPcL.js';
|
|
34
|
+
import { c as cacheKeys, f as fetchKeyTestResult, K as KeyTestStatus, a as KeyTestError } from '../../useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
35
|
+
import { u as useShip, J as JobProgress } from '../../JobProgress-BcrE7CUK.js';
|
|
36
|
+
import { C as CreateServiceAccountKey } from '../../index-CisLwc7e.js';
|
|
37
|
+
import { C as CreateKeystore } from '../../Create-Lpe0B8nT.js';
|
|
38
|
+
import { I as ImportKeystore } from '../../Import-DFzrAG04.js';
|
|
39
|
+
import { a as getProjectCredentials } from '../../index-Crv7S0bl.js';
|
|
40
40
|
import { T as Title } from '../../Title-BCQtayg6.js';
|
|
41
|
-
import { C as Command } from '../../Command-
|
|
41
|
+
import { C as Command } from '../../Command-BDIkuv2g.js';
|
|
42
42
|
import '@expo/apple-utils/build/index.js';
|
|
43
43
|
import 'deepmerge';
|
|
44
44
|
import 'ini';
|
|
45
|
-
import '../../useWebSocket-
|
|
45
|
+
import '../../useWebSocket-CRV7V69Q.js';
|
|
46
46
|
import '../../git-BpsfNFZ_.js';
|
|
47
|
-
import '../../ProgressSpinner-
|
|
48
|
-
import '../../useProjectCredentials-
|
|
47
|
+
import '../../ProgressSpinner-Um6ARKlk.js';
|
|
48
|
+
import '../../useProjectCredentials-BjvdJdQg.js';
|
|
49
49
|
import '../../RunWithSpinner-gMVA07bZ.js';
|
|
50
|
-
import '../../import-
|
|
50
|
+
import '../../import-BoY5e0uJ.js';
|
|
51
51
|
|
|
52
52
|
const useInviteServiceAccount = () => useMutation({
|
|
53
53
|
async mutationFn({ developerId, projectId }) {
|
|
@@ -290,7 +290,7 @@ const CreateForGame = ({ gameId, onComplete, onError, ...boxProps }) => {
|
|
|
290
290
|
/* @__PURE__ */ jsx(Text, { children: "Create an initial build..." }),
|
|
291
291
|
(isLoadingBuilds || isLoadingJobs || shipMutation.isPending) && /* @__PURE__ */ jsx(Spinner, { type: "dots" })
|
|
292
292
|
] }),
|
|
293
|
-
androidJob
|
|
293
|
+
androidJob === null && /* @__PURE__ */ jsx(Text, { children: shipLog }),
|
|
294
294
|
androidJob && /* @__PURE__ */ jsx(JobProgress, { job: androidJob, onComplete, onFailure: (j) => {
|
|
295
295
|
setFailedJob(j);
|
|
296
296
|
setTimeout(() => {
|
|
@@ -430,7 +430,7 @@ const CreateOrImport = ({ onComplete, onError, ...boxProps }) => {
|
|
|
430
430
|
keyPassword: "",
|
|
431
431
|
keystorePassword: ""
|
|
432
432
|
});
|
|
433
|
-
|
|
433
|
+
useSafeInput(async (input) => {
|
|
434
434
|
if (stage !== 0 /* Choose */) return;
|
|
435
435
|
if (input === "c") return setStage(1 /* Create */);
|
|
436
436
|
if (input === "i") return setStage(2 /* ImportForm */);
|
|
@@ -510,12 +510,12 @@ const getStatusFlags = async (cmd) => {
|
|
|
510
510
|
const hasAndroidPackageName = project && Boolean(project?.details?.androidPackageName);
|
|
511
511
|
const projectCredentials = hasShipThisProject ? await getProjectCredentials(project.id) : [];
|
|
512
512
|
const hasAndroidKeystore = projectCredentials.some(
|
|
513
|
-
(cred) => cred.isActive && cred.platform === Platform.ANDROID && cred.type
|
|
513
|
+
(cred) => cred.isActive && cred.platform === Platform.ANDROID && cred.type === CredentialsType.CERTIFICATE
|
|
514
514
|
);
|
|
515
515
|
const googleStatus = await getGoogleStatus();
|
|
516
516
|
const hasGoogleConnection = googleStatus.isAuthenticated;
|
|
517
517
|
const hasServiceAccountKey = projectCredentials.some(
|
|
518
|
-
(cred) => cred.isActive && cred.platform
|
|
518
|
+
(cred) => cred.isActive && cred.platform === Platform.ANDROID && cred.type === CredentialsType.KEY
|
|
519
519
|
);
|
|
520
520
|
const buildsResponse = Boolean(projectId) && hasShipThisProject && await queryBuilds({ pageNumber: 0, projectId });
|
|
521
521
|
const hasInitialBuild = Boolean(buildsResponse) && buildsResponse.data.some((build) => build.platform === Platform.ANDROID);
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs__default, { promises } from 'node:fs';
|
|
2
2
|
import path from 'node:path';
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
|
-
import { V as BaseCommand } from '../../index-
|
|
4
|
+
import { V as BaseCommand } from '../../index-pj8JVg5X.js';
|
|
5
5
|
import 'axios';
|
|
6
6
|
import 'crypto-js';
|
|
7
7
|
import 'uuid';
|
|
@@ -20,6 +20,7 @@ import 'fast-glob';
|
|
|
20
20
|
import 'yazl';
|
|
21
21
|
import 'socket.io-client';
|
|
22
22
|
import 'fullscreen-ink';
|
|
23
|
+
import 'ink';
|
|
23
24
|
|
|
24
25
|
function generateFastlaneSession(cookieData) {
|
|
25
26
|
return cookieData.cookies.map((cookie) => `- !ruby/object:HTTP::Cookie
|
|
@@ -3,7 +3,7 @@ import path from 'node:path';
|
|
|
3
3
|
import { Args, Flags } from '@oclif/core';
|
|
4
4
|
import require$$0 from 'fs';
|
|
5
5
|
import require$$1 from 'path';
|
|
6
|
-
import { V as BaseCommand } from '../../index-
|
|
6
|
+
import { V as BaseCommand } from '../../index-pj8JVg5X.js';
|
|
7
7
|
import CustomHelp from '../../utils/help.js';
|
|
8
8
|
import 'axios';
|
|
9
9
|
import 'crypto-js';
|
|
@@ -23,6 +23,7 @@ import 'fast-glob';
|
|
|
23
23
|
import 'yazl';
|
|
24
24
|
import 'socket.io-client';
|
|
25
25
|
import 'fullscreen-ink';
|
|
26
|
+
import 'ink';
|
|
26
27
|
|
|
27
28
|
function getDefaultExportFromCjs (x) {
|
|
28
29
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
package/dist/commands/login.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Flags } from '@oclif/core';
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
import { W as WEB_URL, V as BaseCommand, o as API_URL, Y as setAuthToken, Z as acceptTerms } from '../index-
|
|
4
|
-
import { a as getInput } from '../index-
|
|
3
|
+
import { W as WEB_URL, V as BaseCommand, o as API_URL, Y as setAuthToken, Z as acceptTerms } from '../index-pj8JVg5X.js';
|
|
4
|
+
import { a as getInput } from '../index-B27WJDxn.js';
|
|
5
5
|
import 'node:fs';
|
|
6
6
|
import 'crypto-js';
|
|
7
7
|
import 'uuid';
|
|
@@ -21,6 +21,7 @@ import 'fast-glob';
|
|
|
21
21
|
import 'yazl';
|
|
22
22
|
import 'socket.io-client';
|
|
23
23
|
import 'fullscreen-ink';
|
|
24
|
+
import 'ink';
|
|
24
25
|
|
|
25
26
|
const TERMS_URL = new URL("/terms", WEB_URL).href;
|
|
26
27
|
const PRIVACY_URL = new URL("/privacy", WEB_URL).href;
|
package/dist/commands/status.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
2
|
import { render } from 'ink';
|
|
3
|
-
import { V as BaseCommand, j as isCWDGodotGame } from '../index-
|
|
3
|
+
import { V as BaseCommand, j as isCWDGodotGame } from '../index-pj8JVg5X.js';
|
|
4
4
|
import 'ink-spinner';
|
|
5
5
|
import 'node:crypto';
|
|
6
6
|
import 'node:fs';
|
|
@@ -29,15 +29,15 @@ import 'marked';
|
|
|
29
29
|
import 'marked-terminal';
|
|
30
30
|
import { N as NextSteps } from '../NextSteps-DbJHmscQ.js';
|
|
31
31
|
import 'qrcode';
|
|
32
|
-
import '../index-
|
|
33
|
-
import { C as Command } from '../Command-
|
|
32
|
+
import '../index-DfUg5j06.js';
|
|
33
|
+
import { C as Command } from '../Command-BDIkuv2g.js';
|
|
34
34
|
import '@expo/apple-utils/build/index.js';
|
|
35
35
|
import 'isomorphic-git';
|
|
36
36
|
import 'deepmerge';
|
|
37
37
|
import 'ini';
|
|
38
38
|
import '../Title-BCQtayg6.js';
|
|
39
|
-
import '../index-
|
|
40
|
-
import '../useAndroidServiceAccountTestResult-
|
|
39
|
+
import '../index-B27WJDxn.js';
|
|
40
|
+
import '../useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
41
41
|
|
|
42
42
|
class Status extends BaseCommand {
|
|
43
43
|
static args = {};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as fs from 'node:fs';
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
import { o as API_URL, p as getAuthedHeaders } from './index-
|
|
3
|
+
import { o as API_URL, p as getAuthedHeaders } from './index-pj8JVg5X.js';
|
|
4
4
|
|
|
5
5
|
async function exportCredential({ credentialId, projectId, zipPath }) {
|
|
6
6
|
const headers = getAuthedHeaders();
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { promises } from 'node:fs';
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
import { o as API_URL, p as getAuthedHeaders } from './index-
|
|
3
|
+
import { o as API_URL, p as getAuthedHeaders } from './index-pj8JVg5X.js';
|
|
4
4
|
|
|
5
5
|
async function getNewImportTicket(projectId) {
|
|
6
6
|
const url = projectId ? `${API_URL}/projects/${projectId}/credentials/import/url` : `${API_URL}/credentials/import/url`;
|
|
@@ -4,7 +4,7 @@ import path from 'node:path';
|
|
|
4
4
|
import { promises } from 'node:readline';
|
|
5
5
|
import { fileURLToPath } from 'node:url';
|
|
6
6
|
import readlineSync from 'readline-sync';
|
|
7
|
-
import { L as JobStage, P as Platform, M as LogLevel, J as JobStatus } from './index-
|
|
7
|
+
import { L as JobStage, P as Platform, M as LogLevel, J as JobStatus } from './index-pj8JVg5X.js';
|
|
8
8
|
import 'luxon';
|
|
9
9
|
import 'axios';
|
|
10
10
|
import 'isomorphic-git';
|
|
@@ -17,6 +17,7 @@ import 'fast-glob';
|
|
|
17
17
|
import 'yazl';
|
|
18
18
|
import 'socket.io-client';
|
|
19
19
|
import 'fullscreen-ink';
|
|
20
|
+
import 'ink';
|
|
20
21
|
|
|
21
22
|
function getShortUUID(originalUuid) {
|
|
22
23
|
return originalUuid.slice(0, 8);
|
|
@@ -11,17 +11,17 @@ import 'readline-sync';
|
|
|
11
11
|
import 'luxon';
|
|
12
12
|
import axios from 'axios';
|
|
13
13
|
import 'isomorphic-git';
|
|
14
|
-
import { p as getAuthedHeaders, o as API_URL, a1 as castObjectDates, P as Platform, C as CredentialsType, Q as getGoogleStatus } from './index-
|
|
14
|
+
import { p as getAuthedHeaders, o as API_URL, a1 as castObjectDates, P as Platform, C as CredentialsType, Q as getGoogleStatus } from './index-pj8JVg5X.js';
|
|
15
15
|
import '@oclif/core';
|
|
16
16
|
import { useQuery, useQueryClient } from '@tanstack/react-query';
|
|
17
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
17
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
18
18
|
import 'fast-glob';
|
|
19
19
|
import 'uuid';
|
|
20
20
|
import 'yazl';
|
|
21
21
|
import 'socket.io-client';
|
|
22
22
|
import 'fullscreen-ink';
|
|
23
|
-
import { u as useWebSocket } from './useWebSocket-
|
|
24
|
-
import { u as useProjectCredentials } from './useProjectCredentials-
|
|
23
|
+
import { u as useWebSocket } from './useWebSocket-CRV7V69Q.js';
|
|
24
|
+
import { u as useProjectCredentials } from './useProjectCredentials-BjvdJdQg.js';
|
|
25
25
|
import 'crypto-js';
|
|
26
26
|
import 'string-length';
|
|
27
27
|
import 'strip-ansi';
|
|
@@ -29,9 +29,9 @@ import 'open';
|
|
|
29
29
|
import '@inkjs/ui';
|
|
30
30
|
import 'marked';
|
|
31
31
|
import 'marked-terminal';
|
|
32
|
-
import { P as ProgressSpinner } from './ProgressSpinner-
|
|
32
|
+
import { P as ProgressSpinner } from './ProgressSpinner-Um6ARKlk.js';
|
|
33
33
|
import 'qrcode';
|
|
34
|
-
import { G as GameContext } from './index-
|
|
34
|
+
import { G as GameContext } from './index-DfUg5j06.js';
|
|
35
35
|
|
|
36
36
|
async function fetchStatus({ projectId }) {
|
|
37
37
|
try {
|
|
@@ -56,7 +56,7 @@ const useAndroidServiceAccountSetupStatus = (props) => useQuery({
|
|
|
56
56
|
const ERR_NOT_AUTHENTICATED = "You must be connected to Google to create a Service Account Key";
|
|
57
57
|
const useHasServiceAccountKey = (projectId) => {
|
|
58
58
|
const { data, isSuccess } = useProjectCredentials({ platform: Platform.ANDROID, projectId });
|
|
59
|
-
return isSuccess && data.data.some((cred) => cred.isActive && cred.platform === Platform.ANDROID && cred.type
|
|
59
|
+
return isSuccess && data.data.some((cred) => cred.isActive && cred.platform === Platform.ANDROID && cred.type === CredentialsType.KEY);
|
|
60
60
|
};
|
|
61
61
|
const useAndroidServiceAccount = ({ onComplete, onError, projectId }) => {
|
|
62
62
|
const queryClient = useQueryClient();
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { o as API_URL, p as getAuthedHeaders, I as castArrayObjectDates } from './index-
|
|
2
|
+
import { o as API_URL, p as getAuthedHeaders, I as castArrayObjectDates } from './index-pj8JVg5X.js';
|
|
3
3
|
import 'node:fs';
|
|
4
4
|
|
|
5
5
|
async function getUserCredentials(pageSize = 100) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import { Text,
|
|
2
|
+
import { Text, Box } from 'ink';
|
|
3
3
|
import open from 'open';
|
|
4
4
|
import { useState, useEffect, useContext } from 'react';
|
|
5
5
|
import 'ink-spinner';
|
|
@@ -12,7 +12,7 @@ import 'readline-sync';
|
|
|
12
12
|
import 'luxon';
|
|
13
13
|
import 'axios';
|
|
14
14
|
import 'isomorphic-git';
|
|
15
|
-
import { Q as getGoogleStatus, a2 as getShortAuthRequiredUrl, a3 as getGoogleAuthUrl, W as WEB_URL } from './index-
|
|
15
|
+
import { Q as getGoogleStatus, a2 as getShortAuthRequiredUrl, a3 as getGoogleAuthUrl, W as WEB_URL } from './index-pj8JVg5X.js';
|
|
16
16
|
import '@oclif/core';
|
|
17
17
|
import { useQuery } from '@tanstack/react-query';
|
|
18
18
|
import 'crypto-js';
|
|
@@ -20,13 +20,13 @@ import 'uuid';
|
|
|
20
20
|
import 'fast-glob';
|
|
21
21
|
import 'yazl';
|
|
22
22
|
import 'socket.io-client';
|
|
23
|
-
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-
|
|
24
|
-
import { u as useWebSocket } from './useWebSocket-
|
|
23
|
+
import { c as cacheKeys } from './useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
24
|
+
import { u as useWebSocket } from './useWebSocket-CRV7V69Q.js';
|
|
25
25
|
import 'fullscreen-ink';
|
|
26
|
+
import { G as GameContext, e as useSafeInput, M as Markdown } from './index-DfUg5j06.js';
|
|
26
27
|
import 'string-length';
|
|
27
28
|
import 'strip-ansi';
|
|
28
29
|
import '@inkjs/ui';
|
|
29
|
-
import { G as GameContext, M as Markdown } from './index-C66Dd8Xc.js';
|
|
30
30
|
import 'marked';
|
|
31
31
|
import 'marked-terminal';
|
|
32
32
|
import qrcode from 'qrcode';
|
|
@@ -97,6 +97,14 @@ const ConnectGoogle = (props) => {
|
|
|
97
97
|
};
|
|
98
98
|
const ConnectForGame = ({ gameId, helpPage, onComplete, onError, ...boxProps }) => {
|
|
99
99
|
const [showQRCode, setShowQRCode] = useState(false);
|
|
100
|
+
const [connectUrl, setConnectUrl] = useState(null);
|
|
101
|
+
useEffect(() => {
|
|
102
|
+
const fetchConnectUrl = async () => {
|
|
103
|
+
const url = await getConnectUrl(gameId, Boolean(helpPage));
|
|
104
|
+
setConnectUrl(url);
|
|
105
|
+
};
|
|
106
|
+
if (!connectUrl) fetchConnectUrl();
|
|
107
|
+
}, []);
|
|
100
108
|
useGoogleStatusWatching({
|
|
101
109
|
isWatching: true,
|
|
102
110
|
onGoogleStatusUpdate(status) {
|
|
@@ -104,7 +112,7 @@ const ConnectForGame = ({ gameId, helpPage, onComplete, onError, ...boxProps })
|
|
|
104
112
|
},
|
|
105
113
|
projectId: gameId
|
|
106
114
|
});
|
|
107
|
-
|
|
115
|
+
useSafeInput(async (input) => {
|
|
108
116
|
switch (input) {
|
|
109
117
|
case "q": {
|
|
110
118
|
setShowQRCode(true);
|
|
@@ -116,8 +124,8 @@ const ConnectForGame = ({ gameId, helpPage, onComplete, onError, ...boxProps })
|
|
|
116
124
|
}
|
|
117
125
|
case "b": {
|
|
118
126
|
if (!gameId) return;
|
|
119
|
-
|
|
120
|
-
await open(
|
|
127
|
+
if (!connectUrl) return;
|
|
128
|
+
await open(connectUrl);
|
|
121
129
|
}
|
|
122
130
|
}
|
|
123
131
|
});
|
|
@@ -127,7 +135,7 @@ const ConnectForGame = ({ gameId, helpPage, onComplete, onError, ...boxProps })
|
|
|
127
135
|
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, ...boxProps, children: [
|
|
128
136
|
!showQRCode && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, children: [
|
|
129
137
|
/* @__PURE__ */ jsx(Markdown, { filename: "privacy-notification.md", templateVars }),
|
|
130
|
-
/* @__PURE__ */ jsx(Text, { bold: true, color: "#4CE64C", children:
|
|
138
|
+
connectUrl && /* @__PURE__ */ jsx(Text, { bold: true, color: "#4CE64C", children: `Press B to open ${connectUrl} in your browser and connect your Google account to ShipThis` }),
|
|
131
139
|
/* @__PURE__ */ jsx(Text, { bold: true, color: "#4CE64C", children: "Press Q to show a QR-code to connect using your mobile phone" })
|
|
132
140
|
] }),
|
|
133
141
|
showQRCode && /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 1, children: [
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
|
|
2
|
-
import {
|
|
2
|
+
import { useStdin, useInput, Text, Box } from 'ink';
|
|
3
3
|
import Spinner from 'ink-spinner';
|
|
4
4
|
import open from 'open';
|
|
5
5
|
import React, { useState, useEffect, useContext, useRef } from 'react';
|
|
6
|
-
import { p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, P as Platform, a6 as getShortDateTime, J as JobStatus, a7 as getShortTimeDelta, z as getJob, E as getProject, a2 as getShortAuthRequiredUrl, K as queryClient, a8 as BuildType, W as WEB_URL } from './index-
|
|
7
|
-
import { h as getPlatformName, g as getShortUUID, s as scriptDir } from './index-
|
|
6
|
+
import { p as getAuthedHeaders, o as API_URL, I as castArrayObjectDates, P as Platform, a6 as getShortDateTime, J as JobStatus, a7 as getShortTimeDelta, z as getJob, E as getProject, a2 as getShortAuthRequiredUrl, K as queryClient, a8 as BuildType, W as WEB_URL } from './index-pj8JVg5X.js';
|
|
7
|
+
import { h as getPlatformName, g as getShortUUID, s as scriptDir } from './index-B27WJDxn.js';
|
|
8
8
|
import { useQuery } from '@tanstack/react-query';
|
|
9
9
|
import axios from 'axios';
|
|
10
|
-
import { c as cacheKeys, u as useAndroidServiceAccountTestResult, K as KeyTestStatus, a as KeyTestError } from './useAndroidServiceAccountTestResult-
|
|
10
|
+
import { c as cacheKeys, u as useAndroidServiceAccountTestResult, K as KeyTestStatus, a as KeyTestError } from './useAndroidServiceAccountTestResult-D4e5AKAZ.js';
|
|
11
11
|
import 'luxon';
|
|
12
12
|
import fs__default from 'node:fs';
|
|
13
13
|
import 'fast-glob';
|
|
@@ -38,7 +38,7 @@ async function queryBuilds({ projectId, ...pageAndSortParams }) {
|
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
function getBuildSummary(build) {
|
|
41
|
-
const ext = build.buildType || (build.platform
|
|
41
|
+
const ext = build.buildType || (build.platform === Platform.IOS ? "IPA" : "AAB");
|
|
42
42
|
const filename = `game.${ext.toLowerCase()}`;
|
|
43
43
|
return {
|
|
44
44
|
id: getShortUUID(build.id),
|
|
@@ -83,6 +83,18 @@ const useJob = (props) => useQuery({
|
|
|
83
83
|
queryKey: cacheKeys.job(props)
|
|
84
84
|
});
|
|
85
85
|
|
|
86
|
+
const useSafeInput = (handler, options = { isActive: true }) => {
|
|
87
|
+
const { isRawModeSupported } = useStdin();
|
|
88
|
+
const isActive = isRawModeSupported === true && options.isActive !== false;
|
|
89
|
+
useInput(
|
|
90
|
+
(input, key) => {
|
|
91
|
+
const lowerInput = input.toLowerCase();
|
|
92
|
+
return handler(lowerInput, key);
|
|
93
|
+
},
|
|
94
|
+
{ isActive }
|
|
95
|
+
);
|
|
96
|
+
};
|
|
97
|
+
|
|
86
98
|
const cleanHyperlinks = (input) => (
|
|
87
99
|
// When we run in a <ScrollArea> the links break
|
|
88
100
|
// Remove OSC 8 hyperlink wrappers but preserve the styled content inside
|
|
@@ -173,7 +185,7 @@ const Create = ({ gameId, onComplete, onError, ...boxProps }) => {
|
|
|
173
185
|
}
|
|
174
186
|
previousIsFound.current = isFound;
|
|
175
187
|
}, [result]);
|
|
176
|
-
|
|
188
|
+
useSafeInput(async (input) => {
|
|
177
189
|
if (!gameId) return;
|
|
178
190
|
switch (input) {
|
|
179
191
|
case "r": {
|
|
@@ -185,14 +197,13 @@ const Create = ({ gameId, onComplete, onError, ...boxProps }) => {
|
|
|
185
197
|
case "d": {
|
|
186
198
|
const dashUrl = await getShortAuthRequiredUrl(`/games/${getShortUUID(gameId)}/builds`);
|
|
187
199
|
await open(dashUrl);
|
|
200
|
+
break;
|
|
188
201
|
}
|
|
189
202
|
}
|
|
190
|
-
if (input !== "r") return;
|
|
191
|
-
queryClient.invalidateQueries({
|
|
192
|
-
queryKey: cacheKeys.androidKeyTestResult({ projectId: gameId })
|
|
193
|
-
});
|
|
194
203
|
});
|
|
195
|
-
const initialBuild = builds?.data.find(
|
|
204
|
+
const initialBuild = builds?.data.find(
|
|
205
|
+
(build) => build.platform === Platform.ANDROID && build.buildType === BuildType.AAB
|
|
206
|
+
);
|
|
196
207
|
const downloadCmd = initialBuild ? `${getBuildSummary(initialBuild).cmd}` : "Initial AAB build not found!";
|
|
197
208
|
const templateVars = {
|
|
198
209
|
dashboardURL: new URL(`/games/${getShortUUID(gameId)}/builds`, WEB_URL).toString(),
|
|
@@ -207,4 +218,4 @@ const Create = ({ gameId, onComplete, onError, ...boxProps }) => {
|
|
|
207
218
|
] }) });
|
|
208
219
|
};
|
|
209
220
|
|
|
210
|
-
export { CommandContext as C, GameContext as G, Markdown as M, getJobSummary as a, CommandProvider as b, GameProvider as c, getBuildSummary as d,
|
|
221
|
+
export { CommandContext as C, GameContext as G, Markdown as M, getJobSummary as a, CommandProvider as b, GameProvider as c, getBuildSummary as d, useSafeInput as e, useJob as f, getRenderedMarkdown as g, CreateGooglePlayGame as h, queryBuilds as q, useBuilds as u };
|
|
@@ -20,6 +20,7 @@ import 'fast-glob';
|
|
|
20
20
|
import 'yazl';
|
|
21
21
|
import 'socket.io-client';
|
|
22
22
|
import 'fullscreen-ink';
|
|
23
|
+
import 'ink';
|
|
23
24
|
|
|
24
25
|
const AUTH_ENV_VAR_NAME = "SHIPTHIS_TOKEN";
|
|
25
26
|
const DOMAIN_ENV_VAR_NAME = "SHIPTHIS_DOMAIN";
|
|
@@ -109,7 +110,7 @@ function getShortTimeDelta(start, end) {
|
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
112
|
|
|
112
|
-
|
|
113
|
+
let currentAuthToken;
|
|
113
114
|
function setAuthToken(token) {
|
|
114
115
|
currentAuthToken = token;
|
|
115
116
|
}
|
|
@@ -359,7 +360,7 @@ function getGodotProjectCapabilities(platform) {
|
|
|
359
360
|
const capabilities = [];
|
|
360
361
|
for (const capability of GODOT_CAPABILITIES) {
|
|
361
362
|
if (!(capability.key in options)) continue;
|
|
362
|
-
if (`${options[capability.key]}`.toLocaleLowerCase()
|
|
363
|
+
if (`${options[capability.key]}`.toLocaleLowerCase() === "true") capabilities.push(capability.type);
|
|
363
364
|
}
|
|
364
365
|
return capabilities;
|
|
365
366
|
}
|
|
@@ -415,7 +416,7 @@ function getGodotExportPresets(platform) {
|
|
|
415
416
|
if (isFound) {
|
|
416
417
|
const exportPresetsContent = fs__default.readFileSync(exportPresetsPath, "utf8");
|
|
417
418
|
const exportPresetsIni = parse(exportPresetsContent);
|
|
418
|
-
const presetIndexes = Object.keys(exportPresetsIni.preset);
|
|
419
|
+
const presetIndexes = Object.keys(exportPresetsIni.preset || {});
|
|
419
420
|
const presetIndex = presetIndexes.find((index) => {
|
|
420
421
|
const current = exportPresetsIni.preset[index];
|
|
421
422
|
return `${current.name}`.toUpperCase() === platform;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import axios from 'axios';
|
|
2
|
-
import { o as API_URL, p as getAuthedHeaders } from './index-
|
|
2
|
+
import { o as API_URL, p as getAuthedHeaders } from './index-pj8JVg5X.js';
|
|
3
3
|
|
|
4
4
|
async function getNewUploadTicket(projectId = null) {
|
|
5
5
|
const url = projectId ? `${API_URL}/projects/${projectId}/credentials/url` : `${API_URL}/credentials/url`;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useQuery } from '@tanstack/react-query';
|
|
2
2
|
import axios from 'axios';
|
|
3
|
-
import { o as API_URL, p as getAuthedHeaders } from './index-
|
|
3
|
+
import { o as API_URL, p as getAuthedHeaders } from './index-pj8JVg5X.js';
|
|
4
4
|
|
|
5
5
|
const cacheKeys = {
|
|
6
6
|
androidKeyTestResult: (props) => ["androidKeyTestResult", ...Object.values(props)],
|