shipthis 0.0.41 → 0.1.1
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 -17
- package/dist/{AppleBundleIdDetails-n1_U8IqK.js → AppleBundleIdDetails-BF-Pm1Ia.js} +19 -7
- package/dist/Command-BrfJSeOC.js +1077 -0
- package/dist/CommandGame-D9wl8hfX.js +8 -0
- package/dist/{NextSteps-CK9zHOCt.js → NextSteps-DKcjSHZ3.js} +1 -1
- package/dist/ProjectCredentialsTable-BVvkIPjN.js +36 -0
- package/dist/{StatusTable-CxuX_R1D.js → StatusTable-BzsNF75L.js} +2 -7
- package/dist/{UserCredentialsTable-A_YlFeJX.js → UserCredentialsTable-DUFQqHVt.js} +11 -5
- package/dist/{baseAppleCommand-DK5-Cvg4.js → baseAppleCommand-BSJhK8GA.js} +1 -1
- package/dist/baseGameAndroidCommand-CPAtReqy.js +43 -0
- package/dist/commands/apple/apiKey/create.js +24 -10
- package/dist/commands/apple/apiKey/export.js +23 -9
- package/dist/commands/apple/apiKey/import.js +23 -9
- package/dist/commands/apple/apiKey/status.js +25 -13
- package/dist/commands/apple/certificate/create.js +25 -11
- package/dist/commands/apple/certificate/export.js +23 -9
- package/dist/commands/apple/certificate/import.js +23 -9
- package/dist/commands/apple/certificate/status.js +26 -14
- package/dist/commands/apple/login.js +9 -3
- package/dist/commands/apple/status.js +27 -13
- package/dist/commands/dashboard.js +11 -5
- package/dist/commands/game/android/apiKey/connect.js +73 -0
- package/dist/commands/game/android/apiKey/create.js +70 -0
- package/dist/commands/game/android/apiKey/export.js +83 -0
- package/dist/commands/game/android/apiKey/import.js +92 -0
- package/dist/commands/game/android/apiKey/invite.js +81 -0
- package/dist/commands/game/android/apiKey/status.js +86 -0
- package/dist/commands/game/android/keyStore/create.js +67 -0
- package/dist/commands/game/android/keyStore/export.js +82 -0
- package/dist/commands/game/android/keyStore/import.js +91 -0
- package/dist/commands/game/android/keyStore/status.js +69 -0
- package/dist/commands/game/android/status.js +84 -0
- package/dist/commands/game/android/wizard.js +53 -0
- package/dist/commands/game/build/download.js +23 -9
- package/dist/commands/game/build/list.js +25 -14
- package/dist/commands/game/create.js +18 -10
- package/dist/commands/game/details.js +28 -19
- package/dist/commands/game/export.js +11 -5
- package/dist/commands/game/ios/app/addTester.js +25 -12
- package/dist/commands/game/ios/app/create.js +26 -13
- package/dist/commands/game/ios/app/status.js +27 -13
- package/dist/commands/game/ios/app/sync.js +23 -9
- package/dist/commands/game/ios/profile/create.js +22 -8
- package/dist/commands/game/ios/profile/export.js +23 -9
- package/dist/commands/game/ios/profile/import.js +23 -9
- package/dist/commands/game/ios/profile/status.js +26 -71
- package/dist/commands/game/ios/status.js +28 -15
- package/dist/commands/game/ios/wizard.js +125 -0
- package/dist/commands/game/job/list.js +26 -14
- package/dist/commands/game/job/status.js +26 -71
- package/dist/commands/game/list.js +26 -12
- package/dist/commands/game/ship.js +7 -4
- package/dist/commands/game/status.js +63 -25
- package/dist/commands/game/wizard.js +41 -99
- package/dist/commands/internal/fastlane.js +74 -0
- package/dist/commands/internal/readme.js +1452 -0
- package/dist/commands/login.js +9 -3
- package/dist/commands/status.js +23 -10
- package/dist/{export-C16psune.js → export-B0FJT0EU.js} +1 -1
- package/dist/{import-hte2Jy0K.js → import-CLDJ2iPu.js} +1 -1
- package/dist/{baseGameCommand-B3NbuvDu.js → index-CF0fIsx2.js} +112 -37
- package/dist/index-CFHmtzfq.js +24 -0
- package/dist/{index-ZHJdUrwJ.js → index-Df8uXQ4s.js} +14 -3
- package/dist/{upload-DADrkIUB.js → upload-C5L82Yq0.js} +1 -1
- package/dist/useAndroidServiceAccountTestResult-BnxNuoG3.js +52 -0
- package/dist/{useAppleApp-Cr3VcGVs.js → useAppleApp-IXRdsK5w.js} +1 -1
- package/dist/{useAppleBundleId-BxtyGpHy.js → useAppleBundleId-DYC5ISKT.js} +1 -1
- package/docs/game/android/apiKey/connect.md +27 -0
- package/docs/game/android/apiKey/create.md +25 -0
- package/docs/game/android/apiKey/export.md +25 -0
- package/docs/game/android/apiKey/import.md +25 -0
- package/docs/game/android/apiKey/invite.md +27 -0
- package/docs/game/android/apiKey/status.md +23 -0
- package/docs/game/android/apiKey.md +165 -0
- package/docs/game/android/keyStore/create.md +24 -0
- package/docs/game/android/keyStore/export.md +25 -0
- package/docs/game/android/keyStore/import.md +25 -0
- package/docs/game/android/keyStore/status.md +23 -0
- package/docs/game/android/keyStore.md +108 -0
- package/docs/game/android/status.md +23 -0
- package/docs/game/android/wizard.md +28 -0
- package/docs/game/android.md +339 -0
- package/docs/game/create.md +12 -7
- package/docs/game/ios/wizard.md +21 -0
- package/docs/game/wizard.md +12 -18
- package/oclif.manifest.json +914 -161
- package/package.json +54 -19
- package/dist/App-BfoOFeZ-.js +0 -21
- package/dist/RunWithSpinner-BVXNWGD3.js +0 -27
- package/dist/Title-BCQtayg6.js +0 -6
- package/dist/cacheKeys-CShA-ZjE.js +0 -9
- package/dist/useBuilds-JHqMwpWS.js +0 -41
- package/dist/useJob-Bc9fdiyP.js +0 -34
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipthis",
|
|
3
|
-
"description": "
|
|
4
|
-
"version": "0.
|
|
3
|
+
"description": "ShipThis manages building and uploading your Godot games to the App Store and Google Play.",
|
|
4
|
+
"version": "0.1.1",
|
|
5
5
|
"author": "Hello Invent Ltd",
|
|
6
6
|
"bin": {
|
|
7
7
|
"shipthis": "./bin/run.js"
|
|
@@ -10,11 +10,14 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"@expo/apple-utils": "2.0.3",
|
|
12
12
|
"@expo/json-file": "^8.3.3",
|
|
13
|
+
"@inkjs/ui": "^2.0.0",
|
|
13
14
|
"@oclif/core": "^4",
|
|
14
15
|
"@oclif/plugin-help": "^6",
|
|
15
16
|
"@tanstack/react-query": "^5.56.2",
|
|
17
|
+
"@types/marked-terminal": "^6.1.1",
|
|
16
18
|
"@types/uuid": "^10.0.0",
|
|
17
19
|
"axios": "^1.7.7",
|
|
20
|
+
"crypto-js": "^4.2.0",
|
|
18
21
|
"deepmerge": "^4.3.1",
|
|
19
22
|
"fast-glob": "^3.3.2",
|
|
20
23
|
"fs-extra": "^11.2.0",
|
|
@@ -24,9 +27,12 @@
|
|
|
24
27
|
"isomorphic-git": "^1.27.1",
|
|
25
28
|
"jsonwebtoken": "^9.0.2",
|
|
26
29
|
"luxon": "^3.5.0",
|
|
30
|
+
"marked": "^9.1.6",
|
|
31
|
+
"marked-terminal": "^6.2.0",
|
|
27
32
|
"node-forge": "^1.3.1",
|
|
28
33
|
"open": "^10.1.0",
|
|
29
34
|
"prompts": "^2.4.2",
|
|
35
|
+
"qrcode": "^1.5.4",
|
|
30
36
|
"react": "^18.3.1",
|
|
31
37
|
"readline-sync": "^1.4.10",
|
|
32
38
|
"socket.io-client": "^4.7.5",
|
|
@@ -41,6 +47,7 @@
|
|
|
41
47
|
"@oclif/prettier-config": "^0.2.1",
|
|
42
48
|
"@oclif/test": "^4",
|
|
43
49
|
"@types/chai": "^4",
|
|
50
|
+
"@types/crypto-js": "^4.2.2",
|
|
44
51
|
"@types/ejs": "^3.1.5",
|
|
45
52
|
"@types/fs-extra": "^11.0.4",
|
|
46
53
|
"@types/ini": "^4.1.1",
|
|
@@ -50,6 +57,7 @@
|
|
|
50
57
|
"@types/node": "^18",
|
|
51
58
|
"@types/node-forge": "^1.3.11",
|
|
52
59
|
"@types/prompts": "^2.4.9",
|
|
60
|
+
"@types/qrcode": "^1.5.5",
|
|
53
61
|
"@types/react": "^18.3.5",
|
|
54
62
|
"@types/readline-sync": "^1.4.8",
|
|
55
63
|
"@types/tough-cookie": "^4.0.5",
|
|
@@ -78,7 +86,7 @@
|
|
|
78
86
|
"/docs",
|
|
79
87
|
"/oclif.manifest.json"
|
|
80
88
|
],
|
|
81
|
-
"homepage": "https://
|
|
89
|
+
"homepage": "https://shipth.is",
|
|
82
90
|
"keywords": [
|
|
83
91
|
"cli",
|
|
84
92
|
"godot",
|
|
@@ -93,35 +101,50 @@
|
|
|
93
101
|
"exports": [
|
|
94
102
|
"./dist/utils/help.js",
|
|
95
103
|
"./dist/commands/apple/apiKey/export.js",
|
|
96
|
-
"./dist/commands/apple/apiKey/status.js",
|
|
97
104
|
"./dist/commands/apple/apiKey/create.js",
|
|
105
|
+
"./dist/commands/apple/apiKey/status.js",
|
|
98
106
|
"./dist/commands/apple/apiKey/import.js",
|
|
99
107
|
"./dist/commands/apple/status.js",
|
|
100
|
-
"./dist/commands/apple/login.js",
|
|
101
108
|
"./dist/commands/apple/certificate/export.js",
|
|
102
|
-
"./dist/commands/apple/certificate/status.js",
|
|
103
109
|
"./dist/commands/apple/certificate/create.js",
|
|
110
|
+
"./dist/commands/apple/certificate/status.js",
|
|
104
111
|
"./dist/commands/apple/certificate/import.js",
|
|
105
|
-
"./dist/commands/
|
|
106
|
-
"./dist/commands/game/
|
|
112
|
+
"./dist/commands/apple/login.js",
|
|
113
|
+
"./dist/commands/game/list.js",
|
|
114
|
+
"./dist/commands/game/ios/app/create.js",
|
|
115
|
+
"./dist/commands/game/ios/app/status.js",
|
|
107
116
|
"./dist/commands/game/ios/app/sync.js",
|
|
108
117
|
"./dist/commands/game/ios/app/addTester.js",
|
|
109
|
-
"./dist/commands/game/ios/
|
|
110
|
-
"./dist/commands/game/ios/
|
|
118
|
+
"./dist/commands/game/ios/wizard.js",
|
|
119
|
+
"./dist/commands/game/ios/status.js",
|
|
111
120
|
"./dist/commands/game/ios/profile/export.js",
|
|
112
|
-
"./dist/commands/game/ios/profile/status.js",
|
|
113
121
|
"./dist/commands/game/ios/profile/create.js",
|
|
122
|
+
"./dist/commands/game/ios/profile/status.js",
|
|
114
123
|
"./dist/commands/game/ios/profile/import.js",
|
|
115
|
-
"./dist/commands/game/
|
|
124
|
+
"./dist/commands/game/create.js",
|
|
125
|
+
"./dist/commands/game/ship.js",
|
|
116
126
|
"./dist/commands/game/wizard.js",
|
|
117
|
-
"./dist/commands/game/list.js",
|
|
127
|
+
"./dist/commands/game/job/list.js",
|
|
128
|
+
"./dist/commands/game/job/status.js",
|
|
129
|
+
"./dist/commands/game/status.js",
|
|
118
130
|
"./dist/commands/game/details.js",
|
|
119
|
-
"./dist/commands/game/create.js",
|
|
120
131
|
"./dist/commands/game/build/list.js",
|
|
121
132
|
"./dist/commands/game/build/download.js",
|
|
122
|
-
"./dist/commands/game/
|
|
123
|
-
"./dist/commands/game/
|
|
124
|
-
"./dist/commands/game/
|
|
133
|
+
"./dist/commands/game/android/keyStore/export.js",
|
|
134
|
+
"./dist/commands/game/android/keyStore/create.js",
|
|
135
|
+
"./dist/commands/game/android/keyStore/status.js",
|
|
136
|
+
"./dist/commands/game/android/keyStore/import.js",
|
|
137
|
+
"./dist/commands/game/android/apiKey/export.js",
|
|
138
|
+
"./dist/commands/game/android/apiKey/create.js",
|
|
139
|
+
"./dist/commands/game/android/apiKey/status.js",
|
|
140
|
+
"./dist/commands/game/android/apiKey/import.js",
|
|
141
|
+
"./dist/commands/game/android/apiKey/invite.js",
|
|
142
|
+
"./dist/commands/game/android/apiKey/connect.js",
|
|
143
|
+
"./dist/commands/game/android/status.js",
|
|
144
|
+
"./dist/commands/game/android/wizard.js",
|
|
145
|
+
"./dist/commands/game/export.js",
|
|
146
|
+
"./dist/commands/internal/readme.js",
|
|
147
|
+
"./dist/commands/internal/fastlane.js",
|
|
125
148
|
"./dist/commands/status.js",
|
|
126
149
|
"./dist/commands/dashboard.js",
|
|
127
150
|
"./dist/commands/login.js"
|
|
@@ -152,6 +175,15 @@
|
|
|
152
175
|
"game": {
|
|
153
176
|
"description": "Commands related to configuring a specific game"
|
|
154
177
|
},
|
|
178
|
+
"game:android": {
|
|
179
|
+
"description": "Commands related to the Android platform for a specific game"
|
|
180
|
+
},
|
|
181
|
+
"game:android:apiKey": {
|
|
182
|
+
"description": "Commands related to they Android Service Account API Key for a specific game"
|
|
183
|
+
},
|
|
184
|
+
"game:android:keyStore": {
|
|
185
|
+
"description": "Commands related to the Android KeyStore for a specific game"
|
|
186
|
+
},
|
|
155
187
|
"game:build": {
|
|
156
188
|
"description": "Commands related to builds for a specific game"
|
|
157
189
|
},
|
|
@@ -177,9 +209,12 @@
|
|
|
177
209
|
"lint": "eslint . --ext .ts",
|
|
178
210
|
"postpack": "shx rm -f oclif.manifest.json",
|
|
179
211
|
"posttest": "npm run lint",
|
|
180
|
-
"prepack": "npm run readme && oclif manifest",
|
|
212
|
+
"prepack": "npm run readme && oclif manifest && npm shrinkwrap",
|
|
181
213
|
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
182
214
|
"readme": "bin/dev.js internal readme docs/ -d 2 --notDryRun # does not overwrite existing files"
|
|
183
215
|
},
|
|
184
|
-
"types": "dist/index.d.ts"
|
|
216
|
+
"types": "dist/index.d.ts",
|
|
217
|
+
"overrides": {
|
|
218
|
+
"cli-spinners": "2.9.2"
|
|
219
|
+
}
|
|
185
220
|
}
|
package/dist/App-BfoOFeZ-.js
DELETED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import { jsx } from 'react/jsx-runtime';
|
|
2
|
-
import { Box } from 'ink';
|
|
3
|
-
import { QueryClientProvider } from '@tanstack/react-query';
|
|
4
|
-
import { Q as queryClient } from './baseGameCommand-B3NbuvDu.js';
|
|
5
|
-
import 'luxon';
|
|
6
|
-
import '@expo/apple-utils/build/index.js';
|
|
7
|
-
import 'crypto';
|
|
8
|
-
import 'fs';
|
|
9
|
-
import 'readline-sync';
|
|
10
|
-
import 'node:readline';
|
|
11
|
-
import 'react';
|
|
12
|
-
import 'axios';
|
|
13
|
-
import 'socket.io-client';
|
|
14
|
-
import 'isomorphic-git';
|
|
15
|
-
|
|
16
|
-
const App = ({ children }) => {
|
|
17
|
-
const width = Math.min(160, process.stdout.columns || 80);
|
|
18
|
-
return /* @__PURE__ */ jsx(QueryClientProvider, { client: queryClient, children: /* @__PURE__ */ jsx(Box, { width, flexDirection: "column", children }) });
|
|
19
|
-
};
|
|
20
|
-
|
|
21
|
-
export { App as A };
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
-
import React from 'react';
|
|
3
|
-
import { Box, Text } from 'ink';
|
|
4
|
-
import Spinner from 'ink-spinner';
|
|
5
|
-
|
|
6
|
-
const RunWithSpinner = ({
|
|
7
|
-
executeMethod,
|
|
8
|
-
msgInProgress,
|
|
9
|
-
msgComplete,
|
|
10
|
-
onComplete,
|
|
11
|
-
spinnerType
|
|
12
|
-
}) => {
|
|
13
|
-
const [isInProgress, setIsInProgress] = React.useState(true);
|
|
14
|
-
React.useEffect(() => {
|
|
15
|
-
setIsInProgress(true);
|
|
16
|
-
executeMethod().then(() => {
|
|
17
|
-
setIsInProgress(false);
|
|
18
|
-
return onComplete();
|
|
19
|
-
});
|
|
20
|
-
}, []);
|
|
21
|
-
return /* @__PURE__ */ jsxs(Box, { children: [
|
|
22
|
-
/* @__PURE__ */ jsx(Text, { children: isInProgress ? msgInProgress : msgComplete }),
|
|
23
|
-
isInProgress && /* @__PURE__ */ jsx(Spinner, { type: spinnerType })
|
|
24
|
-
] });
|
|
25
|
-
};
|
|
26
|
-
|
|
27
|
-
export { RunWithSpinner as R };
|
package/dist/Title-BCQtayg6.js
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
const cacheKeys = {
|
|
2
|
-
job: (props) => ["job", ...Object.values(props)],
|
|
3
|
-
jobLogs: (props) => ["jobLogs", ...Object.values(props)],
|
|
4
|
-
userCredentials: (props) => ["userCredentials", ...Object.values(props)],
|
|
5
|
-
projectCredentials: (props) => ["projectCredentials", ...Object.values(props)],
|
|
6
|
-
builds: (props) => ["builds", ...Object.values(props)]
|
|
7
|
-
};
|
|
8
|
-
|
|
9
|
-
export { cacheKeys as c };
|
|
@@ -1,41 +0,0 @@
|
|
|
1
|
-
import axios from 'axios';
|
|
2
|
-
import { useQuery } from '@tanstack/react-query';
|
|
3
|
-
import { P as Platform, H as getShortDateTime, o as getAuthedHeaders, p as API_URL, I as castArrayObjectDates } from './baseGameCommand-B3NbuvDu.js';
|
|
4
|
-
import { c as cacheKeys } from './cacheKeys-CShA-ZjE.js';
|
|
5
|
-
import { g as getShortUUID, c as getPlatformName } from './index-ZHJdUrwJ.js';
|
|
6
|
-
import { g as getJobDetailsSummary } from './useJob-Bc9fdiyP.js';
|
|
7
|
-
|
|
8
|
-
async function queryBuilds({ projectId, ...pageAndSortParams }) {
|
|
9
|
-
try {
|
|
10
|
-
const headers = getAuthedHeaders();
|
|
11
|
-
const url = `${API_URL}/projects/${projectId}/builds`;
|
|
12
|
-
const response = await axios.get(url, { headers, params: pageAndSortParams });
|
|
13
|
-
return {
|
|
14
|
-
...response.data,
|
|
15
|
-
data: castArrayObjectDates(response.data.data)
|
|
16
|
-
};
|
|
17
|
-
} catch (error) {
|
|
18
|
-
console.warn("queryBuilds Error", error);
|
|
19
|
-
throw error;
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
function getBuildSummary(build) {
|
|
23
|
-
const filename = build.platform == Platform.IOS ? "output.ipa" : "output.apk";
|
|
24
|
-
return {
|
|
25
|
-
id: getShortUUID(build.id),
|
|
26
|
-
...getJobDetailsSummary(build.jobDetails),
|
|
27
|
-
platform: getPlatformName(build.platform),
|
|
28
|
-
jobId: getShortUUID(build.jobId),
|
|
29
|
-
createdAt: getShortDateTime(build.createdAt),
|
|
30
|
-
cmd: `$ shipthis game build download ${getShortUUID(build.id)} ${filename}`
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
const useBuilds = (props) => {
|
|
34
|
-
const queryResult = useQuery({
|
|
35
|
-
queryKey: cacheKeys.builds(props),
|
|
36
|
-
queryFn: async () => queryBuilds(props)
|
|
37
|
-
});
|
|
38
|
-
return queryResult;
|
|
39
|
-
};
|
|
40
|
-
|
|
41
|
-
export { getBuildSummary as g, useBuilds as u };
|
package/dist/useJob-Bc9fdiyP.js
DELETED
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { useQuery } from '@tanstack/react-query';
|
|
2
|
-
import { c as cacheKeys } from './cacheKeys-CShA-ZjE.js';
|
|
3
|
-
import { K as JobStatus, H as getShortDateTime, L as getShortTimeDelta, M as getJob } from './baseGameCommand-B3NbuvDu.js';
|
|
4
|
-
import { g as getShortUUID, c as getPlatformName } from './index-ZHJdUrwJ.js';
|
|
5
|
-
|
|
6
|
-
function getJobDetailsSummary(jobDetails) {
|
|
7
|
-
const semanticVersion = jobDetails?.semanticVersion || "N/A";
|
|
8
|
-
const buildNumber = jobDetails?.buildNumber || "N/A";
|
|
9
|
-
const gitCommit = jobDetails?.gitCommitHash ? getShortUUID(jobDetails?.gitCommitHash) : "N/A";
|
|
10
|
-
const gitBranch = jobDetails?.gitBranch || "N/A";
|
|
11
|
-
return {
|
|
12
|
-
version: `${semanticVersion} (${buildNumber})`,
|
|
13
|
-
gitInfo: `${gitCommit} (${gitBranch})`
|
|
14
|
-
};
|
|
15
|
-
}
|
|
16
|
-
function getJobSummary(job, timeNow) {
|
|
17
|
-
const inProgress = ![JobStatus.COMPLETED, JobStatus.FAILED].includes(job.status);
|
|
18
|
-
return {
|
|
19
|
-
id: getShortUUID(job.id),
|
|
20
|
-
...getJobDetailsSummary(job.details),
|
|
21
|
-
platform: getPlatformName(job.type),
|
|
22
|
-
status: job.status,
|
|
23
|
-
createdAt: getShortDateTime(job.createdAt),
|
|
24
|
-
runtime: getShortTimeDelta(job.createdAt, inProgress ? timeNow : job.updatedAt)
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
const useJob = (props) => {
|
|
28
|
-
return useQuery({
|
|
29
|
-
queryKey: cacheKeys.job(props),
|
|
30
|
-
queryFn: () => getJob(props.jobId, props.projectId)
|
|
31
|
-
});
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export { getJobSummary as a, getJobDetailsSummary as g, useJob as u };
|