shipthis 0.1.36 → 0.1.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (98) hide show
  1. package/README.md +17 -9
  2. package/assets/markdown/confirm-delete-android-keystore.md.ejs +22 -0
  3. package/assets/markdown/confirm-delete-android-serviceaccountkey.md.ejs +24 -0
  4. package/assets/markdown/confirm-delete-apple-credential.md.ejs +29 -0
  5. package/dist/{AppleBundleIdDetails-pEVOUXTQ.js → AppleBundleIdDetails-KMzyex1H.js} +3 -3
  6. package/dist/{Command-DhAVAdiI.js → Command-CHh8RDXK.js} +1 -1
  7. package/dist/{CommandGame-C-oV-hb4.js → CommandGame-Rvmsa7b0.js} +2 -2
  8. package/dist/{Create-Dg9ZlwEd.js → Create-DInZ_pw-.js} +1 -1
  9. package/dist/{GameStatus-Dm9TqFfW.js → GameStatus-D7ID10tS.js} +1 -1
  10. package/dist/{Import-BFNNkN-I.js → Import-BmO8EYKj.js} +2 -2
  11. package/dist/{JobLogTail-RTNIiAUk.js → JobLogTail-CYdceTKL.js} +2 -2
  12. package/dist/{JobProgress-dFWcT0CQ.js → JobProgress-DBCYbWrO.js} +2 -2
  13. package/dist/{JobStatusTable-BlvMuWF7.js → JobStatusTable-DhnhY1_i.js} +2 -2
  14. package/dist/{ProjectCredentialsTable-CMBnYLou.js → ProjectCredentialsTable-BDYVYqAq.js} +5 -3
  15. package/dist/{UserCredentialsTable-oxE3mDmE.js → UserCredentialsTable-cDPvjF-F.js} +4 -2
  16. package/dist/{baseAppleCommand-cnLvBz95.js → baseAppleCommand-CQ5dOna7.js} +1 -1
  17. package/dist/{baseGameAndroidCommand-DUDYisYm.js → baseGameAndroidCommand-D4ryZS6A.js} +1 -1
  18. package/dist/commands/apiKey/create.js +3 -2
  19. package/dist/commands/apiKey/list.js +3 -2
  20. package/dist/commands/apiKey/revoke.js +3 -2
  21. package/dist/commands/apple/apiKey/create.js +7 -6
  22. package/dist/commands/apple/apiKey/delete.js +118 -0
  23. package/dist/commands/apple/apiKey/export.js +6 -5
  24. package/dist/commands/apple/apiKey/import.js +6 -5
  25. package/dist/commands/apple/apiKey/status.js +4 -3
  26. package/dist/commands/apple/certificate/create.js +7 -6
  27. package/dist/commands/apple/certificate/delete.js +127 -0
  28. package/dist/commands/apple/certificate/export.js +6 -5
  29. package/dist/commands/apple/certificate/import.js +6 -5
  30. package/dist/commands/apple/certificate/status.js +4 -3
  31. package/dist/commands/apple/login.js +12 -3
  32. package/dist/commands/apple/status.js +3 -2
  33. package/dist/commands/dashboard.js +2 -1
  34. package/dist/commands/game/android/apiKey/connect.js +8 -7
  35. package/dist/commands/game/android/apiKey/create.js +10 -9
  36. package/dist/commands/game/android/apiKey/delete.js +100 -0
  37. package/dist/commands/game/android/apiKey/export.js +6 -5
  38. package/dist/commands/game/android/apiKey/import.js +6 -5
  39. package/dist/commands/game/android/apiKey/invite.js +3 -2
  40. package/dist/commands/game/android/apiKey/policy.js +3 -2
  41. package/dist/commands/game/android/apiKey/status.js +6 -5
  42. package/dist/commands/game/android/keyStore/create.js +7 -6
  43. package/dist/commands/game/android/keyStore/delete.js +100 -0
  44. package/dist/commands/game/android/keyStore/export.js +5 -4
  45. package/dist/commands/game/android/keyStore/import.js +8 -7
  46. package/dist/commands/game/android/keyStore/status.js +5 -4
  47. package/dist/commands/game/android/status.js +2 -1
  48. package/dist/commands/game/build/download.js +3 -2
  49. package/dist/commands/game/build/list.js +4 -3
  50. package/dist/commands/game/create.js +2 -1
  51. package/dist/commands/game/details.js +3 -2
  52. package/dist/commands/game/export.js +2 -1
  53. package/dist/commands/game/ios/app/addTester.js +4 -3
  54. package/dist/commands/game/ios/app/create.js +3 -2
  55. package/dist/commands/game/ios/app/status.js +6 -5
  56. package/dist/commands/game/ios/app/sync.js +4 -3
  57. package/dist/commands/game/ios/profile/create.js +6 -5
  58. package/dist/commands/game/ios/profile/delete.js +123 -0
  59. package/dist/commands/game/ios/profile/export.js +5 -4
  60. package/dist/commands/game/ios/profile/import.js +5 -4
  61. package/dist/commands/game/ios/profile/status.js +8 -47
  62. package/dist/commands/game/ios/status.js +8 -7
  63. package/dist/commands/game/ios/wizard.js +2 -2
  64. package/dist/commands/game/job/list.js +3 -2
  65. package/dist/commands/game/job/status.js +6 -5
  66. package/dist/commands/game/list.js +3 -2
  67. package/dist/commands/game/ship.js +8 -7
  68. package/dist/commands/game/status.js +5 -4
  69. package/dist/commands/game/wizard.js +14 -13
  70. package/dist/commands/internal/fastlane.js +2 -1
  71. package/dist/commands/internal/readme.js +2 -1
  72. package/dist/commands/login.js +2 -1
  73. package/dist/commands/status.js +2 -2
  74. package/dist/{export-Bd552LBe.js → export-DujIwhJw.js} +1 -1
  75. package/dist/{import-D-EL9sQJ.js → import-DGCqCAcC.js} +1 -1
  76. package/dist/{index-DCN43FhY.js → index-9LxGafAo.js} +3 -3
  77. package/dist/{index-DwATmUTQ.js → index-BPh_qt7t.js} +4 -4
  78. package/dist/index-CNsmEDXi.js +48 -0
  79. package/dist/{index-BtPf4vzY.js → index-CmuXyPed.js} +4 -2
  80. package/dist/{upload-Dm38PqhN.js → upload-D4x4yCia.js} +1 -1
  81. package/dist/{useAppleApp-BKPntZPm.js → useAppleApp-taaewPSf.js} +1 -1
  82. package/dist/{useAppleBundleId-DvQKEEy4.js → useAppleBundleId-BeGViMe7.js} +1 -1
  83. package/dist/useAppleProfiles-1TtO0aO6.js +63 -0
  84. package/dist/{useGoogleStatus-D9jjGa--.js → useGoogleStatus-CSsxEvX7.js} +1 -1
  85. package/dist/{useProjectCredentials-BjsS28hP.js → useProjectCredentials-Cm50WMZU.js} +1 -1
  86. package/dist/{useWebSocket-CIeyHqxG.js → useWebSocket-BVfn36be.js} +1 -1
  87. package/docs/apple/apiKey/delete.md +25 -0
  88. package/docs/apple/apiKey.md +26 -0
  89. package/docs/apple/certificate/delete.md +25 -0
  90. package/docs/apple/certificate.md +26 -0
  91. package/docs/game/android/apiKey/delete.md +25 -0
  92. package/docs/game/android/apiKey.md +26 -0
  93. package/docs/game/android/keyStore/delete.md +25 -0
  94. package/docs/game/android/keyStore.md +26 -0
  95. package/docs/game/ios/profile/delete.md +26 -0
  96. package/docs/game/ios/profile.md +27 -0
  97. package/package.json +6 -1
  98. package/dist/index-1H48f5j2.js +0 -24
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import * as fs from 'node:fs';
3
3
  import { Args, Flags } from '@oclif/core';
