shipthis 0.1.35 → 0.1.36

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.
Files changed (88) hide show
  1. package/README.md +223 -80
  2. package/assets/markdown/agreement-update.md.ejs +12 -0
  3. package/dist/{AppleBundleIdDetails-N_j1wv6f.js → AppleBundleIdDetails-pEVOUXTQ.js} +3 -5
  4. package/dist/{Command-DN1j3tjt.js → Command-DhAVAdiI.js} +1 -2
  5. package/dist/{CommandGame-D2NqytWc.js → CommandGame-C-oV-hb4.js} +2 -2
  6. package/dist/{Create-BRdv5jXQ.js → Create-Dg9ZlwEd.js} +1 -4
  7. package/dist/{GameStatus-joyHPy0f.js → GameStatus-Dm9TqFfW.js} +1 -4
  8. package/dist/{Import-BNMHsJoM.js → Import-BFNNkN-I.js} +2 -5
  9. package/dist/{JobLogTail-D35FO5v-.js → JobLogTail-RTNIiAUk.js} +2 -5
  10. package/dist/{JobProgress-D-9KESaA.js → JobProgress-dFWcT0CQ.js} +16 -18
  11. package/dist/{JobStatusTable-DIJ_h-gi.js → JobStatusTable-BlvMuWF7.js} +2 -4
  12. package/dist/{ProjectCredentialsTable-BMKgv99h.js → ProjectCredentialsTable-CMBnYLou.js} +2 -2
  13. package/dist/{UserCredentialsTable-CUrTDzTK.js → UserCredentialsTable-oxE3mDmE.js} +1 -3
  14. package/dist/{baseAppleCommand-Cs9a52e5.js → baseAppleCommand-cnLvBz95.js} +1 -1
  15. package/dist/{baseGameAndroidCommand-BCB1SMCf.js → baseGameAndroidCommand-DUDYisYm.js} +1 -2
  16. package/dist/commands/apiKey/create.js +2 -6
  17. package/dist/commands/apiKey/list.js +2 -6
  18. package/dist/commands/apiKey/revoke.js +2 -6
  19. package/dist/commands/apple/apiKey/create.js +5 -9
  20. package/dist/commands/apple/apiKey/export.js +4 -8
  21. package/dist/commands/apple/apiKey/import.js +4 -8
  22. package/dist/commands/apple/apiKey/status.js +3 -7
  23. package/dist/commands/apple/certificate/create.js +5 -9
  24. package/dist/commands/apple/certificate/export.js +4 -8
  25. package/dist/commands/apple/certificate/import.js +4 -8
  26. package/dist/commands/apple/certificate/status.js +3 -7
  27. package/dist/commands/apple/login.js +12 -2
  28. package/dist/commands/apple/status.js +3 -7
  29. package/dist/commands/dashboard.js +11 -1
  30. package/dist/commands/game/android/apiKey/connect.js +7 -11
  31. package/dist/commands/game/android/apiKey/create.js +9 -13
  32. package/dist/commands/game/android/apiKey/export.js +5 -9
  33. package/dist/commands/game/android/apiKey/import.js +5 -9
  34. package/dist/commands/game/android/apiKey/invite.js +13 -4
  35. package/dist/commands/game/android/apiKey/policy.js +2 -6
  36. package/dist/commands/game/android/apiKey/status.js +5 -9
  37. package/dist/commands/game/android/keyStore/create.js +6 -10
  38. package/dist/commands/game/android/keyStore/export.js +4 -8
  39. package/dist/commands/game/android/keyStore/import.js +7 -11
  40. package/dist/commands/game/android/keyStore/status.js +6 -10
  41. package/dist/commands/game/android/status.js +12 -1
  42. package/dist/commands/game/build/download.js +2 -6
  43. package/dist/commands/game/build/list.js +3 -7
  44. package/dist/commands/game/create.js +12 -2
  45. package/dist/commands/game/details.js +3 -7
  46. package/dist/commands/game/export.js +12 -1
  47. package/dist/commands/game/ios/app/addTester.js +3 -7
  48. package/dist/commands/game/ios/app/create.js +2 -6
  49. package/dist/commands/game/ios/app/status.js +5 -9
  50. package/dist/commands/game/ios/app/sync.js +3 -7
  51. package/dist/commands/game/ios/profile/create.js +5 -9
  52. package/dist/commands/game/ios/profile/export.js +4 -8
  53. package/dist/commands/game/ios/profile/import.js +4 -8
  54. package/dist/commands/game/ios/profile/status.js +4 -8
  55. package/dist/commands/game/ios/status.js +9 -13
  56. package/dist/commands/game/ios/wizard.js +2 -6
  57. package/dist/commands/game/job/list.js +2 -6
  58. package/dist/commands/game/job/status.js +7 -11
  59. package/dist/commands/game/list.js +2 -6
  60. package/dist/commands/game/ship.js +16 -14
  61. package/dist/commands/game/status.js +6 -10
  62. package/dist/commands/game/wizard.js +13 -17
  63. package/dist/commands/internal/fastlane.js +12 -1
  64. package/dist/commands/internal/readme.js +12 -4
  65. package/dist/commands/login.js +26 -4
  66. package/dist/commands/status.js +6 -8
  67. package/dist/{export-DFCZKNQk.js → export-Bd552LBe.js} +1 -1
  68. package/dist/{import-BpGyif-m.js → import-D-EL9sQJ.js} +1 -1
  69. package/dist/{index-izrACZbC.js → index-1H48f5j2.js} +1 -1
  70. package/dist/index-BtPf4vzY.js +1903 -0
  71. package/dist/{index-DlE_SPt3.js → index-DCN43FhY.js} +3 -5
  72. package/dist/{index-BTXEUd8W.js → index-DwATmUTQ.js} +4 -6
  73. package/dist/{upload-D19OQsbn.js → upload-Dm38PqhN.js} +1 -1
  74. package/dist/{useAppleApp-BZc_cNa-.js → useAppleApp-BKPntZPm.js} +1 -1
  75. package/dist/{useAppleBundleId-DvMXAvWD.js → useAppleBundleId-DvQKEEy4.js} +1 -1
  76. package/dist/{useGoogleStatus-Cx_QIsXa.js → useGoogleStatus-D9jjGa--.js} +1 -2
  77. package/dist/{useProjectCredentials-DxdwJCfU.js → useProjectCredentials-BjsS28hP.js} +1 -3
  78. package/dist/{useWebSocket-cM5yOcDv.js → useWebSocket-CIeyHqxG.js} +1 -1
  79. package/docs/assets/st.png +0 -0
  80. package/docs/game/ship.md +4 -4
  81. package/docs/login.md +6 -2
  82. package/docs/status.md +1 -1
  83. package/package.json +8 -2
  84. package/dist/ejs-DirFZbza.js +0 -716
  85. package/dist/index-BwnzoldS.js +0 -784
  86. package/dist/index-CJWMt1s-.js +0 -153
  87. package/dist/index-hoHfGrjg.js +0 -221
  88. package/dist/useAndroidServiceAccountTestResult-CwKeW0ED.js +0 -50
