adapty 0.8.5 → 0.8.6

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 (114) hide show
  1. package/README.md +6 -1
  2. package/dist/cli/base/adapty/adapty-command.d.ts +21 -0
  3. package/dist/cli/base/adapty/adapty-command.js +47 -0
  4. package/dist/cli/base/adapty/build.d.ts +11 -0
  5. package/dist/cli/base/adapty/build.js +13 -0
  6. package/dist/cli/base/adapty/index.d.ts +5 -0
  7. package/dist/cli/base/adapty/index.js +3 -0
  8. package/dist/cli/base/adapty/openSession.d.ts +22 -0
  9. package/dist/cli/base/adapty/openSession.js +25 -0
  10. package/dist/cli/base/base-command.d.ts +30 -0
  11. package/dist/cli/base/base-command.js +64 -0
  12. package/dist/cli/commands/apps/create.d.ts +19 -0
  13. package/dist/cli/commands/apps/create.js +68 -0
  14. package/dist/cli/commands/apps/get.d.ts +10 -0
  15. package/dist/cli/commands/apps/get.js +14 -0
  16. package/dist/cli/commands/apps/list.d.ts +11 -0
  17. package/dist/cli/commands/apps/list.js +14 -0
  18. package/dist/cli/commands/apps/update.d.ts +15 -0
  19. package/dist/cli/commands/apps/update.js +30 -0
  20. package/dist/cli/commands/auth/login.d.ts +11 -0
  21. package/dist/cli/commands/auth/login.js +68 -0
  22. package/dist/cli/commands/auth/logout.d.ts +12 -0
  23. package/dist/cli/commands/auth/logout.js +28 -0
  24. package/dist/cli/commands/auth/revoke.d.ts +13 -0
  25. package/dist/cli/commands/auth/revoke.js +32 -0
  26. package/dist/cli/commands/auth/status/index.d.ts +7 -0
  27. package/dist/cli/commands/auth/status/index.js +22 -0
  28. package/dist/cli/commands/auth/status/lib/render.d.ts +3 -0
  29. package/dist/cli/commands/auth/status/lib/render.js +14 -0
  30. package/dist/cli/commands/auth/status/lib/result.d.ts +15 -0
  31. package/dist/cli/commands/auth/status/lib/result.js +1 -0
  32. package/dist/cli/commands/auth/whoami.d.ts +10 -0
  33. package/dist/cli/commands/auth/whoami.js +16 -0
  34. package/dist/cli/errors.d.ts +39 -0
  35. package/dist/cli/errors.js +92 -0
  36. package/dist/cli/flags.d.ts +16 -0
  37. package/dist/cli/flags.js +27 -0
  38. package/dist/cli/views/list.d.ts +6 -0
  39. package/dist/cli/views/list.js +10 -0
  40. package/dist/cli/views/record.d.ts +9 -0
  41. package/dist/cli/views/record.js +14 -0
  42. package/dist/commands/apps/create.d.ts +1 -14
  43. package/dist/commands/apps/create.js +2 -57
  44. package/dist/commands/apps/get.d.ts +1 -11
  45. package/dist/commands/apps/get.js +2 -22
  46. package/dist/commands/apps/list.d.ts +1 -13
  47. package/dist/commands/apps/list.js +2 -19
  48. package/dist/commands/apps/update.d.ts +1 -16
  49. package/dist/commands/apps/update.js +2 -41
  50. package/dist/commands/asa/whoami.js +6 -2
  51. package/dist/commands/auth/login.d.ts +1 -8
  52. package/dist/commands/auth/login.js +2 -122
  53. package/dist/commands/auth/logout.d.ts +1 -9
  54. package/dist/commands/auth/logout.js +2 -18
  55. package/dist/commands/auth/revoke.d.ts +1 -9
  56. package/dist/commands/auth/revoke.js +2 -21
  57. package/dist/commands/auth/status.d.ts +1 -7
  58. package/dist/commands/auth/status.js +2 -26
  59. package/dist/commands/auth/whoami.d.ts +1 -7
  60. package/dist/commands/auth/whoami.js +2 -15
  61. package/dist/lib/api-schemas.d.ts +7 -3
  62. package/dist/lib/asa-schemas.d.ts +1 -1
  63. package/dist/sdk/adapty/access-levels.d.ts +15 -0
  64. package/dist/sdk/adapty/access-levels.js +4 -0
  65. package/dist/sdk/adapty/apps/create.d.ts +26 -0
  66. package/dist/sdk/adapty/apps/create.js +36 -0
  67. package/dist/sdk/adapty/apps/index.d.ts +13 -0
  68. package/dist/sdk/adapty/apps/index.js +9 -0
  69. package/dist/sdk/adapty/apps/model.d.ts +24 -0
  70. package/dist/sdk/adapty/apps/model.js +10 -0
  71. package/dist/sdk/adapty/apps/resource.d.ts +19 -0
  72. package/dist/sdk/adapty/apps/resource.js +23 -0
  73. package/dist/sdk/adapty/apps/update.d.ts +16 -0
  74. package/dist/sdk/adapty/apps/update.js +25 -0
  75. package/dist/sdk/adapty/auth/device-code.d.ts +8 -0
  76. package/dist/sdk/adapty/auth/device-code.js +19 -0
  77. package/dist/sdk/adapty/auth/index.d.ts +7 -0
  78. package/dist/sdk/adapty/auth/index.js +5 -0
  79. package/dist/sdk/adapty/auth/model.d.ts +15 -0
  80. package/dist/sdk/adapty/auth/model.js +6 -0
  81. package/dist/sdk/adapty/auth/poll-token.d.ts +8 -0
  82. package/dist/sdk/adapty/auth/poll-token.js +58 -0
  83. package/dist/sdk/adapty/auth/resource.d.ts +17 -0
  84. package/dist/sdk/adapty/auth/resource.js +21 -0
  85. package/dist/sdk/adapty/errors.d.ts +10 -0
  86. package/dist/sdk/adapty/errors.js +38 -0
  87. package/dist/sdk/adapty/index.d.ts +36 -0
  88. package/dist/sdk/adapty/index.js +27 -0
  89. package/dist/sdk/adapty/pagination.d.ts +23 -0
  90. package/dist/sdk/adapty/pagination.js +1 -0
  91. package/dist/sdk/core/auth/device-flow.d.ts +46 -0
  92. package/dist/sdk/core/auth/device-flow.js +62 -0
  93. package/dist/sdk/core/clock.d.ts +7 -0
  94. package/dist/sdk/core/clock.js +21 -0
  95. package/dist/sdk/core/errors.d.ts +81 -0
  96. package/dist/sdk/core/errors.js +84 -0
  97. package/dist/sdk/core/http/client.d.ts +46 -0
  98. package/dist/sdk/core/http/client.js +127 -0
  99. package/dist/sdk/core/http/index.d.ts +11 -0
  100. package/dist/sdk/core/http/index.js +7 -0
  101. package/dist/sdk/core/http/policies.d.ts +14 -0
  102. package/dist/sdk/core/http/policies.js +29 -0
  103. package/dist/sdk/core/http/retry.d.ts +27 -0
  104. package/dist/sdk/core/http/retry.js +22 -0
  105. package/dist/sdk/core/http/url.d.ts +3 -0
  106. package/dist/sdk/core/http/url.js +19 -0
  107. package/dist/sdk/core/session.d.ts +20 -0
  108. package/dist/sdk/core/session.js +69 -0
  109. package/dist/sdk/core/testing.d.ts +25 -0
  110. package/dist/sdk/core/testing.js +46 -0
  111. package/dist/sdk/core/validation.d.ts +10 -0
  112. package/dist/sdk/core/validation.js +14 -0
  113. package/oclif.manifest.json +813 -813
  114. package/package.json +10 -2
@@ -228,16 +228,10 @@
228
228
  "allowNo": false,
229
229
  "type": "boolean"
230
230
  },
231
- "apple-bundle-id": {
232
- "description": "Apple bundle ID (required with --platform ios)",
233
- "name": "apple-bundle-id",
234
- "hasDynamicHelp": false,
235
- "multiple": false,
236
- "type": "option"
237
- },
238
- "google-bundle-id": {
239
- "description": "Google bundle ID (required with --platform android)",
240
- "name": "google-bundle-id",
231
+ "title": {
232
+ "description": "App title",
233
+ "name": "title",
234
+ "required": true,
241
235
  "hasDynamicHelp": false,
242
236
  "multiple": false,
243
237
  "type": "option"
@@ -254,10 +248,16 @@
254
248
  ],
255
249
  "type": "option"
256
250
  },
257
- "title": {
258
- "description": "App title",
259
- "name": "title",
260
- "required": true,
251
+ "apple-bundle-id": {
252
+ "description": "Apple bundle ID (required with --platform ios)",
253
+ "name": "apple-bundle-id",
254
+ "hasDynamicHelp": false,
255
+ "multiple": false,
256
+ "type": "option"
257
+ },
258
+ "google-bundle-id": {
259
+ "description": "Google bundle ID (required with --platform android)",
260
+ "name": "google-bundle-id",
261
261
  "hasDynamicHelp": false,
262
262
  "multiple": false,
263
263
  "type": "option"
@@ -387,6 +387,13 @@
387
387
  "allowNo": false,
388
388
  "type": "boolean"
389
389
  },
390
+ "title": {
391
+ "description": "App title",
392
+ "name": "title",
393
+ "hasDynamicHelp": false,
394
+ "multiple": false,
395
+ "type": "option"
396
+ },
390
397
  "apple-bundle-id": {
391
398
  "description": "Apple bundle ID",
392
399
  "name": "apple-bundle-id",
@@ -400,13 +407,6 @@
400
407
  "hasDynamicHelp": false,
401
408
  "multiple": false,
402
409
  "type": "option"
403
- },
404
- "title": {
405
- "description": "App title",
406
- "name": "title",
407
- "hasDynamicHelp": false,
408
- "multiple": false,
409
- "type": "option"
410
410
  }
411
411
  },
412
412
  "hasDynamicHelp": false,