4
4
  import { render } from 'ink';
5
- import { a as getProjectCredentials } from '../../../../index-1H48f5j2.js';
6
- import { d as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-BtPf4vzY.js';
5
+ import { a as getProjectCredentials } from '../../../../index-CNsmEDXi.js';
6
+ import { h as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-CmuXyPed.js';
7
7
  import 'ink-spinner';
8
8
  import 'node:crypto';
9
9
  import 'node:path';
@@ -29,8 +29,9 @@ import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
31
31
  import { R as RunWithSpinner } from '../../../../RunWithSpinner-DucRnFp6.js';
32
- import { C as Command } from '../../../../Command-DhAVAdiI.js';
33
- import { e as exportCredential } from '../../../../export-Bd552LBe.js';
32
+ import { C as Command } from '../../../../Command-CHh8RDXK.js';
33
+ import { e as exportCredential } from '../../../../export-DujIwhJw.js';
34
+ import 'chalk';
34
35
  import '@expo/apple-utils/build/index.js';
35
36
  import 'deepmerge';
36
37
  import 'ini';
@@ -2,8 +2,8 @@ import { jsx } from 'react/jsx-runtime';
2
2
  import * as fs from 'node:fs';
3
3
  import { Args, Flags } from '@oclif/core';
4
4
  import { render } from 'ink';
5
- import { a as getProjectCredentials } from '../../../../index-1H48f5j2.js';
6
- import { d as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-BtPf4vzY.js';
5
+ import { a as getProjectCredentials } from '../../../../index-CNsmEDXi.js';
6
+ import { h as BaseGameCommand, P as Platform, C as CredentialsType } from '../../../../index-CmuXyPed.js';
7
7
  import 'ink-spinner';
8
8
  import 'node:crypto';
9
9
  import 'node:path';
@@ -29,8 +29,9 @@ import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
31
31
  import { R as RunWithSpinner } from '../../../../RunWithSpinner-DucRnFp6.js';
32
- import { C as Command } from '../../../../Command-DhAVAdiI.js';
33
- import { i as importCredential } from '../../../../import-D-EL9sQJ.js';
32
+ import { C as Command } from '../../../../Command-CHh8RDXK.js';
33
+ import { i as importCredential } from '../../../../import-DGCqCAcC.js';
34
+ import 'chalk';
34
35
  import '@expo/apple-utils/build/index.js';
35
36
  import 'deepmerge';
36
37
  import 'ini';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { Box, Text, render } from 'ink';
4
- import { c as getShortDate, q as Profile, r as ProfileType, C as CredentialsType, P as Platform, d as BaseGameCommand } from '../../../../index-BtPf4vzY.js';
4
+ import { C as CredentialsType, P as Platform, h as BaseGameCommand } from '../../../../index-CmuXyPed.js';
5
5
  import Spinner from 'ink-spinner';
6
6
  import 'node:crypto';
7
7
  import 'node:fs';
@@ -9,10 +9,10 @@ import 'node:path';
9
9
  import 'node:readline';
10
10
  import 'node:url';
11
11
  import 'readline-sync';
12
- import { DateTime } from 'luxon';
12
+ import 'luxon';
13
13
  import 'axios';
14
14
  import 'isomorphic-git';
15
- import { useQuery } from '@tanstack/react-query';
15
+ import '@tanstack/react-query';
16
16
  import 'react';
17
17
  import 'crypto-js';
18
18
  import 'uuid';
@@ -22,64 +22,25 @@ import 'socket.io-client';
22
22
  import 'fullscreen-ink';
23
23
  import 'string-length';
24
24
  import 'strip-ansi';
25
- import { P as ProjectCredentialsTable } from '../../../../ProjectCredentialsTable-CMBnYLou.js';
25
+ import { P as ProjectCredentialsTable } from '../../../../ProjectCredentialsTable-BDYVYqAq.js';
26
26
  import 'open';
27
27
  import '@inkjs/ui';
28
28
  import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
31
- import { u as useProjectCredentials } from '../../../../useProjectCredentials-BjsS28hP.js';
31
+ import { u as useAppleProfiles, c as canAppleProfileBeUsed, g as getAppleProfileSummary } from '../../../../useAppleProfiles-1TtO0aO6.js';
32
+ import { u as useProjectCredentials } from '../../../../useProjectCredentials-Cm50WMZU.js';
32
33
  import { T as Table } from '../../../../Table-FaNgpyeq.js';
33
34
  import { T as Title } from '../../../../Title-BCQtayg6.js';
34
35
  import { N as NextSteps } from '../../../../NextSteps-DbJHmscQ.js';
35
- import { C as Command } from '../../../../Command-DhAVAdiI.js';
36
+ import { C as Command } from '../../../../Command-CHh8RDXK.js';
37
+ import 'chalk';
36
38
  import '@expo/apple-utils/build/index.js';
37
39
  import 'deepmerge';
38
40
  import 'ini';
39
41
  import 'fs';
40
42
  import 'path';
41
43
 
42
- async function queryAppleProfiles({ ctx }) {
43
- const appleProfiles = await Profile.getAsync(ctx, {
44
- query: {
45
- filter: {
46
- profileType: [ProfileType.IOS_APP_STORE]
47
- }
48
- }
49
- });
50
- return appleProfiles;
51
- }
52
- const canAppleProfileBeUsed = (appleProfile, project, projectCredentials) => {
53
- try {
54
- if (!appleProfile.isValid) return false;
55
- const profileBundleId = appleProfile.attributes.bundleId?.attributes.identifier;
56
- const profileCertificateSerialNumber = appleProfile.attributes.certificates?.[0]?.attributes.serialNumber;
57
- if (profileBundleId !== project.details?.iosBundleId) return false;
58
- return projectCredentials.some(
59
- (credential) => credential.isActive && credential.serialNumber === profileCertificateSerialNumber
60
- );
61
- } catch (error) {
62
- console.log(error);
63
- return false;
64
- }
65
- };
66
- function getAppleProfileSummary(appleProfile, project, projectCredentials) {
67
- return {
68
- canBeUsed: canAppleProfileBeUsed(appleProfile, project, projectCredentials),
69
- expires: getShortDate(DateTime.fromISO(appleProfile.attributes.expirationDate)),
70
- id: appleProfile.id,
71
- name: appleProfile.attributes.name,
72
- platform: appleProfile.attributes.platform
73
- };
74
- }
75
- const useAppleProfiles = (props) => {
76
- const queryResult = useQuery({
77
- queryFn: () => queryAppleProfiles(props),
78
- queryKey: ["appleProfiles"]
79
- });
80
- return queryResult;
81
- };
82
-
83
44
  const AppleProfilesTable = ({ ctx, project, ...boxProps }) => {
84
45
  const { data: credentialsResponse } = useProjectCredentials({
85
46
  platform: Platform.IOS,
@@ -1,7 +1,7 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { render, Box } from 'ink';
4
- import { d as BaseGameCommand, P as Platform } from '../../../index-BtPf4vzY.js';
4
+ import { h as BaseGameCommand, P as Platform } from '../../../index-CmuXyPed.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 { G as GameStatusDetails } from '../../../GameStatus-Dm9TqFfW.js';
23
+ import { G as GameStatusDetails } from '../../../GameStatus-D7ID10tS.js';
24
24
  import 'string-length';
25
25
  import 'strip-ansi';
26
26
  import 'open';
@@ -28,8 +28,9 @@ import '@inkjs/ui';
28
28
  import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
31
- import { A as AppleAppDetails, a as AppleBundleIdDetails } from '../../../AppleBundleIdDetails-pEVOUXTQ.js';
32
- import { C as CommandGame } from '../../../CommandGame-C-oV-hb4.js';
31
+ import { A as AppleAppDetails, a as AppleBundleIdDetails } from '../../../AppleBundleIdDetails-KMzyex1H.js';
32
+ import { C as CommandGame } from '../../../CommandGame-Rvmsa7b0.js';
33
+ import 'chalk';
33
34
  import '@expo/apple-utils/build/index.js';
34
35
  import 'deepmerge';
35
36
  import 'ini';
@@ -38,10 +39,10 @@ import 'path';
38
39
  import '../../../StatusTable-DzRWcMr4.js';
39
40
  import '../../../Title-BCQtayg6.js';
40
41
  import '../../../NextSteps-DbJHmscQ.js';
41
- import '../../../useAppleApp-BKPntZPm.js';
42
+ import '../../../useAppleApp-taaewPSf.js';
42
43
  import '../../../Table-FaNgpyeq.js';
43
- import '../../../useAppleBundleId-DvQKEEy4.js';
44
- import '../../../Command-DhAVAdiI.js';
44
+ import '../../../useAppleBundleId-BeGViMe7.js';
45
+ import '../../../Command-CHh8RDXK.js';
45
46
 
46
47
  class GameIosStatus extends BaseGameCommand {
47
48
  static args = {};
@@ -4,9 +4,9 @@ import 'node:fs';
4
4
  import 'axios';
5
5
  import 'crypto-js';
6
6
  import 'uuid';
7
- import { B as BaseAuthenticatedCommand, m as isCWDGodotGame, n as getRenderedMarkdown, W as WEB_URL, P as Platform, C as CredentialsType } from '../../../index-BtPf4vzY.js';
7
+ import { B as BaseAuthenticatedCommand, o as isCWDGodotGame, b as getRenderedMarkdown, W as WEB_URL, P as Platform, C as CredentialsType } from '../../../index-CmuXyPed.js';
8
8
  import 'luxon';
9
- import { g as getUserCredentials, a as getProjectCredentials } from '../../../index-1H48f5j2.js';
9
+ import { g as getUserCredentials, a as getProjectCredentials } from '../../../index-CNsmEDXi.js';
10
10
  import 'react/jsx-runtime';
11
11
  import 'ink';
12
12
  import 'ink-spinner';
@@ -2,7 +2,7 @@ import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { render, Box, Text } from 'ink';
4
4
  import { DateTime } from 'luxon';
5
- import { d as BaseGameCommand, H as getProjectJobs, I as getJobSummary, J as getJobStatusColor } from '../../../index-BtPf4vzY.js';
5
+ import { h as BaseGameCommand, H as getProjectJobs, I as getJobSummary, J as getJobStatusColor } from '../../../index-CmuXyPed.js';
6
6
  import 'ink-spinner';
7
7
  import { T as Table } from '../../../Table-FaNgpyeq.js';
8
8
  import { T as Title } from '../../../Title-BCQtayg6.js';
@@ -23,8 +23,9 @@ import 'node:path';
23
23
  import 'marked';
24
24
  import 'marked-terminal';
25
25
  import 'qrcode';
26
- import { C as Command } from '../../../Command-DhAVAdiI.js';
26
+ import { C as Command } from '../../../Command-CHh8RDXK.js';
27
27
  import 'crypto-js';
28
+ import 'chalk';
28
29
  import '@expo/apple-utils/build/index.js';
29
30
  import 'node:crypto';
30
31
  import 'node:readline';
@@ -1,7 +1,7 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { Args, Flags } from '@oclif/core';
3
3
  import { render } from 'ink';
4
- import { d as BaseGameCommand, K as getJob, L as JobStatus } from '../../../index-BtPf4vzY.js';
4
+ import { h as BaseGameCommand, K as getJob, L as JobStatus } from '../../../index-CmuXyPed.js';
5
5
  import 'ink-spinner';
6
6
  import 'node:crypto';
7
7
  import 'node:fs';
@@ -19,8 +19,8 @@ import 'uuid';
19
19
  import 'yazl';
20
20
  import 'socket.io-client';
21
21
  import 'fullscreen-ink';
22
- import { J as JobLogTail } from '../../../JobLogTail-RTNIiAUk.js';
23
- import { J as JobStatusTable } from '../../../JobStatusTable-BlvMuWF7.js';
22
+ import { J as JobLogTail } from '../../../JobLogTail-CYdceTKL.js';
23
+ import { J as JobStatusTable } from '../../../JobStatusTable-DhnhY1_i.js';
24
24
  import 'open';
25
25
  import '@inkjs/ui';
26
26
  import 'marked';
@@ -29,14 +29,15 @@ import { N as NextSteps } from '../../../NextSteps-DbJHmscQ.js';
29
29
  import 'qrcode';
30
30
  import 'string-length';
31
31
  import 'strip-ansi';
32
- import { C as Command } from '../../../Command-DhAVAdiI.js';
32
+ import { C as Command } from '../../../Command-CHh8RDXK.js';
33
33
  import 'crypto-js';
34
+ import 'chalk';
34
35
  import '@expo/apple-utils/build/index.js';
35
36
  import 'deepmerge';
36
37
  import 'ini';
37
38
  import 'fs';
38
39
  import 'path';
39
- import '../../../useWebSocket-CIeyHqxG.js';
40
+ import '../../../useWebSocket-BVfn36be.js';
40
41
  import '../../../Title-BCQtayg6.js';
41
42
  import '../../../StatusTable-DzRWcMr4.js';
42
43
 
@@ -1,7 +1,7 @@
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 getShortUUID, c as getShortDate } from '../../index-BtPf4vzY.js';
4
+ import { B as BaseAuthenticatedCommand, e as getProjects, g as getShortUUID, f as getShortDate } from '../../index-CmuXyPed.js';
5
5
  import 'ink-spinner';
6
6
  import { T as Table } from '../../Table-FaNgpyeq.js';
7
7
  import 'react';
@@ -22,8 +22,9 @@ import 'node:path';
22
22
  import 'marked';
23
23
  import 'marked-terminal';
24
24
  import 'qrcode';
25
- import { C as Command } from '../../Command-DhAVAdiI.js';
25
+ import { C as Command } from '../../Command-CHh8RDXK.js';
26
26
  import 'crypto-js';
27
+ import 'chalk';
27
28
  import '@expo/apple-utils/build/index.js';
28
29
  import 'node:crypto';
29
30
  import 'node:readline';
@@ -1,7 +1,7 @@
1
1
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
2
2
  import { Flags } from '@oclif/core';
3
3
  import { Box, Text, render } from 'ink';
4
- import { as as LogLevel, S as CommandContext, R as GameContext, at as useSafeInput, au as Markdown, W as WEB_URL, b as getShortUUID, av as getShortAuthRequiredUrl, d as BaseGameCommand, K as getJob, V as downloadBuildById } from '../../index-BtPf4vzY.js';
4
+ import { as as LogLevel, S as CommandContext, R as GameContext, at as useSafeInput, au as Markdown, W as WEB_URL, g as getShortUUID, av as getShortAuthRequiredUrl, h as BaseGameCommand, K as getJob, a1 as downloadBuildById } from '../../index-CmuXyPed.js';
5
5
  import 'ink-spinner';
6
6
  import 'node:crypto';
7
7
  import 'node:fs';
@@ -23,25 +23,26 @@ import 'string-length';
23
23
  import 'strip-ansi';
24
24
  import open from 'open';
25
25
  import 'crypto-js';
26
- import { u as useJobWatching, J as JobLogTail } from '../../JobLogTail-RTNIiAUk.js';
27
- import { J as JobStatusTable } from '../../JobStatusTable-BlvMuWF7.js';
26
+ import { u as useJobWatching, J as JobLogTail } from '../../JobLogTail-CYdceTKL.js';
27
+ import { J as JobStatusTable } from '../../JobStatusTable-DhnhY1_i.js';
28
28
  import '@inkjs/ui';
29
- import { u as useShip, J as JobProgress } from '../../JobProgress-dFWcT0CQ.js';
29
+ import { u as useShip, J as JobProgress } from '../../JobProgress-DBCYbWrO.js';
30
30
  import 'qrcode';
31
31
  import 'marked';
32
32
  import 'marked-terminal';
33
- import { C as CommandGame } from '../../CommandGame-C-oV-hb4.js';
33
+ import { C as CommandGame } from '../../CommandGame-Rvmsa7b0.js';
34
+ import 'chalk';
34
35
  import '@expo/apple-utils/build/index.js';
35
36
  import 'deepmerge';
36
37
  import 'ini';
37
38
  import 'fs';
38
39
  import 'path';
39
- import '../../useWebSocket-CIeyHqxG.js';
40
+ import '../../useWebSocket-BVfn36be.js';
40
41
  import '../../Title-BCQtayg6.js';
41
42
  import '../../StatusTable-DzRWcMr4.js';
42
43
  import '../../git-BpsfNFZ_.js';
43
44
  import '../../ProgressSpinner-Um6ARKlk.js';
44
- import '../../Command-DhAVAdiI.js';
45
+ import '../../Command-CHh8RDXK.js';
45
46
 
46
47
  function isNetworkError(exception) {
47
48
  if (!axios.isAxiosError(exception)) return false;
@@ -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-BtPf4vzY.js';
4
+ import { B as BaseAuthenticatedCommand } from '../../index-CmuXyPed.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-Dm9TqFfW.js';
23
+ import { a as GameStatus$1 } from '../../GameStatus-D7ID10tS.js';
24
24
  import 'string-length';
25
25
  import 'strip-ansi';
26
26
  import 'open';
@@ -28,7 +28,8 @@ import '@inkjs/ui';
28
28
  import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
31
- import { C as CommandGame } from '../../CommandGame-C-oV-hb4.js';
31
+ import { C as CommandGame } from '../../CommandGame-Rvmsa7b0.js';
32
+ import 'chalk';
32
33
  import '@expo/apple-utils/build/index.js';
33
34
  import 'deepmerge';
34
35
  import 'ini';
@@ -37,7 +38,7 @@ import 'path';
37
38
  import '../../StatusTable-DzRWcMr4.js';
38
39
  import '../../Title-BCQtayg6.js';
39
40
  import '../../NextSteps-DbJHmscQ.js';
40
- import '../../Command-DhAVAdiI.js';
41
+ import '../../Command-CHh8RDXK.js';
41
42
 
42
43
  class GameStatus extends BaseAuthenticatedCommand {
43
44
  static args = {};
@@ -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 { 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';
4
+ import { X as queryClient, a0 as cacheKeys, t as getAuthedHeaders, s as API_URL, V 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, aq as useBuilds, P as Platform, L as JobStatus, au as Markdown, W as WEB_URL, g 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, Z as GameProvider, aE as CreateGooglePlayGame, B as BaseAuthenticatedCommand, o as isCWDGodotGame } from '../../index-CmuXyPed.js';
5
5
  import { Box, Text } from 'ink';
6
6
  import Spinner from 'ink-spinner';
7
7
  import 'node:crypto';
@@ -23,31 +23,32 @@ 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-DCN43FhY.js';
26
+ import { C as ConnectGoogle } from '../../index-9LxGafAo.js';
27
27
  import { TextInput, Alert } from '@inkjs/ui';
28
28
  import 'marked';
29
29
  import 'marked-terminal';
30
30
  import 'qrcode';
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';
31
+ import { J as JobLogTail } from '../../JobLogTail-CYdceTKL.js';
32
+ import { u as useShip, J as JobProgress } from '../../JobProgress-DBCYbWrO.js';
33
+ import { C as CreateServiceAccountKey } from '../../index-BPh_qt7t.js';
34
+ import { C as CreateKeystore } from '../../Create-DInZ_pw-.js';
35
+ import { I as ImportKeystore } from '../../Import-BmO8EYKj.js';
36
+ import { a as getProjectCredentials } from '../../index-CNsmEDXi.js';
37
37
  import { T as Title } from '../../Title-BCQtayg6.js';
38
- import { C as Command } from '../../Command-DhAVAdiI.js';
38
+ import { C as Command } from '../../Command-CHh8RDXK.js';
39
+ import 'chalk';
39
40
  import '@expo/apple-utils/build/index.js';
40
41
  import 'deepmerge';
41
42
  import 'ini';
42
43
  import 'fs';
43
44
  import 'path';
44
- import '../../useGoogleStatus-D9jjGa--.js';
45
- import '../../useWebSocket-CIeyHqxG.js';
45
+ import '../../useGoogleStatus-CSsxEvX7.js';
46
+ import '../../useWebSocket-BVfn36be.js';
46
47
  import '../../git-BpsfNFZ_.js';
47
48
  import '../../ProgressSpinner-Um6ARKlk.js';
48
- import '../../useProjectCredentials-BjsS28hP.js';
49
+ import '../../useProjectCredentials-Cm50WMZU.js';
49
50
  import '../../RunWithSpinner-DucRnFp6.js';
50
- import '../../import-D-EL9sQJ.js';
51
+ import '../../import-DGCqCAcC.js';
51
52
 
52
53
  const useInviteServiceAccount = () => useMutation({
53
54
  async mutationFn({ developerId, projectId }) {
@@ -1,11 +1,12 @@
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 { ac as BaseCommand } from '../../index-BtPf4vzY.js';
4
+ import { ac as BaseCommand } from '../../index-CmuXyPed.js';
5
5
  import 'axios';
6
6
  import 'crypto-js';
7
7
  import 'uuid';
8
8
  import 'luxon';
9
+ import 'chalk';
9
10
  import '@expo/apple-utils/build/index.js';
10
11
  import 'node:crypto';
11
12
  import 'node:readline';
@@ -1,12 +1,13 @@
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 { ac as BaseCommand, ad as ejs } from '../../index-BtPf4vzY.js';
4
+ import { ac as BaseCommand, ad as ejs } from '../../index-CmuXyPed.js';
5
5
  import CustomHelp from '../../utils/help.js';
6
6
  import 'axios';
7
7
  import 'crypto-js';
8
8
  import 'uuid';
9
9
  import 'luxon';
10
+ import 'chalk';
10
11
  import '@expo/apple-utils/build/index.js';
11
12
  import 'node:crypto';
12
13
  import 'node:readline';
@@ -1,11 +1,12 @@
1
1
  import { Flags } from '@oclif/core';
2
2
  import axios from 'axios';
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';
3
+ import { W as WEB_URL, ac as BaseCommand, ai as acceptTerms, s as API_URL, aj as setAuthToken, c as getInput } from '../index-CmuXyPed.js';
4
4
  import 'node:fs';
5
5
  import 'crypto-js';
6
6
  import 'uuid';
7
7
  import 'luxon';
8
8
  import 'node:path';
9
+ import 'chalk';
9
10
  import '@expo/apple-utils/build/index.js';
10
11
  import 'node:crypto';
11
12
  import 'node:readline';
@@ -1,6 +1,6 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { render } from 'ink';
3
- import { ac as BaseCommand, m as isCWDGodotGame } from '../index-BtPf4vzY.js';
3
+ import { ac as BaseCommand, o as isCWDGodotGame } from '../index-CmuXyPed.js';
4
4
  import 'ink-spinner';
5
5
  import 'node:crypto';
6
6
  import 'node:fs';
@@ -29,7 +29,7 @@ import 'marked';
29
29
  import 'marked-terminal';
30
30
  import { N as NextSteps } from '../NextSteps-DbJHmscQ.js';
31
31
  import 'qrcode';
32
- import { C as Command } from '../Command-DhAVAdiI.js';
32
+ import { C as Command } from '../Command-CHh8RDXK.js';
33
33
  import chalk from 'chalk';
34
34
  import '@expo/apple-utils/build/index.js';
35
35
  import 'isomorphic-git';
@@ -1,6 +1,6 @@
1
1
  import * as fs from 'node:fs';
2
2
  import axios from 'axios';
3
- import { s as API_URL, t as getAuthedHeaders } from './index-BtPf4vzY.js';
3
+ import { s as API_URL, t as getAuthedHeaders } from './index-CmuXyPed.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 { s as API_URL, t as getAuthedHeaders } from './index-BtPf4vzY.js';
3
+ import { s as API_URL, t as getAuthedHeaders } from './index-CmuXyPed.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`;
@@ -12,7 +12,7 @@ import 'readline-sync';
12
12
  import 'luxon';
13
13
  import 'axios';
14
14
  import 'isomorphic-git';
15
- import { av as getShortAuthRequiredUrl, ax as getGoogleAuthUrl, R as GameContext, at as useSafeInput, W as WEB_URL, au as Markdown } from './index-BtPf4vzY.js';
15
+ import { av as getShortAuthRequiredUrl, ax as getGoogleAuthUrl, R as GameContext, at as useSafeInput, W as WEB_URL, au as Markdown } from './index-CmuXyPed.js';
16
16
  import '@oclif/core';
17
17
  import '@tanstack/react-query';
18
18
  import 'crypto-js';
@@ -20,8 +20,8 @@ import 'uuid';
20
20
  import 'fast-glob';
21
21
  import 'yazl';
22
22
  import 'socket.io-client';
23
- import { u as useGoogleStatus } from './useGoogleStatus-D9jjGa--.js';
24
- import { u as useWebSocket } from './useWebSocket-CIeyHqxG.js';
23
+ import { u as useGoogleStatus } from './useGoogleStatus-CSsxEvX7.js';
24
+ import { u as useWebSocket } from './useWebSocket-BVfn36be.js';
25
25
  import 'fullscreen-ink';
26
26
  import 'string-length';
27
27
  import 'strip-ansi';
@@ -8,7 +8,7 @@ import 'node:path';
8
8
  import 'node:readline';
9
9
  import 'node:url';
10
10
  import 'readline-sync';
11
- import { a1 as cacheKeys, t as getAuthedHeaders, s as API_URL, aw as castObjectDates, Y as queryClient, a5 as revokePolicy, a4 as enforcePolicy, P as Platform, C as CredentialsType, a2 as getGoogleStatus, R as GameContext, at as useSafeInput, au as Markdown, c as getShortDate } from './index-BtPf4vzY.js';
11
+ import { a0 as cacheKeys, t as getAuthedHeaders, s as API_URL, aw as castObjectDates, X as queryClient, a5 as revokePolicy, a4 as enforcePolicy, P as Platform, C as CredentialsType, a2 as getGoogleStatus, R as GameContext, at as useSafeInput, au as Markdown, f as getShortDate } from './index-CmuXyPed.js';
12
12
  import axios from 'axios';
13
13
  import 'isomorphic-git';
14
14
  import '@oclif/core';
@@ -19,9 +19,9 @@ import 'uuid';
19
19
  import 'yazl';
20
20
  import 'socket.io-client';
21
21
  import 'fullscreen-ink';
22
- import { u as useWebSocket } from './useWebSocket-CIeyHqxG.js';
23
- import { u as useProjectCredentials } from './useProjectCredentials-BjsS28hP.js';
24
- import { u as useGoogleStatus } from './useGoogleStatus-D9jjGa--.js';
22
+ import { u as useWebSocket } from './useWebSocket-BVfn36be.js';
23
+ import { u as useProjectCredentials } from './useProjectCredentials-Cm50WMZU.js';
24
+ import { u as useGoogleStatus } from './useGoogleStatus-CSsxEvX7.js';
25
25
  import 'crypto-js';
26
26
  import 'string-length';
27
27
  import 'strip-ansi';
@@ -0,0 +1,48 @@
1
+ import axios from 'axios';
2
+ import { s as API_URL, t as getAuthedHeaders, V as castArrayObjectDates } from './index-CmuXyPed.js';
3
+ import 'node:fs';
4
+
5
+ async function getUserCredentials(pageSize = 100) {
6
+ const headers = getAuthedHeaders();
7
+ const { data } = await axios({
8
+ headers,
9
+ method: "get",
10
+ url: `${API_URL}/credentials?pageSize=${pageSize}`
11
+ });
12
+ return castArrayObjectDates(data.data);
13
+ }
14
+ async function deleteUserCredential(options) {
15
+ const headers = getAuthedHeaders();
16
+ const { data } = await axios({
17
+ headers,
18
+ method: "delete",
19
+ url: `${API_URL}/credentials/${options.credentialId}`,
20
+ params: {
21
+ isImmediate: options.isImmediate
22
+ }
23
+ });
24
+ return data;
25
+ }
26
+ async function getProjectCredentials(projectId, pageSize = 100) {
27
+ const headers = getAuthedHeaders();
28
+ const { data } = await axios({
29
+ headers,
30
+ method: "get",
31
+ url: `${API_URL}/projects/${projectId}/credentials?pageSize=${pageSize}`
32
+ });
33
+ return castArrayObjectDates(data.data);
34
+ }
35
+ async function deleteProjectCredential(projectId, options) {
36
+ const headers = getAuthedHeaders();
37
+ const { data } = await axios({
38
+ headers,
39
+ method: "delete",
40
+ url: `${API_URL}/projects/${projectId}/credentials/${options.credentialId}`,
41
+ params: {
42
+ isImmediate: options.isImmediate
43
+ }
44
+ });
45
+ return data;
46
+ }
47
+
48
+ export { getProjectCredentials as a, deleteProjectCredential as b, deleteUserCredential as d, getUserCredentials as g };
@@ -5,6 +5,7 @@ import CryptoJS from 'crypto-js';
5
5
  import { v4 } from 'uuid';
6
6
  import { DateTime } from 'luxon';
7
7
  import path from 'node:path';
8
+ import chalk from 'chalk';
8
9
  import { Command, Flags } from '@oclif/core';
9
10
  import * as expo from '@expo/apple-utils/build/index.js';
10
11
  import crypto from 'node:crypto';
@@ -961,7 +962,7 @@ class BaseCommand extends Command {
961
962
  }
962
963
  async refreshAppleAuthState() {
963
964
  const cookies = await this.getAppleCookies();
964
- const rerunMessage = "Please run shipthis apple login to authenticate with Apple.";
965
+ const rerunMessage = `Please run ${chalk.bold("shipthis apple login")} to authenticate with Apple.`;
965
966
  if (!cookies) throw new Error(`No Apple cookies found. ${rerunMessage}`);
966
967
  const authState = await Auth.loginWithCookiesAsync(
967
968
  {
@@ -972,6 +973,7 @@ class BaseCommand extends Command {
972
973
  if (!authState) throw new Error(`Failed to refresh Apple auth state. ${rerunMessage}`);
973
974
  return authState;
974
975
  }
976
+ // Pass undefined to logout
975
977
  async setAppleCookies(cookies) {
976
978
  const authConfig = await this.getAuthConfig();
977
979
  await this.setAuthConfig({ ...authConfig, appleCookies: cookies });
@@ -1900,4 +1902,4 @@ const DetailsFlags = {
1900
1902
  semanticVersion: Flags.string({ char: "s", description: "Set the semantic version" })
1901
1903
  };
1902
1904
 
1903
- export { WS_URL as $, ApiKey as A, BaseAuthenticatedCommand as B, CredentialsType as C, DetailsFlags as D, DEFAULT_IGNORED_FILES_GLOBS as E, getGodotProjectName as F, GODOT_CAPABILITIES as G, getProjectJobs as H, getJobSummary as I, getJobStatusColor as J, getJob as K, JobStatus as L, getStageColor as M, makeHumanReadable as N, getProject as O, Platform as P, getProjectPlatformProgress as Q, GameContext as R, CommandContext as S, isValidSemVer as T, UserRole as U, downloadBuildById as V, WEB_URL as W, castArrayObjectDates as X, queryClient as Y, CommandProvider as Z, GameProvider as _, ApiKeyType as a, getAuthToken as a0, cacheKeys as a1, getGoogleStatus as a2, getGodotAndroidPackageName as a3, enforcePolicy as a4, revokePolicy as a5, fetchKeyTestResult as a6, niceError as a7, KeyTestStatus as a8, KeyTestError as a9, getMessageColor as aA, getShortTime as aB, updateProject as aC, queryBuilds as aD, CreateGooglePlayGame as aE, inviteServiceAccount as aa, disconnectGoogle as ab, BaseCommand as ac, ejs as ad, getAPIKeys as ae, createAPIKey as af, revokeAPIKey as ag, getSingleUseUrl as ah, acceptTerms as ai, setAuthToken as aj, Auth as ak, getMaskedInput as al, useBuilds as am, getBuildSummary as an, getNewUploadTicket as ao, getFileHash as ap, startJobsFromUpload as aq, getPlatformName as ar, LogLevel as as, useSafeInput as at, Markdown as au, getShortAuthRequiredUrl as av, castObjectDates as aw, getGoogleAuthUrl as ax, useJob as ay, castJobDates as az, getShortUUID as b, getShortDate as c, BaseGameCommand as d, getInput as e, generatePackageName as f, getProjects as g, getGodotAppleBundleIdentifier as h, BundleId as i, App as j, CapabilityTypeOption as k, BetaGroup as l, isCWDGodotGame as m, getRenderedMarkdown as n, Certificate as o, CertificateType as p, Profile as q, ProfileType as r, API_URL as s, getAuthedHeaders as t, getGodotProjectCapabilities as u, CapabilityType as v, GameEngine as w, getGodotVersion as x, createProject as y, DEFAULT_SHIPPED_FILES_GLOBS as z };
1905
+ export { getAuthToken as $, ApiKey as A, BaseAuthenticatedCommand as B, CredentialsType as C, DetailsFlags as D, DEFAULT_IGNORED_FILES_GLOBS as E, getGodotProjectName as F, GODOT_CAPABILITIES as G, getProjectJobs as H, getJobSummary as I, getJobStatusColor as J, getJob as K, JobStatus as L, getStageColor as M, makeHumanReadable as N, getProject as O, Platform as P, getProjectPlatformProgress as Q, GameContext as R, CommandContext as S, isValidSemVer as T, UserRole as U, castArrayObjectDates as V, WEB_URL as W, queryClient as X, CommandProvider as Y, GameProvider as Z, WS_URL as _, ApiKeyType as a, cacheKeys as a0, downloadBuildById as a1, getGoogleStatus as a2, getGodotAndroidPackageName as a3, enforcePolicy as a4, revokePolicy as a5, fetchKeyTestResult as a6, niceError as a7, KeyTestStatus as a8, KeyTestError as a9, getMessageColor as aA, getShortTime as aB, updateProject as aC, queryBuilds as aD, CreateGooglePlayGame as aE, inviteServiceAccount as aa, disconnectGoogle as ab, BaseCommand as ac, ejs as ad, getAPIKeys as ae, createAPIKey as af, revokeAPIKey as ag, getSingleUseUrl as ah, acceptTerms as ai, setAuthToken as aj, Auth as ak, getMaskedInput as al, getNewUploadTicket as am, getFileHash as an, startJobsFromUpload as ao, getPlatformName as ap, useBuilds as aq, getBuildSummary as ar, LogLevel as as, useSafeInput as at, Markdown as au, getShortAuthRequiredUrl as av, castObjectDates as aw, getGoogleAuthUrl as ax, useJob as ay, castJobDates as az, getRenderedMarkdown as b, getInput as c, Certificate as d, getProjects as e, getShortDate as f, getShortUUID as g, BaseGameCommand as h, generatePackageName as i, getGodotAppleBundleIdentifier as j, BundleId as k, App as l, CapabilityTypeOption as m, BetaGroup as n, isCWDGodotGame as o, CertificateType as p, Profile as q, ProfileType as r, API_URL as s, getAuthedHeaders as t, getGodotProjectCapabilities as u, CapabilityType as v, GameEngine as w, getGodotVersion as x, createProject as y, DEFAULT_SHIPPED_FILES_GLOBS as z };
@@ -1,5 +1,5 @@
1
1
  import axios from 'axios';
2
- import { s as API_URL, t as getAuthedHeaders } from './index-BtPf4vzY.js';
2
+ import { s as API_URL, t as getAuthedHeaders } from './index-CmuXyPed.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`;