@@ -1,7 +1,7 @@
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, ae 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-BwnzoldS.js';
4
+ import { Y as queryClient, a1 as cacheKeys, t as getAuthedHeaders, s as API_URL, X as castArrayObjectDates, S as CommandContext, R as GameContext, aC as updateProject, x as getGodotVersion, w as GameEngine, y as createProject, z as DEFAULT_SHIPPED_FILES_GLOBS, E as DEFAULT_IGNORED_FILES_GLOBS, am as useBuilds, P as Platform, L as JobStatus, au as Markdown, W as WEB_URL, b as getShortUUID, at as useSafeInput, O as getProject, C as CredentialsType, a2 as getGoogleStatus, aD as queryBuilds, a6 as fetchKeyTestResult, a8 as KeyTestStatus, a9 as KeyTestError, _ as GameProvider, aE as CreateGooglePlayGame, B as BaseAuthenticatedCommand, m as isCWDGodotGame } from '../../index-BtPf4vzY.js';
5
5
  import { Box, Text } from 'ink';
6
6
  import Spinner from 'ink-spinner';
7
7
  import 'node:crypto';
@@ -23,35 +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-DlE_SPt3.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-hoHfGrjg.js';
26
+ import { C as ConnectGoogle } from '../../index-DCN43FhY.js';
28
27
  import { TextInput, Alert } from '@inkjs/ui';
