shipthis 0.1.17 → 0.1.18

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/README.md CHANGED
@@ -14,9 +14,10 @@
14
14
  <em><b>ShipThis</b> is a <b>command line tool</b> which manages building and uploading your <a href="https://godotengine.org/">Godot</a> mobile games to the <b>Apple App Store</b> and <b>Google Play</b>.</em>
15
15
  </p>
16
16
  <p align="center">
17
- <em><b>ShipThis compiles and uploads your Godot games in the cloud, meaning <b>you do not need to install or run Xcode or Android Studio to ship a Godot iOS/Android game</b>.</em>
17
+ <em><b>ShipThis compiles and uploads your Godot games in the cloud, meaning</b> you do not need to install or run Xcode or Android Studio to ship a Godot iOS/Android game.</em>
18
18
  </p>
19
19
 
20
+
20
21
  <p align="center">
21
22
  <picture>
22
23
  <img height="266" width="504" alt="ShipThis Home" src="docs/assets/ship-outputx0.8.gif">
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "shipthis",
3
- "version": "0.1.17",
3
+ "version": "0.1.18",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "shipthis",
9
- "version": "0.1.17",
9
+ "version": "0.1.18",
10
10
  "license": "MIT",
11
11
  "dependencies": {
12
12
  "@expo/apple-utils": "2.0.3",
@@ -156,110 +156,6 @@
156
156
  "status.js"
157
157
  ]
158
158
  },
159
- "internal:fastlane": {
160
- "aliases": [],
161
- "args": {
162
- "username": {
163
- "description": "Your Apple email address",
164
- "name": "username",
165
- "required": true
166
- },
167
- "file": {
168
- "description": "Path where the fastlane session will be written",
169
- "name": "file",
170
- "required": true
171
- }
172
- },
173
- "description": "Output a fastlane session file which can be used with xcodes",
174
- "examples": [
175
- "<%= config.bin %> <%= command.id %>",
176
- "<%= config.bin %> <%= command.id %> --force --username me@email.nowhere"
177
- ],
178
- "flags": {
179
- "force": {
180
- "char": "f",
181
- "name": "force",
182
- "allowNo": false,
183
- "type": "boolean"
184
- }
185
- },
186
- "hasDynamicHelp": false,
187
- "hiddenAliases": [],
188
- "id": "internal:fastlane",
189
- "pluginAlias": "shipthis",
190
- "pluginName": "shipthis",
191
- "pluginType": "core",
192
- "strict": true,
193
- "enableJsonFlag": false,
194
- "isESM": true,
195
- "relativePath": [
196
- "dist",
197
- "commands",
198
- "internal",
199
- "fastlane.js"
200
- ]
201
- },
202
- "internal:readme": {
203
- "aliases": [],
204
- "args": {
205
- "outputDir": {
206
- "description": "The directory where the readme files will be written",
207
- "name": "outputDir",
208
- "required": true
209
- }
210
- },
211
- "description": "Generate the readme files for the commands",
212
- "examples": [
213
- "<%= config.bin %> <%= command.id %>"
214
- ],
215
- "flags": {
216
- "notDryRun": {
217
- "char": "n",
218
- "description": "Set to actually write the files (will not overwrite)",
219
- "name": "notDryRun",
220
- "allowNo": false,
221
- "type": "boolean"
222
- },
223
- "overWrite": {
224
- "char": "o",
225
- "description": "Overwrite existing files",
226
- "name": "overWrite",
227
- "allowNo": false,
228
- "type": "boolean"
229
- },
230
- "depth": {
231
- "char": "d",
232
- "description": "The depth of the topic tree to render as separate files",
233
- "name": "depth",
234
- "hasDynamicHelp": false,
235
- "multiple": false,
236
- "type": "option"
237
- },
238
- "only": {
239
- "char": "l",
240
- "description": "Glob pattern - will only write the files which match",
241
- "name": "only",
242
- "hasDynamicHelp": false,
243
- "multiple": false,
244
- "type": "option"
245
- }
246
- },
247
- "hasDynamicHelp": false,
248
- "hiddenAliases": [],
249
- "id": "internal:readme",
250
- "pluginAlias": "shipthis",
251
- "pluginName": "shipthis",
252
- "pluginType": "core",
253
- "strict": true,
254
- "enableJsonFlag": false,
255
- "isESM": true,
256
- "relativePath": [
257
- "dist",
258
- "commands",
259
- "internal",
260
- "readme.js"
261
- ]
262
- },
263
159
  "game:create": {
264
160
  "aliases": [],
265
161
  "args": {},
@@ -695,6 +591,110 @@
695
591
  "wizard.js"
696
592
  ]
