shipthis 0.1.11 → 0.1.13

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 (190) hide show
  1. package/assets/markdown/ship-failure.md +13 -0
  2. package/assets/markdown/ship-success.md +12 -0
  3. package/dist/{AppleBundleIdDetails-DymjrhOZ.js → AppleBundleIdDetails-DxWVnxa5.js} +4 -4
  4. package/dist/{Command-1YAl_0zS.js → Command-zfJ7qIJI.js} +8 -8
  5. package/dist/{CommandGame--SAa3wEL.js → CommandGame-DVsNreSF.js} +1 -1
  6. package/dist/{Create-DIaSKUpl.js → Create-DdF29mIS.js} +3 -3
  7. package/dist/{Import-BIOsf8AA.js → Import-D8ik724M.js} +4 -4
  8. package/dist/{JobProgress-biiLhigg.js → JobProgress-D1Pe4YJc.js} +10 -7
  9. package/dist/JobStatusTable-D-daiV-I.js +203 -0
  10. package/dist/{ProjectCredentialsTable-Ch8022rs.js → ProjectCredentialsTable-Ch2s5qF1.js} +2 -2
  11. package/dist/{UserCredentialsTable-CeJS3_hd.js → UserCredentialsTable-DzyAHhLB.js} +3 -3
  12. package/dist/{baseAppleCommand-1isaFxCQ.js → baseAppleCommand-BGXyWK-R.js} +1 -1
  13. package/dist/{baseGameAndroidCommand-6vsMpE7a.js → baseGameAndroidCommand-mdFhxanf.js} +2 -2
  14. package/dist/commands/apple/apiKey/create.js +7 -7
  15. package/dist/commands/apple/apiKey/export.js +6 -6
  16. package/dist/commands/apple/apiKey/import.js +6 -6
  17. package/dist/commands/apple/apiKey/status.js +5 -5
  18. package/dist/commands/apple/certificate/create.js +7 -7
  19. package/dist/commands/apple/certificate/export.js +6 -6
  20. package/dist/commands/apple/certificate/import.js +6 -6
  21. package/dist/commands/apple/certificate/status.js +5 -5
  22. package/dist/commands/apple/login.js +2 -2
  23. package/dist/commands/apple/status.js +4 -4
  24. package/dist/commands/dashboard.js +1 -1
  25. package/dist/commands/game/android/apiKey/connect.js +9 -9
  26. package/dist/commands/game/android/apiKey/create.js +10 -10
  27. package/dist/commands/game/android/apiKey/export.js +7 -7
  28. package/dist/commands/game/android/apiKey/import.js +9 -9
  29. package/dist/commands/game/android/apiKey/invite.js +4 -4
  30. package/dist/commands/game/android/apiKey/status.js +7 -7
  31. package/dist/commands/game/android/keyStore/create.js +8 -8
  32. package/dist/commands/game/android/keyStore/export.js +6 -6
  33. package/dist/commands/game/android/keyStore/import.js +9 -9
  34. package/dist/commands/game/android/keyStore/status.js +6 -6
  35. package/dist/commands/game/android/status.js +4 -4
  36. package/dist/commands/game/build/download.js +4 -4
  37. package/dist/commands/game/build/list.js +5 -5
  38. package/dist/commands/game/create.js +2 -2
  39. package/dist/commands/game/details.js +4 -4
  40. package/dist/commands/game/export.js +1 -1
  41. package/dist/commands/game/ios/app/addTester.js +5 -5
  42. package/dist/commands/game/ios/app/create.js +4 -4
  43. package/dist/commands/game/ios/app/status.js +7 -7
  44. package/dist/commands/game/ios/app/sync.js +5 -5
  45. package/dist/commands/game/ios/profile/create.js +7 -7
  46. package/dist/commands/game/ios/profile/export.js +6 -6
  47. package/dist/commands/game/ios/profile/import.js +6 -6
  48. package/dist/commands/game/ios/profile/status.js +6 -6
  49. package/dist/commands/game/ios/status.js +7 -7
  50. package/dist/commands/game/ios/wizard.js +2 -2
  51. package/dist/commands/game/job/list.js +4 -4
  52. package/dist/commands/game/job/status.js +17 -131
  53. package/dist/commands/game/list.js +4 -4
  54. package/dist/commands/game/ship.js +74 -19
  55. package/dist/commands/game/status.js +4 -4
  56. package/dist/commands/game/wizard.js +14 -14
  57. package/dist/commands/internal/fastlane.js +1 -1
  58. package/dist/commands/internal/readme.js +1 -1
  59. package/dist/commands/login.js +2 -2
  60. package/dist/commands/status.js +4 -4
  61. package/dist/{export-BDxGDZdh.js → export-Cin4rLWR.js} +1 -1
  62. package/dist/{import-v54PM_Qg.js → import-CXTv9E84.js} +1 -1
  63. package/dist/{index-BDFKyTPb.js → index-B4v66AKo.js} +1 -1
  64. package/dist/{index-ByOvCs4O.js → index-BVvcTBnj.js} +4 -4
  65. package/dist/{index-m4HTrJ5J.js → index-Cx_2qTdS.js} +7 -7
  66. package/dist/{index-BB7X1Pqp.js → index-Dhx6FAHt.js} +1 -1
  67. package/dist/{index-wyPoxiTc.js → index-Dj-chiHz.js} +2 -2
  68. package/dist/{upload-2naN75Zu.js → upload-DZCIfnwf.js} +1 -1
  69. package/dist/{useAndroidServiceAccountTestResult-BDc7XpKE.js → useAndroidServiceAccountTestResult-L4oozjag.js} +1 -1
  70. package/dist/{useAppleApp-DgE0wEaq.js → useAppleApp-DcSr-q-w.js} +1 -1
  71. package/dist/{useAppleBundleId-BNI8swhC.js → useAppleBundleId-BnJVPVIz.js} +1 -1
  72. package/dist/{useJobWatching-BIG6fnTN.js → useJobWatching-DS0qHqPA.js} +3 -3
  73. package/dist/{useProjectCredentials-B5ZmpIxL.js → useProjectCredentials-CI_AoXmH.js} +3 -3
  74. package/dist/{useWebSocket-Bep1zAVG.js → useWebSocket-ZEZvtpT_.js} +1 -1
  75. package/npm-shrinkwrap.json +2 -2
  76. package/oclif.manifest.json +141 -223
  77. package/package.json +1 -1
  78. package/dist/AppleBundleIdDetails-C0XqjxKJ.js +0 -72
  79. package/dist/AppleBundleIdDetails-CjP5y0cj.js +0 -74
  80. package/dist/AppleBundleIdDetails-CztWY_mT.js +0 -73
  81. package/dist/AppleBundleIdDetails-DKeSAte9.js +0 -73
  82. package/dist/AppleBundleIdDetails-Df30MPFC.js +0 -73
  83. package/dist/AppleBundleIdDetails-Dxo99Sgu.js +0 -72
  84. package/dist/Command-BiB9MqbJ.js +0 -204
  85. package/dist/Command-Cl-JfhTy.js +0 -203
  86. package/dist/Command-D6rWEZRM.js +0 -204
  87. package/dist/Command-Dn0P_KOV.js +0 -205
  88. package/dist/Command-DxmQn3XT.js +0 -204
  89. package/dist/Command-YJJp90ru.js +0 -204
  90. package/dist/CommandGame-C1oTlfdb.js +0 -8
  91. package/dist/CommandGame-CZUx_VQu.js +0 -8
  92. package/dist/CommandGame-DspVLTPZ.js +0 -8
  93. package/dist/CommandGame-cPaTk1wh.js +0 -8
  94. package/dist/CommandGame-k04mHiDl.js +0 -8
  95. package/dist/CommandGame-pI9VXKxi.js +0 -8
  96. package/dist/CreateKeystore-BnNdeDUa.js +0 -57
  97. package/dist/CreateKeystore-BqJdpvsI.js +0 -56
  98. package/dist/CreateKeystore-Cf-nsK_M.js +0 -56
  99. package/dist/CreateKeystore-D8uTRamD.js +0 -56
  100. package/dist/CreateKeystore-Dm0KVh85.js +0 -56
  101. package/dist/CreateKeystore-g1z6DsU5.js +0 -56
  102. package/dist/JobProgress-CPkWVSlH.js +0 -108
  103. package/dist/JobProgress-Dk0UoNah.js +0 -108
  104. package/dist/JobProgress-W0QQR49T.js +0 -108
  105. package/dist/JobProgress-jmGAzvxS.js +0 -108
  106. package/dist/JobStatusTable-BA_q-kgE.js +0 -75
  107. package/dist/JobStatusTable-ByW0bN6c.js +0 -75
  108. package/dist/JobStatusTable-CgaTS7jS.js +0 -75
  109. package/dist/JobStatusTable-DqoppRro.js +0 -75
  110. package/dist/JobStatusTable-q4atKzhu.js +0 -75
  111. package/dist/ProjectCredentialsTable-8kXt7sTS.js +0 -37
  112. package/dist/ProjectCredentialsTable-BIWBAXCh.js +0 -37
  113. package/dist/ProjectCredentialsTable-DRMK_SNw.js +0 -37
  114. package/dist/ProjectCredentialsTable-DfkpvTf8.js +0 -37
  115. package/dist/UserCredentialsTable-DMh8Wpy7.js +0 -82
  116. package/dist/UserCredentialsTable-DgHZJSHG.js +0 -82
  117. package/dist/UserCredentialsTable-TflQvTEP.js +0 -82
  118. package/dist/UserCredentialsTable-ysmM5dlV.js +0 -82
  119. package/dist/baseAppleCommand-B3WQtlx-.js +0 -10
  120. package/dist/baseAppleCommand-B9wyIqdL.js +0 -10
  121. package/dist/baseAppleCommand-D-G4h8zQ.js +0 -10
  122. package/dist/baseAppleCommand-DpasCbje.js +0 -10
  123. package/dist/baseGameAndroidCommand-B-CFhPnE.js +0 -43
  124. package/dist/baseGameAndroidCommand-B3LRG701.js +0 -43
  125. package/dist/baseGameAndroidCommand-C9BuS2Sr.js +0 -43
  126. package/dist/baseGameAndroidCommand-DD0H8iy-.js +0 -43
  127. package/dist/commands/game/android/wizard.js +0 -509
  128. package/dist/export-B_F6vXIK.js +0 -36
  129. package/dist/export-BiLHgSJ9.js +0 -36
  130. package/dist/export-C_lu1FD9.js +0 -36
  131. package/dist/export-rS9o87LD.js +0 -36
  132. package/dist/import-7T3J63j2.js +0 -38
  133. package/dist/import-Brg3zYmT.js +0 -38
  134. package/dist/import-BrlJuE2Z.js +0 -38
  135. package/dist/import-CxNikF1c.js +0 -38
  136. package/dist/import-DPbg8WvS.js +0 -38
  137. package/dist/index-B5XHQfs2.js +0 -122
  138. package/dist/index-B6V7vGOj.js +0 -136
  139. package/dist/index-BL-1G60K.js +0 -135
  140. package/dist/index-BQRxiyqn.js +0 -693
  141. package/dist/index-BQnkBr1Q.js +0 -136
  142. package/dist/index-BX9h2vPV.js +0 -123
  143. package/dist/index-BjGSEqP5.js +0 -135
  144. package/dist/index-BuZmCvZh.js +0 -24
  145. package/dist/index-Bv3x8c78.js +0 -693
  146. package/dist/index-BzffuqPa.js +0 -24
  147. package/dist/index-C9734Cj2.js +0 -693
  148. package/dist/index-CKYExssR.js +0 -136
  149. package/dist/index-CgBgZUkL.js +0 -144
  150. package/dist/index-Cz_KLwWf.js +0 -136
  151. package/dist/index-D6BH5UAM.js +0 -135
  152. package/dist/index-DBrQda8r.js +0 -122
  153. package/dist/index-DE2Hvx2o.js +0 -122
  154. package/dist/index-DOgF4dFK.js +0 -24
  155. package/dist/index-DdABTtYO.js +0 -693
  156. package/dist/index-DgbQBx6x.js +0 -122
  157. package/dist/index-DxHPjZav.js +0 -136
  158. package/dist/index-X__XH_Fd.js +0 -144
  159. package/dist/index-o9Y-84Rj.js +0 -122
  160. package/dist/upload-CMo3hUhl.js +0 -60
  161. package/dist/upload-Cx71802W.js +0 -60
  162. package/dist/upload-DvAE1vDq.js +0 -60
  163. package/dist/upload-LXRr4pMa.js +0 -60
  164. package/dist/useAndroidServiceAccountTestResult-B_ekRewZ.js +0 -52
  165. package/dist/useAndroidServiceAccountTestResult-Ce1x0Eh8.js +0 -52
  166. package/dist/useAndroidServiceAccountTestResult-D_30xIJA.js +0 -52
  167. package/dist/useAndroidServiceAccountTestResult-InDf5WSl.js +0 -52
  168. package/dist/useAppleApp-BEtLQa7n.js +0 -32
  169. package/dist/useAppleApp-CApC0-4Q.js +0 -32
  170. package/dist/useAppleApp-CETIcsJS.js +0 -32
  171. package/dist/useAppleApp-DnSjUfSs.js +0 -32
  172. package/dist/useAppleBundleId-DXbMDRLd.js +0 -64
  173. package/dist/useAppleBundleId-DtLODy3p.js +0 -64
  174. package/dist/useAppleBundleId-SmzY6rkm.js +0 -64
  175. package/dist/useAppleBundleId-gPBzJwQg.js +0 -64
  176. package/dist/useJobWatching-BcBJ5dy1.js +0 -43
  177. package/dist/useJobWatching-Bz1e6xOv.js +0 -43
  178. package/dist/useJobWatching-Cp-CYd90.js +0 -45
  179. package/dist/useJobWatching-D-YzSlK8.js +0 -45
  180. package/dist/useJobWatching-I_A3b36f.js +0 -45
  181. package/dist/useJobWatching-P5oC7mNB.js +0 -45
  182. package/dist/useProjectCredentials-BRffcsO3.js +0 -54
  183. package/dist/useProjectCredentials-CKngz2rd.js +0 -54
  184. package/dist/useProjectCredentials-EapDge1I.js +0 -54
  185. package/dist/useProjectCredentials-vjedBbKl.js +0 -54
  186. package/dist/useWebSocket-CBqsjHbt.js +0 -36
  187. package/dist/useWebSocket-D8PojLtx.js +0 -36
  188. package/dist/useWebSocket-DoImIdTy.js +0 -36
  189. package/dist/useWebSocket-rBLiZsKb.js +0 -36
  190. package/dist/wizard-ChPegnMW.js +0 -133