29
- import '../../ejs-DirFZbza.js';
30
28
  import 'marked';
31
29
  import 'marked-terminal';
32
30
  import 'qrcode';
33
- import { g as getShortUUID } from '../../index-CJWMt1s-.js';
34
- import { J as JobLogTail } from '../../JobLogTail-D35FO5v-.js';
35
- import { c as cacheKeys, f as fetchKeyTestResult, K as KeyTestStatus, a as KeyTestError } from '../../useAndroidServiceAccountTestResult-CwKeW0ED.js';
36
- import { u as useShip, J as JobProgress } from '../../JobProgress-D-9KESaA.js';
37
- import { C as CreateServiceAccountKey } from '../../index-BTXEUd8W.js';
38
- import { C as CreateKeystore } from '../../Create-BRdv5jXQ.js';
39
- import { I as ImportKeystore } from '../../Import-BNMHsJoM.js';
40
- import { a as getProjectCredentials } from '../../index-izrACZbC.js';
31
+ import { J as JobLogTail } from '../../JobLogTail-RTNIiAUk.js';
32
+ import { u as useShip, J as JobProgress } from '../../JobProgress-dFWcT0CQ.js';
33
+ import { C as CreateServiceAccountKey } from '../../index-DwATmUTQ.js';
34
+ import { C as CreateKeystore } from '../../Create-Dg9ZlwEd.js';
35
+ import { I as ImportKeystore } from '../../Import-BFNNkN-I.js';
36
+ import { a as getProjectCredentials } from '../../index-1H48f5j2.js';
41
37
  import { T as Title } from '../../Title-BCQtayg6.js';
42
- import { C as Command } from '../../Command-DN1j3tjt.js';
38
+ import { C as Command } from '../../Command-DhAVAdiI.js';
43
39
  import '@expo/apple-utils/build/index.js';
44
40
  import 'deepmerge';
45
41
  import 'ini';
46
- import '../../useGoogleStatus-Cx_QIsXa.js';
47
- import '../../useWebSocket-cM5yOcDv.js';
48
42
  import 'fs';
49
43
  import 'path';
44
+ import '../../useGoogleStatus-D9jjGa--.js';
45
+ import '../../useWebSocket-CIeyHqxG.js';
50
46
  import '../../git-BpsfNFZ_.js';
51
47
  import '../../ProgressSpinner-Um6ARKlk.js';
52
- import '../../useProjectCredentials-DxdwJCfU.js';
48
+ import '../../useProjectCredentials-BjsS28hP.js';
53
49
  import '../../RunWithSpinner-DucRnFp6.js';
54
- import '../../import-BpGyif-m.js';
50
+ import '../../import-D-EL9sQJ.js';
55
51
 