697
593
  },
594
+ "internal:fastlane": {
595
+ "aliases": [],
596
+ "args": {
597
+ "username": {
598
+ "description": "Your Apple email address",
599
+ "name": "username",
600
+ "required": true
601
+ },
602
+ "file": {
603
+ "description": "Path where the fastlane session will be written",
604
+ "name": "file",
605
+ "required": true
606
+ }
607
+ },
608
+ "description": "Output a fastlane session file which can be used with xcodes",
609
+ "examples": [
610
+ "<%= config.bin %> <%= command.id %>",
611
+ "<%= config.bin %> <%= command.id %> --force --username me@email.nowhere"
612
+ ],
613
+ "flags": {
614
+ "force": {
615
+ "char": "f",
616
+ "name": "force",
617
+ "allowNo": false,
618
+ "type": "boolean"
619
+ }
620
+ },
621
+ "hasDynamicHelp": false,
622
+ "hiddenAliases": [],
623
+ "id": "internal:fastlane",
624
+ "pluginAlias": "shipthis",
625
+ "pluginName": "shipthis",
626
+ "pluginType": "core",
627
+ "strict": true,
628
+ "enableJsonFlag": false,
629
+ "isESM": true,
630
+ "relativePath": [
631
+ "dist",
632
+ "commands",
633
+ "internal",
634
+ "fastlane.js"
635
+ ]
636
+ },
637
+ "internal:readme": {
638
+ "aliases": [],
639
+ "args": {
640
+ "outputDir": {
641
+ "description": "The directory where the readme files will be written",
642
+ "name": "outputDir",
643
+ "required": true
644
+ }
645
+ },
646
+ "description": "Generate the readme files for the commands",
647
+ "examples": [
648
+ "<%= config.bin %> <%= command.id %>"
649
+ ],
650
+ "flags": {
651
+ "notDryRun": {
652
+ "char": "n",
653
+ "description": "Set to actually write the files (will not overwrite)",
654
+ "name": "notDryRun",
655
+ "allowNo": false,
656
+ "type": "boolean"
657
+ },
658
+ "overWrite": {
659
+ "char": "o",
660
+ "description": "Overwrite existing files",
661
+ "name": "overWrite",
662
+ "allowNo": false,
663
+ "type": "boolean"
664
+ },
665
+ "depth": {
666
+ "char": "d",
667
+ "description": "The depth of the topic tree to render as separate files",
668
+ "name": "depth",
669
+ "hasDynamicHelp": false,
670
+ "multiple": false,
671
+ "type": "option"
672
+ },
673
+ "only": {
674
+ "char": "l",
675
+ "description": "Glob pattern - will only write the files which match",
676
+ "name": "only",
677
+ "hasDynamicHelp": false,
678
+ "multiple": false,
679
+ "type": "option"
680
+ }
681
+ },
682
+ "hasDynamicHelp": false,
683
+ "hiddenAliases": [],
684
+ "id": "internal:readme",
685
+ "pluginAlias": "shipthis",
686
+ "pluginName": "shipthis",
687
+ "pluginType": "core",
688
+ "strict": true,
689
+ "enableJsonFlag": false,
690
+ "isESM": true,
691
+ "relativePath": [
692
+ "dist",
693
+ "commands",
694
+ "internal",
695
+ "readme.js"
696
+ ]
697
+ },
698
698
  "apple:apiKey:create": {
699
699
  "aliases": [],
700
700
  "args": {},
@@ -993,6 +993,41 @@
993
993
  "status.js"
994
994
  ]
995
995
  },