@@ -1,64 +0,0 @@
1
- import { useQuery } from '@tanstack/react-query';
2
- import { e as BundleId, q as getGodotProjectCapabilities, P as Platform, G as GODOT_CAPABILITIES, r as CapabilityType } from './index-C9734Cj2.js';
3
-
4
- async function getBundleIdCapabilities(bundleId) {
5
- const current = await bundleId.getBundleIdCapabilitiesAsync();
6
- let existing = [];
7
- for (const capability of current) {
8
- const capabilityType = Object.values(CapabilityType).find((c) => capability.isType(c));
9
- if (capabilityType) {
10
- existing.push(capabilityType);
11
- }
12
- }
13
- return existing;
14
- }
15
- const fetchBundleId = async ({ ctx, iosBundleId }) => {
16
- const empty = {
17
- bundleId: null,
18
- bundleIdSummary: null,
19
- capabilities: null,
20
- capabilitiesTable: null,
21
- projectCapabilities: null,
22
- shouldSyncCapabilities: null
23
- };
24
- if (!iosBundleId) return empty;
25
- const bundleId = await BundleId.findAsync(ctx, {
26
- identifier: iosBundleId
27
- });
28
- if (!bundleId) return empty;
29
- const bundleIdCapabilities = await getBundleIdCapabilities(bundleId);
30
- const projectCapabilities = getGodotProjectCapabilities(Platform.IOS);
31
- const capabilitiesTable = GODOT_CAPABILITIES.map((gc) => {
32
- const isEnabledInBundle = bundleIdCapabilities.includes(gc.type);
33
- const isEnabledInProject = projectCapabilities.includes(gc.type);
34
- const isCorrectlyConfigured = isEnabledInBundle === isEnabledInProject;
35
- return {
36
- name: gc.name,
37
- isEnabledInBundle,
38
- isEnabledInProject,
39
- isCorrectlyConfigured
40
- };
41
- });
42
- return {
43
- bundleId,
44
- bundleIdSummary: {
45
- id: bundleId.id,
46
- identifier: bundleId.attributes.identifier,
47
- name: bundleId.attributes.name,
48
- platform: bundleId.attributes.platform
49
- },
50
- capabilities: bundleIdCapabilities,
51
- capabilitiesTable,
52
- projectCapabilities,
53
- shouldSyncCapabilities: !capabilitiesTable.every((c) => c.isCorrectlyConfigured)
54
- };
55
- };
56
- const useAppleBundleId = (props) => {
57
- const queryResult = useQuery({
58
- queryKey: ["appleBundleId", props.iosBundleId],
59
- queryFn: () => fetchBundleId(props)
60
- });
61
- return queryResult;
62
- };
63
-
64
- export { fetchBundleId as f, useAppleBundleId as u };
@@ -1,43 +0,0 @@
1
- import { u as useJob } from './Command-1YAl_0zS.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-DoImIdTy.js';
4
- import { N as castJobDates, O as castObjectDates } from './index-BQRxiyqn.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- return {
37
- isLoading,
38
- data,
39
- progress
40
- };
41
- }
42
-
43
- export { useJobWatching as u };
@@ -1,43 +0,0 @@
1
- import { u as useJob } from './Command-Cl-JfhTy.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-DoImIdTy.js';
4
- import { N as castJobDates, O as castObjectDates } from './index-BQRxiyqn.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- return {
37
- isLoading,
38
- data,
39
- progress
40
- };
41
- }
42
-
43
- export { useJobWatching as u };
@@ -1,45 +0,0 @@
1
- import { u as useJob } from './Command-YJJp90ru.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-rBLiZsKb.js';
4
- import { E as castJobDates, F as castObjectDates } from './index-Bv3x8c78.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- const stage = mostRecentLog?.stage || null;
37
- return {
38
- isLoading,
39
- data,
40
- progress,
41
- stage
42
- };
43
- }
44
-
45
- export { useJobWatching as u };
@@ -1,45 +0,0 @@
1
- import { u as useJob } from './Command-D6rWEZRM.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-CBqsjHbt.js';
4
- import { E as castJobDates, F as castObjectDates } from './index-BB7X1Pqp.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- const stage = mostRecentLog?.stage || null;
37
- return {
38
- isLoading,
39
- data,
40
- progress,
41
- stage
42
- };
43
- }
44
-
45
- export { useJobWatching as u };
@@ -1,45 +0,0 @@
1
- import { u as useJob } from './Command-BiB9MqbJ.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-CBqsjHbt.js';
4
- import { E as castJobDates, F as castObjectDates } from './index-BB7X1Pqp.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- const stage = mostRecentLog?.stage || null;
37
- return {
38
- isLoading,
39
- data,
40
- progress,
41
- stage
42
- };
43
- }
44
-
45
- export { useJobWatching as u };
@@ -1,45 +0,0 @@
1
- import { u as useJob } from './Command-DxmQn3XT.js';
2
- import { useState, useEffect } from 'react';
3
- import { u as useWebSocket } from './useWebSocket-D8PojLtx.js';
4
- import { K as castJobDates, M as castObjectDates } from './index-DdABTtYO.js';
5
-
6
- function useJobWatching({ projectId, jobId, isWatching, onJobUpdate }) {
7
- const [websocketJob, setWebsocketJob] = useState(null);
8
- const [mostRecentLog, setMostRecentLog] = useState(null);
9
- const jobStatusListener = {
10
- getPattern: () => [`project.${projectId}:job:created`, `project.${projectId}:job:updated`],
11
- eventHandler: async (pattern, rawJob) => {
12
- if (rawJob.id !== jobId) return;
13
- const job2 = castJobDates(rawJob);
14
- setWebsocketJob(job2);
15
- if (onJobUpdate) onJobUpdate(job2);
16
- }
17
- };
18
- const jobProgressListener = {
19
- getPattern: () => `project.${projectId}:job.${jobId}:log`,
20
- eventHandler: async (pattern, rawLogEntry) => {
21
- const logEntry = castObjectDates(rawLogEntry, ["sentAt", "createdAt"]);
22
- setMostRecentLog(logEntry);
23
- }
24
- };
25
- useWebSocket(isWatching ? [jobStatusListener, jobProgressListener] : []);
26
- const { isLoading, data: job } = useJob({
27
- projectId,
28
- jobId
29
- });
30
- useEffect(() => {
31
- setWebsocketJob(null);
32
- }, [jobId, projectId, isWatching, job]);
33
- const fetchedJob = job ? job : null;
34
- const data = websocketJob ? websocketJob : fetchedJob;
35
- const progress = mostRecentLog?.progress || null;
36
- const stage = mostRecentLog?.stage || null;
37
- return {
38
- isLoading,
39
- data,
40
- progress,
41
- stage
42
- };
43
- }
44
-
45
- export { useJobWatching as u };
@@ -1,54 +0,0 @@
1
- import axios from 'axios';
2
- import { useQuery } from '@tanstack/react-query';
3
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-InDf5WSl.js';
4
- import { b as getShortDate, p as getAuthedHeaders, q as API_URL, H as castArrayObjectDates } from './index-DdABTtYO.js';
5
- import { g as getShortUUID } from './index-wyPoxiTc.js';
6
-
7
- async function queryProjectCredentials({
8
- projectId,
9
- ...pageAndSortParams
10
- }) {
11
- try {
12
- const headers = getAuthedHeaders();
13
- const url = `${API_URL}/projects/${projectId}/credentials`;
14
- const response = await axios.get(url, { headers, params: pageAndSortParams });
15
- return {
16
- ...response.data,
17
- data: castArrayObjectDates(response.data.data)
18
- };
19
- } catch (error) {
20
- console.warn("queryProjectCredentials Error", error);
21
- throw error;
22
- }
23
- }
24
- function getProjectCredentialSummary(credential) {
25
- return {
26
- id: getShortUUID(credential.id),
27
- type: credential.type,
28
- serial: credential.serialNumber.substring(0, 30) + (credential.serialNumber.length > 30 ? "\u2026" : ""),
29
- isActive: credential.isActive,
30
- createdAt: getShortDate(credential.createdAt)
31
- };
32
- }
33
- const useProjectCredentials = ({
34
- platform,
35
- type,
36
- ...fetchProps
37
- }) => {
38
- const queryResult = useQuery({
39
- queryKey: cacheKeys.projectCredentials(fetchProps),
40
- queryFn: async () => queryProjectCredentials(fetchProps),
41
- select: (data) => {
42
- if (!(platform || type)) return data;
43
- return {
44
- ...data,
45
- data: data.data.filter((credential) => {
46
- return (!platform || credential.platform === platform) && (!type || credential.type === type);
47
- })
48
- };
49
- }
50
- });
51
- return queryResult;
52
- };
53
-
54
- export { getProjectCredentialSummary as g, useProjectCredentials as u };
@@ -1,54 +0,0 @@
1
- import axios from 'axios';
2
- import { useQuery } from '@tanstack/react-query';
3
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-BDc7XpKE.js';
4
- import { b as getShortDate, p as getAuthedHeaders, q as API_URL, K as castArrayObjectDates } from './index-Bv3x8c78.js';
5
- import { g as getShortUUID } from './index-BQnkBr1Q.js';
6
-
7
- async function queryProjectCredentials({
8
- projectId,
9
- ...pageAndSortParams
10
- }) {
11
- try {
12
- const headers = getAuthedHeaders();
13
- const url = `${API_URL}/projects/${projectId}/credentials`;
14
- const response = await axios.get(url, { headers, params: pageAndSortParams });
15
- return {
16
- ...response.data,
17
- data: castArrayObjectDates(response.data.data)
18
- };
19
- } catch (error) {
20
- console.warn("queryProjectCredentials Error", error);
21
- throw error;
22
- }
23
- }
24
- function getProjectCredentialSummary(credential) {
25
- return {
26
- id: getShortUUID(credential.id),
27
- type: credential.type,
28
- serial: credential.serialNumber.substring(0, 30) + (credential.serialNumber.length > 30 ? "\u2026" : ""),
29
- isActive: credential.isActive,
30
- createdAt: getShortDate(credential.createdAt)
31
- };
32
- }
33
- const useProjectCredentials = ({
34
- platform,
35
- type,
36
- ...fetchProps
37
- }) => {
38
- const queryResult = useQuery({
39
- queryKey: cacheKeys.projectCredentials(fetchProps),
40
- queryFn: async () => queryProjectCredentials(fetchProps),
41
- select: (data) => {
42
- if (!(platform || type)) return data;
43
- return {
44
- ...data,
45
- data: data.data.filter((credential) => {
46
- return (!platform || credential.platform === platform) && (!type || credential.type === type);
47
- })
48
- };
49
- }
50
- });
51
- return queryResult;
52
- };
53
-
54
- export { getProjectCredentialSummary as g, useProjectCredentials as u };
@@ -1,54 +0,0 @@
1
- import axios from 'axios';
2
- import { useQuery } from '@tanstack/react-query';
3
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-B_ekRewZ.js';
4
- import { b as getShortDate, o as getAuthedHeaders, p as API_URL, M as castArrayObjectDates } from './index-C9734Cj2.js';
5
- import { g as getShortUUID } from './index-DxHPjZav.js';
6
-
7
- async function queryProjectCredentials({
8
- projectId,
9
- ...pageAndSortParams
10
- }) {
11
- try {
12
- const headers = getAuthedHeaders();
13
- const url = `${API_URL}/projects/${projectId}/credentials`;
14
- const response = await axios.get(url, { headers, params: pageAndSortParams });
15
- return {
16
- ...response.data,
17
- data: castArrayObjectDates(response.data.data)
18
- };
19
- } catch (error) {
20
- console.warn("queryProjectCredentials Error", error);
21
- throw error;
22
- }
23
- }
24
- function getProjectCredentialSummary(credential) {
25
- return {
26
- id: getShortUUID(credential.id),
27
- type: credential.type,
28
- serial: credential.serialNumber.substring(0, 30) + (credential.serialNumber.length > 30 ? "\u2026" : ""),
29
- isActive: credential.isActive,
30
- createdAt: getShortDate(credential.createdAt)
31
- };
32
- }
33
- const useProjectCredentials = ({
34
- platform,
35
- type,
36
- ...fetchProps
37
- }) => {
38
- const queryResult = useQuery({
39
- queryKey: cacheKeys.projectCredentials(fetchProps),
40
- queryFn: async () => queryProjectCredentials(fetchProps),
41
- select: (data) => {
42
- if (!(platform || type)) return data;
43
- return {
44
- ...data,
45
- data: data.data.filter((credential) => {
46
- return (!platform || credential.platform === platform) && (!type || credential.type === type);
47
- })
48
- };
49
- }
50
- });
51
- return queryResult;
52
- };
53
-
54
- export { getProjectCredentialSummary as g, useProjectCredentials as u };
@@ -1,54 +0,0 @@
1
- import axios from 'axios';
2
- import { useQuery } from '@tanstack/react-query';
3
- import { c as cacheKeys } from './useAndroidServiceAccountTestResult-Ce1x0Eh8.js';
4
- import { b as getShortDate, p as getAuthedHeaders, q as API_URL, K as castArrayObjectDates } from './index-BB7X1Pqp.js';
5
- import { g as getShortUUID } from './index-Cz_KLwWf.js';
6
-
7
- async function queryProjectCredentials({
8
- projectId,
9
- ...pageAndSortParams
10
- }) {
11
- try {
12
- const headers = getAuthedHeaders();
13
- const url = `${API_URL}/projects/${projectId}/credentials`;
14
- const response = await axios.get(url, { headers, params: pageAndSortParams });
15
- return {
16
- ...response.data,
17
- data: castArrayObjectDates(response.data.data)
18
- };
19
- } catch (error) {
20
- console.warn("queryProjectCredentials Error", error);
21
- throw error;
22
- }
23
- }
24
- function getProjectCredentialSummary(credential) {
25
- return {
26
- id: getShortUUID(credential.id),
27
- type: credential.type,
28
- serial: credential.serialNumber.substring(0, 30) + (credential.serialNumber.length > 30 ? "\u2026" : ""),
29
- isActive: credential.isActive,
30
- createdAt: getShortDate(credential.createdAt)
31
- };
32
- }
33
- const useProjectCredentials = ({
34
- platform,
35
- type,
36
- ...fetchProps
37
- }) => {
38
- const queryResult = useQuery({
39
- queryKey: cacheKeys.projectCredentials(fetchProps),
40
- queryFn: async () => queryProjectCredentials(fetchProps),
41
- select: (data) => {
42
- if (!(platform || type)) return data;
43
- return {
44
- ...data,
45
- data: data.data.filter((credential) => {
46
- return (!platform || credential.platform === platform) && (!type || credential.type === type);
47
- })
48
- };
49
- }
50
- });
51
- return queryResult;
52
- };
53
-
54
- export { getProjectCredentialSummary as g, useProjectCredentials as u };
@@ -1,36 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { io } from 'socket.io-client';
3
- import { N as getAuthToken, W as WS_URL } from './index-BB7X1Pqp.js';
4
-
5
- function useWebSocket(listeners = []) {
6
- const log = () => {
7
- };
8
- useEffect(() => {
9
- if (listeners.length === 0) {
10
- return;
11
- }
12
- const token = getAuthToken();
13
- const socket = io(WS_URL, {
14
- auth: { token },
15
- forceNew: true
16
- });
17
- socket.on("connect", () => log());
18
- for (const listener of listeners) {
19
- const pattern = listener.getPattern();
20
- const bindSocket = (pattern2) => {
21
- const boundListener = listener.eventHandler.bind(listener, pattern2);
22
- socket.on(pattern2, boundListener);
23
- };
24
- if (Array.isArray(pattern)) {
25
- pattern.forEach(bindSocket);
26
- continue;
27
- }
28
- bindSocket(pattern);
29
- }
30
- return () => {
31
- socket.disconnect();
32
- };
33
- }, []);
34
- }
35
-
36
- export { useWebSocket as u };
@@ -1,36 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { io } from 'socket.io-client';
3
- import { N as getAuthToken, W as WS_URL } from './index-DdABTtYO.js';
4
-
5
- function useWebSocket(listeners = []) {
6
- const log = () => {
7
- };
8
- useEffect(() => {
9
- if (listeners.length === 0) {
10
- return;
11
- }
12
- const token = getAuthToken();
13
- const socket = io(WS_URL, {
14
- auth: { token },
15
- forceNew: true
16
- });
17
- socket.on("connect", () => log());
18
- for (const listener of listeners) {
19
- const pattern = listener.getPattern();
20
- const bindSocket = (pattern2) => {
21
- const boundListener = listener.eventHandler.bind(listener, pattern2);
22
- socket.on(pattern2, boundListener);
23
- };
24
- if (Array.isArray(pattern)) {
25
- pattern.forEach(bindSocket);
26
- continue;
27
- }
28
- bindSocket(pattern);
29
- }
30
- return () => {
31
- socket.disconnect();
32
- };
33
- }, []);
34
- }
35
-
36
- export { useWebSocket as u };
@@ -1,36 +0,0 @@
1
- import { useEffect } from 'react';
2
- import { io } from 'socket.io-client';
3
- import { Q as getAuthToken, W as WS_URL } from './index-BQRxiyqn.js';
4
-
5
- function useWebSocket(listeners = []) {
6
- const log = () => {
7
- };
8
- useEffect(() => {
9
- if (listeners.length === 0) {
10
- return;
11
- }
12
- const token = getAuthToken();
13
- const socket = io(WS_URL, {
14
- auth: { token },
15
- forceNew: true
16
- });
17
- socket.on("connect", () => log());
18
- for (const listener of listeners) {
19
- const pattern = listener.getPattern();
20
- const bindSocket = (pattern2) => {
21
- const boundListener = listener.eventHandler.bind(listener, pattern2);
22
- socket.on(pattern2, boundListener);
23
- };
24
- if (Array.isArray(pattern)) {
25
- pattern.forEach(bindSocket);
26
- continue;
27
- }
28
- bindSocket(pattern);
29
- }
30
- return () => {
31
- socket.disconnect();
32
- };
33
- }, []);
34
- }
35
-
36
- export { useWebSocket as u };