56
52
  const useInviteServiceAccount = () => useMutation({
57
53
  async mutationFn({ developerId, projectId }) {
@@ -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 { Y as BaseCommand } from '../../index-BwnzoldS.js';
4
+ import { ac as BaseCommand } from '../../index-BtPf4vzY.js';
5
5
  import 'axios';
6
6
  import 'crypto-js';
7
7
  import 'uuid';
@@ -21,6 +21,17 @@ import 'yazl';
21
21
  import 'socket.io-client';
22
22
  import 'fullscreen-ink';
23
23
  import 'ink';
24
+ import 'react/jsx-runtime';
25
+ import 'ink-spinner';
26
+ import 'string-length';
27
+ import 'strip-ansi';
28
+ import 'open';
29
+ import '@inkjs/ui';
30
+ import 'fs';
31
+ import 'path';
32
+ import 'marked';
33
+ import 'marked-terminal';
34
+ import 'qrcode';
24
35
 
25
36
  function generateFastlaneSession(cookieData) {
26
37
  return cookieData.cookies.map((cookie) => `- !ruby/object:HTTP::Cookie
@@ -1,11 +1,8 @@
1
1
  import fs__default from 'node:fs';
2
2
  import path from 'node:path';
3
3
  import { Args, Flags } from '@oclif/core';
4
- import { e as ejs } from '../../ejs-DirFZbza.js';
5
- import { Y as BaseCommand } from '../../index-BwnzoldS.js';
4
+ import { ac as BaseCommand, ad as ejs } from '../../index-BtPf4vzY.js';
6
5
  import CustomHelp from '../../utils/help.js';
7
- import 'fs';
8
- import 'path';
9
6
  import 'axios';
10
7
  import 'crypto-js';
11
8
  import 'uuid';
@@ -25,6 +22,17 @@ import 'yazl';
25
22
  import 'socket.io-client';
26
23
  import 'fullscreen-ink';
27
24
  import 'ink';
25
+ import 'react/jsx-runtime';
26
+ import 'ink-spinner';
27
+ import 'string-length';
28
+ import 'strip-ansi';
29
+ import 'open';
30
+ import '@inkjs/ui';
31
+ import 'fs';
32
+ import 'path';
33
+ import 'marked';
34
+ import 'marked-terminal';
35
+ import 'qrcode';
28
36
 
29
37
  const ROOT_TOPIC_NAME = "shipthis";
30
38
  const ROOT_TOPIC_DESCRIPTION = "Root topic";
@@ -1,7 +1,6 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import axios from 'axios';
3
- import { W as WEB_URL, Y as BaseCommand, o as API_URL, a1 as setAuthToken, a2 as acceptTerms } from '../index-BwnzoldS.js';
4
- import { a as getInput } from '../index-CJWMt1s-.js';
3
+ import { W as WEB_URL, ac as BaseCommand, ai as acceptTerms, s as API_URL, aj as setAuthToken, e as getInput } from '../index-BtPf4vzY.js';
5
4
  import 'node:fs';
6
5
  import 'crypto-js';
7
6
  import 'uuid';
@@ -22,6 +21,17 @@ import 'yazl';
22
21
  import 'socket.io-client';
23
22
  import 'fullscreen-ink';
24
23
  import 'ink';
24
+ import 'react/jsx-runtime';
25
+ import 'ink-spinner';
26
+ import 'string-length';
27
+ import 'strip-ansi';
28
+ import 'open';
29
+ import '@inkjs/ui';
30
+ import 'fs';
31
+ import 'path';
32
+ import 'marked';
33
+ import 'marked-terminal';
34
+ import 'qrcode';
25
35
 
26
36
  const TERMS_URL = new URL("/terms", WEB_URL).href;
27
37
  const PRIVACY_URL = new URL("/privacy", WEB_URL).href;
@@ -30,18 +40,29 @@ class Login extends BaseCommand {
30
40
  static description = "Authenticate - will create a new account if one does not exist.";
31
41
  static examples = [
32
42
  "<%= config.bin %> <%= command.id %>",
33
- "<%= config.bin %> <%= command.id %> --force --email me@email.nowhere"
43
+ "<%= config.bin %> <%= command.id %> --force --email me@email.nowhere",
44
+ "<%= config.bin %> <%= command.id %> --acceptAgreements"
34
45
  ];
35
46
  static flags = {
36
47
  email: Flags.string({
37
48
  char: "e",
38
49
  description: "Your email address"
39
50
  }),
40
- force: Flags.boolean({ char: "f" })
51
+ force: Flags.boolean({ char: "f" }),
52
+ acceptAgreements: Flags.boolean({
53
+ description: "Accept the current version of the agreements (terms & privacy).",
54
+ default: false
55
+ })
41
56
  };
42
57
  async run() {
43
58
  const { flags } = this;
44
59
  const authConfig = await this.getAuthConfig();
60
+ if (flags.acceptAgreements) {
61
+ if (authConfig.shipThisUser) {
62
+ await acceptTerms();
63
+ return this.log("You have accepted the latest terms and privacy policy.");
64
+ }
65
+ }
45
66
  if (authConfig.shipThisUser && !flags.force) {
46
67
  throw new Error(
47
68
  `You are already logged in as ${authConfig.shipThisUser.email} use --force to login as a different user or remove the auth file`
@@ -65,6 +86,7 @@ class Login extends BaseCommand {
65
86
  const source = `shipthis-cli-${this.config.version}`;
66
87
  const { data: shipThisUser } = await axios.post(`${API_URL}/auth/email/verify`, { email, otp, source });
67
88
  const getAcceptedTermsResponse = async () => {
89
+ if (flags.acceptAgreements) return true;
68
90
  console.log(
69
91
  `Please review the following documents:
70
92
 
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { render } from 'ink';
3
- import { Y as BaseCommand, j as isCWDGodotGame } from '../index-BwnzoldS.js';
3
+ import { ac as BaseCommand, m as isCWDGodotGame } from '../index-BtPf4vzY.js';
4
4
  import 'ink-spinner';
5
5
  import 'node:crypto';
6
6
  import 'node:fs';
@@ -25,22 +25,19 @@ import 'strip-ansi';
25
25
  import { S as StatusTable } from '../StatusTable-DzRWcMr4.js';
26
26
  import 'open';
27
27
  import '@inkjs/ui';
28
- import '../ejs-DirFZbza.js';
29
28
  import 'marked';
30
29
  import 'marked-terminal';
31
30
  import { N as NextSteps } from '../NextSteps-DbJHmscQ.js';
32
31
  import 'qrcode';
33
- import '../index-hoHfGrjg.js';
34
- import { C as Command } from '../Command-DN1j3tjt.js';
32
+ import { C as Command } from '../Command-DhAVAdiI.js';
33
+ import chalk from 'chalk';
35
34
  import '@expo/apple-utils/build/index.js';
36
35
  import 'isomorphic-git';
37
36
  import 'deepmerge';
38
37
  import 'ini';
39
- import '../Title-BCQtayg6.js';
40
38
  import 'fs';
41
39
  import 'path';
42
- import '../index-CJWMt1s-.js';
43
- import '../useAndroidServiceAccountTestResult-CwKeW0ED.js';
40
+ import '../Title-BCQtayg6.js';
44
41
 
45
42
  class Status extends BaseCommand {
46
43
  static args = {};
@@ -50,6 +47,7 @@ class Status extends BaseCommand {
50
47
  async run() {
51
48
  const authConfig = await this.getAuthConfig();
52
49
  const isLoggedIn = Boolean(authConfig.shipThisUser);
50
+ const email = authConfig.shipThisUser?.email;
53
51
  const isGodotGame = isCWDGodotGame();
54
52
  const isShipThisConfigured = await this.hasProjectConfig();
55
53
  const isGitRepo = await isCWDGitRepo();
@@ -60,7 +58,7 @@ class Status extends BaseCommand {
60
58
  const exitCode = steps.length > 0 ? 1 : 0;
61
59
  if (steps.length === 0) steps = ["shipthis game status"];
62
60
  const statuses = {};
63
- statuses["Logged in"] = isLoggedIn;
61
+ statuses[email ? `Logged in ${chalk.bold(email)}` : "Logged in"] = isLoggedIn;
64
62
  statuses["Godot project detected"] = isGodotGame;
65
63
  statuses["ShipThis project configured"] = isShipThisConfigured;
66
64
  statuses["Git repository detected (not required)"] = isGitRepo;
@@ -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-BwnzoldS.js';
3
+ import { s as API_URL, t as getAuthedHeaders } from './index-BtPf4vzY.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-BwnzoldS.js';
3
+ import { s as API_URL, t as getAuthedHeaders } from './index-BtPf4vzY.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`;
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { o as API_URL, p as getAuthedHeaders, I as castArrayObjectDates } from './index-BwnzoldS.js';
2
+ import { s as API_URL, t as getAuthedHeaders, X as castArrayObjectDates } from './index-BtPf4vzY.js';
3
3
  import 'node:fs';
4
4
 
5
5
  async function getUserCredentials(pageSize = 100) {