996
+ "game:android:status": {
997
+ "aliases": [],
998
+ "args": {},
999
+ "description": "Shows the status of the setup for the Android platform for a specific game.",
1000
+ "examples": [
1001
+ "<%= config.bin %> <%= command.id %>",
1002
+ "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1003
+ ],
1004
+ "flags": {
1005
+ "gameId": {
1006
+ "char": "g",
1007
+ "description": "The ID of the game",
1008
+ "name": "gameId",
1009
+ "hasDynamicHelp": false,
1010
+ "multiple": false,
1011
+ "type": "option"
1012
+ }
1013
+ },
1014
+ "hasDynamicHelp": false,
1015
+ "hiddenAliases": [],
1016
+ "id": "game:android:status",
1017
+ "pluginAlias": "shipthis",
1018
+ "pluginName": "shipthis",
1019
+ "pluginType": "core",
1020
+ "strict": true,
1021
+ "enableJsonFlag": false,
1022
+ "isESM": true,
1023
+ "relativePath": [
1024
+ "dist",
1025
+ "commands",
1026
+ "game",
1027
+ "android",
1028
+ "status.js"
1029
+ ]
1030
+ },
996
1031
  "game:build:download": {
997
1032
  "aliases": [],
998
1033
  "args": {
@@ -1126,10 +1161,10 @@
1126
1161
  "list.js"
1127
1162
  ]
1128
1163
  },
1129
- "game:android:status": {
1164
+ "game:ios:status": {
1130
1165
  "aliases": [],
1131
1166
  "args": {},
1132
- "description": "Shows the status of the setup for the Android platform for a specific game.",
1167
+ "description": "Shows the Game iOS Platform status. If --gameId is not provided it will look in the current directory.",
1133
1168
  "examples": [
1134
1169
  "<%= config.bin %> <%= command.id %>",
1135
1170
  "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
@@ -1146,7 +1181,7 @@
1146
1181
  },
1147
1182
  "hasDynamicHelp": false,
1148
1183
  "hiddenAliases": [],
1149
- "id": "game:android:status",
1184
+ "id": "game:ios:status",
1150
1185
  "pluginAlias": "shipthis",
1151
1186
  "pluginName": "shipthis",
1152
1187
  "pluginType": "core",
@@ -1157,49 +1192,14 @@
1157
1192
  "dist",
1158
1193
  "commands",
1159
1194
  "game",
1160
- "android",
1195
+ "ios",
1161
1196
  "status.js"
1162
1197
  ]
1163
1198
  },
1164
- "game:ios:status": {
1199
+ "game:ios:wizard": {
1165
1200
  "aliases": [],
1166
1201
  "args": {},
1167
- "description": "Shows the Game iOS Platform status. If --gameId is not provided it will look in the current directory.",
1168
- "examples": [
1169
- "<%= config.bin %> <%= command.id %>",
1170
- "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1171
- ],
1172
- "flags": {
1173
- "gameId": {
1174
- "char": "g",
1175
- "description": "The ID of the game",
1176
- "name": "gameId",
1177
- "hasDynamicHelp": false,
1178
- "multiple": false,
1179
- "type": "option"
1180
- }
1181
- },
1182
- "hasDynamicHelp": false,
1183
- "hiddenAliases": [],
1184
- "id": "game:ios:status",
1185
- "pluginAlias": "shipthis",
1186
- "pluginName": "shipthis",
1187
- "pluginType": "core",
1188
- "strict": true,
1189
- "enableJsonFlag": false,
1190
- "isESM": true,
1191
- "relativePath": [
1192
- "dist",
1193
- "commands",
1194
- "game",
1195
- "ios",
1196
- "status.js"
1197
- ]
1198
- },
1199
- "game:ios:wizard": {
1200
- "aliases": [],
1201
- "args": {},
1202
- "description": "Runs all the steps for iOS",
1202
+ "description": "Runs all the steps for iOS",
1203
1203
  "examples": [
1204
1204
  "<%= config.bin %> <%= command.id %>"
1205
1205
  ],
@@ -1367,13 +1367,14 @@
1367
1367
  "status.js"
1368
1368
  ]
1369
1369
  },
