shipthis 0.1.47 → 0.1.49
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{AppleBundleIdDetails-DogjUozj.js → AppleBundleIdDetails-4WNaBSGY.js} +7 -7
- package/dist/{Command-CWKSGrtu.js → Command-DuEKI93-.js} +4 -4
- package/dist/{CommandGame-B7EQbgMq.js → CommandGame-BeyPCeC7.js} +2 -2
- package/dist/{Create-DVnctE1E.js → Create-DUl1dfhZ.js} +5 -5
- package/dist/{GameStatus-DbwQmv4w.js → GameStatus-NSIKI7Zi.js} +5 -4
- package/dist/{Import-OqdHUTRB.js → Import-B_2jztJs.js} +6 -6
- package/dist/{JobLogTail-D-IhoJDu.js → JobLogTail-CDGqKKin.js} +5 -5
- package/dist/JobProgress-COP5mbrn.js +394 -0
- package/dist/{JobStatusTable-BrfiBJ2p.js → JobStatusTable-DamWqM1t.js} +6 -4
- package/dist/{ProjectCredentialsTable-DyUiZFwz.js → ProjectCredentialsTable-BXWs0Ler.js} +5 -5
- package/dist/{UserCredentialsTable-DBasvwqB.js → UserCredentialsTable-Cr2NT9gg.js} +5 -5
- package/dist/{baseAppleCommand-Dfzhp492.js → baseAppleCommand-CMBV0P9z.js} +1 -1
- package/dist/{baseCommand-B7pUDBYl.js → baseCommand-C7OdounZ.js} +20 -6
- package/dist/{baseGameAndroidCommand-BhridFzb.js → baseGameAndroidCommand-BE6hsL-c.js} +2 -2
- package/dist/{baseGameCommand-BTC5XD8W.js → baseGameCommand-Bap2bDqP.js} +5 -5
- package/dist/commands/apiKey/create.js +5 -5
- package/dist/commands/apiKey/list.js +6 -6
- package/dist/commands/apiKey/revoke.js +6 -6
- package/dist/commands/apple/apiKey/create.js +9 -9
- package/dist/commands/apple/apiKey/delete.js +7 -7
- package/dist/commands/apple/apiKey/export.js +8 -8
- package/dist/commands/apple/apiKey/import.js +8 -8
- package/dist/commands/apple/apiKey/status.js +7 -7
- package/dist/commands/apple/certificate/create.js +9 -9
- package/dist/commands/apple/certificate/delete.js +7 -7
- package/dist/commands/apple/certificate/export.js +8 -8
- package/dist/commands/apple/certificate/import.js +8 -8
- package/dist/commands/apple/certificate/status.js +7 -7
- package/dist/commands/apple/login.js +5 -5
- package/dist/commands/apple/status.js +6 -6
- package/dist/commands/dashboard.js +5 -5
- package/dist/commands/game/android/apiKey/connect.js +11 -11
- package/dist/commands/game/android/apiKey/create.js +13 -13
- package/dist/commands/game/android/apiKey/delete.js +7 -7
- package/dist/commands/game/android/apiKey/export.js +9 -9
- package/dist/commands/game/android/apiKey/import.js +9 -9
- package/dist/commands/game/android/apiKey/invite.js +6 -6
- package/dist/commands/game/android/apiKey/policy.js +6 -6
- package/dist/commands/game/android/apiKey/status.js +9 -9
- package/dist/commands/game/android/keyStore/create.js +10 -10
- package/dist/commands/game/android/keyStore/delete.js +7 -7
- package/dist/commands/game/android/keyStore/export.js +8 -8
- package/dist/commands/game/android/keyStore/import.js +11 -11
- package/dist/commands/game/android/keyStore/status.js +8 -8
- package/dist/commands/game/android/status.js +5 -5
- package/dist/commands/game/build/download.js +6 -6
- package/dist/commands/game/build/list.js +7 -7
- package/dist/commands/game/create.js +7 -8
- package/dist/commands/game/details.js +6 -6
- package/dist/commands/game/export.js +29 -14
- package/dist/commands/game/ios/app/addTester.js +7 -7
- package/dist/commands/game/ios/app/create.js +6 -6
- package/dist/commands/game/ios/app/status.js +9 -9
- package/dist/commands/game/ios/app/sync.js +7 -7
- package/dist/commands/game/ios/profile/create.js +9 -9
- package/dist/commands/game/ios/profile/delete.js +7 -7
- package/dist/commands/game/ios/profile/export.js +8 -8
- package/dist/commands/game/ios/profile/import.js +8 -8
- package/dist/commands/game/ios/profile/status.js +9 -9
- package/dist/commands/game/ios/status.js +11 -11
- package/dist/commands/game/ios/wizard.js +8 -8
- package/dist/commands/game/job/list.js +6 -6
- package/dist/commands/game/job/status.js +9 -9
- package/dist/commands/game/list.js +6 -6
- package/dist/commands/game/ship.js +22 -15
- package/dist/commands/game/status.js +8 -8
- package/dist/commands/game/wizard.js +21 -20
- package/dist/commands/internal/fastlane.js +5 -5
- package/dist/commands/internal/readme.js +5 -5
- package/dist/commands/login.js +5 -5
- package/dist/commands/status.js +6 -6
- package/dist/commands/util/android-build-method.js +5 -5
- package/dist/commands/util/glass.js +4 -4
- package/dist/{export-7GgsEM8k.js → export-gdKqwR7u.js} +1 -1
- package/dist/{import-DKibfocC.js → import-CICoTBgo.js} +1 -1
- package/dist/{index-3FFnBAwx.js → index-BaxMfQnE.js} +8 -8
- package/dist/{index-BeGDjWvi.js → index-CjYag6UG.js} +7 -7
- package/dist/{index-B_dXK-Zt.js → index-YX-OJ2AA.js} +1 -1
- package/dist/{upload-DGY-glMy.js → upload-Drre-qsL.js} +1 -1
- package/dist/{useAppleApp-DRJf8q6R.js → useAppleApp-ChI2baWJ.js} +1 -1
- package/dist/{useAppleBundleId-B-5a-soi.js → useAppleBundleId-CUTbojvt.js} +1 -1
- package/dist/{useAppleProfiles-BXXI2MAc.js → useAppleProfiles-omIx9KVc.js} +4 -4
- package/dist/{useGoogleStatus-CETX9Rbw.js → useGoogleStatus-v86ZyFiz.js} +2 -2
- package/dist/{useProjectCredentials-AV_OlZEu.js → useProjectCredentials-5Ycm5B4x.js} +3 -3
- package/dist/{useWebSocket-DgYLiSrd.js → useWebSocket-AjcqLcJX.js} +1 -1
- package/docs/game/export.md +13 -2
- package/docs/game/ship.md +1 -1
- package/npm-shrinkwrap.json +73 -70
- package/oclif.manifest.json +19 -4
- package/package.json +3 -5
- package/dist/JobProgress-C24YiJOA.js +0 -252
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipthis",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.49",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "shipthis",
|
|
9
|
-
"version": "0.1.
|
|
9
|
+
"version": "0.1.49",
|
|
10
10
|
"license": "MIT",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@expo/apple-utils": "^2.1.12",
|
|
@@ -1705,9 +1705,9 @@
|
|
|
1705
1705
|
"license": "MIT"
|
|
1706
1706
|
},
|
|
1707
1707
|
"node_modules/@eslint/eslintrc/node_modules/brace-expansion": {
|
|
1708
|
-
"version": "1.1.
|
|
1709
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
1710
|
-
"integrity": "sha512-
|
|
1708
|
+
"version": "1.1.13",
|
|
1709
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
1710
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
1711
1711
|
"dev": true,
|
|
1712
1712
|
"license": "MIT",
|
|
1713
1713
|
"dependencies": {
|
|
@@ -1792,9 +1792,9 @@
|
|
|
1792
1792
|
"license": "MIT"
|
|
1793
1793
|
},
|
|
1794
1794
|
"node_modules/@humanwhocodes/config-array/node_modules/brace-expansion": {
|
|
1795
|
-
"version": "1.1.
|
|
1796
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
1797
|
-
"integrity": "sha512-
|
|
1795
|
+
"version": "1.1.13",
|
|
1796
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
1797
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
1798
1798
|
"dev": true,
|
|
1799
1799
|
"license": "MIT",
|
|
1800
1800
|
"dependencies": {
|
|
@@ -2632,9 +2632,9 @@
|
|
|
2632
2632
|
}
|
|
2633
2633
|
},
|
|
2634
2634
|
"node_modules/@rollup/plugin-commonjs/node_modules/picomatch": {
|
|
2635
|
-
"version": "4.0.
|
|
2636
|
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.
|
|
2637
|
-
"integrity": "sha512-
|
|
2635
|
+
"version": "4.0.4",
|
|
2636
|
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
|
2637
|
+
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
|
2638
2638
|
"dev": true,
|
|
2639
2639
|
"license": "MIT",
|
|
2640
2640
|
"engines": {
|
|
@@ -2739,9 +2739,9 @@
|
|
|
2739
2739
|
}
|
|
2740
2740
|
},
|
|
2741
2741
|
"node_modules/@rollup/pluginutils/node_modules/picomatch": {
|
|
2742
|
-
"version": "4.0.
|
|
2743
|
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.
|
|
2744
|
-
"integrity": "sha512-
|
|
2742
|
+
"version": "4.0.4",
|
|
2743
|
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
|
2744
|
+
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
|
2745
2745
|
"dev": true,
|
|
2746
2746
|
"license": "MIT",
|
|
2747
2747
|
"engines": {
|
|
@@ -4734,9 +4734,9 @@
|
|
|
4734
4734
|
]
|
|
4735
4735
|
},
|
|
4736
4736
|
"node_modules/@xmldom/xmldom": {
|
|
4737
|
-
"version": "0.8.
|
|
4738
|
-
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.
|
|
4739
|
-
"integrity": "sha512-
|
|
4737
|
+
"version": "0.8.12",
|
|
4738
|
+
"resolved": "https://registry.npmjs.org/@xmldom/xmldom/-/xmldom-0.8.12.tgz",
|
|
4739
|
+
"integrity": "sha512-9k/gHF6n/pAi/9tqr3m3aqkuiNosYTurLLUtc7xQ9sxB/wm7WPygCv8GYa6mS0fLJEHhqMC1ATYhz++U/lRHqg==",
|
|
4740
4740
|
"license": "MIT",
|
|
4741
4741
|
"engines": {
|
|
4742
4742
|
"node": ">=10.0.0"
|
|
@@ -5105,14 +5105,14 @@
|
|
|
5105
5105
|
}
|
|
5106
5106
|
},
|
|
5107
5107
|
"node_modules/axios": {
|
|
5108
|
-
"version": "1.
|
|
5109
|
-
"resolved": "https://registry.npmjs.org/axios/-/axios-1.
|
|
5110
|
-
"integrity": "sha512-
|
|
5108
|
+
"version": "1.15.0",
|
|
5109
|
+
"resolved": "https://registry.npmjs.org/axios/-/axios-1.15.0.tgz",
|
|
5110
|
+
"integrity": "sha512-wWyJDlAatxk30ZJer+GeCWS209sA42X+N5jU2jy6oHTp7ufw8uzUTVFBX9+wTfAlhiJXGS0Bq7X6efruWjuK9Q==",
|
|
5111
5111
|
"license": "MIT",
|
|
5112
5112
|
"dependencies": {
|
|
5113
5113
|
"follow-redirects": "^1.15.11",
|
|
5114
5114
|
"form-data": "^4.0.5",
|
|
5115
|
-
"proxy-from-env": "^
|
|
5115
|
+
"proxy-from-env": "^2.1.0"
|
|
5116
5116
|
}
|
|
5117
5117
|
},
|
|
5118
5118
|
"node_modules/balanced-match": {
|
|
@@ -5207,9 +5207,9 @@
|
|
|
5207
5207
|
}
|
|
5208
5208
|
},
|
|
5209
5209
|
"node_modules/brace-expansion": {
|
|
5210
|
-
"version": "5.0.
|
|
5211
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.
|
|
5212
|
-
"integrity": "sha512-
|
|
5210
|
+
"version": "5.0.5",
|
|
5211
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-5.0.5.tgz",
|
|
5212
|
+
"integrity": "sha512-VZznLgtwhn+Mact9tfiwx64fA9erHH/MCXEUfB/0bX/6Fz6ny5EGTXYltMocqg4xFAQZtnO3DHWWXi8RiuN7cQ==",
|
|
5213
5213
|
"license": "MIT",
|
|
5214
5214
|
"dependencies": {
|
|
5215
5215
|
"balanced-match": "^4.0.2"
|
|
@@ -6836,9 +6836,9 @@
|
|
|
6836
6836
|
"license": "MIT"
|
|
6837
6837
|
},
|
|
6838
6838
|
"node_modules/eslint-plugin-import/node_modules/brace-expansion": {
|
|
6839
|
-
"version": "1.1.
|
|
6840
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
6841
|
-
"integrity": "sha512-
|
|
6839
|
+
"version": "1.1.13",
|
|
6840
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
6841
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
6842
6842
|
"dev": true,
|
|
6843
6843
|
"license": "MIT",
|
|
6844
6844
|
"dependencies": {
|
|
@@ -7029,9 +7029,9 @@
|
|
|
7029
7029
|
"license": "MIT"
|
|
7030
7030
|
},
|
|
7031
7031
|
"node_modules/eslint/node_modules/brace-expansion": {
|
|
7032
|
-
"version": "1.1.
|
|
7033
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
7034
|
-
"integrity": "sha512-
|
|
7032
|
+
"version": "1.1.13",
|
|
7033
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
7034
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
7035
7035
|
"dev": true,
|
|
7036
7036
|
"license": "MIT",
|
|
7037
7037
|
"dependencies": {
|
|
@@ -7377,9 +7377,9 @@
|
|
|
7377
7377
|
"license": "MIT"
|
|
7378
7378
|
},
|
|
7379
7379
|
"node_modules/filelist/node_modules/brace-expansion": {
|
|
7380
|
-
"version": "2.0.
|
|
7381
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.
|
|
7382
|
-
"integrity": "sha512-
|
|
7380
|
+
"version": "2.0.3",
|
|
7381
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
|
|
7382
|
+
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
|
|
7383
7383
|
"license": "MIT",
|
|
7384
7384
|
"dependencies": {
|
|
7385
7385
|
"balanced-match": "^1.0.0"
|
|
@@ -7469,9 +7469,9 @@
|
|
|
7469
7469
|
"license": "ISC"
|
|
7470
7470
|
},
|
|
7471
7471
|
"node_modules/follow-redirects": {
|
|
7472
|
-
"version": "1.
|
|
7473
|
-
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.
|
|
7474
|
-
"integrity": "sha512-
|
|
7472
|
+
"version": "1.16.0",
|
|
7473
|
+
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.16.0.tgz",
|
|
7474
|
+
"integrity": "sha512-y5rN/uOsadFT/JfYwhxRS5R7Qce+g3zG97+JrtFZlC9klX/W5hD7iiLzScI4nZqUS7DNUdhPgw4xI8W2LuXlUw==",
|
|
7475
7475
|
"funding": [
|
|
7476
7476
|
{
|
|
7477
7477
|
"type": "individual",
|
|
@@ -7824,9 +7824,9 @@
|
|
|
7824
7824
|
"license": "MIT"
|
|
7825
7825
|
},
|
|
7826
7826
|
"node_modules/glob/node_modules/brace-expansion": {
|
|
7827
|
-
"version": "2.0.
|
|
7828
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.
|
|
7829
|
-
"integrity": "sha512-
|
|
7827
|
+
"version": "2.0.3",
|
|
7828
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
|
|
7829
|
+
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
|
|
7830
7830
|
"dev": true,
|
|
7831
7831
|
"license": "MIT",
|
|
7832
7832
|
"dependencies": {
|
|
@@ -9328,9 +9328,9 @@
|
|
|
9328
9328
|
}
|
|
9329
9329
|
},
|
|
9330
9330
|
"node_modules/lodash": {
|
|
9331
|
-
"version": "4.
|
|
9332
|
-
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.
|
|
9333
|
-
"integrity": "sha512-
|
|
9331
|
+
"version": "4.18.1",
|
|
9332
|
+
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.18.1.tgz",
|
|
9333
|
+
"integrity": "sha512-dMInicTPVE8d1e5otfwmmjlxkZoUpiVLwyeTdUsi/Caj/gfzzblBcCE5sRHV/AsjuCmxWrte2TNGSYuCeCq+0Q==",
|
|
9334
9334
|
"license": "MIT"
|
|
9335
9335
|
},
|
|
9336
9336
|
"node_modules/lodash.includes": {
|
|
@@ -9769,9 +9769,9 @@
|
|
|
9769
9769
|
"license": "MIT"
|
|
9770
9770
|
},
|
|
9771
9771
|
"node_modules/mocha/node_modules/brace-expansion": {
|
|
9772
|
-
"version": "2.0.
|
|
9773
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.
|
|
9774
|
-
"integrity": "sha512-
|
|
9772
|
+
"version": "2.0.3",
|
|
9773
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.3.tgz",
|
|
9774
|
+
"integrity": "sha512-MCV/fYJEbqx68aE58kv2cA/kiky1G8vux3OR6/jbS+jIMe/6fJWa0DTzJU7dqijOWYwHi1t29FlfYI9uytqlpA==",
|
|
9775
9775
|
"dev": true,
|
|
9776
9776
|
"license": "MIT",
|
|
9777
9777
|
"dependencies": {
|
|
@@ -9872,9 +9872,9 @@
|
|
|
9872
9872
|
}
|
|
9873
9873
|
},
|
|
9874
9874
|
"node_modules/node-forge": {
|
|
9875
|
-
"version": "1.
|
|
9876
|
-
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.
|
|
9877
|
-
"integrity": "sha512-
|
|
9875
|
+
"version": "1.4.0",
|
|
9876
|
+
"resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.4.0.tgz",
|
|
9877
|
+
"integrity": "sha512-LarFH0+6VfriEhqMMcLX2F7SwSXeWwnEAJEsYm5QKWchiVYVvJyV9v7UDvUv+w5HO23ZpQTXDv/GxdDdMyOuoQ==",
|
|
9878
9878
|
"license": "(BSD-3-Clause OR GPL-2.0)",
|
|
9879
9879
|
"engines": {
|
|
9880
9880
|
"node": ">= 6.13.0"
|
|
@@ -10651,9 +10651,9 @@
|
|
|
10651
10651
|
"license": "ISC"
|
|
10652
10652
|
},
|
|
10653
10653
|
"node_modules/picomatch": {
|
|
10654
|
-
"version": "2.3.
|
|
10655
|
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.
|
|
10656
|
-
"integrity": "sha512-
|
|
10654
|
+
"version": "2.3.2",
|
|
10655
|
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.2.tgz",
|
|
10656
|
+
"integrity": "sha512-V7+vQEJ06Z+c5tSye8S+nHUfI51xoXIXjHQ99cQtKUkQqqO1kO/KCJUfZXuB47h/YBlDhah2H3hdUGXn8ie0oA==",
|
|
10657
10657
|
"license": "MIT",
|
|
10658
10658
|
"engines": {
|
|
10659
10659
|
"node": ">=8.6"
|
|
@@ -10827,10 +10827,13 @@
|
|
|
10827
10827
|
"license": "ISC"
|
|
10828
10828
|
},
|
|
10829
10829
|
"node_modules/proxy-from-env": {
|
|
10830
|
-
"version": "
|
|
10831
|
-
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-
|
|
10832
|
-
"integrity": "sha512-
|
|
10833
|
-
"license": "MIT"
|
|
10830
|
+
"version": "2.1.0",
|
|
10831
|
+
"resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-2.1.0.tgz",
|
|
10832
|
+
"integrity": "sha512-cJ+oHTW1VAEa8cJslgmUZrc+sjRKgAKl3Zyse6+PV38hZe/V6Z14TbCuXcan9F9ghlz4QrFr2c92TNF82UkYHA==",
|
|
10833
|
+
"license": "MIT",
|
|
10834
|
+
"engines": {
|
|
10835
|
+
"node": ">=10"
|
|
10836
|
+
}
|
|
10834
10837
|
},
|
|
10835
10838
|
"node_modules/punycode": {
|
|
10836
10839
|
"version": "2.3.1",
|
|
@@ -11571,9 +11574,9 @@
|
|
|
11571
11574
|
"license": "MIT"
|
|
11572
11575
|
},
|
|
11573
11576
|
"node_modules/rimraf/node_modules/brace-expansion": {
|
|
11574
|
-
"version": "1.1.
|
|
11575
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
11576
|
-
"integrity": "sha512-
|
|
11577
|
+
"version": "1.1.13",
|
|
11578
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
11579
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
11577
11580
|
"dev": true,
|
|
11578
11581
|
"license": "MIT",
|
|
11579
11582
|
"dependencies": {
|
|
@@ -11828,9 +11831,9 @@
|
|
|
11828
11831
|
}
|
|
11829
11832
|
},
|
|
11830
11833
|
"node_modules/serialize-javascript": {
|
|
11831
|
-
"version": "7.0.
|
|
11832
|
-
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.
|
|
11833
|
-
"integrity": "sha512-
|
|
11834
|
+
"version": "7.0.5",
|
|
11835
|
+
"resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-7.0.5.tgz",
|
|
11836
|
+
"integrity": "sha512-F4LcB0UqUl1zErq+1nYEEzSHJnIwb3AF2XWB94b+afhrekOUijwooAYqFyRbjYkm2PAKBabx6oYv/xDxNi8IBw==",
|
|
11834
11837
|
"dev": true,
|
|
11835
11838
|
"license": "BSD-3-Clause",
|
|
11836
11839
|
"engines": {
|
|
@@ -11960,9 +11963,9 @@
|
|
|
11960
11963
|
"license": "MIT"
|
|
11961
11964
|
},
|
|
11962
11965
|
"node_modules/shelljs/node_modules/brace-expansion": {
|
|
11963
|
-
"version": "1.1.
|
|
11964
|
-
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.
|
|
11965
|
-
"integrity": "sha512-
|
|
11966
|
+
"version": "1.1.13",
|
|
11967
|
+
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.13.tgz",
|
|
11968
|
+
"integrity": "sha512-9ZLprWS6EENmhEOpjCYW2c8VkmOvckIJZfkr7rBW6dObmfgJ/L1GpSYW5Hpo9lDz4D1+n0Ckz8rU7FwHDQiG/w==",
|
|
11966
11969
|
"dev": true,
|
|
11967
11970
|
"license": "MIT",
|
|
11968
11971
|
"dependencies": {
|
|
@@ -12730,9 +12733,9 @@
|
|
|
12730
12733
|
}
|
|
12731
12734
|
},
|
|
12732
12735
|
"node_modules/tinyglobby/node_modules/picomatch": {
|
|
12733
|
-
"version": "4.0.
|
|
12734
|
-
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.
|
|
12735
|
-
"integrity": "sha512-
|
|
12736
|
+
"version": "4.0.4",
|
|
12737
|
+
"resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.4.tgz",
|
|
12738
|
+
"integrity": "sha512-QP88BAKvMam/3NxH6vj2o21R6MjxZUAd6nlwAS/pnGvN9IVLocLHxGYIzFhg6fUQ+5th6P4dv4eW9jX3DSIj7A==",
|
|
12736
12739
|
"license": "MIT",
|
|
12737
12740
|
"engines": {
|
|
12738
12741
|
"node": ">=12"
|
|
@@ -14185,9 +14188,9 @@
|
|
|
14185
14188
|
}
|
|
14186
14189
|
},
|
|
14187
14190
|
"node_modules/yaml": {
|
|
14188
|
-
"version": "2.8.
|
|
14189
|
-
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.
|
|
14190
|
-
"integrity": "sha512-
|
|
14191
|
+
"version": "2.8.3",
|
|
14192
|
+
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.8.3.tgz",
|
|
14193
|
+
"integrity": "sha512-AvbaCLOO2Otw/lW5bmh9d/WEdcDFdQp2Z2ZUH3pX9U2ihyUY0nvLv7J6TrWowklRGPYbB/IuIMfYgxaCPg5Bpg==",
|
|
14191
14194
|
"dev": true,
|
|
14192
14195
|
"license": "ISC",
|
|
14193
14196
|
"bin": {
|
package/oclif.manifest.json
CHANGED
|
@@ -596,13 +596,14 @@
|
|
|
596
596
|
"game_id": {
|
|
597
597
|
"description": "The ID of the game to export (use \"list\" to get the ID)",
|
|
598
598
|
"name": "game_id",
|
|
599
|
-
"required":
|
|
599
|
+
"required": false
|
|
600
600
|
}
|
|
601
601
|
},
|
|
602
602
|
"description": "Downloads the shipthis.json file for a given game into the current directory.",
|
|
603
603
|
"examples": [
|
|
604
604
|
"<%= config.bin %> <%= command.id %> abcd1234",
|
|
605
|
-
"<%= config.bin %> <%= command.id %> abcd1234 --force"
|
|
605
|
+
"<%= config.bin %> <%= command.id %> abcd1234 --force",
|
|
606
|
+
"<%= config.bin %> <%= command.id %> --current --force"
|
|
606
607
|
],
|
|
607
608
|
"flags": {
|
|
608
609
|
"force": {
|
|
@@ -610,6 +611,12 @@
|
|
|
610
611
|
"name": "force",
|
|
611
612
|
"allowNo": false,
|
|
612
613
|
"type": "boolean"
|
|
614
|
+
},
|
|
615
|
+
"current": {
|
|
616
|
+
"description": "Use the project ID from the current shipthis.json config",
|
|
617
|
+
"name": "current",
|
|
618
|
+
"allowNo": false,
|
|
619
|
+
"type": "boolean"
|
|
613
620
|
}
|
|
614
621
|
},
|
|
615
622
|
"hasDynamicHelp": false,
|
|
@@ -710,7 +717,8 @@
|
|
|
710
717
|
"<%= config.bin %> <%= command.id %> --platform android --follow --downloadAPK game.apk",
|
|
711
718
|
"<%= config.bin %> <%= command.id %> --platform ios --follow --verbose",
|
|
712
719
|
"<%= config.bin %> <%= command.id %> --platform ios --useDemoCredentials --download game.ipa",
|
|
713
|
-
"<%= config.bin %> <%= command.id %> --platform android --gameEngineVersion 4.5.1 --skipPublish"
|
|
720
|
+
"<%= config.bin %> <%= command.id %> --platform android --gameEngineVersion 4.5.1 --skipPublish",
|
|
721
|
+
"<%= config.bin %> <%= command.id %> --platform android --dryRun"
|
|
714
722
|
],
|
|
715
723
|
"flags": {
|
|
716
724
|
"gameId": {
|
|
@@ -796,6 +804,13 @@
|
|
|
796
804
|
"hasDynamicHelp": false,
|
|
797
805
|
"multiple": false,
|
|
798
806
|
"type": "option"
|
|
807
|
+
},
|
|
808
|
+
"dryRun": {
|
|
809
|
+
"description": "Dry run - lists the files that would be shipped without executing the build or publish steps",
|
|
810
|
+
"name": "dryRun",
|
|
811
|
+
"required": false,
|
|
812
|
+
"allowNo": false,
|
|
813
|
+
"type": "boolean"
|
|
799
814
|
}
|
|
800
815
|
},
|
|
801
816
|
"hasDynamicHelp": false,
|
|
@@ -2962,5 +2977,5 @@
|
|
|
2962
2977
|
]
|
|
2963
2978
|
}
|
|
2964
2979
|
},
|
|
2965
|
-
"version": "0.1.
|
|
2980
|
+
"version": "0.1.49"
|
|
2966
2981
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "shipthis",
|
|
3
3
|
"description": "Build and publish Godot games to the App Store and Google Play. Cloud builds for APK, AAB, and IPA - no Mac or Android Studio required.",
|
|
4
|
-
"version": "0.1.
|
|
4
|
+
"version": "0.1.49",
|
|
5
5
|
"author": "Hello Invent Ltd",
|
|
6
6
|
"bin": {
|
|
7
7
|
"shipthis": "./bin/run.js"
|
|
@@ -251,14 +251,12 @@
|
|
|
251
251
|
"posttest": "npm run lint",
|
|
252
252
|
"prepack": "cp package-lock.json package-lock.dev.json || true && npm run readme && oclif manifest && npm shrinkwrap",
|
|
253
253
|
"postpack": "mv package-lock.dev.json package-lock.json || true && shx rm -f oclif.manifest.json && shx rm -f npm-shrinkwrap.json",
|
|
254
|
-
"test": "mocha --forbid-only \"test/**/*.test.ts\"",
|
|
255
|
-
"test:apple-utils": "mocha --forbid-only \"test/apple/**/*.test.ts\" \"test/utils/**/*.test.ts\"",
|
|
254
|
+
"test": "tsx --tsconfig ./tsconfig.json ./node_modules/mocha/bin/mocha.js --forbid-only \"test/**/*.test.ts\"",
|
|
256
255
|
"readme": "bin/dev.js internal readme docs/ -d 2 --notDryRun # does not overwrite existing files"
|
|
257
256
|
},
|
|
258
257
|
"types": "dist/index.d.ts",
|
|
259
258
|
"overrides": {
|
|
260
|
-
"serialize-javascript": "^7.0.
|
|
261
|
-
"fast-xml-parser": "^5.3.8",
|
|
259
|
+
"serialize-javascript": "^7.0.5",
|
|
262
260
|
"cli-spinners": "2.9.2",
|
|
263
261
|
"@alcalzone/ansi-tokenize": "^0.2.2"
|
|
264
262
|
}
|
|
@@ -1,252 +0,0 @@
|
|
|
1
|
-
import fs__default from 'node:fs';
|
|
2
|
-
import { useMutation } from '@tanstack/react-query';
|
|
3
|
-
import fg from 'fast-glob';
|
|
4
|
-
import { v4 } from 'uuid';
|
|
5
|
-
import { I as queryClient, l as getProject, x as DEFAULT_SHIPPED_FILES_GLOBS, y as DEFAULT_IGNORED_FILES_GLOBS, a4 as getNewUploadTicket, a5 as startJobsFromUpload, a2 as LogLevel } from './baseCommand-B7pUDBYl.js';
|
|
6
|
-
import { k as cacheKeys, v as getFileHash, w as getPlatformName, x as getMessageColor } from './baseGameCommand-BTC5XD8W.js';
|
|
7
|
-
import { ZipFile } from 'yazl';
|
|
8
|
-
import { g as getCWDGitInfo } from './git-BpsfNFZ_.js';
|
|
9
|
-
import { Readable, Transform } from 'stream';
|
|
10
|
-
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
11
|
-
import { Box, Text } from 'ink';
|
|
12
|
-
import { useState } from 'react';
|
|
13
|
-
import 'ink-spinner';
|
|
14
|
-
import 'axios';
|
|
15
|
-
import 'luxon';
|
|
16
|
-
import 'socket.io-client';
|
|
17
|
-
import { u as useJobWatching, a as JobLogLine } from './JobLogTail-D-IhoJDu.js';
|
|
18
|
-
import 'fullscreen-ink';
|
|
19
|
-
import 'open';
|
|
20
|
-
import '@inkjs/ui';
|
|
21
|
-
import 'node:path';
|
|
22
|
-
import 'marked';
|
|
23
|
-
import 'marked-terminal';
|
|
24
|
-
import { P as ProgressSpinner } from './ProgressSpinner-Um6ARKlk.js';
|
|
25
|
-
import 'qrcode';
|
|
26
|
-
import 'string-length';
|
|
27
|
-
import 'strip-ansi';
|
|
28
|
-
import 'godot-export-presets';
|
|
29
|
-
|
|
30
|
-
function formatProgressLog(label, data, bytesKey, totalKey, isEstimated = false) {
|
|
31
|
-
const elapsed = data.elapsedSeconds.toFixed(1);
|
|
32
|
-
const transferredMB = (data[bytesKey] / 1024 / 1024).toFixed(2);
|
|
33
|
-
const totalMB = (data[totalKey] / 1024 / 1024).toFixed(2);
|
|
34
|
-
const progressPercent = Math.round(data.progress * 100);
|
|
35
|
-
const speed = data.speedMBps.toFixed(2);
|
|
36
|
-
const totalPrefix = isEstimated ? "~" : "";
|
|
37
|
-
return `${label}: ${progressPercent}% (${transferredMB}MB / ${totalPrefix}${totalMB}MB) - ${elapsed}s - ${speed}MB/s`;
|
|
38
|
-
}
|
|
39
|
-
async function ship({ command, log = () => {
|
|
40
|
-
}, shipFlags }) {
|
|
41
|
-
const commandFlags = command.getFlags();
|
|
42
|
-
const finalFlags = shipFlags || commandFlags;
|
|
43
|
-
const { verbose, useDemoCredentials } = finalFlags;
|
|
44
|
-
verbose && log("Fetching game config...");
|
|
45
|
-
const projectConfig = await command.getProjectConfig();
|
|
46
|
-
if (!projectConfig.project) throw new Error("No project found in project config");
|
|
47
|
-
const project = await getProject(projectConfig.project.id);
|
|
48
|
-
const projectUsesDemoCredentials = Boolean(project.details?.useDemoCredentials);
|
|
49
|
-
const isUsingDemoCredentials = useDemoCredentials ?? projectUsesDemoCredentials ?? false;
|
|
50
|
-
const hasConfiguredIos = Boolean(project.details?.iosBundleId);
|
|
51
|
-
const hasConfiguredAndroid = Boolean(project.details?.androidPackageName);
|
|
52
|
-
if (!isUsingDemoCredentials && !hasConfiguredAndroid && !hasConfiguredIos) {
|
|
53
|
-
throw new Error(
|
|
54
|
-
"No Android or iOS configuration found. Please run `shipthis game wizard android` or `shipthis game wizard ios` to configure your game."
|
|
55
|
-
);
|
|
56
|
-
}
|
|
57
|
-
verbose && log("Retrieving file globs...");
|
|
58
|
-
const shippedFilesGlobs = projectConfig.shippedFilesGlobs || DEFAULT_SHIPPED_FILES_GLOBS;
|
|
59
|
-
const ignoredFilesGlobs = projectConfig.ignoredFilesGlobs || DEFAULT_IGNORED_FILES_GLOBS;
|
|
60
|
-
verbose && log("Finding files to include in zip...");
|
|
61
|
-
const files = await fg(shippedFilesGlobs, { dot: true, ignore: ignoredFilesGlobs });
|
|
62
|
-
verbose && log(`Found ${files.length} files, adding to zip...`);
|
|
63
|
-
const tmpZipFileName = `shipthis-${v4()}.zip`;
|
|
64
|
-
const tmpZipFile = `${process.cwd()}/${tmpZipFileName}`;
|
|
65
|
-
log(`Creating zip file: ${tmpZipFileName}`);
|
|
66
|
-
await createZip({
|
|
67
|
-
files,
|
|
68
|
-
outputPath: tmpZipFile,
|
|
69
|
-
onProgress: (data) => {
|
|
70
|
-
log(formatProgressLog("Zipping", data, "writtenBytes", "estimatedTotalBytes", true));
|
|
71
|
-
}
|
|
72
|
-
});
|
|
73
|
-
const { size } = fs__default.statSync(tmpZipFile);
|
|
74
|
-
verbose && log("Requesting upload ticket...");
|
|
75
|
-
const uploadTicket = await getNewUploadTicket(projectConfig.project.id);
|
|
76
|
-
log("Uploading zip file...");
|
|
77
|
-
const zipStream = fs__default.createReadStream(tmpZipFile);
|
|
78
|
-
const response = await uploadZip({
|
|
79
|
-
url: uploadTicket.url,
|
|
80
|
-
zipStream,
|
|
81
|
-
zipSize: size,
|
|
82
|
-
onProgress: (data) => {
|
|
83
|
-
log(formatProgressLog("Uploading", data, "loadedBytes", "totalBytes", false));
|
|
84
|
-
}
|
|
85
|
-
});
|
|
86
|
-
verbose && log("Computing zip file hash...");
|
|
87
|
-
const zipFileMd5 = await getFileHash(tmpZipFile);
|
|
88
|
-
verbose && log("Cleaning up temporary zip file...");
|
|
89
|
-
fs__default.unlinkSync(tmpZipFile);
|
|
90
|
-
if (!response.ok) {
|
|
91
|
-
throw new Error(`Upload failed: ${response.status} ${response.statusText}`);
|
|
92
|
-
}
|
|
93
|
-
log(`Upload complete`);
|
|
94
|
-
verbose && log("Fetching Git info...");
|
|
95
|
-
const gitInfo = await getCWDGitInfo();
|
|
96
|
-
const uploadDetails = {
|
|
97
|
-
...gitInfo,
|
|
98
|
-
zipFileMd5
|
|
99
|
-
};
|
|
100
|
-
verbose && log("Starting jobs from upload...");
|
|
101
|
-
const startJobsOptions = {
|
|
102
|
-
...uploadDetails,
|
|
103
|
-
platform: finalFlags.platform?.toUpperCase(),
|
|
104
|
-
skipPublish: finalFlags.skipPublish,
|
|
105
|
-
verbose: finalFlags.verbose,
|
|
106
|
-
useDemoCredentials: isUsingDemoCredentials,
|
|
107
|
-
gameEngineVersion: finalFlags.gameEngineVersion
|
|
108
|
-
};
|
|
109
|
-
const jobs = await startJobsFromUpload(uploadTicket.id, startJobsOptions);
|
|
110
|
-
verbose && log("Job submission complete.");
|
|
111
|
-
if (jobs.length === 0) {
|
|
112
|
-
throw new Error("No jobs were created. Please check your game configuration and try again.");
|
|
113
|
-
}
|
|
114
|
-
if (finalFlags?.follow) {
|
|
115
|
-
log("Waiting for job to start...");
|
|
116
|
-
}
|
|
117
|
-
return jobs;
|
|
118
|
-
}
|
|
119
|
-
const useShip = () => useMutation({
|
|
120
|
-
mutationFn: ship,
|
|
121
|
-
async onSuccess(data) {
|
|
122
|
-
queryClient.invalidateQueries({
|
|
123
|
-
queryKey: cacheKeys.jobs({ pageNumber: 0, projectId: data[0].project.id })
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
});
|
|
127
|
-
|
|
128
|
-
const ON_PROGRESS_THROTTLE_MS = 2e3;
|
|
129
|
-
function createProgressStream(totalSize, onProgress, throttleMs) {
|
|
130
|
-
let sent = 0;
|
|
131
|
-
let lastCallTime = 0;
|
|
132
|
-
return new Transform({
|
|
133
|
-
transform(chunk, encoding, callback) {
|
|
134
|
-
sent += chunk.length;
|
|
135
|
-
const now = Date.now();
|
|
136
|
-
if (now - lastCallTime >= throttleMs) {
|
|
137
|
-
onProgress(sent, totalSize);
|
|
138
|
-
lastCallTime = now;
|
|
139
|
-
}
|
|
140
|
-
callback(null, chunk);
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}
|
|
144
|
-
function uploadZip({ url, zipStream, zipSize, onProgress }) {
|
|
145
|
-
const startTime = Date.now();
|
|
146
|
-
const progressStream = createProgressStream(zipSize, (sent, total) => {
|
|
147
|
-
const elapsedSeconds = (Date.now() - startTime) / 1e3;
|
|
148
|
-
const speedMBps = elapsedSeconds < 1e-3 ? 0 : sent / elapsedSeconds / 1024 / 1024;
|
|
149
|
-
onProgress({
|
|
150
|
-
progress: total ? sent / total : 0,
|
|
151
|
-
loadedBytes: sent,
|
|
152
|
-
totalBytes: total,
|
|
153
|
-
speedMBps,
|
|
154
|
-
elapsedSeconds
|
|
155
|
-
});
|
|
156
|
-
}, ON_PROGRESS_THROTTLE_MS);
|
|
157
|
-
const streamWithProgress = zipStream.pipe(progressStream);
|
|
158
|
-
const webStream = Readable.toWeb(streamWithProgress);
|
|
159
|
-
const response = fetch(url, {
|
|
160
|
-
method: "PUT",
|
|
161
|
-
headers: {
|
|
162
|
-
"Content-Type": "application/zip",
|
|
163
|
-
"Content-Length": zipSize.toString()
|
|
164
|
-
},
|
|
165
|
-
body: webStream,
|
|
166
|
-
duplex: "half"
|
|
167
|
-
});
|
|
168
|
-
return response;
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
const COMPRESSION_RATIO = 0.65;
|
|
172
|
-
async function createZip({ files, outputPath, onProgress }) {
|
|
173
|
-
const startTime = Date.now();
|
|
174
|
-
const statPromises = files.map(async (file) => {
|
|
175
|
-
try {
|
|
176
|
-
return await fs__default.promises.stat(file);
|
|
177
|
-
} catch {
|
|
178
|
-
return null;
|
|
179
|
-
}
|
|
180
|
-
});
|
|
181
|
-
const statsResults = await Promise.all(statPromises);
|
|
182
|
-
let totalSourceSize = 0;
|
|
183
|
-
for (const stats of statsResults) {
|
|
184
|
-
if (stats) {
|
|
185
|
-
totalSourceSize += stats.size;
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
const estimatedZipSize = Math.max(Math.round(totalSourceSize * COMPRESSION_RATIO), 1);
|
|
189
|
-
const zipFile = new ZipFile();
|
|
190
|
-
for (const file of files) {
|
|
191
|
-
zipFile.addFile(file, file);
|
|
192
|
-
}
|
|
193
|
-
return new Promise((resolve, reject) => {
|
|
194
|
-
let settled = false;
|
|
195
|
-
const handleError = (error) => {
|
|
196
|
-
if (settled) return;
|
|
197
|
-
settled = true;
|
|
198
|
-
zipFile.outputStream.destroy();
|
|
199
|
-
progressStream.destroy();
|
|
200
|
-
outputStream.destroy();
|
|
201
|
-
reject(error);
|
|
202
|
-
};
|
|
203
|
-
const handleSuccess = () => {
|
|
204
|
-
if (settled) return;
|
|
205
|
-
settled = true;
|
|
206
|
-
resolve();
|
|
207
|
-
};
|
|
208
|
-
const outputStream = fs__default.createWriteStream(outputPath);
|
|
209
|
-
const progressStream = createProgressStream(estimatedZipSize, (written, total) => {
|
|
210
|
-
const elapsedSeconds = (Date.now() - startTime) / 1e3;
|
|
211
|
-
const speedMBps = elapsedSeconds < 1e-3 ? 0 : written / elapsedSeconds / 1024 / 1024;
|
|
212
|
-
onProgress({
|
|
213
|
-
progress: total ? Math.min(1, written / total) : 0,
|
|
214
|
-
writtenBytes: written,
|
|
215
|
-
estimatedTotalBytes: total,
|
|
216
|
-
sourceTotalBytes: totalSourceSize,
|
|
217
|
-
elapsedSeconds,
|
|
218
|
-
speedMBps
|
|
219
|
-
});
|
|
220
|
-
}, ON_PROGRESS_THROTTLE_MS);
|
|
221
|
-
zipFile.outputStream.on("error", handleError);
|
|
222
|
-
progressStream.on("error", handleError);
|
|
223
|
-
outputStream.on("error", handleError);
|
|
224
|
-
outputStream.on("close", handleSuccess);
|
|
225
|
-
zipFile.outputStream.pipe(progressStream).pipe(outputStream);
|
|
226
|
-
zipFile.end();
|
|
227
|
-
});
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
const JobProgress = (props) => {
|
|
231
|
-
const [lastWarningLog, setLastWarningLog] = useState(null);
|
|
232
|
-
const { progress } = useJobWatching({
|
|
233
|
-
isWatching: true,
|
|
234
|
-
jobId: props.job.id,
|
|
235
|
-
onComplete: props.onComplete,
|
|
236
|
-
onFailure: props.onFailure,
|
|
237
|
-
projectId: props.job.project.id,
|
|
238
|
-
onNewLogEntry: (logEntry) => {
|
|
239
|
-
if (logEntry.level == LogLevel.WARN) setLastWarningLog(logEntry);
|
|
240
|
-
}
|
|
241
|
-
});
|
|
242
|
-
const label = `${getPlatformName(props.job.type)} build progress...`;
|
|
243
|
-
return /* @__PURE__ */ jsxs(Box, { flexDirection: "column", gap: 0, children: [
|
|
244
|
-
/* @__PURE__ */ jsx(ProgressSpinner, { label, progress, spinnerType: "dots" }),
|
|
245
|
-
lastWarningLog && /* @__PURE__ */ jsxs(Box, { flexDirection: "row", gap: 1, marginLeft: 2, children: [
|
|
246
|
-
/* @__PURE__ */ jsx(Text, { color: getMessageColor(lastWarningLog.level), children: "WARNING" }),
|
|
247
|
-
/* @__PURE__ */ jsx(JobLogLine, { log: lastWarningLog, showTimestamp: false, showStage: false })
|
|
248
|
-
] })
|
|
249
|
-
] });
|
|
250
|
-
};
|
|
251
|
-
|
|
252
|
-
export { JobProgress as J, useShip as u };
|