adapty 0.8.7 → 0.8.9

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 (91) hide show
  1. package/README.md +30 -2
  2. package/dist/cli/base/adapty/adapty-command.d.ts +1 -4
  3. package/dist/cli/base/adapty/build.d.ts +2 -8
  4. package/dist/cli/base/adapty/index.d.ts +2 -3
  5. package/dist/cli/base/adapty/index.js +1 -1
  6. package/dist/cli/base/adapty/openSession.d.ts +2 -19
  7. package/dist/cli/base/adapty/openSession.js +6 -16
  8. package/dist/cli/base/attribution/attribution-command.d.ts +16 -0
  9. package/dist/cli/base/attribution/attribution-command.js +42 -0
  10. package/dist/cli/base/attribution/build.d.ts +5 -0
  11. package/dist/cli/base/attribution/build.js +12 -0
  12. package/dist/cli/base/attribution/flags.d.ts +16 -0
  13. package/dist/cli/base/attribution/flags.js +28 -0
  14. package/dist/cli/base/attribution/index.d.ts +4 -0
  15. package/dist/cli/base/attribution/index.js +4 -0
  16. package/dist/cli/base/attribution/openSession.d.ts +9 -0
  17. package/dist/cli/base/attribution/openSession.js +19 -0
  18. package/dist/cli/base/base-command.d.ts +7 -0
  19. package/dist/cli/base/session.d.ts +30 -0
  20. package/dist/cli/base/session.js +20 -0
  21. package/dist/cli/commands/attribution/dimensions.d.ts +7 -0
  22. package/dist/cli/commands/attribution/dimensions.js +18 -0
  23. package/dist/cli/commands/attribution/metrics.d.ts +7 -0
  24. package/dist/cli/commands/attribution/metrics.js +35 -0
  25. package/dist/cli/commands/attribution/report/index.d.ts +18 -0
  26. package/dist/cli/commands/attribution/report/index.js +93 -0
  27. package/dist/cli/commands/attribution/report/lib/render.d.ts +3 -0
  28. package/dist/cli/commands/attribution/report/lib/render.js +24 -0
  29. package/dist/cli/commands/attribution/values.d.ts +14 -0
  30. package/dist/cli/commands/attribution/values.js +44 -0
  31. package/dist/cli/errors.d.ts +12 -0
  32. package/dist/cli/errors.js +16 -0
  33. package/dist/cli/flags.d.ts +4 -0
  34. package/dist/cli/flags.js +14 -4
  35. package/dist/commands/access-levels/create.js +2 -2
  36. package/dist/commands/access-levels/get.js +3 -2
  37. package/dist/commands/access-levels/list.js +3 -2
  38. package/dist/commands/access-levels/update.js +3 -2
  39. package/dist/commands/asa/campaigns/create.d.ts +0 -1
  40. package/dist/commands/asa/campaigns/create.js +0 -2
  41. package/dist/commands/asa/campaigns/update.d.ts +0 -1
  42. package/dist/commands/asa/campaigns/update.js +1 -5
  43. package/dist/commands/attribution/dimensions.d.ts +1 -0
  44. package/dist/commands/attribution/dimensions.js +2 -0
  45. package/dist/commands/attribution/metrics.d.ts +1 -0
  46. package/dist/commands/attribution/metrics.js +2 -0
  47. package/dist/commands/attribution/report.d.ts +1 -0
  48. package/dist/commands/attribution/report.js +2 -0
  49. package/dist/commands/attribution/values.d.ts +1 -0
  50. package/dist/commands/attribution/values.js +2 -0
  51. package/dist/commands/flows/config/get.js +3 -2
  52. package/dist/commands/flows/config/update.js +3 -2
  53. package/dist/commands/flows/config/validate.js +3 -2
  54. package/dist/commands/flows/create.js +2 -2
  55. package/dist/commands/flows/get.js +3 -2
  56. package/dist/commands/flows/list.js +3 -2
  57. package/dist/commands/flows/media/upload.js +2 -2
  58. package/dist/commands/flows/publish.js +3 -2
  59. package/dist/commands/flows/update.js +3 -2
  60. package/dist/commands/paywalls/create.js +2 -2
  61. package/dist/commands/paywalls/get.js +3 -2
  62. package/dist/commands/paywalls/list.js +3 -2
  63. package/dist/commands/paywalls/placements.js +3 -2
  64. package/dist/commands/paywalls/update.js +3 -2
  65. package/dist/commands/placements/create.js +2 -2
  66. package/dist/commands/placements/get.js +3 -2
  67. package/dist/commands/placements/list.js +3 -2
  68. package/dist/commands/placements/update.js +3 -2
  69. package/dist/commands/products/create.js +2 -2
  70. package/dist/commands/products/get.js +3 -2
  71. package/dist/commands/products/list.js +3 -2
  72. package/dist/commands/products/update.js +3 -2
  73. package/dist/commands/segments/get.js +3 -2
  74. package/dist/commands/segments/list.js +3 -2
  75. package/dist/lib/asa-flags.js +1 -3
  76. package/dist/lib/flags.d.ts +0 -3
  77. package/dist/lib/flags.js +0 -13
  78. package/dist/sdk/attribution/catalog.d.ts +51 -0
  79. package/dist/sdk/attribution/catalog.js +6 -0
  80. package/dist/sdk/attribution/errors.d.ts +10 -0
  81. package/dist/sdk/attribution/errors.js +43 -0
  82. package/dist/sdk/attribution/index.d.ts +30 -0
  83. package/dist/sdk/attribution/index.js +33 -0
  84. package/dist/sdk/attribution/report.d.ts +75 -0
  85. package/dist/sdk/attribution/report.js +81 -0
  86. package/dist/sdk/attribution/resource.d.ts +30 -0
  87. package/dist/sdk/attribution/resource.js +51 -0
  88. package/dist/sdk/attribution/values.d.ts +39 -0
  89. package/dist/sdk/attribution/values.js +21 -0
  90. package/oclif.manifest.json +714 -459
  91. package/package.json +4 -1
@@ -425,13 +425,80 @@
425
425
  "update.js"
426
426
  ]
427
427
  },