1370
- "game:android:keyStore:create": {
1370
+ "game:android:apiKey:connect": {
1371
1371
  "aliases": [],
1372
1372
  "args": {},
1373
- "description": "Creates a new Android Keystore for a game",
1373
+ "description": "Connects ShipThis with Google for managing Service Account API Keys for an Android game",
1374
1374
  "examples": [
1375
1375
  "<%= config.bin %> <%= command.id %>",
1376
- "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1376
+ "<%= config.bin %> <%= command.id %> --force",
1377
+ "<%= config.bin %> <%= command.id %> --disconnect"
1377
1378
  ],
1378
1379
  "flags": {
1379
1380
  "gameId": {
@@ -1389,11 +1390,17 @@
1389
1390
  "name": "force",
1390
1391
  "allowNo": false,
1391
1392
  "type": "boolean"
1393
+ },
1394
+ "disconnect": {
1395
+ "char": "d",
1396
+ "name": "disconnect",
1397
+ "allowNo": false,
1398
+ "type": "boolean"
1392
1399
  }
1393
1400
  },
1394
1401
  "hasDynamicHelp": false,
1395
1402
  "hiddenAliases": [],
1396
- "id": "game:android:keyStore:create",
1403
+ "id": "game:android:apiKey:connect",
1397
1404
  "pluginAlias": "shipthis",
1398
1405
  "pluginName": "shipthis",
1399
1406
  "pluginType": "core",
@@ -1404,22 +1411,17 @@
1404
1411
  "commands",
1405
1412
  "game",
1406
1413
  "android",
1407
- "keyStore",
1408
- "create.js"
1414
+ "apiKey",
1415
+ "connect.js"
1409
1416
  ]
1410
1417
  },
