@optima-chat/tiktok-cli 0.9.0 → 0.10.1
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/index.js +153 -0
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -202,6 +202,18 @@ function mergeSkus(existing, add) {
|
|
|
202
202
|
});
|
|
203
203
|
return [...existing, ...filledAdd];
|
|
204
204
|
}
|
|
205
|
+
function fillEmptyList(data, listKey) {
|
|
206
|
+
if (!listKey) return;
|
|
207
|
+
if (!data || typeof data !== "object" || Array.isArray(data)) return;
|
|
208
|
+
const d = data;
|
|
209
|
+
if (!(listKey in d)) d[listKey] = [];
|
|
210
|
+
}
|
|
211
|
+
function commandUsage(cmd) {
|
|
212
|
+
return `tiktok ${cmd.name} --shop <shopId> [--flags]
|
|
213
|
+
|
|
214
|
+
${cmd.summary}
|
|
215
|
+
`;
|
|
216
|
+
}
|
|
205
217
|
var today = () => (/* @__PURE__ */ new Date()).toISOString().slice(0, 10);
|
|
206
218
|
var daysAgo = (n) => new Date(Date.now() - n * 864e5).toISOString().slice(0, 10);
|
|
207
219
|
var toEpoch = (v) => /^\d+$/.test(v) ? Number(v) : Math.floor(Date.parse(v) / 1e3);
|
|
@@ -209,6 +221,7 @@ var COMMANDS = [
|
|
|
209
221
|
{
|
|
210
222
|
name: "orders list",
|
|
211
223
|
summary: "\u8BA2\u5355\u5217\u8868\uFF08\u9ED8\u8BA4\u8FD130\u5929\u3001\u6309\u521B\u5EFA\u65F6\u95F4\u5012\u5E8F\uFF1B--from/--to\uFF08unix\u79D2\u6216YYYY-MM-DD\uFF09--status --page-size --sort-order ASC/DESC --sort-field create_time/update_time\uFF09",
|
|
224
|
+
listKey: "orders",
|
|
212
225
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/order/202309/orders/search", {
|
|
213
226
|
query: {
|
|
214
227
|
page_size: args2["page-size"] ?? "20",
|
|
@@ -235,6 +248,7 @@ var COMMANDS = [
|
|
|
235
248
|
{
|
|
236
249
|
name: "orders cancellations",
|
|
237
250
|
summary: "\u53D6\u6D88\u5355\u5217\u8868\uFF08--status \u53EF\u9009\uFF0C--page-size\uFF09",
|
|
251
|
+
listKey: "cancellations",
|
|
238
252
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/return_refund/202309/cancellations/search", {
|
|
239
253
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
240
254
|
body: args2.status ? { cancel_status: args2.status } : {}
|
|
@@ -243,6 +257,7 @@ var COMMANDS = [
|
|
|
243
257
|
{
|
|
244
258
|
name: "orders returns",
|
|
245
259
|
summary: "\u9000\u8D27\u5355\u5217\u8868\uFF08--status \u53EF\u9009\uFF0C--page-size\uFF09",
|
|
260
|
+
listKey: "return_orders",
|
|
246
261
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/return_refund/202309/returns/search", {
|
|
247
262
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
248
263
|
body: args2.status ? { return_status: args2.status } : {}
|
|
@@ -261,6 +276,7 @@ var COMMANDS = [
|
|
|
261
276
|
{
|
|
262
277
|
name: "orders reject-reasons",
|
|
263
278
|
summary: "\u9A73\u56DE\u53D6\u6D88/\u9000\u8D27\u7684\u5408\u6CD5\u7406\u7531\uFF08--id return_or_cancel_id\uFF09",
|
|
279
|
+
listKey: "reasons",
|
|
264
280
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/return_refund/202309/reject_reasons", {
|
|
265
281
|
query: { return_or_cancel_id: args2.id }
|
|
266
282
|
})
|
|
@@ -288,6 +304,7 @@ var COMMANDS = [
|
|
|
288
304
|
{
|
|
289
305
|
name: "packages search",
|
|
290
306
|
summary: "\u5305\u88F9\u5217\u8868\uFF08--page-size\uFF09",
|
|
307
|
+
listKey: "packages",
|
|
291
308
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/fulfillment/202309/packages/search", {
|
|
292
309
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
293
310
|
body: {}
|
|
@@ -445,9 +462,122 @@ var COMMANDS = [
|
|
|
445
462
|
}
|
|
446
463
|
})
|
|
447
464
|
},
|
|
465
|
+
{
|
|
466
|
+
name: "analytics videos",
|
|
467
|
+
summary: "\u5185\u5BB9\u89C6\u9891\u7EF4\u5EA6\u7ECF\u8425\u6570\u636E\uFF08shop_videos\uFF0C--from --to\uFF0C\u9ED8\u8BA4\u8FD130\u5929\uFF0C\u6309 GMV \u964D\u5E8F\uFF1B--sort-field --sort-order --page-size --page-token\uFF09",
|
|
468
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, "/analytics/202509/shop_videos/performance", {
|
|
469
|
+
query: {
|
|
470
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
471
|
+
end_date_lt: args2.to ?? today(),
|
|
472
|
+
sort_field: args2["sort-field"] ?? "gmv",
|
|
473
|
+
sort_order: args2["sort-order"] ?? "DESC",
|
|
474
|
+
page_size: args2["page-size"] ?? "20",
|
|
475
|
+
...args2["page-token"] ? { page_token: args2["page-token"] } : {}
|
|
476
|
+
}
|
|
477
|
+
})
|
|
478
|
+
},
|
|
479
|
+
{
|
|
480
|
+
name: "analytics videos-overview",
|
|
481
|
+
summary: "\u5185\u5BB9\u89C6\u9891\u6574\u4F53\u6982\u89C8\uFF08shop_videos overview\uFF1B--from --to --granularity\uFF09",
|
|
482
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, "/analytics/202509/shop_videos/overview_performance", {
|
|
483
|
+
query: {
|
|
484
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
485
|
+
end_date_lt: args2.to ?? today(),
|
|
486
|
+
granularity: args2.granularity ?? "ALL"
|
|
487
|
+
}
|
|
488
|
+
})
|
|
489
|
+
},
|
|
490
|
+
{
|
|
491
|
+
name: "analytics video",
|
|
492
|
+
summary: "\u5355\u6761\u89C6\u9891\u7ECF\u8425\u660E\u7EC6\uFF08--video video_id \u5FC5\u586B\uFF1B--from --to\uFF09",
|
|
493
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, `/analytics/202509/shop_videos/${args2.video}/performance`, {
|
|
494
|
+
query: {
|
|
495
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
496
|
+
end_date_lt: args2.to ?? today()
|
|
497
|
+
}
|
|
498
|
+
})
|
|
499
|
+
},
|
|
500
|
+
{
|
|
501
|
+
name: "analytics video-products",
|
|
502
|
+
summary: "\u5355\u6761\u89C6\u9891\u5E26\u8D27\u5546\u54C1\u8868\u73B0\uFF08--video video_id \u5FC5\u586B\uFF1B--from --to --page-size\uFF09",
|
|
503
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, `/analytics/202509/shop_videos/${args2.video}/products/performance`, {
|
|
504
|
+
query: {
|
|
505
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
506
|
+
end_date_lt: args2.to ?? today(),
|
|
507
|
+
page_size: args2["page-size"] ?? "20"
|
|
508
|
+
}
|
|
509
|
+
})
|
|
510
|
+
},
|
|
511
|
+
{
|
|
512
|
+
name: "analytics lives",
|
|
513
|
+
summary: "\u76F4\u64AD\u7EF4\u5EA6\u7ECF\u8425\u6570\u636E\uFF08shop_lives\uFF0C--from --to\uFF0C\u9ED8\u8BA4\u8FD130\u5929\uFF0C\u6309 GMV \u964D\u5E8F\uFF1B--sort-field --sort-order --page-size --page-token\uFF09",
|
|
514
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, "/analytics/202509/shop_lives/performance", {
|
|
515
|
+
query: {
|
|
516
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
517
|
+
end_date_lt: args2.to ?? today(),
|
|
518
|
+
sort_field: args2["sort-field"] ?? "gmv",
|
|
519
|
+
sort_order: args2["sort-order"] ?? "DESC",
|
|
520
|
+
page_size: args2["page-size"] ?? "20",
|
|
521
|
+
...args2["page-token"] ? { page_token: args2["page-token"] } : {}
|
|
522
|
+
}
|
|
523
|
+
})
|
|
524
|
+
},
|
|
525
|
+
{
|
|
526
|
+
name: "analytics lives-overview",
|
|
527
|
+
summary: "\u76F4\u64AD\u6574\u4F53\u6982\u89C8\uFF08shop_lives overview\uFF1B--from --to --granularity\uFF09",
|
|
528
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, "/analytics/202509/shop_lives/overview_performance", {
|
|
529
|
+
query: {
|
|
530
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
531
|
+
end_date_lt: args2.to ?? today(),
|
|
532
|
+
granularity: args2.granularity ?? "ALL"
|
|
533
|
+
}
|
|
534
|
+
})
|
|
535
|
+
},
|
|
536
|
+
{
|
|
537
|
+
name: "analytics skus",
|
|
538
|
+
summary: "SKU \u7EF4\u5EA6\u7ECF\u8425\u6570\u636E\uFF08shop_skus\uFF0C--from --to\uFF0C\u9ED8\u8BA4\u8FD130\u5929\uFF0C\u6309 GMV \u964D\u5E8F\uFF1B--sort-field --sort-order --page-size --page-token\uFF09",
|
|
539
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, "/analytics/202509/shop_skus/performance", {
|
|
540
|
+
query: {
|
|
541
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
542
|
+
end_date_lt: args2.to ?? today(),
|
|
543
|
+
sort_field: args2["sort-field"] ?? "gmv",
|
|
544
|
+
sort_order: args2["sort-order"] ?? "DESC",
|
|
545
|
+
page_size: args2["page-size"] ?? "20",
|
|
546
|
+
...args2["page-token"] ? { page_token: args2["page-token"] } : {}
|
|
547
|
+
}
|
|
548
|
+
})
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
name: "analytics sku",
|
|
552
|
+
summary: "\u5355\u4E2A SKU \u7ECF\u8425\u660E\u7EC6\uFF08--sku sku_id \u5FC5\u586B\uFF1B--from --to --granularity\uFF09",
|
|
553
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, `/analytics/202509/shop_skus/${args2.sku}/performance`, {
|
|
554
|
+
query: {
|
|
555
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
556
|
+
end_date_lt: args2.to ?? today(),
|
|
557
|
+
granularity: args2.granularity ?? "ALL"
|
|
558
|
+
}
|
|
559
|
+
})
|
|
560
|
+
},
|
|
561
|
+
{
|
|
562
|
+
name: "analytics product",
|
|
563
|
+
summary: "\u5355\u4E2A\u5546\u54C1\u7ECF\u8425\u660E\u7EC6\uFF08--product product_id \u5FC5\u586B\uFF1B--from --to --granularity\uFF09",
|
|
564
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, `/analytics/202509/shop_products/${args2.product}/performance`, {
|
|
565
|
+
query: {
|
|
566
|
+
start_date_ge: args2.from ?? daysAgo(30),
|
|
567
|
+
end_date_lt: args2.to ?? today(),
|
|
568
|
+
granularity: args2.granularity ?? "ALL"
|
|
569
|
+
}
|
|
570
|
+
})
|
|
571
|
+
},
|
|
572
|
+
{
|
|
573
|
+
name: "analytics shop-hourly",
|
|
574
|
+
summary: "\u5E97\u94FA\u67D0\u5929\u5206\u65F6\uFF08\u9010\u5C0F\u65F6\uFF09\u7ECF\u8425\u6570\u636E\uFF08--date YYYY-MM-DD\uFF0C\u9ED8\u8BA4\u6628\u5929\uFF09",
|
|
575
|
+
run: ({ shop, args: args2 }) => proxy("GET", shop, `/analytics/202510/shop/performance/${args2.date ?? daysAgo(1)}/performance_per_hour`, {})
|
|
576
|
+
},
|
|
448
577
|
{
|
|
449
578
|
name: "products list",
|
|
450
579
|
summary: "\u5546\u54C1\u5217\u8868\uFF08--status ACTIVATE \u53EA\u53D6\u5728\u552E\uFF1B\u4E0D\u4F20\u8FD4\u6240\u6709\u542B DELETED\uFF0C\u5199\u64CD\u4F5C\u524D\u52A1\u5FC5\u7B5B ACTIVATE\uFF09",
|
|
580
|
+
listKey: "products",
|
|
451
581
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/product/202309/products/search", {
|
|
452
582
|
query: { page_size: args2["page-size"] ?? "20" },
|
|
453
583
|
body: args2.status ? { status: args2.status } : {}
|
|
@@ -461,6 +591,7 @@ var COMMANDS = [
|
|
|
461
591
|
{
|
|
462
592
|
name: "products diagnose",
|
|
463
593
|
summary: "\u5546\u54C1\u5B98\u65B9\u95EE\u9898\u8BCA\u65AD\uFF08--product \u9017\u53F7\u5206\u9694\u672C\u5E97\u81EA\u6709\u5546\u54C1 id\uFF09",
|
|
594
|
+
listKey: "products",
|
|
464
595
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/product/202405/products/diagnoses", {
|
|
465
596
|
query: { product_ids: String(args2.product ?? "") }
|
|
466
597
|
})
|
|
@@ -468,6 +599,7 @@ var COMMANDS = [
|
|
|
468
599
|
{
|
|
469
600
|
name: "promotions list",
|
|
470
601
|
summary: "\u4FC3\u9500\u6D3B\u52A8\u5217\u8868\uFF08--status ONGOING/NOT_START/EXPIRED\uFF09",
|
|
602
|
+
listKey: "activities",
|
|
471
603
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/promotion/202309/activities/search", {
|
|
472
604
|
body: { status: args2.status ?? "ONGOING", page_size: Number(args2["page-size"] ?? 20) }
|
|
473
605
|
})
|
|
@@ -475,6 +607,7 @@ var COMMANDS = [
|
|
|
475
607
|
{
|
|
476
608
|
name: "finance statements",
|
|
477
609
|
summary: "\u7ED3\u7B97\u5355\u5217\u8868",
|
|
610
|
+
listKey: "statements",
|
|
478
611
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/finance/202309/statements", {
|
|
479
612
|
query: {
|
|
480
613
|
page_size: args2["page-size"] ?? "20",
|
|
@@ -503,6 +636,7 @@ var COMMANDS = [
|
|
|
503
636
|
{
|
|
504
637
|
name: "categories recommend",
|
|
505
638
|
summary: "\u7C7B\u76EE\u63A8\u8350\uFF08--title [--desc]\uFF09",
|
|
639
|
+
listKey: "categories",
|
|
506
640
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/product/202309/categories/recommend", {
|
|
507
641
|
body: {
|
|
508
642
|
product_title: args2.title,
|
|
@@ -513,6 +647,7 @@ var COMMANDS = [
|
|
|
513
647
|
{
|
|
514
648
|
name: "categories tree",
|
|
515
649
|
summary: "\u7C7B\u76EE\u6811\uFF08--version v2\uFF09",
|
|
650
|
+
listKey: "categories",
|
|
516
651
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/product/202309/categories", {
|
|
517
652
|
query: { category_version: args2.version ?? "v2" }
|
|
518
653
|
})
|
|
@@ -534,6 +669,7 @@ var COMMANDS = [
|
|
|
534
669
|
{
|
|
535
670
|
name: "brands list",
|
|
536
671
|
summary: "\u54C1\u724C\u5217\u8868\uFF08[--category] [--name]\uFF09",
|
|
672
|
+
listKey: "brands",
|
|
537
673
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/product/202309/brands", {
|
|
538
674
|
query: {
|
|
539
675
|
page_size: args2["page-size"] ?? "50",
|
|
@@ -552,11 +688,13 @@ var COMMANDS = [
|
|
|
552
688
|
{
|
|
553
689
|
name: "warehouses list",
|
|
554
690
|
summary: "\u4ED3\u5E93\u5217\u8868\uFF08\u8DE8\u5883\u8BA4 sub_type CB_*\uFF09",
|
|
691
|
+
listKey: "warehouses",
|
|
555
692
|
run: ({ shop }) => proxy("GET", shop, "/logistics/202309/warehouses", {})
|
|
556
693
|
},
|
|
557
694
|
{
|
|
558
695
|
name: "shipping-templates list",
|
|
559
696
|
summary: "\u8FD0\u8D39\u6A21\u677F\u5217\u8868",
|
|
697
|
+
listKey: "templates",
|
|
560
698
|
run: ({ shop }) => proxy("GET", shop, "/logistics/202510/seller_templates", {})
|
|
561
699
|
},
|
|
562
700
|
{
|
|
@@ -671,6 +809,7 @@ var COMMANDS = [
|
|
|
671
809
|
{
|
|
672
810
|
name: "affiliate creators search",
|
|
673
811
|
summary: "\u8054\u76DF\u5E7F\u573A\u627E\u8FBE\u4EBA\uFF08--keyword\uFF0C--page-size 12|20\uFF0C\u9ED8\u8BA4 12\uFF09",
|
|
812
|
+
listKey: "creators",
|
|
674
813
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202508/marketplace_creators/search", {
|
|
675
814
|
query: { page_size: String(args2["page-size"] ?? 12) },
|
|
676
815
|
body: args2.keyword ? { keyword: args2.keyword } : {}
|
|
@@ -684,6 +823,7 @@ var COMMANDS = [
|
|
|
684
823
|
{
|
|
685
824
|
name: "affiliate target-collab search",
|
|
686
825
|
summary: "\u5B9A\u5411\u9080\u7EA6\u5217\u8868\uFF08--status collaboration_status\uFF0C\u5982 ONGOING/EXPIRING/VALID/CANCELING/COMPLETED\uFF1B--page-size\uFF09",
|
|
826
|
+
listKey: "target_collaborations",
|
|
687
827
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202508/target_collaborations/search", {
|
|
688
828
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
689
829
|
body: args2.status ? { collaboration_status: args2.status } : {}
|
|
@@ -697,6 +837,7 @@ var COMMANDS = [
|
|
|
697
837
|
{
|
|
698
838
|
name: "affiliate samples search",
|
|
699
839
|
summary: "\u6837\u54C1\u7533\u8BF7\u5217\u8868\uFF08--page-size\uFF09",
|
|
840
|
+
listKey: "sample_applications",
|
|
700
841
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202508/sample_applications/search", {
|
|
701
842
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
702
843
|
body: {}
|
|
@@ -705,6 +846,7 @@ var COMMANDS = [
|
|
|
705
846
|
{
|
|
706
847
|
name: "affiliate dm list",
|
|
707
848
|
summary: "\u79C1\u4FE1\u4F1A\u8BDD\u5217\u8868\uFF08--page-size\uFF0C--status conversation_status \u53EF\u9009\uFF09\u3002\u26A0\uFE0F\u7248\u672C\u56FA\u5B9A 202412",
|
|
849
|
+
listKey: "conversations",
|
|
708
850
|
run: ({ shop, args: args2 }) => proxy("GET", shop, "/affiliate_seller/202412/conversations", {
|
|
709
851
|
query: {
|
|
710
852
|
page_size: String(args2["page-size"] ?? 20),
|
|
@@ -720,6 +862,7 @@ var COMMANDS = [
|
|
|
720
862
|
{
|
|
721
863
|
name: "affiliate orders search",
|
|
722
864
|
summary: "\u8054\u76DF\u8BA2\u5355\u5217\u8868\uFF08\u4F63\u91D1\u660E\u7EC6\uFF0C--page-size\uFF09",
|
|
865
|
+
listKey: "orders",
|
|
723
866
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202410/orders/search", {
|
|
724
867
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
725
868
|
body: {}
|
|
@@ -728,6 +871,7 @@ var COMMANDS = [
|
|
|
728
871
|
{
|
|
729
872
|
name: "affiliate open-collab products-search",
|
|
730
873
|
summary: "\u516C\u5F00\u5408\u4F5C\u53EF\u8BBE\u4F63\u54C1\u5217\u8868\uFF08--page-size\uFF09",
|
|
874
|
+
listKey: "products",
|
|
731
875
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202405/open_collaborations/products/search", {
|
|
732
876
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
733
877
|
body: {}
|
|
@@ -736,6 +880,7 @@ var COMMANDS = [
|
|
|
736
880
|
{
|
|
737
881
|
name: "affiliate open-collab search",
|
|
738
882
|
summary: "\u516C\u5F00\u5408\u4F5C\u751F\u6548\u5217\u8868\uFF08\u542B current_commission\uFF0C--page-size\uFF09",
|
|
883
|
+
listKey: "open_collaborations",
|
|
739
884
|
run: ({ shop, args: args2 }) => proxy("POST", shop, "/affiliate_seller/202412/open_collaborations/search", {
|
|
740
885
|
query: { page_size: String(args2["page-size"] ?? 20) },
|
|
741
886
|
body: {}
|
|
@@ -835,6 +980,7 @@ var COMMANDS = [
|
|
|
835
980
|
{
|
|
836
981
|
name: "affiliate samples review",
|
|
837
982
|
summary: "\u5BA1\u6279\u6837\u54C1\u7533\u8BF7\uFF08--id application_id --result review_result [--reject-reason]\uFF09\u3002\u9ED8\u8BA4 dry-run\uFF0C--apply \u624D\u53D1",
|
|
983
|
+
listKey: "sample_applications",
|
|
838
984
|
write: true,
|
|
839
985
|
preview: ({ args: args2 }) => [{
|
|
840
986
|
step: "\u5BA1\u6279\u6837\u54C1\u7533\u8BF7",
|
|
@@ -1068,7 +1214,13 @@ if (positional[0] === "images" && positional[1] === "upload") {
|
|
|
1068
1214
|
out(r);
|
|
1069
1215
|
process.exit(0);
|
|
1070
1216
|
}
|
|
1217
|
+
var wantsHelp = argv.includes("--help") || argv.includes("-h");
|
|
1071
1218
|
var match = findCommand(positional);
|
|
1219
|
+
if (wantsHelp) {
|
|
1220
|
+
if (match) process.stderr.write(commandUsage(match.cmd));
|
|
1221
|
+
else usage();
|
|
1222
|
+
process.exit(0);
|
|
1223
|
+
}
|
|
1072
1224
|
if (!match) {
|
|
1073
1225
|
out({ ok: false, error: { code: "VALIDATION", message: `\u672A\u77E5\u547D\u4EE4: ${positional.join(" ")}`, retryable: false } });
|
|
1074
1226
|
usage();
|
|
@@ -1100,6 +1252,7 @@ if (match.cmd.write && !("apply" in args)) {
|
|
|
1100
1252
|
process.exit(0);
|
|
1101
1253
|
}
|
|
1102
1254
|
var env = await match.cmd.run(ctx);
|
|
1255
|
+
fillEmptyList(env.data, match.cmd.listKey);
|
|
1103
1256
|
if (match.cmd.write && env.ok) {
|
|
1104
1257
|
const result = { ...env, applied: true };
|
|
1105
1258
|
if (env.data?.warnings?.length) {
|