shipthis 0.1.11 → 0.1.12

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 (115) hide show
  1. package/npm-shrinkwrap.json +2 -2
  2. package/oclif.manifest.json +1 -83
  3. package/package.json +1 -1
  4. package/dist/AppleBundleIdDetails-C0XqjxKJ.js +0 -72
  5. package/dist/AppleBundleIdDetails-CjP5y0cj.js +0 -74
  6. package/dist/AppleBundleIdDetails-CztWY_mT.js +0 -73
  7. package/dist/AppleBundleIdDetails-DKeSAte9.js +0 -73
  8. package/dist/AppleBundleIdDetails-Df30MPFC.js +0 -73
  9. package/dist/AppleBundleIdDetails-Dxo99Sgu.js +0 -72
  10. package/dist/Command-1YAl_0zS.js +0 -204
  11. package/dist/Command-Cl-JfhTy.js +0 -203
  12. package/dist/Command-D6rWEZRM.js +0 -204
  13. package/dist/Command-Dn0P_KOV.js +0 -205
  14. package/dist/Command-DxmQn3XT.js +0 -204
  15. package/dist/Command-YJJp90ru.js +0 -204
  16. package/dist/CommandGame--SAa3wEL.js +0 -8
  17. package/dist/CommandGame-CZUx_VQu.js +0 -8
  18. package/dist/CommandGame-DspVLTPZ.js +0 -8
  19. package/dist/CommandGame-cPaTk1wh.js +0 -8
  20. package/dist/CommandGame-k04mHiDl.js +0 -8
  21. package/dist/CommandGame-pI9VXKxi.js +0 -8
  22. package/dist/CreateKeystore-BnNdeDUa.js +0 -57
  23. package/dist/CreateKeystore-BqJdpvsI.js +0 -56
  24. package/dist/CreateKeystore-Cf-nsK_M.js +0 -56
  25. package/dist/CreateKeystore-D8uTRamD.js +0 -56
  26. package/dist/CreateKeystore-Dm0KVh85.js +0 -56
  27. package/dist/CreateKeystore-g1z6DsU5.js +0 -56
  28. package/dist/JobProgress-CPkWVSlH.js +0 -108
  29. package/dist/JobProgress-Dk0UoNah.js +0 -108
  30. package/dist/JobProgress-biiLhigg.js +0 -109
  31. package/dist/JobProgress-jmGAzvxS.js +0 -108
  32. package/dist/JobStatusTable-BA_q-kgE.js +0 -75
  33. package/dist/JobStatusTable-ByW0bN6c.js +0 -75
  34. package/dist/JobStatusTable-CgaTS7jS.js +0 -75
  35. package/dist/JobStatusTable-q4atKzhu.js +0 -75
  36. package/dist/ProjectCredentialsTable-BIWBAXCh.js +0 -37
  37. package/dist/ProjectCredentialsTable-Ch8022rs.js +0 -37
  38. package/dist/ProjectCredentialsTable-DRMK_SNw.js +0 -37
  39. package/dist/ProjectCredentialsTable-DfkpvTf8.js +0 -37
  40. package/dist/UserCredentialsTable-CeJS3_hd.js +0 -82
  41. package/dist/UserCredentialsTable-DMh8Wpy7.js +0 -82
  42. package/dist/UserCredentialsTable-DgHZJSHG.js +0 -82
  43. package/dist/UserCredentialsTable-ysmM5dlV.js +0 -82
  44. package/dist/baseAppleCommand-1isaFxCQ.js +0 -10
  45. package/dist/baseAppleCommand-B3WQtlx-.js +0 -10
  46. package/dist/baseAppleCommand-D-G4h8zQ.js +0 -10
  47. package/dist/baseAppleCommand-DpasCbje.js +0 -10
  48. package/dist/baseGameAndroidCommand-B-CFhPnE.js +0 -43
  49. package/dist/baseGameAndroidCommand-B3LRG701.js +0 -43
  50. package/dist/baseGameAndroidCommand-C9BuS2Sr.js +0 -43
  51. package/dist/baseGameAndroidCommand-DD0H8iy-.js +0 -43
  52. package/dist/commands/game/android/wizard.js +0 -509
  53. package/dist/export-BDxGDZdh.js +0 -36
  54. package/dist/export-B_F6vXIK.js +0 -36
  55. package/dist/export-BiLHgSJ9.js +0 -36
  56. package/dist/export-C_lu1FD9.js +0 -36
  57. package/dist/import-7T3J63j2.js +0 -38
  58. package/dist/import-Brg3zYmT.js +0 -38
  59. package/dist/import-BrlJuE2Z.js +0 -38
  60. package/dist/import-CxNikF1c.js +0 -38
  61. package/dist/import-DPbg8WvS.js +0 -38
  62. package/dist/index-B5XHQfs2.js +0 -122
  63. package/dist/index-B6V7vGOj.js +0 -136
  64. package/dist/index-BDFKyTPb.js +0 -24
  65. package/dist/index-BL-1G60K.js +0 -135
  66. package/dist/index-BQRxiyqn.js +0 -693
  67. package/dist/index-BQnkBr1Q.js +0 -136
  68. package/dist/index-BX9h2vPV.js +0 -123
  69. package/dist/index-BjGSEqP5.js +0 -135
  70. package/dist/index-BuZmCvZh.js +0 -24
  71. package/dist/index-Bv3x8c78.js +0 -693
  72. package/dist/index-ByOvCs4O.js +0 -122
  73. package/dist/index-BzffuqPa.js +0 -24
  74. package/dist/index-C9734Cj2.js +0 -693
  75. package/dist/index-CKYExssR.js +0 -136
  76. package/dist/index-CgBgZUkL.js +0 -144
  77. package/dist/index-DBrQda8r.js +0 -122
  78. package/dist/index-DE2Hvx2o.js +0 -122
  79. package/dist/index-DdABTtYO.js +0 -693
  80. package/dist/index-DgbQBx6x.js +0 -122
  81. package/dist/index-DxHPjZav.js +0 -136
  82. package/dist/index-X__XH_Fd.js +0 -144
  83. package/dist/index-m4HTrJ5J.js +0 -135
  84. package/dist/index-wyPoxiTc.js +0 -136
  85. package/dist/upload-CMo3hUhl.js +0 -60
  86. package/dist/upload-Cx71802W.js +0 -60
  87. package/dist/upload-DvAE1vDq.js +0 -60
  88. package/dist/upload-LXRr4pMa.js +0 -60
  89. package/dist/useAndroidServiceAccountTestResult-BDc7XpKE.js +0 -52
  90. package/dist/useAndroidServiceAccountTestResult-B_ekRewZ.js +0 -52
  91. package/dist/useAndroidServiceAccountTestResult-D_30xIJA.js +0 -52
  92. package/dist/useAndroidServiceAccountTestResult-InDf5WSl.js +0 -52
  93. package/dist/useAppleApp-CApC0-4Q.js +0 -32
  94. package/dist/useAppleApp-CETIcsJS.js +0 -32
  95. package/dist/useAppleApp-DgE0wEaq.js +0 -32
  96. package/dist/useAppleApp-DnSjUfSs.js +0 -32
  97. package/dist/useAppleBundleId-BNI8swhC.js +0 -64
  98. package/dist/useAppleBundleId-DtLODy3p.js +0 -64
  99. package/dist/useAppleBundleId-SmzY6rkm.js +0 -64
  100. package/dist/useAppleBundleId-gPBzJwQg.js +0 -64
  101. package/dist/useJobWatching-BIG6fnTN.js +0 -45
  102. package/dist/useJobWatching-BcBJ5dy1.js +0 -43
  103. package/dist/useJobWatching-Bz1e6xOv.js +0 -43
  104. package/dist/useJobWatching-Cp-CYd90.js +0 -45
  105. package/dist/useJobWatching-D-YzSlK8.js +0 -45
  106. package/dist/useJobWatching-P5oC7mNB.js +0 -45
  107. package/dist/useProjectCredentials-B5ZmpIxL.js +0 -54
  108. package/dist/useProjectCredentials-BRffcsO3.js +0 -54
  109. package/dist/useProjectCredentials-CKngz2rd.js +0 -54
  110. package/dist/useProjectCredentials-EapDge1I.js +0 -54
  111. package/dist/useWebSocket-Bep1zAVG.js +0 -36
  112. package/dist/useWebSocket-D8PojLtx.js +0 -36
  113. package/dist/useWebSocket-DoImIdTy.js +0 -36
  114. package/dist/useWebSocket-rBLiZsKb.js +0 -36
  115. package/dist/wizard-ChPegnMW.js +0 -133