1411
- "game:android:keyStore:export": {
1418
+ "game:android:apiKey:create": {
1412
1419
  "aliases": [],
1413
- "args": {
1414
- "file": {
1415
- "description": "Name of the ZIP file to create",
1416
- "name": "file",
1417
- "required": true
1418
- }
1419
- },
1420
- "description": "Saves the current Android Keystore to a ZIP file",
1420
+ "args": {},
1421
+ "description": "Creates a new Android Service Account API Key for a game",
1421
1422
  "examples": [
1422
- "<%= config.bin %> <%= command.id %> keyStore.zip"
1423
+ "<%= config.bin %> <%= command.id %>",
1424
+ "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1423
1425
  ],
1424
1426
  "flags": {
1425
1427
  "gameId": {
@@ -1430,9 +1432,15 @@
1430
1432
  "multiple": false,
1431
1433
  "type": "option"
1432
1434
  },
1435
+ "waitForAuth": {
1436
+ "char": "w",
1437
+ "description": "Wait for Google Authentication (10 mins).",
1438
+ "name": "waitForAuth",
1439
+ "allowNo": false,
1440
+ "type": "boolean"
1441
+ },
1433
1442
  "force": {
1434
1443
  "char": "f",
1435
- "description": "Overwrite the file if it already exists",
1436
1444
  "name": "force",
1437
1445
  "allowNo": false,
1438
1446
  "type": "boolean"
@@ -1440,35 +1448,33 @@
1440
1448
  },
1441
1449
  "hasDynamicHelp": false,
1442
1450
  "hiddenAliases": [],
1443
- "id": "game:android:keyStore:export",
1451
+ "id": "game:android:apiKey:create",
1444
1452
  "pluginAlias": "shipthis",
1445
1453
  "pluginName": "shipthis",
1446
1454
  "pluginType": "core",
1447
1455
  "strict": true,
1448
- "enableJsonFlag": false,
1449
1456
  "isESM": true,
1450
1457
  "relativePath": [
1451
1458
  "dist",
1452
1459
  "commands",
1453
1460
  "game",
1454
1461
  "android",
1455
- "keyStore",
1456
- "export.js"
1462
+ "apiKey",
1463
+ "create.js"
1457
1464
  ]
1458
1465
  },
1459
- "game:android:keyStore:import": {
1466
+ "game:android:apiKey:export": {
1460
1467
  "aliases": [],
1461
1468
  "args": {
1462
1469
  "file": {
1463
- "description": "Path to the ZIP file to import (must be in the same format as the export)",
1470
+ "description": "Name of the ZIP file to create",
1464
1471
  "name": "file",
1465
- "required": false
1472
+ "required": true
1466
1473
  }
1467
1474
  },
1468
- "description": "Imports an Android Keystore to your ShipThis account for the specified game.",
1475
+ "description": "Saves the current Android Service Account API Key to a ZIP file",
1469
1476
  "examples": [
1470
- "<%= config.bin %> <%= command.id %> path/to/import.zip -g abfd5b00",
1471
- "<%= config.bin %> <%= command.id %> --jksFile path/to/file.jks --keystorePassword yourpass --keyPassword yourkeypass"
1477
+ "<%= config.bin %> <%= command.id %> keyStore.zip"
1472
1478
  ],
1473
1479
  "flags": {
1474
1480
  "gameId": {
@@ -1479,30 +1485,9 @@
1479
1485
  "multiple": false,
1480
1486
  "type": "option"
1481
1487
  },
1482
- "jksFile": {
1483
- "description": "Path to the JKS file to import (requires passwords)",
1484
- "name": "jksFile",
1485
- "hasDynamicHelp": false,
1486
- "multiple": false,
1487
- "type": "option"
1488
- },
1489
- "keystorePassword": {
1490
- "description": "Keystore password (required when using --jksFile)",
1491
- "name": "keystorePassword",
1492
- "hasDynamicHelp": false,
1493
- "multiple": false,
1494
- "type": "option"
1495
- },
1496
- "keyPassword": {
1497
- "description": "Key alias password (required when using --jksFile)",
1498
- "name": "keyPassword",
1499
- "hasDynamicHelp": false,
1500
- "multiple": false,
1501
- "type": "option"
1502
- },
1503
1488
  "force": {
1504
1489
  "char": "f",
1505
- "description": "Overwrite any existing keystore without confirmation",
1490
+ "description": "Overwrite the file if it already exists",
1506
1491
  "name": "force",
1507
1492
  "allowNo": false,
1508
1493
  "type": "boolean"
@@ -1510,29 +1495,33 @@
1510
1495
  },
1511
1496
  "hasDynamicHelp": false,
1512
1497
  "hiddenAliases": [],
1513
- "id": "game:android:keyStore:import",
1498
+ "id": "game:android:apiKey:export",
1514
1499
  "pluginAlias": "shipthis",
1515
1500
  "pluginName": "shipthis",
1516
1501
  "pluginType": "core",
1517
1502
  "strict": true,
1518
- "enableJsonFlag": false,
1519
1503
  "isESM": true,
1520
1504
  "relativePath": [
1521
1505
  "dist",
1522
1506
  "commands",
1523
1507
  "game",
1524
1508
  "android",
1525
- "keyStore",
1526
- "import.js"
1509
+ "apiKey",
1510
+ "export.js"
1527
1511
  ]
1528
1512
  },
1529
- "game:android:keyStore:status": {
1513
+ "game:android:apiKey:import": {
1530
1514
  "aliases": [],
1531
- "args": {},
1532
- "description": "Displays the status of the Android Keystore for a specific game.",
1515
+ "args": {
1516
+ "file": {
1517
+ "description": "Name of the ZIP file to import (must be in the same format as the export)",
1518
+ "name": "file",
1519
+ "required": true
1520
+ }
1521
+ },
1522
+ "description": "Imports an Android Service Account API Key to your ShipThis account for the specified game.",
1533
1523
  "examples": [
1534
- "<%= config.bin %> <%= command.id %>",
1535
- "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1524
+ "<%= config.bin %> <%= command.id %>"
1536
1525
  ],
1537
1526
  "flags": {
1538
1527
  "gameId": {
@@ -1542,34 +1531,43 @@
1542
1531
  "hasDynamicHelp": false,
1543
1532
  "multiple": false,
1544
1533
  "type": "option"
1534
+ },
1535
+ "force": {
1536
+ "char": "f",
1537
+ "name": "force",
1538
+ "allowNo": false,
1539
+ "type": "boolean"
1545
1540
  }
1546
1541
  },
1547
1542
  "hasDynamicHelp": false,
1548
1543
  "hiddenAliases": [],
1549
- "id": "game:android:keyStore:status",
1544
+ "id": "game:android:apiKey:import",
1550
1545
  "pluginAlias": "shipthis",
1551
1546
  "pluginName": "shipthis",
1552
1547
  "pluginType": "core",
1553
1548
  "strict": true,
1554
- "enableJsonFlag": false,
1555
1549
  "isESM": true,
1556
1550
  "relativePath": [
1557
1551
  "dist",
1558
1552
  "commands",
1559
1553
  "game",
1560
1554
  "android",
1561
- "keyStore",
1562
- "status.js"
1555
+ "apiKey",
1556
+ "import.js"
1563
1557
  ]
1564
1558
  },
1565
- "game:android:apiKey:connect": {
1559
+ "game:android:apiKey:invite": {
1566
1560
  "aliases": [],
1567
- "args": {},
1568
- "description": "Connects ShipThis with Google for managing Service Account API Keys for an Android game",
1561
+ "args": {
1562
+ "accountId": {
1563
+ "description": "The Google Play Account ID",
1564
+ "name": "accountId",
1565
+ "required": false
1566
+ }
1567
+ },
1568
+ "description": "Invites the Service Account to your Google Play Account.",
1569
1569
  "examples": [
1570
- "<%= config.bin %> <%= command.id %>",
1571
- "<%= config.bin %> <%= command.id %> --force",
1572
- "<%= config.bin %> <%= command.id %> --disconnect"
1570
+ "<%= config.bin %> <%= command.id %>"
1573
1571
  ],
1574
1572
  "flags": {
1575
1573
  "gameId": {
@@ -1580,22 +1578,31 @@
1580
1578
  "multiple": false,
1581
1579
  "type": "option"
1582
1580
  },
1583
- "force": {
1584
- "char": "f",
1585
- "name": "force",
1581
+ "prompt": {
1582
+ "char": "p",
1583
+ "description": "Prompt for the Google Play Account ID",
1584
+ "name": "prompt",
1586
1585
  "allowNo": false,
1587
1586
  "type": "boolean"
1588
1587
  },
1589
- "disconnect": {
1590
- "char": "d",
1591
- "name": "disconnect",
1588
+ "waitForGoogleApp": {
1589
+ "char": "p",
1590
+ "description": "Waits for the Google Play app to be created (10 mins).",
1591
+ "name": "waitForGoogleApp",
1592
+ "allowNo": false,
1593
+ "type": "boolean"
1594
+ },
1595
+ "waitForAuth": {
1596
+ "char": "w",
1597
+ "description": "Wait for Google Authentication (10 mins).",
1598
+ "name": "waitForAuth",
1592
1599
  "allowNo": false,
1593
1600
  "type": "boolean"
1594
1601
  }
1595
1602
  },
1596
1603
  "hasDynamicHelp": false,
1597
1604
  "hiddenAliases": [],
1598
- "id": "game:android:apiKey:connect",
1605
+ "id": "game:android:apiKey:invite",
1599
1606
  "pluginAlias": "shipthis",
1600
1607
  "pluginName": "shipthis",
1601
1608
  "pluginType": "core",
@@ -1607,13 +1614,13 @@
1607
1614
  "game",
1608
1615
  "android",
1609
1616
  "apiKey",
1610
- "connect.js"
1617
+ "invite.js"
1611
1618
  ]
1612
1619
  },
1613
- "game:android:apiKey:create": {
1620
+ "game:android:apiKey:status": {
1614
1621
  "aliases": [],
1615
1622
  "args": {},
1616
- "description": "Creates a new Android Service Account API Key for a game",
1623
+ "description": "Displays the status of the Android Service Account API Key for a specific game.",
1617
1624
  "examples": [
1618
1625
  "<%= config.bin %> <%= command.id %>",
1619
1626
  "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
@@ -1626,24 +1633,11 @@
1626
1633
  "hasDynamicHelp": false,
1627
1634
  "multiple": false,
1628
1635
  "type": "option"
1629
- },
1630
- "waitForAuth": {
1631
- "char": "w",
1632
- "description": "Wait for Google Authentication (10 mins).",
1633
- "name": "waitForAuth",
1634
- "allowNo": false,
1635
- "type": "boolean"
1636
- },
1637
- "force": {
1638
- "char": "f",
1639
- "name": "force",
1640
- "allowNo": false,
1641
- "type": "boolean"
1642
1636
  }
1643
1637
  },
1644
1638
  "hasDynamicHelp": false,
1645
1639
  "hiddenAliases": [],
1646
- "id": "game:android:apiKey:create",
1640
+ "id": "game:android:apiKey:status",
1647
1641
  "pluginAlias": "shipthis",
1648
1642
  "pluginName": "shipthis",
1649
1643
  "pluginType": "core",
@@ -1655,21 +1649,16 @@
1655
1649
  "game",
1656
1650
  "android",
1657
1651
  "apiKey",
1658
- "create.js"
1652
+ "status.js"
1659
1653
  ]
1660
1654
  },
1661
- "game:android:apiKey:export": {
1655
+ "game:android:keyStore:create": {
1662
1656
  "aliases": [],
1663
- "args": {
1664
- "file": {
1665
- "description": "Name of the ZIP file to create",
1666
- "name": "file",
1667
- "required": true
1668
- }
1669
- },
1670
- "description": "Saves the current Android Service Account API Key to a ZIP file",
1657
+ "args": {},
1658
+ "description": "Creates a new Android Keystore for a game",
1671
1659
  "examples": [
1672
- "<%= config.bin %> <%= command.id %> keyStore.zip"
1660
+ "<%= config.bin %> <%= command.id %>",
1661
+ "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
1673
1662
  ],
1674
1663
  "flags": {
1675
1664
  "gameId": {
@@ -1682,7 +1671,6 @@
1682
1671
  },
1683
1672
  "force": {
1684
1673
  "char": "f",
1685
- "description": "Overwrite the file if it already exists",
1686
1674
  "name": "force",
1687
1675
  "allowNo": false,
1688
1676
  "type": "boolean"
@@ -1690,7 +1678,7 @@
1690
1678
  },
1691
1679
  "hasDynamicHelp": false,
1692
1680
  "hiddenAliases": [],
1693
- "id": "game:android:apiKey:export",
1681
+ "id": "game:android:keyStore:create",
1694
1682
  "pluginAlias": "shipthis",
1695
1683
  "pluginName": "shipthis",
1696
1684
  "pluginType": "core",
@@ -1701,22 +1689,22 @@
1701
1689
  "commands",
1702
1690
  "game",
1703
1691
  "android",
1704
- "apiKey",
1705
- "export.js"
1692
+ "keyStore",
1693
+ "create.js"
1706
1694
  ]
1707
1695
  },
1708
- "game:android:apiKey:import": {
1696
+ "game:android:keyStore:export": {
1709
1697
  "aliases": [],
1710
1698
  "args": {
1711
1699
  "file": {
1712
- "description": "Name of the ZIP file to import (must be in the same format as the export)",
1700
+ "description": "Name of the ZIP file to create",
1713
1701
  "name": "file",
1714
1702
  "required": true
1715
1703
  }
1716
1704
  },
1717
- "description": "Imports an Android Service Account API Key to your ShipThis account for the specified game.",
1705
+ "description": "Saves the current Android Keystore to a ZIP file",
1718
1706
  "examples": [
1719
- "<%= config.bin %> <%= command.id %>"
1707
+ "<%= config.bin %> <%= command.id %> keyStore.zip"
1720
1708
  ],
1721
1709
  "flags": {
1722
1710
  "gameId": {
@@ -1729,6 +1717,7 @@
1729
1717
  },
1730
1718
  "force": {
1731
1719
  "char": "f",
1720
+ "description": "Overwrite the file if it already exists",
1732
1721
  "name": "force",
1733
1722
  "allowNo": false,
1734
1723
  "type": "boolean"
@@ -1736,33 +1725,35 @@
1736
1725
  },
1737
1726
  "hasDynamicHelp": false,
1738
1727
  "hiddenAliases": [],
1739
- "id": "game:android:apiKey:import",
1728
+ "id": "game:android:keyStore:export",
1740
1729
  "pluginAlias": "shipthis",
1741
1730
  "pluginName": "shipthis",
1742
1731
  "pluginType": "core",
1743
1732
  "strict": true,
1733
+ "enableJsonFlag": false,
1744
1734
  "isESM": true,
1745
1735
  "relativePath": [
1746
1736
  "dist",
1747
1737
  "commands",
1748
1738
  "game",
1749
1739
  "android",
1750
- "apiKey",
1751
- "import.js"
1740
+ "keyStore",
1741
+ "export.js"
1752
1742
  ]
1753
1743
  },
1754
- "game:android:apiKey:invite": {
1744
+ "game:android:keyStore:import": {
1755
1745
  "aliases": [],
1756
1746
  "args": {
1757
- "accountId": {
1758
- "description": "The Google Play Account ID",
1759
- "name": "accountId",
1747
+ "file": {
1748
+ "description": "Path to the ZIP file to import (must be in the same format as the export)",
1749
+ "name": "file",
1760
1750
  "required": false
1761
1751
  }
1762
1752
  },
1763
- "description": "Invites the Service Account to your Google Play Account.",
1753
+ "description": "Imports an Android Keystore to your ShipThis account for the specified game.",
1764
1754
  "examples": [
1765
- "<%= config.bin %> <%= command.id %>"
1755
+ "<%= config.bin %> <%= command.id %> path/to/import.zip -g abfd5b00",
1756
+ "<%= config.bin %> <%= command.id %> --jksFile path/to/file.jks --keystorePassword yourpass --keyPassword yourkeypass"
1766
1757
  ],
1767
1758
  "flags": {
1768
1759
  "gameId": {
@@ -1773,49 +1764,57 @@
1773
1764
  "multiple": false,
1774
1765
  "type": "option"
1775
1766
  },
1776
- "prompt": {
1777
- "char": "p",
1778
- "description": "Prompt for the Google Play Account ID",
1779
- "name": "prompt",
1780
- "allowNo": false,
1781
- "type": "boolean"
1767
+ "jksFile": {
1768
+ "description": "Path to the JKS file to import (requires passwords)",
1769
+ "name": "jksFile",
1770
+ "hasDynamicHelp": false,
1771
+ "multiple": false,
1772
+ "type": "option"
1782
1773
  },
1783
- "waitForGoogleApp": {
1784
- "char": "p",
1785
- "description": "Waits for the Google Play app to be created (10 mins).",
1786
- "name": "waitForGoogleApp",
1787
- "allowNo": false,
1788
- "type": "boolean"
1774
+ "keystorePassword": {
1775
+ "description": "Keystore password (required when using --jksFile)",
1776
+ "name": "keystorePassword",
1777
+ "hasDynamicHelp": false,
1778
+ "multiple": false,
1779
+ "type": "option"
1789
1780
  },
1790
- "waitForAuth": {
1791
- "char": "w",
1792
- "description": "Wait for Google Authentication (10 mins).",
1793
- "name": "waitForAuth",
1781
+ "keyPassword": {
1782
+ "description": "Key alias password (required when using --jksFile)",
1783
+ "name": "keyPassword",
1784
+ "hasDynamicHelp": false,
1785
+ "multiple": false,
1786
+ "type": "option"
1787
+ },
1788
+ "force": {
1789
+ "char": "f",
1790
+ "description": "Overwrite any existing keystore without confirmation",
1791
+ "name": "force",
1794
1792
  "allowNo": false,
1795
1793
  "type": "boolean"
1796
1794
  }
1797
1795
  },
1798
1796
  "hasDynamicHelp": false,
1799
1797
  "hiddenAliases": [],
1800
- "id": "game:android:apiKey:invite",
1798
+ "id": "game:android:keyStore:import",
1801
1799
  "pluginAlias": "shipthis",
1802
1800
  "pluginName": "shipthis",
1803
1801
  "pluginType": "core",
1804
1802
  "strict": true,
1803
+ "enableJsonFlag": false,
1805
1804
  "isESM": true,
1806
1805
  "relativePath": [
1807
1806
  "dist",
1808
1807
  "commands",
1809
1808
  "game",
1810
1809
  "android",
1811
- "apiKey",
1812
- "invite.js"
1810
+ "keyStore",
1811
+ "import.js"
1813
1812
  ]
1814
1813
  },
1815
- "game:android:apiKey:status": {
1814
+ "game:android:keyStore:status": {
1816
1815
  "aliases": [],
1817
1816
  "args": {},
1818
- "description": "Displays the status of the Android Service Account API Key for a specific game.",
1817
+ "description": "Displays the status of the Android Keystore for a specific game.",
1819
1818
  "examples": [
1820
1819
  "<%= config.bin %> <%= command.id %>",
1821
1820
  "<%= config.bin %> <%= command.id %> --gameId 0c179fc4"
@@ -1832,18 +1831,19 @@
1832
1831
  },
1833
1832
  "hasDynamicHelp": false,
1834
1833
  "hiddenAliases": [],
1835
- "id": "game:android:apiKey:status",
1834
+ "id": "game:android:keyStore:status",
1836
1835
  "pluginAlias": "shipthis",
1837
1836
  "pluginName": "shipthis",
1838
1837
  "pluginType": "core",
1839
1838
  "strict": true,
1839
+ "enableJsonFlag": false,
1840
1840
  "isESM": true,
1841
1841
  "relativePath": [
1842
1842
  "dist",
1843
1843
  "commands",
1844
1844
  "game",
1845
1845
  "android",
1846
- "apiKey",
1846
+ "keyStore",
1847
1847
  "status.js"
1848
1848
  ]
1849
1849
  },
@@ -2238,5 +2238,5 @@
2238
2238
  ]
2239
2239
  }
2240
2240
  },
2241
- "version": "0.1.17"
2241
+ "version": "0.1.18"
2242
2242
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "shipthis",
3
3
  "description": "ShipThis manages building and uploading your Godot games to the App Store and Google Play.",
4
- "version": "0.1.17",
4
+ "version": "0.1.18",
5
5
  "author": "Hello Invent Ltd",
6
6
  "bin": {
7
7
  "shipthis": "./bin/run.js"