428
- "asa:connect": {
428
+ "attribution:dimensions": {
429
429
  "aliases": [],
430
430
  "args": {},
431
- "description": "Connect an Apple Search Ads account to this company",
431
+ "description": "List the dimensions an attribution report can group or filter by (not scoped to an app)",
432
432
  "examples": [
433
- "<%= config.bin %> asa connect",
434
- "<%= config.bin %> asa connect --no-wait"
433
+ "<%= config.bin %> attribution dimensions",
434
+ "<%= config.bin %> attribution dimensions --json"
435
+ ],
436
+ "flags": {
437
+ "json": {
438
+ "description": "Format output as json.",
439
+ "helpGroup": "GLOBAL",
440
+ "name": "json",
441
+ "allowNo": false,
442
+ "type": "boolean"
443
+ }
444
+ },
445
+ "hasDynamicHelp": false,
446
+ "hiddenAliases": [],
447
+ "id": "attribution:dimensions",
448
+ "pluginAlias": "adapty",
449
+ "pluginName": "adapty",
450
+ "pluginType": "core",
451
+ "strict": true,
452
+ "enableJsonFlag": true,
453
+ "isESM": true,
454
+ "relativePath": [
455
+ "dist",
456
+ "commands",
457
+ "attribution",
458
+ "dimensions.js"
459
+ ]
460
+ },
461
+ "attribution:metrics": {
462
+ "aliases": [],
463
+ "args": {},
464
+ "description": "List the metrics an attribution report can ask for (not scoped to an app)",
465
+ "examples": [
466
+ "<%= config.bin %> attribution metrics",
467
+ "<%= config.bin %> attribution metrics --json"
468
+ ],
469
+ "flags": {
470
+ "json": {
471
+ "description": "Format output as json.",
472
+ "helpGroup": "GLOBAL",
473
+ "name": "json",
474
+ "allowNo": false,
475
+ "type": "boolean"
476
+ }
477
+ },
478
+ "hasDynamicHelp": false,
479
+ "hiddenAliases": [],
480
+ "id": "attribution:metrics",
481
+ "pluginAlias": "adapty",
482
+ "pluginName": "adapty",
483
+ "pluginType": "core",
484
+ "strict": true,
485
+ "enableJsonFlag": true,
486
+ "isESM": true,
487
+ "relativePath": [
488
+ "dist",
489
+ "commands",
490
+ "attribution",
491
+ "metrics.js"
492
+ ]
493
+ },
494
+ "attribution:report": {
495
+ "aliases": [],
496
+ "args": {},
497
+ "description": "Run an Attribution report for an app: metrics over a period, grouped by dimensions",
498
+ "examples": [
499
+ "<%= config.bin %> attribution report --app APP_UUID --date-from 2026-08-01 --date-to 2026-08-31 --metrics spend,installs,d7_roas --group-by campaign",
500
+ "<%= config.bin %> attribution report --app APP_UUID --date-from 2026-08-01 --date-to 2026-08-31 --metrics spend --group-by date --granularity week --filter country=US,GB --sort spend:desc",
501
+ "<%= config.bin %> attribution report --app APP_UUID --date-from 2026-08-01 --date-to 2026-08-31 --metrics spend,installs,d7_roas --group-by campaign --json"
435
502
  ],
436
503
  "flags": {
437
504
  "json": {
@@ -441,24 +508,102 @@
441
508
  "allowNo": false,
442
509
  "type": "boolean"
443
510
  },
444
- "timeout": {
445
- "description": "Seconds to wait for the browser step",
446
- "name": "timeout",
447
- "default": 300,
511
+ "app": {
512
+ "description": "App ID (UUID)",
513
+ "name": "app",
514
+ "required": true,
448
515
  "hasDynamicHelp": false,
449
516
  "multiple": false,
450
517
  "type": "option"
451
518
  },
452
- "wait": {
453
- "description": "Wait until Apple Ads reports as connected",
454
- "name": "wait",
455
- "allowNo": true,
456
- "type": "boolean"
519
+ "date-from": {
520
+ "description": "First day of the period, inclusive (YYYY-MM-DD, in the app timezone)",
521
+ "name": "date-from",
522
+ "required": true,
523
+ "hasDynamicHelp": false,
524
+ "multiple": false,
525
+ "type": "option"
526
+ },
527
+ "date-to": {
528
+ "description": "Last day of the period, inclusive (YYYY-MM-DD, in the app timezone)",
529
+ "name": "date-to",
530
+ "required": true,
531
+ "hasDynamicHelp": false,
532
+ "multiple": false,
533
+ "type": "option"
534
+ },
535
+ "metrics": {
536
+ "description": "Metric names, as `adapty attribution metrics` lists them (repeatable or comma-separated)",
537
+ "name": "metrics",
538
+ "required": true,
539
+ "delimiter": ",",
540
+ "hasDynamicHelp": false,
541
+ "multiple": true,
542
+ "type": "option"
543
+ },
544
+ "group-by": {
545
+ "description": "Dimensions to group rows by (repeatable or comma-separated)",
546
+ "name": "group-by",
547
+ "required": true,
548
+ "delimiter": ",",
549
+ "hasDynamicHelp": false,
550
+ "multiple": true,
551
+ "options": [
552
+ "date",
553
+ "campaign",
554
+ "adset",
555
+ "ad",
556
+ "keyword",
557
+ "channel",
558
+ "country",
559
+ "store"
560
+ ],
561
+ "type": "option"
562
+ },
563
+ "granularity": {
564
+ "description": "Date bucket; required with --group-by date, and allowed only with it",
565
+ "name": "granularity",
566
+ "hasDynamicHelp": false,
567
+ "multiple": false,
568
+ "options": [
569
+ "day",
570
+ "week",
571
+ "month",
572
+ "quarter",
573
+ "year"
574
+ ],
575
+ "type": "option"
576
+ },
577
+ "filter": {
578
+ "description": "Keep rows whose dimension has one of the values: dimension=value[,value] (repeatable; `\\,` for a comma inside a value)",
579
+ "name": "filter",
580
+ "hasDynamicHelp": false,
581
+ "multiple": true,
582
+ "type": "option"
583
+ },
584
+ "revenue-basis": {
585
+ "description": "Which revenue the revenue metrics use; the backend default applies when omitted",
586
+ "name": "revenue-basis",
587
+ "hasDynamicHelp": false,
588
+ "multiple": false,
589
+ "options": [
590
+ "gross",
591
+ "proceeds",
592
+ "net"
593
+ ],
594
+ "type": "option"
595
+ },
596
+ "sort": {
597
+ "description": "Sort rows by a requested metric or dimension: field[:asc|desc] (ascending by default)",
598
+ "name": "sort",
599
+ "hasDynamicHelp": false,
600
+ "multiple": false,
601
+ "type": "option"
457
602
  }
458
603
  },
459
604
  "hasDynamicHelp": false,
460
605
  "hiddenAliases": [],
461
- "id": "asa:connect",
606
+ "id": "attribution:report",
462
607
  "pluginAlias": "adapty",
463
608
  "pluginName": "adapty",
464
609
  "pluginType": "core",
@@ -468,16 +613,17 @@
468
613
  "relativePath": [
469
614
  "dist",
470
615
  "commands",
471
- "asa",
472
- "connect.js"
616
+ "attribution",
617
+ "report.js"
473
618
  ]
474
619
  },
475
- "asa:whoami": {
620
+ "attribution:values": {
476
621
  "aliases": [],
477
622
  "args": {},
478
- "description": "Show which company the token unlocks, whether Apple Ads is connected, and the request budgets it gets\n\nLimits are raised per company, so read them here rather than assuming the defaults: metrics_limit_per_minute\nand metrics_burst_limit govern asa metrics, keywords_read_limit_per_minute the keyword lists,\nmetrics_inflight_limit how many analytics calls may overlap, and max_breakdown_rows_per_page the size a\ngrouped page may project to before it is refused.",
623
+ "description": "List the values a dimension takes for an app over a period: what a report --filter can use",
479
624
  "examples": [
480
- "<%= config.bin %> asa whoami"
625
+ "<%= config.bin %> attribution values --app APP_UUID --date-from 2026-08-01 --date-to 2026-08-31 --dimension campaign",
626
+ "<%= config.bin %> attribution values --app APP_UUID --date-from 2026-08-01 --date-to 2026-08-31 --dimension country --json"
481
627
  ],
482
628
  "flags": {
483
629
  "json": {
@@ -486,11 +632,55 @@
486
632
  "name": "json",
487
633
  "allowNo": false,
488
634
  "type": "boolean"
635
+ },
636
+ "app": {
637
+ "description": "App ID (UUID)",
638
+ "name": "app",
639
+ "required": true,
640
+ "hasDynamicHelp": false,
641
+ "multiple": false,
642
+ "type": "option"
643
+ },
644
+ "date-from": {
645
+ "description": "First day of the period, inclusive (YYYY-MM-DD, in the app timezone)",
646
+ "name": "date-from",
647
+ "required": true,
648
+ "hasDynamicHelp": false,
649
+ "multiple": false,
650
+ "type": "option"
651
+ },
652
+ "date-to": {
653
+ "description": "Last day of the period, inclusive (YYYY-MM-DD, in the app timezone)",
654
+ "name": "date-to",
655
+ "required": true,
656
+ "hasDynamicHelp": false,
657
+ "multiple": false,
658
+ "type": "option"
659
+ },
660
+ "dimension": {
661
+ "description": "A filterable dimension, as `adapty attribution dimensions` lists it",
662
+ "name": "dimension",
663
+ "required": true,
664
+ "hasDynamicHelp": false,
665
+ "multiple": false,
666
+ "type": "option"
667
+ },
668
+ "revenue-basis": {
669
+ "description": "Which revenue the revenue metrics use; the backend default applies when omitted",
670
+ "name": "revenue-basis",
671
+ "hasDynamicHelp": false,
672
+ "multiple": false,
673
+ "options": [
674
+ "gross",
675
+ "proceeds",
676
+ "net"
677
+ ],
678
+ "type": "option"
489
679
  }
490
680
  },
491
681
  "hasDynamicHelp": false,
492
682
  "hiddenAliases": [],
493
- "id": "asa:whoami",
683
+ "id": "attribution:values",
494
684
  "pluginAlias": "adapty",
495
685
  "pluginName": "adapty",
496
686
  "pluginType": "core",
@@ -500,8 +690,8 @@
500
690
  "relativePath": [
501
691
  "dist",
502
692
  "commands",
503
- "asa",
504
- "whoami.js"
693
+ "attribution",
694
+ "values.js"
505
695
  ]
506
696
  },
507
697
  "auth:login": {
@@ -656,6 +846,85 @@
656
846
  "whoami.js"
657
847
  ]
658
848
  },
849
+ "asa:connect": {
850
+ "aliases": [],
851
+ "args": {},
852
+ "description": "Connect an Apple Search Ads account to this company",
853
+ "examples": [
854
+ "<%= config.bin %> asa connect",
855
+ "<%= config.bin %> asa connect --no-wait"
856
+ ],
857
+ "flags": {
858
+ "json": {
859
+ "description": "Format output as json.",
860
+ "helpGroup": "GLOBAL",
861
+ "name": "json",
862
+ "allowNo": false,
863
+ "type": "boolean"
864
+ },
865
+ "timeout": {
866
+ "description": "Seconds to wait for the browser step",
867
+ "name": "timeout",
868
+ "default": 300,
869
+ "hasDynamicHelp": false,
870
+ "multiple": false,
871
+ "type": "option"
872
+ },
873
+ "wait": {
874
+ "description": "Wait until Apple Ads reports as connected",
875
+ "name": "wait",
876
+ "allowNo": true,
877
+ "type": "boolean"
878
+ }
879
+ },
880
+ "hasDynamicHelp": false,
881
+ "hiddenAliases": [],
882
+ "id": "asa:connect",
883
+ "pluginAlias": "adapty",
884
+ "pluginName": "adapty",
885
+ "pluginType": "core",
886
+ "strict": true,
887
+ "enableJsonFlag": true,
888
+ "isESM": true,
889
+ "relativePath": [
890
+ "dist",
891
+ "commands",
892
+ "asa",
893
+ "connect.js"
894
+ ]
895
+ },
896
+ "asa:whoami": {
897
+ "aliases": [],
898
+ "args": {},
899
+ "description": "Show which company the token unlocks, whether Apple Ads is connected, and the request budgets it gets\n\nLimits are raised per company, so read them here rather than assuming the defaults: metrics_limit_per_minute\nand metrics_burst_limit govern asa metrics, keywords_read_limit_per_minute the keyword lists,\nmetrics_inflight_limit how many analytics calls may overlap, and max_breakdown_rows_per_page the size a\ngrouped page may project to before it is refused.",
900
+ "examples": [
901
+ "<%= config.bin %> asa whoami"
902
+ ],
903
+ "flags": {
904
+ "json": {
905
+ "description": "Format output as json.",
906
+ "helpGroup": "GLOBAL",
907
+ "name": "json",
908
+ "allowNo": false,
909
+ "type": "boolean"
910
+ }
911
+ },
912
+ "hasDynamicHelp": false,
913
+ "hiddenAliases": [],
914
+ "id": "asa:whoami",
915
+ "pluginAlias": "adapty",
916
+ "pluginName": "adapty",
917
+ "pluginType": "core",
918
+ "strict": true,
919
+ "enableJsonFlag": true,
920
+ "isESM": true,
921
+ "relativePath": [
922
+ "dist",
923
+ "commands",
924
+ "asa",
925
+ "whoami.js"
926
+ ]
927
+ },
659
928
  "flows:create": {
660
929
  "aliases": [],
661
930
  "args": {},
@@ -913,12 +1182,14 @@
913
1182
  "update.js"
914
1183
  ]
915
1184
  },
916
- "paywalls:create": {
1185
+ "placements:create": {
917
1186
  "aliases": [],
918
1187
  "args": {},
919
- "description": "Create a paywall with products",
1188
+ "description": "Create a placement with a paywall",
920
1189
  "examples": [
921
- "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1190
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1191
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
1192
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
922
1193
  ],
923
1194
  "flags": {
924
1195
  "json": {
@@ -936,16 +1207,30 @@
936
1207
  "multiple": false,
937
1208
  "type": "option"
938
1209
  },
939
- "product-id": {
940
- "description": "Product ID (UUID). Repeat for multiple.",
941
- "name": "product-id",
1210
+ "audiences": {
1211
+ "description": "JSON array of audience entries. Every entry needs an explicit content_type. Paywall: {content_type:\"paywall\", segment_ids, paywall_id, priority}. Flow: {content_type:\"flow\", segment_ids, flow_id, priority}. A flow must be published first (flows publish) — attaching a draft flow returns 400.",
1212
+ "name": "audiences",
1213
+ "hasDynamicHelp": false,
1214
+ "multiple": false,
1215
+ "type": "option"
1216
+ },
1217
+ "developer-id": {
1218
+ "description": "Developer ID for the placement",
1219
+ "name": "developer-id",
942
1220
  "required": true,
943
1221
  "hasDynamicHelp": false,
944
- "multiple": true,
1222
+ "multiple": false,
1223
+ "type": "option"
1224
+ },
1225
+ "paywall-id": {
1226
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1227
+ "name": "paywall-id",
1228
+ "hasDynamicHelp": false,
1229
+ "multiple": false,
945
1230
  "type": "option"
946
1231
  },
947
1232
  "title": {
948
- "description": "Paywall title",
1233
+ "description": "Placement title",
949
1234
  "name": "title",
950
1235
  "required": true,
951
1236
  "hasDynamicHelp": false,
@@ -955,7 +1240,7 @@
955
1240
  },
956
1241
  "hasDynamicHelp": false,
957
1242
  "hiddenAliases": [],
958
- "id": "paywalls:create",
1243
+ "id": "placements:create",
959
1244
  "pluginAlias": "adapty",
960
1245
  "pluginName": "adapty",
961
1246
  "pluginType": "core",
@@ -965,22 +1250,22 @@
965
1250
  "relativePath": [
966
1251
  "dist",
967
1252
  "commands",
968
- "paywalls",
1253
+ "placements",
969
1254
  "create.js"
970
1255
  ]
971
1256
  },
972
- "paywalls:get": {
1257
+ "placements:get": {
973
1258
  "aliases": [],
974
1259
  "args": {
975
- "paywall_id": {
976
- "description": "Paywall ID (UUID)",
977
- "name": "paywall_id",
1260
+ "placement_id": {
1261
+ "description": "Placement ID (UUID)",
1262
+ "name": "placement_id",
978
1263
  "required": true
979
1264
  }
980
1265
  },
981
- "description": "Get paywall details",
1266
+ "description": "Get placement details",
982
1267
  "examples": [
983
- "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1268
+ "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
984
1269
  ],
985
1270
  "flags": {
986
1271
  "json": {
@@ -1001,7 +1286,7 @@
1001
1286
  },
1002
1287
  "hasDynamicHelp": false,
1003
1288
  "hiddenAliases": [],
1004
- "id": "paywalls:get",
1289
+ "id": "placements:get",
1005
1290
  "pluginAlias": "adapty",
1006
1291
  "pluginName": "adapty",
1007
1292
  "pluginType": "core",
@@ -1011,16 +1296,16 @@
1011
1296
  "relativePath": [
1012
1297
  "dist",
1013
1298
  "commands",
1014
- "paywalls",
1299
+ "placements",
1015
1300
  "get.js"
1016
1301
  ]
1017
1302
  },
1018
- "paywalls:list": {
1303
+ "placements:list": {
1019
1304
  "aliases": [],
1020
1305
  "args": {},
1021
- "description": "List paywalls for an app",
1306
+ "description": "List placements for an app",
1022
1307
  "examples": [
1023
- "<%= config.bin %> paywalls list --app 550e8400-..."
1308
+ "<%= config.bin %> placements list --app 550e8400-..."
1024
1309
  ],
1025
1310
  "flags": {
1026
1311
  "json": {
@@ -1057,7 +1342,7 @@
1057
1342
  },
1058
1343
  "hasDynamicHelp": false,
1059
1344
  "hiddenAliases": [],
1060
- "id": "paywalls:list",
1345
+ "id": "placements:list",
1061
1346
  "pluginAlias": "adapty",
1062
1347
  "pluginName": "adapty",
1063
1348
  "pluginType": "core",
@@ -1067,22 +1352,24 @@
1067
1352
  "relativePath": [
1068
1353
  "dist",
1069
1354
  "commands",
1070
- "paywalls",
1355
+ "placements",
1071
1356
  "list.js"
1072
1357
  ]
1073
1358
  },
1074
- "paywalls:placements": {
1359
+ "placements:update": {
1075
1360
  "aliases": [],
1076
1361
  "args": {
1077
- "paywall_id": {
1078
- "description": "Paywall ID (UUID)",
1079
- "name": "paywall_id",
1362
+ "placement_id": {
1363
+ "description": "Placement ID (UUID)",
1364
+ "name": "placement_id",
1080
1365
  "required": true
1081
1366
  }
1082
1367
  },
1083
- "description": "List placements that currently use this paywall",
1368
+ "description": "Update a placement",
1084
1369
  "examples": [
1085
- "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
1370
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1371
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
1372
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1086
1373
  ],
1087
1374
  "flags": {
1088
1375
  "json": {
@@ -1099,11 +1386,41 @@
1099
1386
  "hasDynamicHelp": false,
1100
1387
  "multiple": false,
1101
1388
  "type": "option"
1389
+ },
1390
+ "audiences": {
1391
+ "description": "JSON array of audience entries. Every entry needs an explicit content_type. Paywall: {content_type:\"paywall\", segment_ids, paywall_id, priority}. Flow: {content_type:\"flow\", segment_ids, flow_id, priority}. A flow must be published first (flows publish) — attaching a draft flow returns 400.",
1392
+ "name": "audiences",
1393
+ "hasDynamicHelp": false,
1394
+ "multiple": false,
1395
+ "type": "option"
1396
+ },
1397
+ "developer-id": {
1398
+ "description": "Developer ID for the placement",
1399
+ "name": "developer-id",
1400
+ "required": true,
1401
+ "hasDynamicHelp": false,
1402
+ "multiple": false,
1403
+ "type": "option"
1404
+ },
1405
+ "paywall-id": {
1406
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1407
+ "name": "paywall-id",
1408
+ "hasDynamicHelp": false,
1409
+ "multiple": false,
1410
+ "type": "option"
1411
+ },
1412
+ "title": {
1413
+ "description": "Placement title",
1414
+ "name": "title",
1415
+ "required": true,
1416
+ "hasDynamicHelp": false,
1417
+ "multiple": false,
1418
+ "type": "option"
1102
1419
  }
1103
1420
  },
1104
1421
  "hasDynamicHelp": false,
1105
1422
  "hiddenAliases": [],
1106
- "id": "paywalls:placements",
1423
+ "id": "placements:update",
1107
1424
  "pluginAlias": "adapty",
1108
1425
  "pluginName": "adapty",
1109
1426
  "pluginType": "core",
@@ -1113,22 +1430,16 @@
1113
1430
  "relativePath": [
1114
1431
  "dist",
1115
1432
  "commands",
1116
- "paywalls",
1117
- "placements.js"
1433
+ "placements",
1434
+ "update.js"
1118
1435
  ]
1119
1436
  },
1120
- "paywalls:update": {
1437
+ "paywalls:create": {
1121
1438
  "aliases": [],
1122
- "args": {
1123
- "paywall_id": {
1124
- "description": "Paywall ID (UUID)",
1125
- "name": "paywall_id",
1126
- "required": true
1127
- }
1128
- },
1129
- "description": "Update a paywall",
1439
+ "args": {},
1440
+ "description": "Create a paywall with products",
1130
1441
  "examples": [
1131
- "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1442
+ "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1132
1443
  ],
1133
1444
  "flags": {
1134
1445
  "json": {
@@ -1165,7 +1476,7 @@
1165
1476
  },
1166
1477
  "hasDynamicHelp": false,
1167
1478
  "hiddenAliases": [],
1168
- "id": "paywalls:update",
1479
+ "id": "paywalls:create",
1169
1480
  "pluginAlias": "adapty",
1170
1481
  "pluginName": "adapty",
1171
1482
  "pluginType": "core",
@@ -1176,17 +1487,21 @@
1176
1487
  "dist",
1177
1488
  "commands",
1178
1489
  "paywalls",
1179
- "update.js"
1490
+ "create.js"
1180
1491
  ]
1181
1492
  },
1182
- "placements:create": {
1493
+ "paywalls:get": {
1183
1494
  "aliases": [],
1184
- "args": {},
1185
- "description": "Create a placement with a paywall",
1495
+ "args": {
1496
+ "paywall_id": {
1497
+ "description": "Paywall ID (UUID)",
1498
+ "name": "paywall_id",
1499
+ "required": true
1500
+ }
1501
+ },
1502
+ "description": "Get paywall details",
1186
1503
  "examples": [
1187
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1188
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
1189
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1504
+ "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1190
1505
  ],
1191
1506
  "flags": {
1192
1507
  "json": {
@@ -1203,33 +1518,59 @@
1203
1518
  "hasDynamicHelp": false,
1204
1519
  "multiple": false,
1205
1520
  "type": "option"
1521
+ }
1522
+ },
1523
+ "hasDynamicHelp": false,
1524
+ "hiddenAliases": [],
1525
+ "id": "paywalls:get",
1526
+ "pluginAlias": "adapty",
1527
+ "pluginName": "adapty",
1528
+ "pluginType": "core",
1529
+ "strict": true,
1530
+ "enableJsonFlag": true,
1531
+ "isESM": true,
1532
+ "relativePath": [
1533
+ "dist",
1534
+ "commands",
1535
+ "paywalls",
1536
+ "get.js"
1537
+ ]
1538
+ },
1539
+ "paywalls:list": {
1540
+ "aliases": [],
1541
+ "args": {},
1542
+ "description": "List paywalls for an app",
1543
+ "examples": [
1544
+ "<%= config.bin %> paywalls list --app 550e8400-..."
1545
+ ],
1546
+ "flags": {
1547
+ "json": {
1548
+ "description": "Format output as json.",
1549
+ "helpGroup": "GLOBAL",
1550
+ "name": "json",
1551
+ "allowNo": false,
1552
+ "type": "boolean"
1206
1553
  },
1207
- "audiences": {
1208
- "description": "JSON array of audience entries. Every entry needs an explicit content_type. Paywall: {content_type:\"paywall\", segment_ids, paywall_id, priority}. Flow: {content_type:\"flow\", segment_ids, flow_id, priority}. A flow must be published first (flows publish) — attaching a draft flow returns 400.",
1209
- "name": "audiences",
1210
- "hasDynamicHelp": false,
1211
- "multiple": false,
1212
- "type": "option"
1213
- },
1214
- "developer-id": {
1215
- "description": "Developer ID for the placement",
1216
- "name": "developer-id",
1554
+ "app": {
1555
+ "description": "App ID (UUID)",
1556
+ "name": "app",
1217
1557
  "required": true,
1218
1558
  "hasDynamicHelp": false,
1219
1559
  "multiple": false,
1220
1560
  "type": "option"
1221
1561
  },
1222
- "paywall-id": {
1223
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1224
- "name": "paywall-id",
1562
+ "page": {
1563
+ "description": "Page number",
1564
+ "name": "page",
1565
+ "default": 1,
1225
1566
  "hasDynamicHelp": false,
1226
1567
  "multiple": false,
1227
1568
  "type": "option"
1228
1569
  },
1229
- "title": {
1230
- "description": "Placement title",
1231
- "name": "title",
1232
- "required": true,
1570
+ "page-size": {
1571
+ "description": "Items per page (max 100)",
1572
+ "name": "page-size",
1573
+ "default": 20,
1233
1574
  "hasDynamicHelp": false,
1234
1575
  "multiple": false,
1235
1576
  "type": "option"
@@ -1237,7 +1578,7 @@
1237
1578
  },
1238
1579
  "hasDynamicHelp": false,
1239
1580
  "hiddenAliases": [],
1240
- "id": "placements:create",
1581
+ "id": "paywalls:list",
1241
1582
  "pluginAlias": "adapty",
1242
1583
  "pluginName": "adapty",
1243
1584
  "pluginType": "core",
@@ -1247,22 +1588,22 @@
1247
1588
  "relativePath": [
1248
1589
  "dist",
1249
1590
  "commands",
1250
- "placements",
1251
- "create.js"
1591
+ "paywalls",
1592
+ "list.js"
1252
1593
  ]
1253
1594
  },
1254
- "placements:get": {
1595
+ "paywalls:placements": {
1255
1596
  "aliases": [],
1256
1597
  "args": {
1257
- "placement_id": {
1258
- "description": "Placement ID (UUID)",
1259
- "name": "placement_id",
1598
+ "paywall_id": {
1599
+ "description": "Paywall ID (UUID)",
1600
+ "name": "paywall_id",
1260
1601
  "required": true
1261
1602
  }
1262
1603
  },
1263
- "description": "Get placement details",
1604
+ "description": "List placements that currently use this paywall",
1264
1605
  "examples": [
1265
- "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1606
+ "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
1266
1607
  ],
1267
1608
  "flags": {
1268
1609
  "json": {
@@ -1283,7 +1624,7 @@
1283
1624
  },
1284
1625
  "hasDynamicHelp": false,
1285
1626
  "hiddenAliases": [],
1286
- "id": "placements:get",
1627
+ "id": "paywalls:placements",
1287
1628
  "pluginAlias": "adapty",
1288
1629
  "pluginName": "adapty",
1289
1630
  "pluginType": "core",
@@ -1293,16 +1634,22 @@
1293
1634
  "relativePath": [
1294
1635
  "dist",
1295
1636
  "commands",
1296
- "placements",
1297
- "get.js"
1637
+ "paywalls",
1638
+ "placements.js"
1298
1639
  ]
1299
1640
  },
1300
- "placements:list": {
1641
+ "paywalls:update": {
1301
1642
  "aliases": [],
1302
- "args": {},
1303
- "description": "List placements for an app",
1643
+ "args": {
1644
+ "paywall_id": {
1645
+ "description": "Paywall ID (UUID)",
1646
+ "name": "paywall_id",
1647
+ "required": true
1648
+ }
1649
+ },
1650
+ "description": "Update a paywall",
1304
1651
  "examples": [
1305
- "<%= config.bin %> placements list --app 550e8400-..."
1652
+ "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1306
1653
  ],
1307
1654
  "flags": {
1308
1655
  "json": {
@@ -1320,18 +1667,18 @@
1320
1667
  "multiple": false,
1321
1668
  "type": "option"
1322
1669
  },
1323
- "page": {
1324
- "description": "Page number",
1325
- "name": "page",
1326
- "default": 1,
1670
+ "product-id": {
1671
+ "description": "Product ID (UUID). Repeat for multiple.",
1672
+ "name": "product-id",
1673
+ "required": true,
1327
1674
  "hasDynamicHelp": false,
1328
- "multiple": false,
1675
+ "multiple": true,
1329
1676
  "type": "option"
1330
1677
  },
1331
- "page-size": {
1332
- "description": "Items per page (max 100)",
1333
- "name": "page-size",
1334
- "default": 20,
1678
+ "title": {
1679
+ "description": "Paywall title",
1680
+ "name": "title",
1681
+ "required": true,
1335
1682
  "hasDynamicHelp": false,
1336
1683
  "multiple": false,
1337
1684
  "type": "option"
@@ -1339,7 +1686,7 @@
1339
1686
  },
1340
1687
  "hasDynamicHelp": false,
1341
1688
  "hiddenAliases": [],
1342
- "id": "placements:list",
1689
+ "id": "paywalls:update",
1343
1690
  "pluginAlias": "adapty",
1344
1691
  "pluginName": "adapty",
1345
1692
  "pluginType": "core",
@@ -1349,24 +1696,22 @@
1349
1696
  "relativePath": [
1350
1697
  "dist",
1351
1698
  "commands",
1352
- "placements",
1353
- "list.js"
1699
+ "paywalls",
1700
+ "update.js"
1354
1701
  ]
1355
1702
  },
1356
- "placements:update": {
1703
+ "segments:get": {
1357
1704
  "aliases": [],
1358
1705
  "args": {
1359
- "placement_id": {
1360
- "description": "Placement ID (UUID)",
1361
- "name": "placement_id",
1706
+ "segment_id": {
1707
+ "description": "Segment ID (UUID)",
1708
+ "name": "segment_id",
1362
1709
  "required": true
1363
1710
  }
1364
1711
  },
1365
- "description": "Update a placement",
1712
+ "description": "Get segment details",
1366
1713
  "examples": [
1367
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1368
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
1369
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1714
+ "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1370
1715
  ],
1371
1716
  "flags": {
1372
1717
  "json": {
@@ -1383,33 +1728,59 @@
1383
1728
  "hasDynamicHelp": false,
1384
1729
  "multiple": false,
1385
1730
  "type": "option"
1731
+ }
1732
+ },
1733
+ "hasDynamicHelp": false,
1734
+ "hiddenAliases": [],
1735
+ "id": "segments:get",
1736
+ "pluginAlias": "adapty",
1737
+ "pluginName": "adapty",
1738
+ "pluginType": "core",
1739
+ "strict": true,
1740
+ "enableJsonFlag": true,
1741
+ "isESM": true,
1742
+ "relativePath": [
1743
+ "dist",
1744
+ "commands",
1745
+ "segments",
1746
+ "get.js"
1747
+ ]
1748
+ },
1749
+ "segments:list": {
1750
+ "aliases": [],
1751
+ "args": {},
1752
+ "description": "List segments for an app",
1753
+ "examples": [
1754
+ "<%= config.bin %> segments list --app 550e8400-..."
1755
+ ],
1756
+ "flags": {
1757
+ "json": {
1758
+ "description": "Format output as json.",
1759
+ "helpGroup": "GLOBAL",
1760
+ "name": "json",
1761
+ "allowNo": false,
1762
+ "type": "boolean"
1386
1763
  },
1387
- "audiences": {
1388
- "description": "JSON array of audience entries. Every entry needs an explicit content_type. Paywall: {content_type:\"paywall\", segment_ids, paywall_id, priority}. Flow: {content_type:\"flow\", segment_ids, flow_id, priority}. A flow must be published first (flows publish) — attaching a draft flow returns 400.",
1389
- "name": "audiences",
1390
- "hasDynamicHelp": false,
1391
- "multiple": false,
1392
- "type": "option"
1393
- },
1394
- "developer-id": {
1395
- "description": "Developer ID for the placement",
1396
- "name": "developer-id",
1764
+ "app": {
1765
+ "description": "App ID (UUID)",
1766
+ "name": "app",
1397
1767
  "required": true,
1398
1768
  "hasDynamicHelp": false,
1399
1769
  "multiple": false,
1400
1770
  "type": "option"
1401
1771
  },
1402
- "paywall-id": {
1403
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1404
- "name": "paywall-id",
1772
+ "page": {
1773
+ "description": "Page number",
1774
+ "name": "page",
1775
+ "default": 1,
1405
1776
  "hasDynamicHelp": false,
1406
1777
  "multiple": false,
1407
1778
  "type": "option"
1408
1779
  },
1409
- "title": {
1410
- "description": "Placement title",
1411
- "name": "title",
1412
- "required": true,
1780
+ "page-size": {
1781
+ "description": "Items per page (max 100)",
1782
+ "name": "page-size",
1783
+ "default": 20,
1413
1784
  "hasDynamicHelp": false,
1414
1785
  "multiple": false,
1415
1786
  "type": "option"
@@ -1417,7 +1788,7 @@
1417
1788
  },
1418
1789
  "hasDynamicHelp": false,
1419
1790
  "hiddenAliases": [],
1420
- "id": "placements:update",
1791
+ "id": "segments:list",
1421
1792
  "pluginAlias": "adapty",
1422
1793
  "pluginName": "adapty",
1423
1794
  "pluginType": "core",
@@ -1427,8 +1798,8 @@
1427
1798
  "relativePath": [
1428
1799
  "dist",
1429
1800
  "commands",
1430
- "placements",
1431
- "update.js"
1801
+ "segments",
1802
+ "list.js"
1432
1803
  ]
1433
1804
  },
1434
1805
  "products:create": {
@@ -1715,108 +2086,6 @@
1715
2086
  "update.js"
1716
2087
  ]
1717
2088
  },
1718
- "segments:get": {
1719
- "aliases": [],
1720
- "args": {
1721
- "segment_id": {
1722
- "description": "Segment ID (UUID)",
1723
- "name": "segment_id",
1724
- "required": true
1725
- }
1726
- },
1727
- "description": "Get segment details",
1728
- "examples": [
1729
- "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1730
- ],
1731
- "flags": {
1732
- "json": {
1733
- "description": "Format output as json.",
1734
- "helpGroup": "GLOBAL",
1735
- "name": "json",
1736
- "allowNo": false,
1737
- "type": "boolean"
1738
- },
1739
- "app": {
1740
- "description": "App ID (UUID)",
1741
- "name": "app",
1742
- "required": true,
1743
- "hasDynamicHelp": false,
1744
- "multiple": false,
1745
- "type": "option"
1746
- }
1747
- },
1748
- "hasDynamicHelp": false,
1749
- "hiddenAliases": [],
1750
- "id": "segments:get",
1751
- "pluginAlias": "adapty",
1752
- "pluginName": "adapty",
1753
- "pluginType": "core",
1754
- "strict": true,
1755
- "enableJsonFlag": true,
1756
- "isESM": true,
1757
- "relativePath": [
1758
- "dist",
1759
- "commands",
1760
- "segments",
1761
- "get.js"
1762
- ]
1763
- },
1764
- "segments:list": {
1765
- "aliases": [],
1766
- "args": {},
1767
- "description": "List segments for an app",
1768
- "examples": [
1769
- "<%= config.bin %> segments list --app 550e8400-..."
1770
- ],
1771
- "flags": {
1772
- "json": {
1773
- "description": "Format output as json.",
1774
- "helpGroup": "GLOBAL",
1775
- "name": "json",
1776
- "allowNo": false,
1777
- "type": "boolean"
1778
- },
1779
- "app": {
1780
- "description": "App ID (UUID)",
1781
- "name": "app",
1782
- "required": true,
1783
- "hasDynamicHelp": false,
1784
- "multiple": false,
1785
- "type": "option"
1786
- },
1787
- "page": {
1788
- "description": "Page number",
1789
- "name": "page",
1790
- "default": 1,
1791
- "hasDynamicHelp": false,
1792
- "multiple": false,
1793
- "type": "option"
1794
- },
1795
- "page-size": {
1796
- "description": "Items per page (max 100)",
1797
- "name": "page-size",
1798
- "default": 20,
1799
- "hasDynamicHelp": false,
1800
- "multiple": false,
1801
- "type": "option"
1802
- }
1803
- },
1804
- "hasDynamicHelp": false,
1805
- "hiddenAliases": [],
1806
- "id": "segments:list",
1807
- "pluginAlias": "adapty",
1808
- "pluginName": "adapty",
1809
- "pluginType": "core",
1810
- "strict": true,
1811
- "enableJsonFlag": true,
1812
- "isESM": true,
1813
- "relativePath": [
1814
- "dist",
1815
- "commands",
1816
- "segments",
1817
- "list.js"
1818
- ]
1819
- },
1820
2089
  "asa:ad-groups:create": {
1821
2090
  "aliases": [],
1822
2091
  "args": {},
@@ -2198,6 +2467,56 @@
2198
2467
  "update.js"
2199
2468
  ]
2200
2469
  },
2470
+ "asa:apps:list": {
2471
+ "aliases": [],
2472
+ "args": {},
2473
+ "description": "List the apps promoted by this company in Apple Search Ads",
2474
+ "examples": [
2475
+ "<%= config.bin %> asa apps list",
2476
+ "<%= config.bin %> asa apps list --page 2 --page-size 50"
2477
+ ],
2478
+ "flags": {
2479
+ "json": {
2480
+ "description": "Format output as json.",
2481
+ "helpGroup": "GLOBAL",
2482
+ "name": "json",
2483
+ "allowNo": false,
2484
+ "type": "boolean"
2485
+ },
2486
+ "page": {
2487
+ "description": "Page number",
2488
+ "name": "page",
2489
+ "default": 1,
2490
+ "hasDynamicHelp": false,
2491
+ "multiple": false,
2492
+ "type": "option"
2493
+ },
2494
+ "page-size": {
2495
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2496
+ "name": "page-size",
2497
+ "default": 100,
2498
+ "hasDynamicHelp": false,
2499
+ "multiple": false,
2500
+ "type": "option"
2501
+ }
2502
+ },
2503
+ "hasDynamicHelp": false,
2504
+ "hiddenAliases": [],
2505
+ "id": "asa:apps:list",
2506
+ "pluginAlias": "adapty",
2507
+ "pluginName": "adapty",
2508
+ "pluginType": "core",
2509
+ "strict": true,
2510
+ "enableJsonFlag": true,
2511
+ "isESM": true,
2512
+ "relativePath": [
2513
+ "dist",
2514
+ "commands",
2515
+ "asa",
2516
+ "apps",
2517
+ "list.js"
2518
+ ]
2519
+ },
2201
2520
  "asa:ads:create": {
2202
2521
  "aliases": [],
2203
2522
  "args": {},
@@ -2479,56 +2798,6 @@
2479
2798
  "update.js"
2480
2799
  ]
2481
2800
  },
2482
- "asa:apps:list": {
2483
- "aliases": [],
2484
- "args": {},
2485
- "description": "List the apps promoted by this company in Apple Search Ads",
2486
- "examples": [
2487
- "<%= config.bin %> asa apps list",
2488
- "<%= config.bin %> asa apps list --page 2 --page-size 50"
2489
- ],
2490
- "flags": {
2491
- "json": {
2492
- "description": "Format output as json.",
2493
- "helpGroup": "GLOBAL",
2494
- "name": "json",
2495
- "allowNo": false,
2496
- "type": "boolean"
2497
- },
2498
- "page": {
2499
- "description": "Page number",
2500
- "name": "page",
2501
- "default": 1,
2502
- "hasDynamicHelp": false,
2503
- "multiple": false,
2504
- "type": "option"
2505
- },
2506
- "page-size": {
2507
- "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2508
- "name": "page-size",
2509
- "default": 100,
2510
- "hasDynamicHelp": false,
2511
- "multiple": false,
2512
- "type": "option"
2513
- }
2514
- },
2515
- "hasDynamicHelp": false,
2516
- "hiddenAliases": [],
2517
- "id": "asa:apps:list",
2518
- "pluginAlias": "adapty",
2519
- "pluginName": "adapty",
2520
- "pluginType": "core",
2521
- "strict": true,
2522
- "enableJsonFlag": true,
2523
- "isESM": true,
2524
- "relativePath": [
2525
- "dist",
2526
- "commands",
2527
- "asa",
2528
- "apps",
2529
- "list.js"
2530
- ]
2531
- },
2532
2801
  "asa:automations:create": {
2533
2802
  "aliases": [],
2534
2803
  "args": {},
@@ -3044,18 +3313,82 @@
3044
3313
  "allowNo": false,
3045
3314
  "type": "boolean"
3046
3315
  },
3047
- "app-ids": {
3048
- "description": "Apple App Store IDs (adam_id), comma-separated, 1-5 values",
3049
- "name": "app-ids",
3050
- "required": true,
3316
+ "app-ids": {
3317
+ "description": "Apple App Store IDs (adam_id), comma-separated, 1-5 values",
3318
+ "name": "app-ids",
3319
+ "required": true,
3320
+ "hasDynamicHelp": false,
3321
+ "multiple": false,
3322
+ "type": "option"
3323
+ }
3324
+ },
3325
+ "hasDynamicHelp": false,
3326
+ "hiddenAliases": [],
3327
+ "id": "asa:competitors:summary",
3328
+ "pluginAlias": "adapty",
3329
+ "pluginName": "adapty",
3330
+ "pluginType": "core",
3331
+ "strict": true,
3332
+ "enableJsonFlag": true,
3333
+ "isESM": true,
3334
+ "relativePath": [
3335
+ "dist",
3336
+ "commands",
3337
+ "asa",
3338
+ "competitors",
3339
+ "summary.js"
3340
+ ]
3341
+ },
3342
+ "asa:creatives:list": {
3343
+ "aliases": [],
3344
+ "args": {},
3345
+ "description": "List creatives; creative_id is what `asa ads create` needs",
3346
+ "examples": [
3347
+ "<%= config.bin %> asa creatives list",
3348
+ "<%= config.bin %> asa creatives list --app APP_UUID"
3349
+ ],
3350
+ "flags": {
3351
+ "json": {
3352
+ "description": "Format output as json.",
3353
+ "helpGroup": "GLOBAL",
3354
+ "name": "json",
3355
+ "allowNo": false,
3356
+ "type": "boolean"
3357
+ },
3358
+ "page": {
3359
+ "description": "Page number",
3360
+ "name": "page",
3361
+ "default": 1,
3362
+ "hasDynamicHelp": false,
3363
+ "multiple": false,
3364
+ "type": "option"
3365
+ },
3366
+ "page-size": {
3367
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3368
+ "name": "page-size",
3369
+ "default": 100,
3051
3370
  "hasDynamicHelp": false,
3052
3371
  "multiple": false,
3053
3372
  "type": "option"
3373
+ },
3374
+ "app": {
3375
+ "description": "Keep only rows in this app; repeatable",
3376
+ "name": "app",
3377
+ "hasDynamicHelp": false,
3378
+ "multiple": true,
3379
+ "type": "option"
3380
+ },
3381
+ "campaign-group": {
3382
+ "description": "Keep only rows in this campaign group; repeatable",
3383
+ "name": "campaign-group",
3384
+ "hasDynamicHelp": false,
3385
+ "multiple": true,
3386
+ "type": "option"
3054
3387
  }
3055
3388
  },
3056
3389
  "hasDynamicHelp": false,
3057
3390
  "hiddenAliases": [],
3058
- "id": "asa:competitors:summary",
3391
+ "id": "asa:creatives:list",
3059
3392
  "pluginAlias": "adapty",
3060
3393
  "pluginName": "adapty",
3061
3394
  "pluginType": "core",
@@ -3066,8 +3399,8 @@
3066
3399
  "dist",
3067
3400
  "commands",
3068
3401
  "asa",
3069
- "competitors",
3070
- "summary.js"
3402
+ "creatives",
3403
+ "list.js"
3071
3404
  ]
3072
3405
  },
3073
3406
  "asa:campaigns:bulk-create": {
@@ -3427,13 +3760,6 @@
3427
3760
  ],
3428
3761
  "type": "option"
3429
3762
  },
3430
- "budget": {
3431
- "description": "Lifetime budget (amount, e.g. 50 or 12.50)",
3432
- "name": "budget",
3433
- "hasDynamicHelp": false,
3434
- "multiple": false,
3435
- "type": "option"
3436
- },
3437
3763
  "country": {
3438
3764
  "description": "Country or region code, repeatable",
3439
3765
  "name": "country",
@@ -3642,7 +3968,7 @@
3642
3968
  "required": true
3643
3969
  }
3644
3970
  },
3645
- "description": "Change a campaign: budgets, countries, status, schedule or Invoicing Options (all five --invoice-* flags together; they replace the stored set)",
3971
+ "description": "Change a campaign: daily budget, countries, status or Invoicing Options (all five --invoice-* flags together; they replace the stored set)",
3646
3972
  "examples": [
3647
3973
  "<%= config.bin %> asa campaigns update UUID --status PAUSED",
3648
3974
  "<%= config.bin %> asa campaigns update UUID --daily-budget 80",
@@ -3724,13 +4050,6 @@
3724
4050
  ],
3725
4051
  "type": "option"
3726
4052
  },
3727
- "budget": {
3728
- "description": "Lifetime budget (amount, e.g. 50 or 12.50)",
3729
- "name": "budget",
3730
- "hasDynamicHelp": false,
3731
- "multiple": false,
3732
- "type": "option"
3733
- },
3734
4053
  "country": {
3735
4054
  "description": "Replace the country list, repeatable",
3736
4055
  "name": "country",
@@ -4609,13 +4928,62 @@
4609
4928
  "list.js"
4610
4929
  ]
4611
4930
  },
4612
- "asa:creatives:list": {
4931
+ "asa:orgs:list": {
4613
4932
  "aliases": [],
4614
4933
  "args": {},
4615
- "description": "List creatives; creative_id is what `asa ads create` needs",
4934
+ "description": "List the Apple Search Ads organizations this company can spend from",
4616
4935
  "examples": [
4617
- "<%= config.bin %> asa creatives list",
4618
- "<%= config.bin %> asa creatives list --app APP_UUID"
4936
+ "<%= config.bin %> asa orgs list"
4937
+ ],
4938
+ "flags": {
4939
+ "json": {
4940
+ "description": "Format output as json.",
4941
+ "helpGroup": "GLOBAL",
4942
+ "name": "json",
4943
+ "allowNo": false,
4944
+ "type": "boolean"
4945
+ },
4946
+ "page": {
4947
+ "description": "Page number",
4948
+ "name": "page",
4949
+ "default": 1,
4950
+ "hasDynamicHelp": false,
4951
+ "multiple": false,
4952
+ "type": "option"
4953
+ },
4954
+ "page-size": {
4955
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
4956
+ "name": "page-size",
4957
+ "default": 100,
4958
+ "hasDynamicHelp": false,
4959
+ "multiple": false,
4960
+ "type": "option"
4961
+ }
4962
+ },
4963
+ "hasDynamicHelp": false,
4964
+ "hiddenAliases": [],
4965
+ "id": "asa:orgs:list",
4966
+ "pluginAlias": "adapty",
4967
+ "pluginName": "adapty",
4968
+ "pluginType": "core",
4969
+ "strict": true,
4970
+ "enableJsonFlag": true,
4971
+ "isESM": true,
4972
+ "relativePath": [
4973
+ "dist",
4974
+ "commands",
4975
+ "asa",
4976
+ "orgs",
4977
+ "list.js"
4978
+ ]
4979
+ },
4980
+ "asa:product-pages:list": {
4981
+ "aliases": [],
4982
+ "args": {},
4983
+ "description": "List custom product pages (read-only; authoring stays in App Store Connect)",
4984
+ "examples": [
4985
+ "<%= config.bin %> asa product-pages list",
4986
+ "<%= config.bin %> asa product-pages list --app APP_UUID"
4619
4987
  ],
4620
4988
  "flags": {
4621
4989
  "json": {
@@ -4658,7 +5026,7 @@
4658
5026
  },
4659
5027
  "hasDynamicHelp": false,
4660
5028
  "hiddenAliases": [],
4661
- "id": "asa:creatives:list",
5029
+ "id": "asa:product-pages:list",
4662
5030
  "pluginAlias": "adapty",
4663
5031
  "pluginName": "adapty",
4664
5032
  "pluginType": "core",
@@ -4669,16 +5037,17 @@
4669
5037
  "dist",
4670
5038
  "commands",
4671
5039
  "asa",
4672
- "creatives",
5040
+ "product-pages",
4673
5041
  "list.js"
4674
5042
  ]
4675
5043
  },
4676
- "asa:orgs:list": {
5044
+ "asa:product-pages:sync": {
4677
5045
  "aliases": [],
4678
5046
  "args": {},
4679
- "description": "List the Apple Search Ads organizations this company can spend from",
5047
+ "description": "Refresh custom product pages from Apple",
4680
5048
  "examples": [
4681
- "<%= config.bin %> asa orgs list"
5049
+ "<%= config.bin %> asa product-pages sync",
5050
+ "<%= config.bin %> asa product-pages sync --adam-id 123456"
4682
5051
  ],
4683
5052
  "flags": {
4684
5053
  "json": {
@@ -4688,18 +5057,23 @@
4688
5057
  "allowNo": false,
4689
5058
  "type": "boolean"
4690
5059
  },
4691
- "page": {
4692
- "description": "Page number",
4693
- "name": "page",
4694
- "default": 1,
5060
+ "yes": {
5061
+ "char": "y",
5062
+ "description": "Apply without asking; required when the output is piped or --json is used",
5063
+ "name": "yes",
5064
+ "allowNo": false,
5065
+ "type": "boolean"
5066
+ },
5067
+ "idempotency-key": {
5068
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
5069
+ "name": "idempotency-key",
4695
5070
  "hasDynamicHelp": false,
4696
5071
  "multiple": false,
4697
5072
  "type": "option"
4698
5073
  },
4699
- "page-size": {
4700
- "description": "Items per page (max 1000); prefer one big page over a pagination loop",
4701
- "name": "page-size",
4702
- "default": 100,
5074
+ "adam-id": {
5075
+ "description": "Limit the refresh to one app; omit to cover every app",
5076
+ "name": "adam-id",
4703
5077
  "hasDynamicHelp": false,
4704
5078
  "multiple": false,
4705
5079
  "type": "option"
@@ -4707,7 +5081,7 @@
4707
5081
  },
4708
5082
  "hasDynamicHelp": false,
4709
5083
  "hiddenAliases": [],
4710
- "id": "asa:orgs:list",
5084
+ "id": "asa:product-pages:sync",
4711
5085
  "pluginAlias": "adapty",
4712
5086
  "pluginName": "adapty",
4713
5087
  "pluginType": "core",
@@ -4718,8 +5092,8 @@
4718
5092
  "dist",
4719
5093
  "commands",
4720
5094
  "asa",
4721
- "orgs",
4722
- "list.js"
5095
+ "product-pages",
5096
+ "sync.js"
4723
5097
  ]
4724
5098
  },
4725
5099
  "asa:search-terms:list": {
@@ -4821,125 +5195,6 @@
4821
5195
  "list.js"
4822
5196
  ]
4823
5197
  },
4824
- "asa:product-pages:list": {
4825
- "aliases": [],
4826
- "args": {},
4827
- "description": "List custom product pages (read-only; authoring stays in App Store Connect)",
4828
- "examples": [
4829
- "<%= config.bin %> asa product-pages list",
4830
- "<%= config.bin %> asa product-pages list --app APP_UUID"
4831
- ],
4832
- "flags": {
4833
- "json": {
4834
- "description": "Format output as json.",
4835
- "helpGroup": "GLOBAL",
4836
- "name": "json",
4837
- "allowNo": false,
4838
- "type": "boolean"
4839
- },
4840
- "page": {
4841
- "description": "Page number",
4842
- "name": "page",
4843
- "default": 1,
4844
- "hasDynamicHelp": false,
4845
- "multiple": false,
4846
- "type": "option"
4847
- },
4848
- "page-size": {
4849
- "description": "Items per page (max 1000); prefer one big page over a pagination loop",
4850
- "name": "page-size",
4851
- "default": 100,
4852
- "hasDynamicHelp": false,
4853
- "multiple": false,
4854
- "type": "option"
4855
- },
4856
- "app": {
4857
- "description": "Keep only rows in this app; repeatable",
4858
- "name": "app",
4859
- "hasDynamicHelp": false,
4860
- "multiple": true,
4861
- "type": "option"
4862
- },
4863
- "campaign-group": {
4864
- "description": "Keep only rows in this campaign group; repeatable",
4865
- "name": "campaign-group",
4866
- "hasDynamicHelp": false,
4867
- "multiple": true,
4868
- "type": "option"
4869
- }
4870
- },
4871
- "hasDynamicHelp": false,
4872
- "hiddenAliases": [],
4873
- "id": "asa:product-pages:list",
4874
- "pluginAlias": "adapty",
4875
- "pluginName": "adapty",
4876
- "pluginType": "core",
4877
- "strict": true,
4878
- "enableJsonFlag": true,
4879
- "isESM": true,
4880
- "relativePath": [
4881
- "dist",
4882
- "commands",
4883
- "asa",
4884
- "product-pages",
4885
- "list.js"
4886
- ]
4887
- },
4888
- "asa:product-pages:sync": {
4889
- "aliases": [],
4890
- "args": {},
4891
- "description": "Refresh custom product pages from Apple",
4892
- "examples": [
4893
- "<%= config.bin %> asa product-pages sync",
4894
- "<%= config.bin %> asa product-pages sync --adam-id 123456"
4895
- ],
4896
- "flags": {
4897
- "json": {
4898
- "description": "Format output as json.",
4899
- "helpGroup": "GLOBAL",
4900
- "name": "json",
4901
- "allowNo": false,
4902
- "type": "boolean"
4903
- },
4904
- "yes": {
4905
- "char": "y",
4906
- "description": "Apply without asking; required when the output is piped or --json is used",
4907
- "name": "yes",
4908
- "allowNo": false,
4909
- "type": "boolean"
4910
- },
4911
- "idempotency-key": {
4912
- "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
4913
- "name": "idempotency-key",
4914
- "hasDynamicHelp": false,
4915
- "multiple": false,
4916
- "type": "option"
4917
- },
4918
- "adam-id": {
4919
- "description": "Limit the refresh to one app; omit to cover every app",
4920
- "name": "adam-id",
4921
- "hasDynamicHelp": false,
4922
- "multiple": false,
4923
- "type": "option"
4924
- }
4925
- },
4926
- "hasDynamicHelp": false,
4927
- "hiddenAliases": [],
4928
- "id": "asa:product-pages:sync",
4929
- "pluginAlias": "adapty",
4930
- "pluginName": "adapty",
4931
- "pluginType": "core",
4932
- "strict": true,
4933
- "enableJsonFlag": true,
4934
- "isESM": true,
4935
- "relativePath": [
4936
- "dist",
4937
- "commands",
4938
- "asa",
4939
- "product-pages",
4940
- "sync.js"
4941
- ]
4942
- },
4943
5198
  "flows:config:get": {
4944
5199
  "aliases": [],
4945
5200
  "args": {
@@ -5244,5 +5499,5 @@
5244
5499
  ]
5245
5500
  }
5246
5501
  },
5247
- "version": "0.8.7"
5502
+ "version": "0.8.9"
5248
5503
  }