@@ -1,57 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { o as getAuthedHeaders, p as API_URL } from './index-C9734Cj2.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-B_ekRewZ.js';
8
- import { b as GameContext } from './Command-Dn0P_KOV.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
- import './wizard-ChPegnMW.js';
30
-
31
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
32
- const { gameId } = useContext(GameContext);
33
- const queryClient = useQueryClient();
34
- const handleCreate = async () => {
35
- try {
36
- if (!gameId) throw new Error("No game");
37
- const headers = await getAuthedHeaders();
38
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
39
- headers
40
- });
41
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
42
- } catch (err) {
43
- onError(err);
44
- }
45
- };
46
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
47
- RunWithSpinner,
48
- {
49
- executeMethod: handleCreate,
50
- msgInProgress: "Creating Keystore...",
51
- msgComplete: "Keystore created",
52
- onComplete
53
- }
54
- ) });
55
- };
56
-
57
- export { CreateKeystore as C };
@@ -1,56 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-BQRxiyqn.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-D_30xIJA.js';
8
- import { a as GameContext } from './Command-1YAl_0zS.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
-
30
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
31
- const { gameId } = useContext(GameContext);
32
- const queryClient = useQueryClient();
33
- const handleCreate = async () => {
34
- try {
35
- if (!gameId) throw new Error("No game");
36
- const headers = await getAuthedHeaders();
37
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
38
- headers
39
- });
40
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
41
- } catch (err) {
42
- onError(err);
43
- }
44
- };
45
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
46
- RunWithSpinner,
47
- {
48
- executeMethod: handleCreate,
49
- msgInProgress: "Creating Keystore...",
50
- msgComplete: "Keystore created",
51
- onComplete
52
- }
53
- ) });
54
- };
55
-
56
- export { CreateKeystore as C };
@@ -1,56 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-Bv3x8c78.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-BDc7XpKE.js';
8
- import { b as GameContext } from './Command-YJJp90ru.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
-
30
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
31
- const { gameId } = useContext(GameContext);
32
- const queryClient = useQueryClient();
33
- const handleCreate = async () => {
34
- try {
35
- if (!gameId) throw new Error("No game");
36
- const headers = await getAuthedHeaders();
37
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
38
- headers
39
- });
40
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
41
- } catch (err) {
42
- onError(err);
43
- }
44
- };
45
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
46
- RunWithSpinner,
47
- {
48
- executeMethod: handleCreate,
49
- msgInProgress: "Creating Keystore...",
50
- msgComplete: "Keystore created",
51
- onComplete
52
- }
53
- ) });
54
- };
55
-
56
- export { CreateKeystore as C };
@@ -1,56 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-DdABTtYO.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-InDf5WSl.js';
8
- import { b as GameContext } from './Command-DxmQn3XT.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
-
30
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
31
- const { gameId } = useContext(GameContext);
32
- const queryClient = useQueryClient();
33
- const handleCreate = async () => {
34
- try {
35
- if (!gameId) throw new Error("No game");
36
- const headers = await getAuthedHeaders();
37
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
38
- headers
39
- });
40
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
41
- } catch (err) {
42
- onError(err);
43
- }
44
- };
45
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
46
- RunWithSpinner,
47
- {
48
- executeMethod: handleCreate,
49
- msgInProgress: "Creating Keystore...",
50
- msgComplete: "Keystore created",
51
- onComplete
52
- }
53
- ) });
54
- };
55
-
56
- export { CreateKeystore as C };
@@ -1,56 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-BQRxiyqn.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-D_30xIJA.js';
8
- import { a as GameContext } from './Command-Cl-JfhTy.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
-
30
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
31
- const { gameId } = useContext(GameContext);
32
- const queryClient = useQueryClient();
33
- const handleCreate = async () => {
34
- try {
35
- if (!gameId) throw new Error("No game");
36
- const headers = await getAuthedHeaders();
37
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
38
- headers
39
- });
40
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
41
- } catch (err) {
42
- onError(err);
43
- }
44
- };
45
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
46
- RunWithSpinner,
47
- {
48
- executeMethod: handleCreate,
49
- msgInProgress: "Creating Keystore...",
50
- msgComplete: "Keystore created",
51
- onComplete
52
- }
53
- ) });
54
- };
55
-
56
- export { CreateKeystore as C };
@@ -1,56 +0,0 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { Box } from 'ink';
3
- import axios from 'axios';
4
- import { useContext } from 'react';
5
- import { useQueryClient } from '@tanstack/react-query';
6
- import { p as getAuthedHeaders, q as API_URL } from './index-BB7X1Pqp.js';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Ce1x0Eh8.js';
8
- import { b as GameContext } from './Command-D6rWEZRM.js';
9
- import 'ink-spinner';
10
- import '@inkjs/ui';
11
- import 'open';
12
- import 'crypto';
13
- import 'fs';
14
- import 'readline-sync';
15
- import 'node:readline';
16
- import 'node:path';
17
- import 'node:url';
18
- import 'luxon';
19
- import 'uuid';
20
- import 'fast-glob';
21
- import 'yazl';
22
- import 'socket.io-client';
23
- import 'isomorphic-git';
24
- import '@oclif/core';
25
- import 'qrcode';
26
- import { R as RunWithSpinner } from './RunWithSpinner-BVXNWGD3.js';
27
- import 'string-length';
28
- import 'strip-ansi';
29
-
30
- const CreateKeystore = ({ onComplete, onError, ...boxProps }) => {
31
- const { gameId } = useContext(GameContext);
32
- const queryClient = useQueryClient();
33
- const handleCreate = async () => {
34
- try {
35
- if (!gameId) throw new Error("No game");
36
- const headers = await getAuthedHeaders();
37
- await axios.post(`${API_URL}/projects/${gameId}/credentials/android/certificate`, null, {
38
- headers
39
- });
40
- queryClient.invalidateQueries({ queryKey: cacheKeys.projectCredentials({ projectId: gameId, pageNumber: 0 }) });
41
- } catch (err) {
42
- onError(err);
43
- }
44
- };
45
- return /* @__PURE__ */ jsx(Box, { flexDirection: "column", gap: 1, ...boxProps, children: /* @__PURE__ */ jsx(
46
- RunWithSpinner,
47
- {
48
- executeMethod: handleCreate,
49
- msgInProgress: "Creating Keystore...",
50
- msgComplete: "Keystore created",
51
- onComplete
52
- }
53
- ) });
54
- };
55
-
56
- export { CreateKeystore as C };
@@ -1,108 +0,0 @@
1
- import { v4 } from 'uuid';
2
- import axios from 'axios';
3
- import fg from 'fast-glob';
4
- import fs__default from 'fs';
5
- import yazl from 'yazl';
6
- import { useMutation } from '@tanstack/react-query';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-BDc7XpKE.js';
8
- import { $ as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, a0 as getNewUploadTicket, a1 as startJobsFromUpload, J as JobStatus } from './index-Bv3x8c78.js';
9
- import { f as getFileHash, h as getPlatformName } from './index-BQnkBr1Q.js';
10
- import { g as getCWDGitInfo } from './git-DREGq-jc.js';
11
- import { jsx, Fragment } from 'react/jsx-runtime';
12
- import { useRef } from 'react';
13
- import 'ink';
14
- import './Command-YJJp90ru.js';
15
- import 'ink-spinner';
16
- import 'crypto-js';
17
- import 'luxon';
18
- import '@inkjs/ui';
19
- import 'open';
20
- import { P as ProgressSpinner } from './ProgressSpinner-6pw1T8Iw.js';
21
- import 'qrcode';
22
- import 'string-length';
23
- import 'strip-ansi';
24
- import 'socket.io-client';
25
- import { u as useJobWatching } from './useJobWatching-Cp-CYd90.js';
26
-
27
- async function ship({ command, log = () => {
28
- } }) {
29
- log("Fetching project config...");
30
- const projectConfig = await command.getProjectConfig();
31
- if (!projectConfig.project) throw new Error("No project found in project config");
32
- log("Retrieving file globs...");
33
- const shippedFilesGlobs = projectConfig.shippedFilesGlobs || DEFAULT_SHIPPED_FILES_GLOBS;
34
- const ignoredFilesGlobs = projectConfig.ignoredFilesGlobs || DEFAULT_IGNORED_FILES_GLOBS;
35
- log("Finding files to include in zip...");
36
- const files = await fg(shippedFilesGlobs, { dot: true, ignore: ignoredFilesGlobs });
37
- log(`Found ${files.length} files, adding to zip...`);
38
- const zipFile = new yazl.ZipFile();
39
- for (const file of files) {
40
- zipFile.addFile(file, file);
41
- }
42
- const outputZipToFile = (zip, fileName) => new Promise((resolve) => {
43
- const outputStream = fs__default.createWriteStream(fileName);
44
- zip.outputStream.pipe(outputStream).on("close", () => resolve());
45
- zip.end();
46
- });
47
- const tmpZipFile = `${process.cwd()}/shipthis-${v4()}.zip`;
48
- log(`Creating zip file: ${tmpZipFile}`);
49
- await outputZipToFile(zipFile, tmpZipFile);
50
- log("Reading zip file buffer...");
51
- const zipBuffer = fs__default.readFileSync(tmpZipFile);
52
- const { size } = fs__default.statSync(tmpZipFile);
53
- log("Requesting upload ticket...");
54
- const uploadTicket = await getNewUploadTicket(projectConfig.project.id);
55
- log("Uploading zip file...");
56
- await axios.put(uploadTicket.url, zipBuffer, {
57
- headers: {
58
- "Content-length": size,
59
- "Content-Type": "application/zip"
60
- }
61
- });
62
- log("Fetching Git info...");
63
- const gitInfo = await getCWDGitInfo();
64
- log("Computing file hash...");
65
- const zipFileMd5 = await getFileHash(tmpZipFile);
66
- const uploadDetails = {
67
- ...gitInfo,
68
- zipFileMd5
69
- };
70
- log("Starting jobs from upload...");
71
- const jobs = await startJobsFromUpload(uploadTicket.id, uploadDetails);
72
- log("Cleaning up temporary zip file...");
73
- fs__default.unlinkSync(tmpZipFile);
74
- log("Job submission complete.");
75
- return jobs;
76
- }
77
- const useShip = () => {
78
- return useMutation({
79
- mutationFn: ship,
80
- onSuccess: async (data) => {
81
- queryClient.invalidateQueries({
82
- queryKey: cacheKeys.jobs({ projectId: data[0].project.id, pageNumber: 0 })
83
- });
84
- }
85
- });
86
- };
87
-
88
- const JobProgress = (props) => {
89
- const prevJobStatus = useRef(props.job.status);
90
- const handleJobUpdate = (job) => {
91
- const completed = [JobStatus.COMPLETED, JobStatus.FAILED];
92
- const wasRunning = !completed.includes(prevJobStatus.current);
93
- if (completed.includes(job.status) && wasRunning) {
94
- props.onComplete();
95
- }
96
- prevJobStatus.current = job.status;
97
- };
98
- const { progress } = useJobWatching({
99
- projectId: props.job.project.id,
100
- jobId: props.job.id,
101
- isWatching: true,
102
- onJobUpdate: handleJobUpdate
103
- });
104
- const label = `${getPlatformName(props.job.type)} build progress...`;
105
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ProgressSpinner, { progress, label, spinnerType: "dots" }) });
106
- };
107
-
108
- export { JobProgress as J, useShip as u };
@@ -1,108 +0,0 @@
1
- import { v4 } from 'uuid';
2
- import axios from 'axios';
3
- import fg from 'fast-glob';
4
- import fs__default from 'fs';
5
- import yazl from 'yazl';
6
- import { useMutation } from '@tanstack/react-query';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-InDf5WSl.js';
8
- import { $ as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, a0 as getNewUploadTicket, a1 as startJobsFromUpload, J as JobStatus } from './index-DdABTtYO.js';
9
- import { f as getFileHash, h as getPlatformName } from './index-wyPoxiTc.js';
10
- import { g as getCWDGitInfo } from './git-DREGq-jc.js';
11
- import { jsx, Fragment } from 'react/jsx-runtime';
12
- import { useRef } from 'react';
13
- import 'ink';
14
- import './Command-DxmQn3XT.js';
15
- import 'ink-spinner';
16
- import 'crypto-js';
17
- import 'luxon';
18
- import '@inkjs/ui';
19
- import 'open';
20
- import { P as ProgressSpinner } from './ProgressSpinner-6pw1T8Iw.js';
21
- import 'qrcode';
22
- import 'string-length';
23
- import 'strip-ansi';
24
- import 'socket.io-client';
25
- import { u as useJobWatching } from './useJobWatching-P5oC7mNB.js';
26
-
27
- async function ship({ command, log = () => {
28
- } }) {
29
- log("Fetching project config...");
30
- const projectConfig = await command.getProjectConfig();
31
- if (!projectConfig.project) throw new Error("No project found in project config");
32
- log("Retrieving file globs...");
33
- const shippedFilesGlobs = projectConfig.shippedFilesGlobs || DEFAULT_SHIPPED_FILES_GLOBS;
34
- const ignoredFilesGlobs = projectConfig.ignoredFilesGlobs || DEFAULT_IGNORED_FILES_GLOBS;
35
- log("Finding files to include in zip...");
36
- const files = await fg(shippedFilesGlobs, { dot: true, ignore: ignoredFilesGlobs });
37
- log(`Found ${files.length} files, adding to zip...`);
38
- const zipFile = new yazl.ZipFile();
39
- for (const file of files) {
40
- zipFile.addFile(file, file);
41
- }
42
- const outputZipToFile = (zip, fileName) => new Promise((resolve) => {
43
- const outputStream = fs__default.createWriteStream(fileName);
44
- zip.outputStream.pipe(outputStream).on("close", () => resolve());
45
- zip.end();
46
- });
47
- const tmpZipFile = `${process.cwd()}/shipthis-${v4()}.zip`;
48
- log(`Creating zip file: ${tmpZipFile}`);
49
- await outputZipToFile(zipFile, tmpZipFile);
50
- log("Reading zip file buffer...");
51
- const zipBuffer = fs__default.readFileSync(tmpZipFile);
52
- const { size } = fs__default.statSync(tmpZipFile);
53
- log("Requesting upload ticket...");
54
- const uploadTicket = await getNewUploadTicket(projectConfig.project.id);
55
- log("Uploading zip file...");
56
- await axios.put(uploadTicket.url, zipBuffer, {
57
- headers: {
58
- "Content-length": size,
59
- "Content-Type": "application/zip"
60
- }
61
- });
62
- log("Fetching Git info...");
63
- const gitInfo = await getCWDGitInfo();
64
- log("Computing file hash...");
65
- const zipFileMd5 = await getFileHash(tmpZipFile);
66
- const uploadDetails = {
67
- ...gitInfo,
68
- zipFileMd5
69
- };
70
- log("Starting jobs from upload...");
71
- const jobs = await startJobsFromUpload(uploadTicket.id, uploadDetails);
72
- log("Cleaning up temporary zip file...");
73
- fs__default.unlinkSync(tmpZipFile);
74
- log("Job submission complete.");
75
- return jobs;
76
- }
77
- const useShip = () => {
78
- return useMutation({
79
- mutationFn: ship,
80
- onSuccess: async (data) => {
81
- queryClient.invalidateQueries({
82
- queryKey: cacheKeys.jobs({ projectId: data[0].project.id, pageNumber: 0 })
83
- });
84
- }
85
- });
86
- };
87
-
88
- const JobProgress = (props) => {
89
- const prevJobStatus = useRef(props.job.status);
90
- const handleJobUpdate = (job) => {
91
- const completed = [JobStatus.COMPLETED, JobStatus.FAILED];
92
- const wasRunning = !completed.includes(prevJobStatus.current);
93
- if (completed.includes(job.status) && wasRunning) {
94
- props.onComplete();
95
- }
96
- prevJobStatus.current = job.status;
97
- };
98
- const { progress } = useJobWatching({
99
- projectId: props.job.project.id,
100
- jobId: props.job.id,
101
- isWatching: true,
102
- onJobUpdate: handleJobUpdate
103
- });
104
- const label = `${getPlatformName(props.job.type)} build progress...`;
105
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ProgressSpinner, { progress, label, spinnerType: "dots" }) });
106
- };
107
-
108
- export { JobProgress as J, useShip as u };
@@ -1,109 +0,0 @@
1
- import { v4 } from 'uuid';
2
- import axios from 'axios';
3
- import fg from 'fast-glob';
4
- import fs__default from 'fs';
5
- import yazl from 'yazl';
6
- import { useMutation } from '@tanstack/react-query';
7
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-B_ekRewZ.js';
8
- import { _ as queryClient, x as DEFAULT_SHIPPED_FILES_GLOBS, w as DEFAULT_IGNORED_FILES_GLOBS, $ as getNewUploadTicket, a0 as startJobsFromUpload, J as JobStatus } from './index-C9734Cj2.js';
9
- import { e as getFileHash, f as getPlatformName } from './index-DxHPjZav.js';
10
- import { g as getCWDGitInfo } from './git-DREGq-jc.js';
11
- import { jsx, Fragment } from 'react/jsx-runtime';
12
- import { useRef } from 'react';
13
- import 'ink';
14
- import './Command-Dn0P_KOV.js';
15
- import 'ink-spinner';
16
- import 'crypto-js';
17
- import 'luxon';
18
- import '@inkjs/ui';
19
- import 'open';
20
- import { P as ProgressSpinner } from './ProgressSpinner-6pw1T8Iw.js';
21
- import 'qrcode';
22
- import 'string-length';
23
- import 'strip-ansi';
24
- import 'socket.io-client';
25
- import { u as useJobWatching } from './useJobWatching-BIG6fnTN.js';
26
- import './wizard-ChPegnMW.js';
27
-
28
- async function ship({ command, log = () => {
29
- } }) {
30
- log("Fetching project config...");
31
- const projectConfig = await command.getProjectConfig();
32
- if (!projectConfig.project) throw new Error("No project found in project config");
33
- log("Retrieving file globs...");
34
- const shippedFilesGlobs = projectConfig.shippedFilesGlobs || DEFAULT_SHIPPED_FILES_GLOBS;
35
- const ignoredFilesGlobs = projectConfig.ignoredFilesGlobs || DEFAULT_IGNORED_FILES_GLOBS;
36
- log("Finding files to include in zip...");
37
- const files = await fg(shippedFilesGlobs, { dot: true, ignore: ignoredFilesGlobs });
38
- log(`Found ${files.length} files, adding to zip...`);
39
- const zipFile = new yazl.ZipFile();
40
- for (const file of files) {
41
- zipFile.addFile(file, file);
42
- }
43
- const outputZipToFile = (zip, fileName) => new Promise((resolve) => {
44
- const outputStream = fs__default.createWriteStream(fileName);
45
- zip.outputStream.pipe(outputStream).on("close", () => resolve());
46
- zip.end();
47
- });
48
- const tmpZipFile = `${process.cwd()}/shipthis-${v4()}.zip`;
49
- log(`Creating zip file: ${tmpZipFile}`);
50
- await outputZipToFile(zipFile, tmpZipFile);
51
- log("Reading zip file buffer...");
52
- const zipBuffer = fs__default.readFileSync(tmpZipFile);
53
- const { size } = fs__default.statSync(tmpZipFile);
54
- log("Requesting upload ticket...");
55
- const uploadTicket = await getNewUploadTicket(projectConfig.project.id);
56
- log("Uploading zip file...");
57
- await axios.put(uploadTicket.url, zipBuffer, {
58
- headers: {
59
- "Content-length": size,
60
- "Content-Type": "application/zip"
61
- }
62
- });
63
- log("Fetching Git info...");
64
- const gitInfo = await getCWDGitInfo();
65
- log("Computing file hash...");
66
- const zipFileMd5 = await getFileHash(tmpZipFile);
67
- const uploadDetails = {
68
- ...gitInfo,
69
- zipFileMd5
70
- };
71
- log("Starting jobs from upload...");
72
- const jobs = await startJobsFromUpload(uploadTicket.id, uploadDetails);
73
- log("Cleaning up temporary zip file...");
74
- fs__default.unlinkSync(tmpZipFile);
75
- log("Job submission complete.");
76
- return jobs;
77
- }
78
- const useShip = () => {
79
- return useMutation({
80
- mutationFn: ship,
81
- onSuccess: async (data) => {
82
- queryClient.invalidateQueries({
83
- queryKey: cacheKeys.jobs({ projectId: data[0].project.id, pageNumber: 0 })
84
- });
85
- }
86
- });
87
- };
88
-
89
- const JobProgress = (props) => {
90
- const prevJobStatus = useRef(props.job.status);
91
- const handleJobUpdate = (job) => {
92
- const completed = [JobStatus.COMPLETED, JobStatus.FAILED];
93
- const wasRunning = !completed.includes(prevJobStatus.current);
94
- if (completed.includes(job.status) && wasRunning) {
95
- props.onComplete();
96
- }
97
- prevJobStatus.current = job.status;
98
- };
99
- const { progress } = useJobWatching({
100
- projectId: props.job.project.id,
101
- jobId: props.job.id,
102
- isWatching: true,
103
- onJobUpdate: handleJobUpdate
104
- });
105
- const label = `${getPlatformName(props.job.type)} build progress...`;
106
- return /* @__PURE__ */ jsx(Fragment, { children: /* @__PURE__ */ jsx(ProgressSpinner, { progress, label, spinnerType: "dots" }) });
107
- };
108
-
109
- export { JobProgress as J, useShip as u };