@@ -531,7 +531,7 @@
531
531
  "auth:logout": {
532
532
  "aliases": [],
533
533
  "args": {},
534
- "description": "Remove stored authentication token",
534
+ "description": "Remove the stored session",
535
535
  "examples": [
536
536
  "<%= config.bin %> auth logout"
537
537
  ],
@@ -563,7 +563,7 @@
563
563
  "auth:revoke": {
564
564
  "aliases": [],
565
565
  "args": {},
566
- "description": "Revoke the current authentication token",
566
+ "description": "Revoke the current token on the server and remove any matching stored session",
567
567
  "examples": [
568
568
  "<%= config.bin %> auth revoke"
569
569
  ],
@@ -595,7 +595,7 @@
595
595
  "auth:status": {
596
596
  "aliases": [],
597
597
  "args": {},
598
- "description": "Show current authentication state (local only)",
598
+ "description": "Show the local authentication state (no network)",
599
599
  "examples": [
600
600
  "<%= config.bin %> auth status"
601
601
  ],
@@ -627,7 +627,7 @@
627
627
  "auth:whoami": {
628
628
  "aliases": [],
629
629
  "args": {},
630
- "description": "Show current user info from server (verifies token)",
630
+ "description": "Show the current user from the server (verifies the token)",
631
631
  "examples": [
632
632
  "<%= config.bin %> auth whoami"
633
633
  ],
@@ -656,12 +656,12 @@
656
656
  "whoami.js"
657
657
  ]
658
658
  },
659
- "flows:create": {
659
+ "paywalls:create": {
660
660
  "aliases": [],
661
661
  "args": {},
662
- "description": "Create a flow (row only — write its config with `flows config update`)",
662
+ "description": "Create a paywall with products",
663
663
  "examples": [
664
- "<%= config.bin %> flows create --app UUID --name \"Onboarding\""
664
+ "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
665
665
  ],
666
666
  "flags": {
667
667
  "json": {
@@ -679,9 +679,17 @@
679
679
  "multiple": false,
680
680
  "type": "option"
681
681
  },
682
- "name": {
683
- "description": "Flow name",
684
- "name": "name",
682
+ "product-id": {
683
+ "description": "Product ID (UUID). Repeat for multiple.",
684
+ "name": "product-id",
685
+ "required": true,
686
+ "hasDynamicHelp": false,
687
+ "multiple": true,
688
+ "type": "option"
689
+ },
690
+ "title": {
691
+ "description": "Paywall title",
692
+ "name": "title",
685
693
  "required": true,
686
694
  "hasDynamicHelp": false,
687
695
  "multiple": false,
@@ -690,7 +698,7 @@
690
698
  },
691
699
  "hasDynamicHelp": false,
692
700
  "hiddenAliases": [],
693
- "id": "flows:create",
701
+ "id": "paywalls:create",
694
702
  "pluginAlias": "adapty",
695
703
  "pluginName": "adapty",
696
704
  "pluginType": "core",
@@ -700,22 +708,22 @@
700
708
  "relativePath": [
701
709
  "dist",
702
710
  "commands",
703
- "flows",
711
+ "paywalls",
704
712
  "create.js"
705
713
  ]
706
714
  },
707
- "flows:get": {
715
+ "paywalls:get": {
708
716
  "aliases": [],
709
717
  "args": {
710
- "flow_id": {
711
- "description": "Flow ID (UUID)",
712
- "name": "flow_id",
718
+ "paywall_id": {
719
+ "description": "Paywall ID (UUID)",
720
+ "name": "paywall_id",
713
721
  "required": true
714
722
  }
715
723
  },
716
- "description": "Get flow details",
724
+ "description": "Get paywall details",
717
725
  "examples": [
718
- "<%= config.bin %> flows get --app UUID 550e8400-e29b-41d4-a716-446655440000"
726
+ "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
719
727
  ],
720
728
  "flags": {
721
729
  "json": {
@@ -736,7 +744,7 @@
736
744
  },
737
745
  "hasDynamicHelp": false,
738
746
  "hiddenAliases": [],
739
- "id": "flows:get",
747
+ "id": "paywalls:get",
740
748
  "pluginAlias": "adapty",
741
749
  "pluginName": "adapty",
742
750
  "pluginType": "core",
@@ -746,16 +754,16 @@
746
754
  "relativePath": [
747
755
  "dist",
748
756
  "commands",
749
- "flows",
757
+ "paywalls",
750
758
  "get.js"
751
759
  ]
752
760
  },
753
- "flows:list": {
761
+ "paywalls:list": {
754
762
  "aliases": [],
755
763
  "args": {},
756
- "description": "List flows for an app",
764
+ "description": "List paywalls for an app",
757
765
  "examples": [
758
- "<%= config.bin %> flows list --app 550e8400-..."
766
+ "<%= config.bin %> paywalls list --app 550e8400-..."
759
767
  ],
760
768
  "flags": {
761
769
  "json": {
@@ -792,7 +800,7 @@
792
800
  },
793
801
  "hasDynamicHelp": false,
794
802
  "hiddenAliases": [],
795
- "id": "flows:list",
803
+ "id": "paywalls:list",
796
804
  "pluginAlias": "adapty",
797
805
  "pluginName": "adapty",
798
806
  "pluginType": "core",
@@ -802,22 +810,22 @@
802
810
  "relativePath": [
803
811
  "dist",
804
812
  "commands",
805
- "flows",
813
+ "paywalls",
806
814
  "list.js"
807
815
  ]
808
816
  },
809
- "flows:publish": {
817
+ "paywalls:placements": {
810
818
  "aliases": [],
811
819
  "args": {
812
- "flow_id": {
813
- "description": "Flow ID (UUID)",
814
- "name": "flow_id",
820
+ "paywall_id": {
821
+ "description": "Paywall ID (UUID)",
822
+ "name": "paywall_id",
815
823
  "required": true
816
824
  }
817
825
  },
818
- "description": "Publish a flow (async — publication completes in the background). Publishing is async: returns status `publishing`. Poll `adapty flows get <flow_id>` for `published`/`publication_failed`; on failure, `adapty flows config get <flow_id>` shows why.",
826
+ "description": "List placements that currently use this paywall",
819
827
  "examples": [
820
- "<%= config.bin %> flows publish --app UUID 550e8400-e29b-41d4-a716-446655440000"
828
+ "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
821
829
  ],
822
830
  "flags": {
823
831
  "json": {
@@ -834,18 +842,11 @@
834
842
  "hasDynamicHelp": false,
835
843
  "multiple": false,
836
844
  "type": "option"
837
- },
838
- "yes": {
839
- "char": "y",
840
- "description": "Apply without asking; required when the output is piped or --json is used",
841
- "name": "yes",
842
- "allowNo": false,
843
- "type": "boolean"
844
845
  }
845
846
  },
846
847
  "hasDynamicHelp": false,
847
848
  "hiddenAliases": [],
848
- "id": "flows:publish",
849
+ "id": "paywalls:placements",
849
850
  "pluginAlias": "adapty",
850
851
  "pluginName": "adapty",
851
852
  "pluginType": "core",
@@ -855,22 +856,22 @@
855
856
  "relativePath": [
856
857
  "dist",
857
858
  "commands",
858
- "flows",
859
- "publish.js"
859
+ "paywalls",
860
+ "placements.js"
860
861
  ]
861
862
  },
862
- "flows:update": {
863
+ "paywalls:update": {
863
864
  "aliases": [],
864
865
  "args": {
865
- "flow_id": {
866
- "description": "Flow ID (UUID)",
867
- "name": "flow_id",
866
+ "paywall_id": {
867
+ "description": "Paywall ID (UUID)",
868
+ "name": "paywall_id",
868
869
  "required": true
869
870
  }
870
871
  },
871
- "description": "Rename a flow",
872
+ "description": "Update a paywall",
872
873
  "examples": [
873
- "<%= config.bin %> flows update --app UUID 550e8400-e29b-41d4-a716-446655440000 --name \"Onboarding v2\""
874
+ "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
874
875
  ],
875
876
  "flags": {
876
877
  "json": {
@@ -888,9 +889,17 @@
888
889
  "multiple": false,
889
890
  "type": "option"
890
891
  },
891
- "name": {
892
- "description": "New flow name",
893
- "name": "name",
892
+ "product-id": {
893
+ "description": "Product ID (UUID). Repeat for multiple.",
894
+ "name": "product-id",
895
+ "required": true,
896
+ "hasDynamicHelp": false,
897
+ "multiple": true,
898
+ "type": "option"
899
+ },
900
+ "title": {
901
+ "description": "Paywall title",
902
+ "name": "title",
894
903
  "required": true,
895
904
  "hasDynamicHelp": false,
896
905
  "multiple": false,
@@ -899,7 +908,7 @@
899
908
  },
900
909
  "hasDynamicHelp": false,
901
910
  "hiddenAliases": [],
902
- "id": "flows:update",
911
+ "id": "paywalls:update",
903
912
  "pluginAlias": "adapty",
904
913
  "pluginName": "adapty",
905
914
  "pluginType": "core",
@@ -909,16 +918,18 @@
909
918
  "relativePath": [
910
919
  "dist",
911
920
  "commands",
912
- "flows",
921
+ "paywalls",
913
922
  "update.js"
914
923
  ]
915
924
  },
916
- "paywalls:create": {
925
+ "placements:create": {
917
926
  "aliases": [],
918
927
  "args": {},
919
- "description": "Create a paywall with products",
928
+ "description": "Create a placement with a paywall",
920
929
  "examples": [
921
- "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
930
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
931
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
932
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
922
933
  ],
923
934
  "flags": {
924
935
  "json": {
@@ -936,16 +947,30 @@
936
947
  "multiple": false,
937
948
  "type": "option"
938
949
  },
939
- "product-id": {
940
- "description": "Product ID (UUID). Repeat for multiple.",
941
- "name": "product-id",
950
+ "audiences": {
951
+ "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.",
952
+ "name": "audiences",
953
+ "hasDynamicHelp": false,
954
+ "multiple": false,
955
+ "type": "option"
956
+ },
957
+ "developer-id": {
958
+ "description": "Developer ID for the placement",
959
+ "name": "developer-id",
942
960
  "required": true,
943
961
  "hasDynamicHelp": false,
944
- "multiple": true,
962
+ "multiple": false,
963
+ "type": "option"
964
+ },
965
+ "paywall-id": {
966
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
967
+ "name": "paywall-id",
968
+ "hasDynamicHelp": false,
969
+ "multiple": false,
945
970
  "type": "option"
946
971
  },
947
972
  "title": {
948
- "description": "Paywall title",
973
+ "description": "Placement title",
949
974
  "name": "title",
950
975
  "required": true,
951
976
  "hasDynamicHelp": false,
@@ -955,7 +980,7 @@
955
980
  },
956
981
  "hasDynamicHelp": false,
957
982
  "hiddenAliases": [],
958
- "id": "paywalls:create",
983
+ "id": "placements:create",
959
984
  "pluginAlias": "adapty",
960
985
  "pluginName": "adapty",
961
986
  "pluginType": "core",
@@ -965,22 +990,22 @@
965
990
  "relativePath": [
966
991
  "dist",
967
992
  "commands",
968
- "paywalls",
993
+ "placements",
969
994
  "create.js"
970
995
  ]
971
996
  },
972
- "paywalls:get": {
997
+ "placements:get": {
973
998
  "aliases": [],
974
999
  "args": {
975
- "paywall_id": {
976
- "description": "Paywall ID (UUID)",
977
- "name": "paywall_id",
1000
+ "placement_id": {
1001
+ "description": "Placement ID (UUID)",
1002
+ "name": "placement_id",
978
1003
  "required": true
979
1004
  }
980
1005
  },
981
- "description": "Get paywall details",
1006
+ "description": "Get placement details",
982
1007
  "examples": [
983
- "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1008
+ "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
984
1009
  ],
985
1010
  "flags": {
986
1011
  "json": {
@@ -1001,7 +1026,7 @@
1001
1026
  },
1002
1027
  "hasDynamicHelp": false,
1003
1028
  "hiddenAliases": [],
1004
- "id": "paywalls:get",
1029
+ "id": "placements:get",
1005
1030
  "pluginAlias": "adapty",
1006
1031
  "pluginName": "adapty",
1007
1032
  "pluginType": "core",
@@ -1011,16 +1036,16 @@
1011
1036
  "relativePath": [
1012
1037
  "dist",
1013
1038
  "commands",
1014
- "paywalls",
1039
+ "placements",
1015
1040
  "get.js"
1016
1041
  ]
1017
1042
  },
1018
- "paywalls:list": {
1043
+ "placements:list": {
1019
1044
  "aliases": [],
1020
1045
  "args": {},
1021
- "description": "List paywalls for an app",
1046
+ "description": "List placements for an app",
1022
1047
  "examples": [
1023
- "<%= config.bin %> paywalls list --app 550e8400-..."
1048
+ "<%= config.bin %> placements list --app 550e8400-..."
1024
1049
  ],
1025
1050
  "flags": {
1026
1051
  "json": {
@@ -1057,7 +1082,7 @@
1057
1082
  },
1058
1083
  "hasDynamicHelp": false,
1059
1084
  "hiddenAliases": [],
1060
- "id": "paywalls:list",
1085
+ "id": "placements:list",
1061
1086
  "pluginAlias": "adapty",
1062
1087
  "pluginName": "adapty",
1063
1088
  "pluginType": "core",
@@ -1067,22 +1092,24 @@
1067
1092
  "relativePath": [
1068
1093
  "dist",
1069
1094
  "commands",
1070
- "paywalls",
1095
+ "placements",
1071
1096
  "list.js"
1072
1097
  ]
1073
1098
  },
1074
- "paywalls:placements": {
1099
+ "placements:update": {
1075
1100
  "aliases": [],
1076
1101
  "args": {
1077
- "paywall_id": {
1078
- "description": "Paywall ID (UUID)",
1079
- "name": "paywall_id",
1102
+ "placement_id": {
1103
+ "description": "Placement ID (UUID)",
1104
+ "name": "placement_id",
1080
1105
  "required": true
1081
1106
  }
1082
1107
  },
1083
- "description": "List placements that currently use this paywall",
1108
+ "description": "Update a placement",
1084
1109
  "examples": [
1085
- "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
1110
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"paywall\",\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1111
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"content_type\":\"flow\",\"segment_ids\":[],\"flow_id\":\"FLOW_UUID\",\"priority\":0}]'",
1112
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
1086
1113
  ],
1087
1114
  "flags": {
1088
1115
  "json": {
@@ -1099,11 +1126,41 @@
1099
1126
  "hasDynamicHelp": false,
1100
1127
  "multiple": false,
1101
1128
  "type": "option"
1129
+ },
1130
+ "audiences": {
1131
+ "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.",
1132
+ "name": "audiences",
1133
+ "hasDynamicHelp": false,
1134
+ "multiple": false,
1135
+ "type": "option"
1136
+ },
1137
+ "developer-id": {
1138
+ "description": "Developer ID for the placement",
1139
+ "name": "developer-id",
1140
+ "required": true,
1141
+ "hasDynamicHelp": false,
1142
+ "multiple": false,
1143
+ "type": "option"
1144
+ },
1145
+ "paywall-id": {
1146
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1147
+ "name": "paywall-id",
1148
+ "hasDynamicHelp": false,
1149
+ "multiple": false,
1150
+ "type": "option"
1151
+ },
1152
+ "title": {
1153
+ "description": "Placement title",
1154
+ "name": "title",
1155
+ "required": true,
1156
+ "hasDynamicHelp": false,
1157
+ "multiple": false,
1158
+ "type": "option"
1102
1159
  }
1103
1160
  },
1104
1161
  "hasDynamicHelp": false,
1105
1162
  "hiddenAliases": [],
1106
- "id": "paywalls:placements",
1163
+ "id": "placements:update",
1107
1164
  "pluginAlias": "adapty",
1108
1165
  "pluginName": "adapty",
1109
1166
  "pluginType": "core",
@@ -1113,22 +1170,16 @@
1113
1170
  "relativePath": [
1114
1171
  "dist",
1115
1172
  "commands",
1116
- "paywalls",
1117
- "placements.js"
1173
+ "placements",
1174
+ "update.js"
1118
1175
  ]
1119
1176
  },
1120
- "paywalls:update": {
1177
+ "products:create": {
1121
1178
  "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",
1179
+ "args": {},
1180
+ "description": "Create a product with vendor products per platform",
1130
1181
  "examples": [
1131
- "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1182
+ "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
1132
1183
  ],
1133
1184
  "flags": {
1134
1185
  "json": {
@@ -1146,88 +1197,80 @@
1146
1197
  "multiple": false,
1147
1198
  "type": "option"
1148
1199
  },
1149
- "product-id": {
1150
- "description": "Product ID (UUID). Repeat for multiple.",
1151
- "name": "product-id",
1200
+ "access-level-id": {
1201
+ "description": "Access level ID (UUID)",
1202
+ "name": "access-level-id",
1152
1203
  "required": true,
1153
1204
  "hasDynamicHelp": false,
1154
- "multiple": true,
1205
+ "multiple": false,
1155
1206
  "type": "option"
1156
1207
  },
1157
- "title": {
1158
- "description": "Paywall title",
1159
- "name": "title",
1160
- "required": true,
1208
+ "android-base-plan-id": {
1209
+ "description": "Android base plan ID",
1210
+ "helpGroup": "STORE BINDINGS",
1211
+ "name": "android-base-plan-id",
1161
1212
  "hasDynamicHelp": false,
1162
1213
  "multiple": false,
1163
1214
  "type": "option"
1164
- }
1165
- },
1166
- "hasDynamicHelp": false,
1167
- "hiddenAliases": [],
1168
- "id": "paywalls:update",
1169
- "pluginAlias": "adapty",
1170
- "pluginName": "adapty",
1171
- "pluginType": "core",
1172
- "strict": true,
1173
- "enableJsonFlag": true,
1174
- "isESM": true,
1175
- "relativePath": [
1176
- "dist",
1177
- "commands",
1178
- "paywalls",
1179
- "update.js"
1180
- ]
1181
- },
1182
- "placements:create": {
1183
- "aliases": [],
1184
- "args": {},
1185
- "description": "Create a placement with a paywall",
1186
- "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"
1190
- ],
1191
- "flags": {
1192
- "json": {
1193
- "description": "Format output as json.",
1194
- "helpGroup": "GLOBAL",
1195
- "name": "json",
1196
- "allowNo": false,
1197
- "type": "boolean"
1198
1215
  },
1199
- "app": {
1200
- "description": "App ID (UUID)",
1201
- "name": "app",
1202
- "required": true,
1216
+ "android-product-id": {
1217
+ "description": "Android product ID",
1218
+ "helpGroup": "STORE BINDINGS",
1219
+ "name": "android-product-id",
1203
1220
  "hasDynamicHelp": false,
1204
1221
  "multiple": false,
1205
1222
  "type": "option"
1206
1223
  },
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",
1224
+ "ios-product-id": {
1225
+ "description": "iOS product ID",
1226
+ "helpGroup": "STORE BINDINGS",
1227
+ "name": "ios-product-id",
1210
1228
  "hasDynamicHelp": false,
1211
1229
  "multiple": false,
1212
1230
  "type": "option"
1213
1231
  },
1214
- "developer-id": {
1215
- "description": "Developer ID for the placement",
1216
- "name": "developer-id",
1232
+ "paddle-price-id": {
1233
+ "description": "Paddle price ID (requires --paddle-product-id)",
1234
+ "helpGroup": "STORE BINDINGS",
1235
+ "name": "paddle-price-id",
1236
+ "hasDynamicHelp": false,
1237
+ "multiple": false,
1238
+ "type": "option"
1239
+ },
1240
+ "paddle-product-id": {
1241
+ "description": "Paddle product ID (requires --paddle-price-id)",
1242
+ "helpGroup": "STORE BINDINGS",
1243
+ "name": "paddle-product-id",
1244
+ "hasDynamicHelp": false,
1245
+ "multiple": false,
1246
+ "type": "option"
1247
+ },
1248
+ "period": {
1249
+ "description": "Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)",
1250
+ "name": "period",
1217
1251
  "required": true,
1218
1252
  "hasDynamicHelp": false,
1219
1253
  "multiple": false,
1220
1254
  "type": "option"
1221
1255
  },
1222
- "paywall-id": {
1223
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1224
- "name": "paywall-id",
1256
+ "stripe-price-id": {
1257
+ "description": "Stripe price ID (requires --stripe-product-id)",
1258
+ "helpGroup": "STORE BINDINGS",
1259
+ "name": "stripe-price-id",
1260
+ "hasDynamicHelp": false,
1261
+ "multiple": false,
1262
+ "type": "option"
1263
+ },
1264
+ "stripe-product-id": {
1265
+ "description": "Stripe product ID (requires --stripe-price-id)",
1266
+ "helpGroup": "STORE BINDINGS",
1267
+ "name": "stripe-product-id",
1225
1268
  "hasDynamicHelp": false,
1226
1269
  "multiple": false,
1227
1270
  "type": "option"
1228
1271
  },
1229
1272
  "title": {
1230
- "description": "Placement title",
1273
+ "description": "Product title",
1231
1274
  "name": "title",
1232
1275
  "required": true,
1233
1276
  "hasDynamicHelp": false,
@@ -1237,7 +1280,7 @@
1237
1280
  },
1238
1281
  "hasDynamicHelp": false,
1239
1282
  "hiddenAliases": [],
1240
- "id": "placements:create",
1283
+ "id": "products:create",
1241
1284
  "pluginAlias": "adapty",
1242
1285
  "pluginName": "adapty",
1243
1286
  "pluginType": "core",
@@ -1247,22 +1290,22 @@
1247
1290
  "relativePath": [
1248
1291
  "dist",
1249
1292
  "commands",
1250
- "placements",
1293
+ "products",
1251
1294
  "create.js"
1252
1295
  ]
1253
1296
  },
1254
- "placements:get": {
1297
+ "products:get": {
1255
1298
  "aliases": [],
1256
1299
  "args": {
1257
- "placement_id": {
1258
- "description": "Placement ID (UUID)",
1259
- "name": "placement_id",
1300
+ "product_id": {
1301
+ "description": "Product ID (UUID)",
1302
+ "name": "product_id",
1260
1303
  "required": true
1261
1304
  }
1262
1305
  },
1263
- "description": "Get placement details",
1306
+ "description": "Get product details",
1264
1307
  "examples": [
1265
- "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1308
+ "<%= config.bin %> products get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1266
1309
  ],
1267
1310
  "flags": {
1268
1311
  "json": {
@@ -1283,7 +1326,7 @@
1283
1326
  },
1284
1327
  "hasDynamicHelp": false,
1285
1328
  "hiddenAliases": [],
1286
- "id": "placements:get",
1329
+ "id": "products:get",
1287
1330
  "pluginAlias": "adapty",
1288
1331
  "pluginName": "adapty",
1289
1332
  "pluginType": "core",
@@ -1293,16 +1336,16 @@
1293
1336
  "relativePath": [
1294
1337
  "dist",
1295
1338
  "commands",
1296
- "placements",
1339
+ "products",
1297
1340
  "get.js"
1298
1341
  ]
1299
1342
  },
1300
- "placements:list": {
1343
+ "products:list": {
1301
1344
  "aliases": [],
1302
1345
  "args": {},
1303
- "description": "List placements for an app",
1346
+ "description": "List products for an app",
1304
1347
  "examples": [
1305
- "<%= config.bin %> placements list --app 550e8400-..."
1348
+ "<%= config.bin %> products list --app 550e8400-..."
1306
1349
  ],
1307
1350
  "flags": {
1308
1351
  "json": {
@@ -1339,7 +1382,7 @@
1339
1382
  },
1340
1383
  "hasDynamicHelp": false,
1341
1384
  "hiddenAliases": [],
1342
- "id": "placements:list",
1385
+ "id": "products:list",
1343
1386
  "pluginAlias": "adapty",
1344
1387
  "pluginName": "adapty",
1345
1388
  "pluginType": "core",
@@ -1349,24 +1392,22 @@
1349
1392
  "relativePath": [
1350
1393
  "dist",
1351
1394
  "commands",
1352
- "placements",
1395
+ "products",
1353
1396
  "list.js"
1354
1397
  ]
1355
1398
  },
1356
- "placements:update": {
1399
+ "products:update": {
1357
1400
  "aliases": [],
1358
1401
  "args": {
1359
- "placement_id": {
1360
- "description": "Placement ID (UUID)",
1361
- "name": "placement_id",
1402
+ "product_id": {
1403
+ "description": "Product ID (UUID)",
1404
+ "name": "product_id",
1362
1405
  "required": true
1363
1406
  }
1364
1407
  },
1365
- "description": "Update a placement",
1408
+ "description": "Update a product (title and access level only)",
1366
1409
  "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"
1410
+ "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1370
1411
  ],
1371
1412
  "flags": {
1372
1413
  "json": {
@@ -1384,30 +1425,16 @@
1384
1425
  "multiple": false,
1385
1426
  "type": "option"
1386
1427
  },
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",
1428
+ "access-level-id": {
1429
+ "description": "Access level ID (UUID)",
1430
+ "name": "access-level-id",
1397
1431
  "required": true,
1398
1432
  "hasDynamicHelp": false,
1399
1433
  "multiple": false,
1400
1434
  "type": "option"
1401
1435
  },
1402
- "paywall-id": {
1403
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1404
- "name": "paywall-id",
1405
- "hasDynamicHelp": false,
1406
- "multiple": false,
1407
- "type": "option"
1408
- },
1409
1436
  "title": {
1410
- "description": "Placement title",
1437
+ "description": "Product title",
1411
1438
  "name": "title",
1412
1439
  "required": true,
1413
1440
  "hasDynamicHelp": false,
@@ -1417,7 +1444,7 @@
1417
1444
  },
1418
1445
  "hasDynamicHelp": false,
1419
1446
  "hiddenAliases": [],
1420
- "id": "placements:update",
1447
+ "id": "products:update",
1421
1448
  "pluginAlias": "adapty",
1422
1449
  "pluginName": "adapty",
1423
1450
  "pluginType": "core",
@@ -1427,16 +1454,22 @@
1427
1454
  "relativePath": [
1428
1455
  "dist",
1429
1456
  "commands",
1430
- "placements",
1457
+ "products",
1431
1458
  "update.js"
1432
1459
  ]
1433
1460
  },
1434
- "products:create": {
1461
+ "segments:get": {
1435
1462
  "aliases": [],
1436
- "args": {},
1437
- "description": "Create a product with vendor products per platform",
1463
+ "args": {
1464
+ "segment_id": {
1465
+ "description": "Segment ID (UUID)",
1466
+ "name": "segment_id",
1467
+ "required": true
1468
+ }
1469
+ },
1470
+ "description": "Get segment details",
1438
1471
  "examples": [
1439
- "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
1472
+ "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1440
1473
  ],
1441
1474
  "flags": {
1442
1475
  "json": {
@@ -1453,83 +1486,59 @@
1453
1486
  "hasDynamicHelp": false,
1454
1487
  "multiple": false,
1455
1488
  "type": "option"
1489
+ }
1490
+ },
1491
+ "hasDynamicHelp": false,
1492
+ "hiddenAliases": [],
1493
+ "id": "segments:get",
1494
+ "pluginAlias": "adapty",
1495
+ "pluginName": "adapty",
1496
+ "pluginType": "core",
1497
+ "strict": true,
1498
+ "enableJsonFlag": true,
1499
+ "isESM": true,
1500
+ "relativePath": [
1501
+ "dist",
1502
+ "commands",
1503
+ "segments",
1504
+ "get.js"
1505
+ ]
1506
+ },
1507
+ "segments:list": {
1508
+ "aliases": [],
1509
+ "args": {},
1510
+ "description": "List segments for an app",
1511
+ "examples": [
1512
+ "<%= config.bin %> segments list --app 550e8400-..."
1513
+ ],
1514
+ "flags": {
1515
+ "json": {
1516
+ "description": "Format output as json.",
1517
+ "helpGroup": "GLOBAL",
1518
+ "name": "json",
1519
+ "allowNo": false,
1520
+ "type": "boolean"
1456
1521
  },
1457
- "access-level-id": {
1458
- "description": "Access level ID (UUID)",
1459
- "name": "access-level-id",
1522
+ "app": {
1523
+ "description": "App ID (UUID)",
1524
+ "name": "app",
1460
1525
  "required": true,
1461
1526
  "hasDynamicHelp": false,
1462
1527
  "multiple": false,
1463
1528
  "type": "option"
1464
1529
  },
1465
- "android-base-plan-id": {
1466
- "description": "Android base plan ID",
1467
- "helpGroup": "STORE BINDINGS",
1468
- "name": "android-base-plan-id",
1530
+ "page": {
1531
+ "description": "Page number",
1532
+ "name": "page",
1533
+ "default": 1,
1469
1534
  "hasDynamicHelp": false,
1470
1535
  "multiple": false,
1471
1536
  "type": "option"
1472
1537
  },
1473
- "android-product-id": {
1474
- "description": "Android product ID",
1475
- "helpGroup": "STORE BINDINGS",
1476
- "name": "android-product-id",
1477
- "hasDynamicHelp": false,
1478
- "multiple": false,
1479
- "type": "option"
1480
- },
1481
- "ios-product-id": {
1482
- "description": "iOS product ID",
1483
- "helpGroup": "STORE BINDINGS",
1484
- "name": "ios-product-id",
1485
- "hasDynamicHelp": false,
1486
- "multiple": false,
1487
- "type": "option"
1488
- },
1489
- "paddle-price-id": {
1490
- "description": "Paddle price ID (requires --paddle-product-id)",
1491
- "helpGroup": "STORE BINDINGS",
1492
- "name": "paddle-price-id",
1493
- "hasDynamicHelp": false,
1494
- "multiple": false,
1495
- "type": "option"
1496
- },
1497
- "paddle-product-id": {
1498
- "description": "Paddle product ID (requires --paddle-price-id)",
1499
- "helpGroup": "STORE BINDINGS",
1500
- "name": "paddle-product-id",
1501
- "hasDynamicHelp": false,
1502
- "multiple": false,
1503
- "type": "option"
1504
- },
1505
- "period": {
1506
- "description": "Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)",
1507
- "name": "period",
1508
- "required": true,
1509
- "hasDynamicHelp": false,
1510
- "multiple": false,
1511
- "type": "option"
1512
- },
1513
- "stripe-price-id": {
1514
- "description": "Stripe price ID (requires --stripe-product-id)",
1515
- "helpGroup": "STORE BINDINGS",
1516
- "name": "stripe-price-id",
1517
- "hasDynamicHelp": false,
1518
- "multiple": false,
1519
- "type": "option"
1520
- },
1521
- "stripe-product-id": {
1522
- "description": "Stripe product ID (requires --stripe-price-id)",
1523
- "helpGroup": "STORE BINDINGS",
1524
- "name": "stripe-product-id",
1525
- "hasDynamicHelp": false,
1526
- "multiple": false,
1527
- "type": "option"
1528
- },
1529
- "title": {
1530
- "description": "Product title",
1531
- "name": "title",
1532
- "required": true,
1538
+ "page-size": {
1539
+ "description": "Items per page (max 100)",
1540
+ "name": "page-size",
1541
+ "default": 20,
1533
1542
  "hasDynamicHelp": false,
1534
1543
  "multiple": false,
1535
1544
  "type": "option"
@@ -1537,7 +1546,7 @@
1537
1546
  },
1538
1547
  "hasDynamicHelp": false,
1539
1548
  "hiddenAliases": [],
1540
- "id": "products:create",
1549
+ "id": "segments:list",
1541
1550
  "pluginAlias": "adapty",
1542
1551
  "pluginName": "adapty",
1543
1552
  "pluginType": "core",
@@ -1547,22 +1556,16 @@
1547
1556
  "relativePath": [
1548
1557
  "dist",
1549
1558
  "commands",
1550
- "products",
1551
- "create.js"
1559
+ "segments",
1560
+ "list.js"
1552
1561
  ]
1553
1562
  },
1554
- "products:get": {
1563
+ "flows:create": {
1555
1564
  "aliases": [],
1556
- "args": {
1557
- "product_id": {
1558
- "description": "Product ID (UUID)",
1559
- "name": "product_id",
1560
- "required": true
1561
- }
1562
- },
1563
- "description": "Get product details",
1565
+ "args": {},
1566
+ "description": "Create a flow (row only — write its config with `flows config update`)",
1564
1567
  "examples": [
1565
- "<%= config.bin %> products get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1568
+ "<%= config.bin %> flows create --app UUID --name \"Onboarding\""
1566
1569
  ],
1567
1570
  "flags": {
1568
1571
  "json": {
@@ -1579,11 +1582,19 @@
1579
1582
  "hasDynamicHelp": false,
1580
1583
  "multiple": false,
1581
1584
  "type": "option"
1585
+ },
1586
+ "name": {
1587
+ "description": "Flow name",
1588
+ "name": "name",
1589
+ "required": true,
1590
+ "hasDynamicHelp": false,
1591
+ "multiple": false,
1592
+ "type": "option"
1582
1593
  }
1583
1594
  },
1584
1595
  "hasDynamicHelp": false,
1585
1596
  "hiddenAliases": [],
1586
- "id": "products:get",
1597
+ "id": "flows:create",
1587
1598
  "pluginAlias": "adapty",
1588
1599
  "pluginName": "adapty",
1589
1600
  "pluginType": "core",
@@ -1593,16 +1604,22 @@
1593
1604
  "relativePath": [
1594
1605
  "dist",
1595
1606
  "commands",
1596
- "products",
1597
- "get.js"
1607
+ "flows",
1608
+ "create.js"
1598
1609
  ]
1599
1610
  },
1600
- "products:list": {
1611
+ "flows:get": {
1601
1612
  "aliases": [],
1602
- "args": {},
1603
- "description": "List products for an app",
1613
+ "args": {
1614
+ "flow_id": {
1615
+ "description": "Flow ID (UUID)",
1616
+ "name": "flow_id",
1617
+ "required": true
1618
+ }
1619
+ },
1620
+ "description": "Get flow details",
1604
1621
  "examples": [
1605
- "<%= config.bin %> products list --app 550e8400-..."
1622
+ "<%= config.bin %> flows get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1606
1623
  ],
1607
1624
  "flags": {
1608
1625
  "json": {
@@ -1619,27 +1636,11 @@
1619
1636
  "hasDynamicHelp": false,
1620
1637
  "multiple": false,
1621
1638
  "type": "option"
1622
- },
1623
- "page": {
1624
- "description": "Page number",
1625
- "name": "page",
1626
- "default": 1,
1627
- "hasDynamicHelp": false,
1628
- "multiple": false,
1629
- "type": "option"
1630
- },
1631
- "page-size": {
1632
- "description": "Items per page (max 100)",
1633
- "name": "page-size",
1634
- "default": 20,
1635
- "hasDynamicHelp": false,
1636
- "multiple": false,
1637
- "type": "option"
1638
1639
  }
1639
1640
  },
1640
1641
  "hasDynamicHelp": false,
1641
1642
  "hiddenAliases": [],
1642
- "id": "products:list",
1643
+ "id": "flows:get",
1643
1644
  "pluginAlias": "adapty",
1644
1645
  "pluginName": "adapty",
1645
1646
  "pluginType": "core",
@@ -1649,22 +1650,16 @@
1649
1650
  "relativePath": [
1650
1651
  "dist",
1651
1652
  "commands",
1652
- "products",
1653
- "list.js"
1653
+ "flows",
1654
+ "get.js"
1654
1655
  ]
1655
1656
  },
1656
- "products:update": {
1657
+ "flows:list": {
1657
1658
  "aliases": [],
1658
- "args": {
1659
- "product_id": {
1660
- "description": "Product ID (UUID)",
1661
- "name": "product_id",
1662
- "required": true
1663
- }
1664
- },
1665
- "description": "Update a product (title and access level only)",
1659
+ "args": {},
1660
+ "description": "List flows for an app",
1666
1661
  "examples": [
1667
- "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1662
+ "<%= config.bin %> flows list --app 550e8400-..."
1668
1663
  ],
1669
1664
  "flags": {
1670
1665
  "json": {
@@ -1682,18 +1677,18 @@
1682
1677
  "multiple": false,
1683
1678
  "type": "option"
1684
1679
  },
1685
- "access-level-id": {
1686
- "description": "Access level ID (UUID)",
1687
- "name": "access-level-id",
1688
- "required": true,
1680
+ "page": {
1681
+ "description": "Page number",
1682
+ "name": "page",
1683
+ "default": 1,
1689
1684
  "hasDynamicHelp": false,
1690
1685
  "multiple": false,
1691
1686
  "type": "option"
1692
1687
  },
1693
- "title": {
1694
- "description": "Product title",
1695
- "name": "title",
1696
- "required": true,
1688
+ "page-size": {
1689
+ "description": "Items per page (max 100)",
1690
+ "name": "page-size",
1691
+ "default": 20,
1697
1692
  "hasDynamicHelp": false,
1698
1693
  "multiple": false,
1699
1694
  "type": "option"
@@ -1701,7 +1696,7 @@
1701
1696
  },
1702
1697
  "hasDynamicHelp": false,
1703
1698
  "hiddenAliases": [],
1704
- "id": "products:update",
1699
+ "id": "flows:list",
1705
1700
  "pluginAlias": "adapty",
1706
1701
  "pluginName": "adapty",
1707
1702
  "pluginType": "core",
@@ -1711,22 +1706,22 @@
1711
1706
  "relativePath": [
1712
1707
  "dist",
1713
1708
  "commands",
1714
- "products",
1715
- "update.js"
1709
+ "flows",
1710
+ "list.js"
1716
1711
  ]
1717
1712
  },
1718
- "segments:get": {
1713
+ "flows:publish": {
1719
1714
  "aliases": [],
1720
1715
  "args": {
1721
- "segment_id": {
1722
- "description": "Segment ID (UUID)",
1723
- "name": "segment_id",
1716
+ "flow_id": {
1717
+ "description": "Flow ID (UUID)",
1718
+ "name": "flow_id",
1724
1719
  "required": true
1725
1720
  }
1726
1721
  },
1727
- "description": "Get segment details",
1722
+ "description": "Publish a flow (async — publication completes in the background). Publishing is async: returns status `publishing`. Poll `adapty flows get <flow_id>` for `published`/`publication_failed`; on failure, `adapty flows config get <flow_id>` shows why.",
1728
1723
  "examples": [
1729
- "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1724
+ "<%= config.bin %> flows publish --app UUID 550e8400-e29b-41d4-a716-446655440000"
1730
1725
  ],
1731
1726
  "flags": {
1732
1727
  "json": {
@@ -1743,11 +1738,18 @@
1743
1738
  "hasDynamicHelp": false,
1744
1739
  "multiple": false,
1745
1740
  "type": "option"
1741
+ },
1742
+ "yes": {
1743
+ "char": "y",
1744
+ "description": "Apply without asking; required when the output is piped or --json is used",
1745
+ "name": "yes",
1746
+ "allowNo": false,
1747
+ "type": "boolean"
1746
1748
  }
1747
1749
  },
1748
1750
  "hasDynamicHelp": false,
1749
1751
  "hiddenAliases": [],
1750
- "id": "segments:get",
1752
+ "id": "flows:publish",
1751
1753
  "pluginAlias": "adapty",
1752
1754
  "pluginName": "adapty",
1753
1755
  "pluginType": "core",
@@ -1757,16 +1759,22 @@
1757
1759
  "relativePath": [
1758
1760
  "dist",
1759
1761
  "commands",
1760
- "segments",
1761
- "get.js"
1762
+ "flows",
1763
+ "publish.js"
1762
1764
  ]
1763
1765
  },
1764
- "segments:list": {
1766
+ "flows:update": {
1765
1767
  "aliases": [],
1766
- "args": {},
1767
- "description": "List segments for an app",
1768
+ "args": {
1769
+ "flow_id": {
1770
+ "description": "Flow ID (UUID)",
1771
+ "name": "flow_id",
1772
+ "required": true
1773
+ }
1774
+ },
1775
+ "description": "Rename a flow",
1768
1776
  "examples": [
1769
- "<%= config.bin %> segments list --app 550e8400-..."
1777
+ "<%= config.bin %> flows update --app UUID 550e8400-e29b-41d4-a716-446655440000 --name \"Onboarding v2\""
1770
1778
  ],
1771
1779
  "flags": {
1772
1780
  "json": {
@@ -1784,406 +1792,18 @@
1784
1792
  "multiple": false,
1785
1793
  "type": "option"
1786
1794
  },
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
- "asa:ad-groups:create": {
1821
- "aliases": [],
1822
- "args": {},
1823
- "description": "Create an ad group inside a campaign; --automated creates the automated ad group a Max Conversions campaign needs to run",
1824
- "examples": [
1825
- "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20",
1826
- "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20 --start-time 2026-09-01 --pricing-model CPM",
1827
- "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Automated Max Conv\" --automated"
1828
- ],
1829
- "flags": {
1830
- "json": {
1831
- "description": "Format output as json.",
1832
- "helpGroup": "GLOBAL",
1833
- "name": "json",
1834
- "allowNo": false,
1835
- "type": "boolean"
1836
- },
1837
- "currency": {
1838
- "description": "Currency code for the amounts in this call",
1839
- "name": "currency",
1840
- "default": "USD",
1841
- "hasDynamicHelp": false,
1842
- "multiple": false,
1843
- "type": "option"
1844
- },
1845
- "end-time": {
1846
- "description": "Schedule end (YYYY-MM-DD)",
1847
- "name": "end-time",
1848
- "hasDynamicHelp": false,
1849
- "multiple": false,
1850
- "type": "option"
1851
- },
1852
- "start-time": {
1853
- "description": "Schedule start (YYYY-MM-DD), defaults to today",
1854
- "name": "start-time",
1855
- "hasDynamicHelp": false,
1856
- "multiple": false,
1857
- "type": "option"
1858
- },
1859
- "pricing-model": {
1860
- "description": "Pricing model; Apple requires one on every ad group",
1861
- "name": "pricing-model",
1862
- "default": "CPC",
1863
- "hasDynamicHelp": false,
1864
- "multiple": false,
1865
- "options": [
1866
- "CPC",
1867
- "CPM"
1868
- ],
1869
- "type": "option"
1870
- },
1871
- "yes": {
1872
- "char": "y",
1873
- "description": "Apply without asking; required when the output is piped or --json is used",
1874
- "name": "yes",
1875
- "allowNo": false,
1876
- "type": "boolean"
1877
- },
1878
- "idempotency-key": {
1879
- "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
1880
- "name": "idempotency-key",
1881
- "hasDynamicHelp": false,
1882
- "multiple": false,
1883
- "type": "option"
1884
- },
1885
- "automated": {
1886
- "description": "Create the automated ad group a Max Conversions campaign needs (no bid, no schedule, always ENABLED)",
1887
- "exclusive": [
1888
- "automated-keywords"
1889
- ],
1890
- "name": "automated",
1891
- "allowNo": false,
1892
- "type": "boolean"
1893
- },
1894
- "automated-keywords": {
1895
- "description": "Let Apple add keywords automatically",
1896
- "name": "automated-keywords",
1897
- "allowNo": true,
1898
- "type": "boolean"
1899
- },
1900
- "campaign": {
1901
- "description": "Campaign ID (UUID)",
1902
- "name": "campaign",
1903
- "required": true,
1904
- "hasDynamicHelp": false,
1905
- "multiple": false,
1906
- "type": "option"
1907
- },
1908
- "cpa-goal": {
1909
- "description": "CPA goal (amount, e.g. 50 or 12.50)",
1910
- "name": "cpa-goal",
1911
- "hasDynamicHelp": false,
1912
- "multiple": false,
1913
- "type": "option"
1914
- },
1915
- "default-bid": {
1916
- "description": "Default bid; required unless --automated is set (amount, e.g. 50 or 12.50)",
1917
- "name": "default-bid",
1918
- "hasDynamicHelp": false,
1919
- "multiple": false,
1920
- "type": "option"
1921
- },
1922
- "name": {
1923
- "description": "Ad group name",
1924
- "name": "name",
1925
- "required": true,
1926
- "hasDynamicHelp": false,
1927
- "multiple": false,
1928
- "type": "option"
1929
- },
1930
- "status": {
1931
- "description": "Initial status",
1932
- "name": "status",
1933
- "hasDynamicHelp": false,
1934
- "multiple": false,
1935
- "options": [
1936
- "ENABLED",
1937
- "PAUSED"
1938
- ],
1939
- "type": "option"
1940
- }
1941
- },
1942
- "hasDynamicHelp": false,
1943
- "hiddenAliases": [],
1944
- "id": "asa:ad-groups:create",
1945
- "pluginAlias": "adapty",
1946
- "pluginName": "adapty",
1947
- "pluginType": "core",
1948
- "strict": true,
1949
- "enableJsonFlag": true,
1950
- "isESM": true,
1951
- "relativePath": [
1952
- "dist",
1953
- "commands",
1954
- "asa",
1955
- "ad-groups",
1956
- "create.js"
1957
- ]
1958
- },
1959
- "asa:ad-groups:get": {
1960
- "aliases": [],
1961
- "args": {
1962
- "ad_group_id": {
1963
- "description": "Ad group ID (UUID)",
1964
- "name": "ad_group_id",
1965
- "required": true
1966
- }
1967
- },
1968
- "description": "Show one ad group; read numbers with asa metrics",
1969
- "examples": [
1970
- "<%= config.bin %> asa ad-groups get 550e8400-e29b-41d4-a716-446655440000"
1971
- ],
1972
- "flags": {
1973
- "json": {
1974
- "description": "Format output as json.",
1975
- "helpGroup": "GLOBAL",
1976
- "name": "json",
1977
- "allowNo": false,
1978
- "type": "boolean"
1979
- }
1980
- },
1981
- "hasDynamicHelp": false,
1982
- "hiddenAliases": [],
1983
- "id": "asa:ad-groups:get",
1984
- "pluginAlias": "adapty",
1985
- "pluginName": "adapty",
1986
- "pluginType": "core",
1987
- "strict": true,
1988
- "enableJsonFlag": true,
1989
- "isESM": true,
1990
- "relativePath": [
1991
- "dist",
1992
- "commands",
1993
- "asa",
1994
- "ad-groups",
1995
- "get.js"
1996
- ]
1997
- },
1998
- "asa:ad-groups:list": {
1999
- "aliases": [],
2000
- "args": {},
2001
- "description": "List ad groups; read numbers with asa metrics",
2002
- "examples": [
2003
- "<%= config.bin %> asa ad-groups list",
2004
- "<%= config.bin %> asa ad-groups list --campaign CAMPAIGN_UUID"
2005
- ],
2006
- "flags": {
2007
- "json": {
2008
- "description": "Format output as json.",
2009
- "helpGroup": "GLOBAL",
2010
- "name": "json",
2011
- "allowNo": false,
2012
- "type": "boolean"
2013
- },
2014
- "page": {
2015
- "description": "Page number",
2016
- "name": "page",
2017
- "default": 1,
2018
- "hasDynamicHelp": false,
2019
- "multiple": false,
2020
- "type": "option"
2021
- },
2022
- "page-size": {
2023
- "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2024
- "name": "page-size",
2025
- "default": 100,
2026
- "hasDynamicHelp": false,
2027
- "multiple": false,
2028
- "type": "option"
2029
- },
2030
- "app": {
2031
- "description": "Keep only rows in this app; repeatable",
2032
- "name": "app",
2033
- "hasDynamicHelp": false,
2034
- "multiple": true,
2035
- "type": "option"
2036
- },
2037
- "campaign-group": {
2038
- "description": "Keep only rows in this campaign group; repeatable",
2039
- "name": "campaign-group",
2040
- "hasDynamicHelp": false,
2041
- "multiple": true,
2042
- "type": "option"
2043
- },
2044
- "search": {
2045
- "description": "Case-insensitive substring match on the name",
2046
- "name": "search",
2047
- "hasDynamicHelp": false,
2048
- "multiple": false,
2049
- "type": "option"
2050
- },
2051
- "campaign": {
2052
- "description": "Keep only rows in this campaign; repeatable",
2053
- "name": "campaign",
2054
- "hasDynamicHelp": false,
2055
- "multiple": true,
2056
- "type": "option"
2057
- },
2058
- "status": {
2059
- "description": "Keep only rows in this state",
2060
- "name": "status",
2061
- "hasDynamicHelp": false,
2062
- "multiple": false,
2063
- "options": [
2064
- "ENABLED",
2065
- "PAUSED"
2066
- ],
2067
- "type": "option"
2068
- }
2069
- },
2070
- "hasDynamicHelp": false,
2071
- "hiddenAliases": [],
2072
- "id": "asa:ad-groups:list",
2073
- "pluginAlias": "adapty",
2074
- "pluginName": "adapty",
2075
- "pluginType": "core",
2076
- "strict": true,
2077
- "enableJsonFlag": true,
2078
- "isESM": true,
2079
- "relativePath": [
2080
- "dist",
2081
- "commands",
2082
- "asa",
2083
- "ad-groups",
2084
- "list.js"
2085
- ]
2086
- },
2087
- "asa:ad-groups:update": {
2088
- "aliases": [],
2089
- "args": {
2090
- "ad_group_id": {
2091
- "description": "Ad group ID (UUID)",
2092
- "name": "ad_group_id",
2093
- "required": true
2094
- }
2095
- },
2096
- "description": "Change an ad group: bid, CPA goal, status or schedule",
2097
- "examples": [
2098
- "<%= config.bin %> asa ad-groups update UUID --default-bid 1.50",
2099
- "<%= config.bin %> asa ad-groups update UUID --status PAUSED"
2100
- ],
2101
- "flags": {
2102
- "json": {
2103
- "description": "Format output as json.",
2104
- "helpGroup": "GLOBAL",
2105
- "name": "json",
2106
- "allowNo": false,
2107
- "type": "boolean"
2108
- },
2109
- "currency": {
2110
- "description": "Currency code for the amounts in this call",
2111
- "name": "currency",
2112
- "default": "USD",
2113
- "hasDynamicHelp": false,
2114
- "multiple": false,
2115
- "type": "option"
2116
- },
2117
- "end-time": {
2118
- "description": "Schedule end (YYYY-MM-DD)",
2119
- "name": "end-time",
2120
- "hasDynamicHelp": false,
2121
- "multiple": false,
2122
- "type": "option"
2123
- },
2124
- "start-time": {
2125
- "description": "Schedule start (YYYY-MM-DD), defaults to today",
2126
- "name": "start-time",
2127
- "hasDynamicHelp": false,
2128
- "multiple": false,
2129
- "type": "option"
2130
- },
2131
- "yes": {
2132
- "char": "y",
2133
- "description": "Apply without asking; required when the output is piped or --json is used",
2134
- "name": "yes",
2135
- "allowNo": false,
2136
- "type": "boolean"
2137
- },
2138
- "idempotency-key": {
2139
- "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2140
- "name": "idempotency-key",
2141
- "hasDynamicHelp": false,
2142
- "multiple": false,
2143
- "type": "option"
2144
- },
2145
- "automated-keywords": {
2146
- "description": "Let Apple add keywords automatically",
2147
- "name": "automated-keywords",
2148
- "allowNo": true,
2149
- "type": "boolean"
2150
- },
2151
- "cpa-goal": {
2152
- "description": "CPA goal (amount, e.g. 50 or 12.50)",
2153
- "name": "cpa-goal",
2154
- "hasDynamicHelp": false,
2155
- "multiple": false,
2156
- "type": "option"
2157
- },
2158
- "default-bid": {
2159
- "description": "Default bid (amount, e.g. 50 or 12.50)",
2160
- "name": "default-bid",
2161
- "hasDynamicHelp": false,
2162
- "multiple": false,
2163
- "type": "option"
2164
- },
2165
- "name": {
2166
- "description": "Ad group name",
2167
- "name": "name",
2168
- "hasDynamicHelp": false,
2169
- "multiple": false,
2170
- "type": "option"
2171
- },
2172
- "status": {
2173
- "description": "Ad group status",
2174
- "name": "status",
1795
+ "name": {
1796
+ "description": "New flow name",
1797
+ "name": "name",
1798
+ "required": true,
2175
1799
  "hasDynamicHelp": false,
2176
1800
  "multiple": false,
2177
- "options": [
2178
- "ENABLED",
2179
- "PAUSED"
2180
- ],
2181
1801
  "type": "option"
2182
1802
  }
2183
1803
  },
2184
1804
  "hasDynamicHelp": false,
2185
1805
  "hiddenAliases": [],
2186
- "id": "asa:ad-groups:update",
1806
+ "id": "flows:update",
2187
1807
  "pluginAlias": "adapty",
2188
1808
  "pluginName": "adapty",
2189
1809
  "pluginType": "core",
@@ -2193,17 +1813,18 @@
2193
1813
  "relativePath": [
2194
1814
  "dist",
2195
1815
  "commands",
2196
- "asa",
2197
- "ad-groups",
1816
+ "flows",
2198
1817
  "update.js"
2199
1818
  ]
2200
1819
  },
2201
- "asa:ads:create": {
1820
+ "asa:ad-groups:create": {
2202
1821
  "aliases": [],
2203
1822
  "args": {},
2204
- "description": "Create an ad from a creative in an ad group",
1823
+ "description": "Create an ad group inside a campaign; --automated creates the automated ad group a Max Conversions campaign needs to run",
2205
1824
  "examples": [
2206
- "<%= config.bin %> asa ads create --ad-group UUID --creative-id 4321 --name \"Summer ad\""
1825
+ "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20",
1826
+ "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Brand terms\" --default-bid 1.20 --start-time 2026-09-01 --pricing-model CPM",
1827
+ "<%= config.bin %> asa ad-groups create --campaign UUID --name \"Automated Max Conv\" --automated"
2207
1828
  ],
2208
1829
  "flags": {
2209
1830
  "json": {
@@ -2213,6 +1834,40 @@
2213
1834
  "allowNo": false,
2214
1835
  "type": "boolean"
2215
1836
  },
1837
+ "currency": {
1838
+ "description": "Currency code for the amounts in this call",
1839
+ "name": "currency",
1840
+ "default": "USD",
1841
+ "hasDynamicHelp": false,
1842
+ "multiple": false,
1843
+ "type": "option"
1844
+ },
1845
+ "end-time": {
1846
+ "description": "Schedule end (YYYY-MM-DD)",
1847
+ "name": "end-time",
1848
+ "hasDynamicHelp": false,
1849
+ "multiple": false,
1850
+ "type": "option"
1851
+ },
1852
+ "start-time": {
1853
+ "description": "Schedule start (YYYY-MM-DD), defaults to today",
1854
+ "name": "start-time",
1855
+ "hasDynamicHelp": false,
1856
+ "multiple": false,
1857
+ "type": "option"
1858
+ },
1859
+ "pricing-model": {
1860
+ "description": "Pricing model; Apple requires one on every ad group",
1861
+ "name": "pricing-model",
1862
+ "default": "CPC",
1863
+ "hasDynamicHelp": false,
1864
+ "multiple": false,
1865
+ "options": [
1866
+ "CPC",
1867
+ "CPM"
1868
+ ],
1869
+ "type": "option"
1870
+ },
2216
1871
  "yes": {
2217
1872
  "char": "y",
2218
1873
  "description": "Apply without asking; required when the output is piped or --json is used",
@@ -2227,24 +1882,45 @@
2227
1882
  "multiple": false,
2228
1883
  "type": "option"
2229
1884
  },
2230
- "ad-group": {
2231
- "description": "Ad group ID (UUID) — the campaign is resolved from it",
2232
- "name": "ad-group",
1885
+ "automated": {
1886
+ "description": "Create the automated ad group a Max Conversions campaign needs (no bid, no schedule, always ENABLED)",
1887
+ "exclusive": [
1888
+ "automated-keywords"
1889
+ ],
1890
+ "name": "automated",
1891
+ "allowNo": false,
1892
+ "type": "boolean"
1893
+ },
1894
+ "automated-keywords": {
1895
+ "description": "Let Apple add keywords automatically",
1896
+ "name": "automated-keywords",
1897
+ "allowNo": true,
1898
+ "type": "boolean"
1899
+ },
1900
+ "campaign": {
1901
+ "description": "Campaign ID (UUID)",
1902
+ "name": "campaign",
2233
1903
  "required": true,
2234
1904
  "hasDynamicHelp": false,
2235
1905
  "multiple": false,
2236
1906
  "type": "option"
2237
1907
  },
2238
- "creative-id": {
2239
- "description": "Apple creative ID from a product page or the default set",
2240
- "name": "creative-id",
2241
- "required": true,
1908
+ "cpa-goal": {
1909
+ "description": "CPA goal (amount, e.g. 50 or 12.50)",
1910
+ "name": "cpa-goal",
1911
+ "hasDynamicHelp": false,
1912
+ "multiple": false,
1913
+ "type": "option"
1914
+ },
1915
+ "default-bid": {
1916
+ "description": "Default bid; required unless --automated is set (amount, e.g. 50 or 12.50)",
1917
+ "name": "default-bid",
2242
1918
  "hasDynamicHelp": false,
2243
1919
  "multiple": false,
2244
1920
  "type": "option"
2245
1921
  },
2246
1922
  "name": {
2247
- "description": "Ad name",
1923
+ "description": "Ad group name",
2248
1924
  "name": "name",
2249
1925
  "required": true,
2250
1926
  "hasDynamicHelp": false,
@@ -2265,7 +1941,7 @@
2265
1941
  },
2266
1942
  "hasDynamicHelp": false,
2267
1943
  "hiddenAliases": [],
2268
- "id": "asa:ads:create",
1944
+ "id": "asa:ad-groups:create",
2269
1945
  "pluginAlias": "adapty",
2270
1946
  "pluginName": "adapty",
2271
1947
  "pluginType": "core",
@@ -2276,22 +1952,22 @@
2276
1952
  "dist",
2277
1953
  "commands",
2278
1954
  "asa",
2279
- "ads",
1955
+ "ad-groups",
2280
1956
  "create.js"
2281
1957
  ]
2282
1958
  },
2283
- "asa:ads:get": {
1959
+ "asa:ad-groups:get": {
2284
1960
  "aliases": [],
2285
1961
  "args": {
2286
- "ad_id": {
2287
- "description": "Ad ID (UUID)",
2288
- "name": "ad_id",
1962
+ "ad_group_id": {
1963
+ "description": "Ad group ID (UUID)",
1964
+ "name": "ad_group_id",
2289
1965
  "required": true
2290
1966
  }
2291
1967
  },
2292
- "description": "Show one ad and its serving state",
1968
+ "description": "Show one ad group; read numbers with asa metrics",
2293
1969
  "examples": [
2294
- "<%= config.bin %> asa ads get 550e8400-e29b-41d4-a716-446655440000"
1970
+ "<%= config.bin %> asa ad-groups get 550e8400-e29b-41d4-a716-446655440000"
2295
1971
  ],
2296
1972
  "flags": {
2297
1973
  "json": {
@@ -2304,7 +1980,7 @@
2304
1980
  },
2305
1981
  "hasDynamicHelp": false,
2306
1982
  "hiddenAliases": [],
2307
- "id": "asa:ads:get",
1983
+ "id": "asa:ad-groups:get",
2308
1984
  "pluginAlias": "adapty",
2309
1985
  "pluginName": "adapty",
2310
1986
  "pluginType": "core",
@@ -2315,17 +1991,17 @@
2315
1991
  "dist",
2316
1992
  "commands",
2317
1993
  "asa",
2318
- "ads",
1994
+ "ad-groups",
2319
1995
  "get.js"
2320
1996
  ]
2321
1997
  },
2322
- "asa:ads:list": {
1998
+ "asa:ad-groups:list": {
2323
1999
  "aliases": [],
2324
2000
  "args": {},
2325
- "description": "List ads; serving_state_reasons explains why an enabled ad is not running",
2001
+ "description": "List ad groups; read numbers with asa metrics",
2326
2002
  "examples": [
2327
- "<%= config.bin %> asa ads list",
2328
- "<%= config.bin %> asa ads list --ad-group AD_GROUP_UUID --status ENABLED"
2003
+ "<%= config.bin %> asa ad-groups list",
2004
+ "<%= config.bin %> asa ad-groups list --campaign CAMPAIGN_UUID"
2329
2005
  ],
2330
2006
  "flags": {
2331
2007
  "json": {
@@ -2351,16 +2027,9 @@
2351
2027
  "multiple": false,
2352
2028
  "type": "option"
2353
2029
  },
2354
- "ad-group": {
2355
- "description": "Keep only rows in this ad group; repeatable",
2356
- "name": "ad-group",
2357
- "hasDynamicHelp": false,
2358
- "multiple": true,
2359
- "type": "option"
2360
- },
2361
- "campaign": {
2362
- "description": "Keep only rows in this campaign; repeatable",
2363
- "name": "campaign",
2030
+ "app": {
2031
+ "description": "Keep only rows in this app; repeatable",
2032
+ "name": "app",
2364
2033
  "hasDynamicHelp": false,
2365
2034
  "multiple": true,
2366
2035
  "type": "option"
@@ -2379,6 +2048,13 @@
2379
2048
  "multiple": false,
2380
2049
  "type": "option"
2381
2050
  },
2051
+ "campaign": {
2052
+ "description": "Keep only rows in this campaign; repeatable",
2053
+ "name": "campaign",
2054
+ "hasDynamicHelp": false,
2055
+ "multiple": true,
2056
+ "type": "option"
2057
+ },
2382
2058
  "status": {
2383
2059
  "description": "Keep only rows in this state",
2384
2060
  "name": "status",
@@ -2393,7 +2069,7 @@
2393
2069
  },
2394
2070
  "hasDynamicHelp": false,
2395
2071
  "hiddenAliases": [],
2396
- "id": "asa:ads:list",
2072
+ "id": "asa:ad-groups:list",
2397
2073
  "pluginAlias": "adapty",
2398
2074
  "pluginName": "adapty",
2399
2075
  "pluginType": "core",
@@ -2404,22 +2080,23 @@
2404
2080
  "dist",
2405
2081
  "commands",
2406
2082
  "asa",
2407
- "ads",
2083
+ "ad-groups",
2408
2084
  "list.js"
2409
2085
  ]
2410
2086
  },
2411
- "asa:ads:update": {
2087
+ "asa:ad-groups:update": {
2412
2088
  "aliases": [],
2413
2089
  "args": {
2414
- "ad_id": {
2415
- "description": "Ad ID (UUID)",
2416
- "name": "ad_id",
2090
+ "ad_group_id": {
2091
+ "description": "Ad group ID (UUID)",
2092
+ "name": "ad_group_id",
2417
2093
  "required": true
2418
2094
  }
2419
2095
  },
2420
- "description": "Rename an ad or pause it; the creative and ad group are fixed at creation",
2096
+ "description": "Change an ad group: bid, CPA goal, status or schedule",
2421
2097
  "examples": [
2422
- "<%= config.bin %> asa ads update UUID --status PAUSED"
2098
+ "<%= config.bin %> asa ad-groups update UUID --default-bid 1.50",
2099
+ "<%= config.bin %> asa ad-groups update UUID --status PAUSED"
2423
2100
  ],
2424
2101
  "flags": {
2425
2102
  "json": {
@@ -2429,6 +2106,28 @@
2429
2106
  "allowNo": false,
2430
2107
  "type": "boolean"
2431
2108
  },
2109
+ "currency": {
2110
+ "description": "Currency code for the amounts in this call",
2111
+ "name": "currency",
2112
+ "default": "USD",
2113
+ "hasDynamicHelp": false,
2114
+ "multiple": false,
2115
+ "type": "option"
2116
+ },
2117
+ "end-time": {
2118
+ "description": "Schedule end (YYYY-MM-DD)",
2119
+ "name": "end-time",
2120
+ "hasDynamicHelp": false,
2121
+ "multiple": false,
2122
+ "type": "option"
2123
+ },
2124
+ "start-time": {
2125
+ "description": "Schedule start (YYYY-MM-DD), defaults to today",
2126
+ "name": "start-time",
2127
+ "hasDynamicHelp": false,
2128
+ "multiple": false,
2129
+ "type": "option"
2130
+ },
2432
2131
  "yes": {
2433
2132
  "char": "y",
2434
2133
  "description": "Apply without asking; required when the output is piped or --json is used",
@@ -2443,15 +2142,35 @@
2443
2142
  "multiple": false,
2444
2143
  "type": "option"
2445
2144
  },
2145
+ "automated-keywords": {
2146
+ "description": "Let Apple add keywords automatically",
2147
+ "name": "automated-keywords",
2148
+ "allowNo": true,
2149
+ "type": "boolean"
2150
+ },
2151
+ "cpa-goal": {
2152
+ "description": "CPA goal (amount, e.g. 50 or 12.50)",
2153
+ "name": "cpa-goal",
2154
+ "hasDynamicHelp": false,
2155
+ "multiple": false,
2156
+ "type": "option"
2157
+ },
2158
+ "default-bid": {
2159
+ "description": "Default bid (amount, e.g. 50 or 12.50)",
2160
+ "name": "default-bid",
2161
+ "hasDynamicHelp": false,
2162
+ "multiple": false,
2163
+ "type": "option"
2164
+ },
2446
2165
  "name": {
2447
- "description": "Ad name",
2166
+ "description": "Ad group name",
2448
2167
  "name": "name",
2449
2168
  "hasDynamicHelp": false,
2450
2169
  "multiple": false,
2451
2170
  "type": "option"
2452
2171
  },
2453
2172
  "status": {
2454
- "description": "Ad status",
2173
+ "description": "Ad group status",
2455
2174
  "name": "status",
2456
2175
  "hasDynamicHelp": false,
2457
2176
  "multiple": false,
@@ -2464,7 +2183,7 @@
2464
2183
  },
2465
2184
  "hasDynamicHelp": false,
2466
2185
  "hiddenAliases": [],
2467
- "id": "asa:ads:update",
2186
+ "id": "asa:ad-groups:update",
2468
2187
  "pluginAlias": "adapty",
2469
2188
  "pluginName": "adapty",
2470
2189
  "pluginType": "core",
@@ -2475,7 +2194,7 @@
2475
2194
  "dist",
2476
2195
  "commands",
2477
2196
  "asa",
2478
- "ads",
2197
+ "ad-groups",
2479
2198
  "update.js"
2480
2199
  ]
2481
2200
  },
@@ -3773,7 +3492,71 @@
3773
3492
  },
3774
3493
  "hasDynamicHelp": false,
3775
3494
  "hiddenAliases": [],
3776
- "id": "asa:competitors:summary",
3495
+ "id": "asa:competitors:summary",
3496
+ "pluginAlias": "adapty",
3497
+ "pluginName": "adapty",
3498
+ "pluginType": "core",
3499
+ "strict": true,
3500
+ "enableJsonFlag": true,
3501
+ "isESM": true,
3502
+ "relativePath": [
3503
+ "dist",
3504
+ "commands",
3505
+ "asa",
3506
+ "competitors",
3507
+ "summary.js"
3508
+ ]
3509
+ },
3510
+ "asa:creatives:list": {
3511
+ "aliases": [],
3512
+ "args": {},
3513
+ "description": "List creatives; creative_id is what `asa ads create` needs",
3514
+ "examples": [
3515
+ "<%= config.bin %> asa creatives list",
3516
+ "<%= config.bin %> asa creatives list --app APP_UUID"
3517
+ ],
3518
+ "flags": {
3519
+ "json": {
3520
+ "description": "Format output as json.",
3521
+ "helpGroup": "GLOBAL",
3522
+ "name": "json",
3523
+ "allowNo": false,
3524
+ "type": "boolean"
3525
+ },
3526
+ "page": {
3527
+ "description": "Page number",
3528
+ "name": "page",
3529
+ "default": 1,
3530
+ "hasDynamicHelp": false,
3531
+ "multiple": false,
3532
+ "type": "option"
3533
+ },
3534
+ "page-size": {
3535
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
3536
+ "name": "page-size",
3537
+ "default": 100,
3538
+ "hasDynamicHelp": false,
3539
+ "multiple": false,
3540
+ "type": "option"
3541
+ },
3542
+ "app": {
3543
+ "description": "Keep only rows in this app; repeatable",
3544
+ "name": "app",
3545
+ "hasDynamicHelp": false,
3546
+ "multiple": true,
3547
+ "type": "option"
3548
+ },
3549
+ "campaign-group": {
3550
+ "description": "Keep only rows in this campaign group; repeatable",
3551
+ "name": "campaign-group",
3552
+ "hasDynamicHelp": false,
3553
+ "multiple": true,
3554
+ "type": "option"
3555
+ }
3556
+ },
3557
+ "hasDynamicHelp": false,
3558
+ "hiddenAliases": [],
3559
+ "id": "asa:creatives:list",
3777
3560
  "pluginAlias": "adapty",
3778
3561
  "pluginName": "adapty",
3779
3562
  "pluginType": "core",
@@ -3784,8 +3567,8 @@
3784
3567
  "dist",
3785
3568
  "commands",
3786
3569
  "asa",
3787
- "competitors",
3788
- "summary.js"
3570
+ "creatives",
3571
+ "list.js"
3789
3572
  ]
3790
3573
  },
3791
3574
  "asa:keywords:add": {
@@ -4813,13 +4596,134 @@
4813
4596
  "list.js"
4814
4597
  ]
4815
4598
  },
4816
- "asa:creatives:list": {
4599
+ "asa:ads:create": {
4817
4600
  "aliases": [],
4818
4601
  "args": {},
4819
- "description": "List creatives; creative_id is what `asa ads create` needs",
4602
+ "description": "Create an ad from a creative in an ad group",
4820
4603
  "examples": [
4821
- "<%= config.bin %> asa creatives list",
4822
- "<%= config.bin %> asa creatives list --app APP_UUID"
4604
+ "<%= config.bin %> asa ads create --ad-group UUID --creative-id 4321 --name \"Summer ad\""
4605
+ ],
4606
+ "flags": {
4607
+ "json": {
4608
+ "description": "Format output as json.",
4609
+ "helpGroup": "GLOBAL",
4610
+ "name": "json",
4611
+ "allowNo": false,
4612
+ "type": "boolean"
4613
+ },
4614
+ "yes": {
4615
+ "char": "y",
4616
+ "description": "Apply without asking; required when the output is piped or --json is used",
4617
+ "name": "yes",
4618
+ "allowNo": false,
4619
+ "type": "boolean"
4620
+ },
4621
+ "idempotency-key": {
4622
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
4623
+ "name": "idempotency-key",
4624
+ "hasDynamicHelp": false,
4625
+ "multiple": false,
4626
+ "type": "option"
4627
+ },
4628
+ "ad-group": {
4629
+ "description": "Ad group ID (UUID) — the campaign is resolved from it",
4630
+ "name": "ad-group",
4631
+ "required": true,
4632
+ "hasDynamicHelp": false,
4633
+ "multiple": false,
4634
+ "type": "option"
4635
+ },
4636
+ "creative-id": {
4637
+ "description": "Apple creative ID from a product page or the default set",
4638
+ "name": "creative-id",
4639
+ "required": true,
4640
+ "hasDynamicHelp": false,
4641
+ "multiple": false,
4642
+ "type": "option"
4643
+ },
4644
+ "name": {
4645
+ "description": "Ad name",
4646
+ "name": "name",
4647
+ "required": true,
4648
+ "hasDynamicHelp": false,
4649
+ "multiple": false,
4650
+ "type": "option"
4651
+ },
4652
+ "status": {
4653
+ "description": "Initial status",
4654
+ "name": "status",
4655
+ "hasDynamicHelp": false,
4656
+ "multiple": false,
4657
+ "options": [
4658
+ "ENABLED",
4659
+ "PAUSED"
4660
+ ],
4661
+ "type": "option"
4662
+ }
4663
+ },
4664
+ "hasDynamicHelp": false,
4665
+ "hiddenAliases": [],
4666
+ "id": "asa:ads:create",
4667
+ "pluginAlias": "adapty",
4668
+ "pluginName": "adapty",
4669
+ "pluginType": "core",
4670
+ "strict": true,
4671
+ "enableJsonFlag": true,
4672
+ "isESM": true,
4673
+ "relativePath": [
4674
+ "dist",
4675
+ "commands",
4676
+ "asa",
4677
+ "ads",
4678
+ "create.js"
4679
+ ]
4680
+ },
4681
+ "asa:ads:get": {
4682
+ "aliases": [],
4683
+ "args": {
4684
+ "ad_id": {
4685
+ "description": "Ad ID (UUID)",
4686
+ "name": "ad_id",
4687
+ "required": true
4688
+ }
4689
+ },
4690
+ "description": "Show one ad and its serving state",
4691
+ "examples": [
4692
+ "<%= config.bin %> asa ads get 550e8400-e29b-41d4-a716-446655440000"
4693
+ ],
4694
+ "flags": {
4695
+ "json": {
4696
+ "description": "Format output as json.",
4697
+ "helpGroup": "GLOBAL",
4698
+ "name": "json",
4699
+ "allowNo": false,
4700
+ "type": "boolean"
4701
+ }
4702
+ },
4703
+ "hasDynamicHelp": false,
4704
+ "hiddenAliases": [],
4705
+ "id": "asa:ads:get",
4706
+ "pluginAlias": "adapty",
4707
+ "pluginName": "adapty",
4708
+ "pluginType": "core",
4709
+ "strict": true,
4710
+ "enableJsonFlag": true,
4711
+ "isESM": true,
4712
+ "relativePath": [
4713
+ "dist",
4714
+ "commands",
4715
+ "asa",
4716
+ "ads",
4717
+ "get.js"
4718
+ ]
4719
+ },
4720
+ "asa:ads:list": {
4721
+ "aliases": [],
4722
+ "args": {},
4723
+ "description": "List ads; serving_state_reasons explains why an enabled ad is not running",
4724
+ "examples": [
4725
+ "<%= config.bin %> asa ads list",
4726
+ "<%= config.bin %> asa ads list --ad-group AD_GROUP_UUID --status ENABLED"
4823
4727
  ],
4824
4728
  "flags": {
4825
4729
  "json": {
@@ -4845,9 +4749,16 @@
4845
4749
  "multiple": false,
4846
4750
  "type": "option"
4847
4751
  },
4848
- "app": {
4849
- "description": "Keep only rows in this app; repeatable",
4850
- "name": "app",
4752
+ "ad-group": {
4753
+ "description": "Keep only rows in this ad group; repeatable",
4754
+ "name": "ad-group",
4755
+ "hasDynamicHelp": false,
4756
+ "multiple": true,
4757
+ "type": "option"
4758
+ },
4759
+ "campaign": {
4760
+ "description": "Keep only rows in this campaign; repeatable",
4761
+ "name": "campaign",
4851
4762
  "hasDynamicHelp": false,
4852
4763
  "multiple": true,
4853
4764
  "type": "option"
@@ -4858,11 +4769,29 @@
4858
4769
  "hasDynamicHelp": false,
4859
4770
  "multiple": true,
4860
4771
  "type": "option"
4772
+ },
4773
+ "search": {
4774
+ "description": "Case-insensitive substring match on the name",
4775
+ "name": "search",
4776
+ "hasDynamicHelp": false,
4777
+ "multiple": false,
4778
+ "type": "option"
4779
+ },
4780
+ "status": {
4781
+ "description": "Keep only rows in this state",
4782
+ "name": "status",
4783
+ "hasDynamicHelp": false,
4784
+ "multiple": false,
4785
+ "options": [
4786
+ "ENABLED",
4787
+ "PAUSED"
4788
+ ],
4789
+ "type": "option"
4861
4790
  }
4862
4791
  },
4863
4792
  "hasDynamicHelp": false,
4864
4793
  "hiddenAliases": [],
4865
- "id": "asa:creatives:list",
4794
+ "id": "asa:ads:list",
4866
4795
  "pluginAlias": "adapty",
4867
4796
  "pluginName": "adapty",
4868
4797
  "pluginType": "core",
@@ -4873,10 +4802,81 @@
4873
4802
  "dist",
4874
4803
  "commands",
4875
4804
  "asa",
4876
- "creatives",
4805
+ "ads",
4877
4806
  "list.js"
4878
4807
  ]
4879
4808
  },
4809
+ "asa:ads:update": {
4810
+ "aliases": [],
4811
+ "args": {
4812
+ "ad_id": {
4813
+ "description": "Ad ID (UUID)",
4814
+ "name": "ad_id",
4815
+ "required": true
4816
+ }
4817
+ },
4818
+ "description": "Rename an ad or pause it; the creative and ad group are fixed at creation",
4819
+ "examples": [
4820
+ "<%= config.bin %> asa ads update UUID --status PAUSED"
4821
+ ],
4822
+ "flags": {
4823
+ "json": {
4824
+ "description": "Format output as json.",
4825
+ "helpGroup": "GLOBAL",
4826
+ "name": "json",
4827
+ "allowNo": false,
4828
+ "type": "boolean"
4829
+ },
4830
+ "yes": {
4831
+ "char": "y",
4832
+ "description": "Apply without asking; required when the output is piped or --json is used",
4833
+ "name": "yes",
4834
+ "allowNo": false,
4835
+ "type": "boolean"
4836
+ },
4837
+ "idempotency-key": {
4838
+ "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
4839
+ "name": "idempotency-key",
4840
+ "hasDynamicHelp": false,
4841
+ "multiple": false,
4842
+ "type": "option"
4843
+ },
4844
+ "name": {
4845
+ "description": "Ad name",
4846
+ "name": "name",
4847
+ "hasDynamicHelp": false,
4848
+ "multiple": false,
4849
+ "type": "option"
4850
+ },
4851
+ "status": {
4852
+ "description": "Ad status",
4853
+ "name": "status",
4854
+ "hasDynamicHelp": false,
4855
+ "multiple": false,
4856
+ "options": [
4857
+ "ENABLED",
4858
+ "PAUSED"
4859
+ ],
4860
+ "type": "option"
4861
+ }
4862
+ },
4863
+ "hasDynamicHelp": false,
4864
+ "hiddenAliases": [],
4865
+ "id": "asa:ads:update",
4866
+ "pluginAlias": "adapty",
4867
+ "pluginName": "adapty",
4868
+ "pluginType": "core",
4869
+ "strict": true,
4870
+ "enableJsonFlag": true,
4871
+ "isESM": true,
4872
+ "relativePath": [
4873
+ "dist",
4874
+ "commands",
4875
+ "asa",
4876
+ "ads",
4877
+ "update.js"
4878
+ ]
4879
+ },
4880
4880
  "flows:config:get": {
4881
4881
  "aliases": [],
4882
4882
  "args": {
@@ -5181,5 +5181,5 @@
5181
5181
  ]
5182
5182
  }
5183
5183
  },
5184
- "version": "0.8.5"
5184
+ "version": "0.8.6"
5185
5185
  }