adapty 0.8.4 → 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 (209) hide show
  1. package/README.md +7 -2
  2. package/bin/dev.js +2 -2
  3. package/bin/run.js +2 -2
  4. package/dist/cli/base/adapty/adapty-command.d.ts +21 -0
  5. package/dist/cli/base/adapty/adapty-command.js +47 -0
  6. package/dist/cli/base/adapty/build.d.ts +11 -0
  7. package/dist/cli/base/adapty/build.js +13 -0
  8. package/dist/cli/base/adapty/index.d.ts +5 -0
  9. package/dist/cli/base/adapty/index.js +3 -0
  10. package/dist/cli/base/adapty/openSession.d.ts +22 -0
  11. package/dist/cli/base/adapty/openSession.js +25 -0
  12. package/dist/cli/base/base-command.d.ts +30 -0
  13. package/dist/cli/base/base-command.js +64 -0
  14. package/dist/cli/commands/apps/create.d.ts +19 -0
  15. package/dist/cli/commands/apps/create.js +68 -0
  16. package/dist/cli/commands/apps/get.d.ts +10 -0
  17. package/dist/cli/commands/apps/get.js +14 -0
  18. package/dist/cli/commands/apps/list.d.ts +11 -0
  19. package/dist/cli/commands/apps/list.js +14 -0
  20. package/dist/cli/commands/apps/update.d.ts +15 -0
  21. package/dist/cli/commands/apps/update.js +30 -0
  22. package/dist/cli/commands/auth/login.d.ts +11 -0
  23. package/dist/cli/commands/auth/login.js +68 -0
  24. package/dist/cli/commands/auth/logout.d.ts +12 -0
  25. package/dist/cli/commands/auth/logout.js +28 -0
  26. package/dist/cli/commands/auth/revoke.d.ts +13 -0
  27. package/dist/cli/commands/auth/revoke.js +32 -0
  28. package/dist/cli/commands/auth/status/index.d.ts +7 -0
  29. package/dist/cli/commands/auth/status/index.js +22 -0
  30. package/dist/cli/commands/auth/status/lib/render.d.ts +3 -0
  31. package/dist/cli/commands/auth/status/lib/render.js +14 -0
  32. package/dist/cli/commands/auth/status/lib/result.d.ts +15 -0
  33. package/dist/cli/commands/auth/status/lib/result.js +1 -0
  34. package/dist/cli/commands/auth/whoami.d.ts +10 -0
  35. package/dist/cli/commands/auth/whoami.js +16 -0
  36. package/dist/cli/errors.d.ts +39 -0
  37. package/dist/cli/errors.js +92 -0
  38. package/dist/cli/flags.d.ts +16 -0
  39. package/dist/cli/flags.js +27 -0
  40. package/dist/cli/views/list.d.ts +6 -0
  41. package/dist/cli/views/list.js +10 -0
  42. package/dist/cli/views/record.d.ts +9 -0
  43. package/dist/cli/views/record.js +14 -0
  44. package/dist/commands/access-levels/create.js +1 -1
  45. package/dist/commands/access-levels/list.d.ts +1 -1
  46. package/dist/commands/apps/create.d.ts +1 -14
  47. package/dist/commands/apps/create.js +2 -54
  48. package/dist/commands/apps/get.d.ts +1 -11
  49. package/dist/commands/apps/get.js +2 -22
  50. package/dist/commands/apps/list.d.ts +1 -13
  51. package/dist/commands/apps/list.js +2 -19
  52. package/dist/commands/apps/update.d.ts +1 -16
  53. package/dist/commands/apps/update.js +2 -38
  54. package/dist/commands/asa/ad-groups/create.js +9 -7
  55. package/dist/commands/asa/ad-groups/get.js +3 -2
  56. package/dist/commands/asa/ad-groups/list.d.ts +1 -1
  57. package/dist/commands/asa/ad-groups/list.js +1 -1
  58. package/dist/commands/asa/ad-groups/update.js +22 -12
  59. package/dist/commands/asa/ads/create.js +7 -5
  60. package/dist/commands/asa/ads/get.js +3 -2
  61. package/dist/commands/asa/ads/list.d.ts +1 -1
  62. package/dist/commands/asa/ads/list.js +1 -1
  63. package/dist/commands/asa/ads/update.js +9 -5
  64. package/dist/commands/asa/apps/list.d.ts +1 -1
  65. package/dist/commands/asa/apps/list.js +1 -1
  66. package/dist/commands/asa/automations/create.js +9 -6
  67. package/dist/commands/asa/automations/get.js +3 -2
  68. package/dist/commands/asa/automations/list.d.ts +1 -1
  69. package/dist/commands/asa/automations/list.js +1 -1
  70. package/dist/commands/asa/automations/run.js +5 -3
  71. package/dist/commands/asa/automations/runs.d.ts +1 -1
  72. package/dist/commands/asa/automations/runs.js +4 -4
  73. package/dist/commands/asa/automations/update.js +17 -9
  74. package/dist/commands/asa/campaigns/bulk-create.js +31 -18
  75. package/dist/commands/asa/campaigns/bulk-list.js +7 -5
  76. package/dist/commands/asa/campaigns/bulk-status.js +3 -2
  77. package/dist/commands/asa/campaigns/create.js +10 -8
  78. package/dist/commands/asa/campaigns/get.js +3 -2
  79. package/dist/commands/asa/campaigns/list.d.ts +1 -1
  80. package/dist/commands/asa/campaigns/list.js +1 -1
  81. package/dist/commands/asa/campaigns/update.js +25 -15
  82. package/dist/commands/asa/competitors/summary.js +5 -5
  83. package/dist/commands/asa/connect.js +5 -3
  84. package/dist/commands/asa/creatives/list.d.ts +1 -1
  85. package/dist/commands/asa/creatives/list.js +1 -1
  86. package/dist/commands/asa/keywords/add.js +13 -10
  87. package/dist/commands/asa/keywords/list.d.ts +1 -1
  88. package/dist/commands/asa/keywords/list.js +1 -1
  89. package/dist/commands/asa/keywords/update.js +15 -10
  90. package/dist/commands/asa/metrics/index.d.ts +2 -2
  91. package/dist/commands/asa/metrics/index.js +22 -8
  92. package/dist/commands/asa/metrics/overview.js +3 -3
  93. package/dist/commands/asa/negative-keywords/add.js +10 -7
  94. package/dist/commands/asa/negative-keywords/list.d.ts +1 -1
  95. package/dist/commands/asa/negative-keywords/list.js +1 -1
  96. package/dist/commands/asa/orgs/list.d.ts +1 -1
  97. package/dist/commands/asa/orgs/list.js +1 -1
  98. package/dist/commands/asa/product-pages/list.d.ts +1 -1
  99. package/dist/commands/asa/product-pages/list.js +1 -1
  100. package/dist/commands/asa/product-pages/sync.js +1 -1
  101. package/dist/commands/asa/search-terms/list.d.ts +1 -1
  102. package/dist/commands/asa/search-terms/list.js +1 -1
  103. package/dist/commands/asa/whoami.js +13 -4
  104. package/dist/commands/auth/login.d.ts +1 -8
  105. package/dist/commands/auth/login.js +2 -120
  106. package/dist/commands/auth/logout.d.ts +1 -9
  107. package/dist/commands/auth/logout.js +2 -18
  108. package/dist/commands/auth/revoke.d.ts +1 -9
  109. package/dist/commands/auth/revoke.js +2 -21
  110. package/dist/commands/auth/status.d.ts +1 -7
  111. package/dist/commands/auth/status.js +2 -26
  112. package/dist/commands/auth/whoami.d.ts +1 -7
  113. package/dist/commands/auth/whoami.js +2 -15
  114. package/dist/commands/flows/config/get.js +2 -2
  115. package/dist/commands/flows/config/preview.d.ts +2 -2
  116. package/dist/commands/flows/config/preview.js +6 -4
  117. package/dist/commands/flows/config/update.js +5 -3
  118. package/dist/commands/flows/config/validate.js +5 -3
  119. package/dist/commands/flows/list.d.ts +1 -1
  120. package/dist/commands/flows/media/upload.js +1 -1
  121. package/dist/commands/flows/publish.js +5 -5
  122. package/dist/commands/paywalls/create.js +1 -1
  123. package/dist/commands/paywalls/list.d.ts +1 -1
  124. package/dist/commands/paywalls/placements.d.ts +2 -2
  125. package/dist/commands/paywalls/update.js +1 -1
  126. package/dist/commands/placements/create.js +17 -12
  127. package/dist/commands/placements/list.d.ts +1 -1
  128. package/dist/commands/placements/update.js +20 -15
  129. package/dist/commands/products/create.js +20 -13
  130. package/dist/commands/products/list.d.ts +1 -1
  131. package/dist/commands/products/update.js +1 -1
  132. package/dist/commands/segments/list.d.ts +1 -1
  133. package/dist/lib/api-client.d.ts +10 -6
  134. package/dist/lib/api-client.js +56 -35
  135. package/dist/lib/api-schemas.d.ts +63 -59
  136. package/dist/lib/app-url.js +2 -1
  137. package/dist/lib/asa-client.d.ts +13 -8
  138. package/dist/lib/asa-client.js +9 -4
  139. package/dist/lib/asa-flags.d.ts +19 -19
  140. package/dist/lib/asa-flags.js +38 -25
  141. package/dist/lib/asa-keyword-action.d.ts +10 -10
  142. package/dist/lib/asa-keyword-action.js +40 -25
  143. package/dist/lib/asa-schemas.d.ts +101 -81
  144. package/dist/lib/auth.js +2 -1
  145. package/dist/lib/client-from-config.d.ts +1 -1
  146. package/dist/lib/client-from-config.js +2 -1
  147. package/dist/lib/config.d.ts +2 -2
  148. package/dist/lib/confirm.d.ts +4 -4
  149. package/dist/lib/confirm.js +12 -7
  150. package/dist/lib/errors.d.ts +18 -18
  151. package/dist/lib/errors.js +12 -9
  152. package/dist/lib/flags.d.ts +3 -3
  153. package/dist/lib/flags.js +2 -1
  154. package/dist/lib/flow-help.js +11 -6
  155. package/dist/lib/output.js +23 -12
  156. package/dist/lib/preview.d.ts +5 -5
  157. package/dist/lib/preview.js +2 -1
  158. package/dist/sdk/adapty/access-levels.d.ts +15 -0
  159. package/dist/sdk/adapty/access-levels.js +4 -0
  160. package/dist/sdk/adapty/apps/create.d.ts +26 -0
  161. package/dist/sdk/adapty/apps/create.js +36 -0
  162. package/dist/sdk/adapty/apps/index.d.ts +13 -0
  163. package/dist/sdk/adapty/apps/index.js +9 -0
  164. package/dist/sdk/adapty/apps/model.d.ts +24 -0
  165. package/dist/sdk/adapty/apps/model.js +10 -0
  166. package/dist/sdk/adapty/apps/resource.d.ts +19 -0
  167. package/dist/sdk/adapty/apps/resource.js +23 -0
  168. package/dist/sdk/adapty/apps/update.d.ts +16 -0
  169. package/dist/sdk/adapty/apps/update.js +25 -0
  170. package/dist/sdk/adapty/auth/device-code.d.ts +8 -0
  171. package/dist/sdk/adapty/auth/device-code.js +19 -0
  172. package/dist/sdk/adapty/auth/index.d.ts +7 -0
  173. package/dist/sdk/adapty/auth/index.js +5 -0
  174. package/dist/sdk/adapty/auth/model.d.ts +15 -0
  175. package/dist/sdk/adapty/auth/model.js +6 -0
  176. package/dist/sdk/adapty/auth/poll-token.d.ts +8 -0
  177. package/dist/sdk/adapty/auth/poll-token.js +58 -0
  178. package/dist/sdk/adapty/auth/resource.d.ts +17 -0
  179. package/dist/sdk/adapty/auth/resource.js +21 -0
  180. package/dist/sdk/adapty/errors.d.ts +10 -0
  181. package/dist/sdk/adapty/errors.js +38 -0
  182. package/dist/sdk/adapty/index.d.ts +36 -0
  183. package/dist/sdk/adapty/index.js +27 -0
  184. package/dist/sdk/adapty/pagination.d.ts +23 -0
  185. package/dist/sdk/adapty/pagination.js +1 -0
  186. package/dist/sdk/core/auth/device-flow.d.ts +46 -0
  187. package/dist/sdk/core/auth/device-flow.js +62 -0
  188. package/dist/sdk/core/clock.d.ts +7 -0
  189. package/dist/sdk/core/clock.js +21 -0
  190. package/dist/sdk/core/errors.d.ts +81 -0
  191. package/dist/sdk/core/errors.js +84 -0
  192. package/dist/sdk/core/http/client.d.ts +46 -0
  193. package/dist/sdk/core/http/client.js +127 -0
  194. package/dist/sdk/core/http/index.d.ts +11 -0
  195. package/dist/sdk/core/http/index.js +7 -0
  196. package/dist/sdk/core/http/policies.d.ts +14 -0
  197. package/dist/sdk/core/http/policies.js +29 -0
  198. package/dist/sdk/core/http/retry.d.ts +27 -0
  199. package/dist/sdk/core/http/retry.js +22 -0
  200. package/dist/sdk/core/http/url.d.ts +3 -0
  201. package/dist/sdk/core/http/url.js +19 -0
  202. package/dist/sdk/core/session.d.ts +20 -0
  203. package/dist/sdk/core/session.js +69 -0
  204. package/dist/sdk/core/testing.d.ts +25 -0
  205. package/dist/sdk/core/testing.js +46 -0
  206. package/dist/sdk/core/validation.d.ts +10 -0
  207. package/dist/sdk/core/validation.js +14 -0
  208. package/oclif.manifest.json +766 -766
  209. package/package.json +19 -9
@@ -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,
@@ -425,36 +425,59 @@
425
425
  "update.js"
426
426
  ]
427
427
  },
428
- "auth:login": {
428
+ "asa:connect": {
429
429
  "aliases": [],
430
430
  "args": {},
431
- "description": "Authenticate with Adapty via browser",
431
+ "description": "Connect an Apple Search Ads account to this company",
432
432
  "examples": [
433
- "<%= config.bin %> auth login"
433
+ "<%= config.bin %> asa connect",
434
+ "<%= config.bin %> asa connect --no-wait"
434
435
  ],
435
- "flags": {},
436
+ "flags": {
437
+ "json": {
438
+ "description": "Format output as json.",
439
+ "helpGroup": "GLOBAL",
440
+ "name": "json",
441
+ "allowNo": false,
442
+ "type": "boolean"
443
+ },
444
+ "timeout": {
445
+ "description": "Seconds to wait for the browser step",
446
+ "name": "timeout",
447
+ "default": 300,
448
+ "hasDynamicHelp": false,
449
+ "multiple": false,
450
+ "type": "option"
451
+ },
452
+ "wait": {
453
+ "description": "Wait until Apple Ads reports as connected",
454
+ "name": "wait",
455
+ "allowNo": true,
456
+ "type": "boolean"
457
+ }
458
+ },
436
459
  "hasDynamicHelp": false,
437
460
  "hiddenAliases": [],
438
- "id": "auth:login",
461
+ "id": "asa:connect",
439
462
  "pluginAlias": "adapty",
440
463
  "pluginName": "adapty",
441
464
  "pluginType": "core",
442
465
  "strict": true,
443
- "enableJsonFlag": false,
466
+ "enableJsonFlag": true,
444
467
  "isESM": true,
445
468
  "relativePath": [
446
469
  "dist",
447
470
  "commands",
448
- "auth",
449
- "login.js"
471
+ "asa",
472
+ "connect.js"
450
473
  ]
451
474
  },
452
- "auth:logout": {
475
+ "asa:whoami": {
453
476
  "aliases": [],
454
477
  "args": {},
455
- "description": "Remove stored authentication token",
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.",
456
479
  "examples": [
457
- "<%= config.bin %> auth logout"
480
+ "<%= config.bin %> asa whoami"
458
481
  ],
459
482
  "flags": {
460
483
  "json": {
@@ -467,7 +490,7 @@
467
490
  },
468
491
  "hasDynamicHelp": false,
469
492
  "hiddenAliases": [],
470
- "id": "auth:logout",
493
+ "id": "asa:whoami",
471
494
  "pluginAlias": "adapty",
472
495
  "pluginName": "adapty",
473
496
  "pluginType": "core",
@@ -477,48 +500,40 @@
477
500
  "relativePath": [
478
501
  "dist",
479
502
  "commands",
480
- "auth",
481
- "logout.js"
503
+ "asa",
504
+ "whoami.js"
482
505
  ]
483
506
  },
484
- "auth:revoke": {
507
+ "auth:login": {
485
508
  "aliases": [],
486
509
  "args": {},
487
- "description": "Revoke the current authentication token",
510
+ "description": "Authenticate with Adapty via browser",
488
511
  "examples": [
489
- "<%= config.bin %> auth revoke"
512
+ "<%= config.bin %> auth login"
490
513
  ],
491
- "flags": {
492
- "json": {
493
- "description": "Format output as json.",
494
- "helpGroup": "GLOBAL",
495
- "name": "json",
496
- "allowNo": false,
497
- "type": "boolean"
498
- }
499
- },
514
+ "flags": {},
500
515
  "hasDynamicHelp": false,
501
516
  "hiddenAliases": [],
502
- "id": "auth:revoke",
517
+ "id": "auth:login",
503
518
  "pluginAlias": "adapty",
504
519
  "pluginName": "adapty",
505
520
  "pluginType": "core",
506
521
  "strict": true,
507
- "enableJsonFlag": true,
522
+ "enableJsonFlag": false,
508
523
  "isESM": true,
509
524
  "relativePath": [
510
525
  "dist",
511
526
  "commands",
512
527
  "auth",
513
- "revoke.js"
528
+ "login.js"
514
529
  ]
515
530
  },
516
- "auth:status": {
531
+ "auth:logout": {
517
532
  "aliases": [],
518
533
  "args": {},
519
- "description": "Show current authentication state (local only)",
534
+ "description": "Remove the stored session",
520
535
  "examples": [
521
- "<%= config.bin %> auth status"
536
+ "<%= config.bin %> auth logout"
522
537
  ],
523
538
  "flags": {
524
539
  "json": {
@@ -531,7 +546,7 @@
531
546
  },
532
547
  "hasDynamicHelp": false,
533
548
  "hiddenAliases": [],
534
- "id": "auth:status",
549
+ "id": "auth:logout",
535
550
  "pluginAlias": "adapty",
536
551
  "pluginName": "adapty",
537
552
  "pluginType": "core",
@@ -542,15 +557,15 @@
542
557
  "dist",
543
558
  "commands",
544
559
  "auth",
545
- "status.js"
560
+ "logout.js"
546
561
  ]
547
562
  },
548
- "auth:whoami": {
563
+ "auth:revoke": {
549
564
  "aliases": [],
550
565
  "args": {},
551
- "description": "Show current user info from server (verifies token)",
566
+ "description": "Revoke the current token on the server and remove any matching stored session",
552
567
  "examples": [
553
- "<%= config.bin %> auth whoami"
568
+ "<%= config.bin %> auth revoke"
554
569
  ],
555
570
  "flags": {
556
571
  "json": {
@@ -563,7 +578,7 @@
563
578
  },
564
579
  "hasDynamicHelp": false,
565
580
  "hiddenAliases": [],
566
- "id": "auth:whoami",
581
+ "id": "auth:revoke",
567
582
  "pluginAlias": "adapty",
568
583
  "pluginName": "adapty",
569
584
  "pluginType": "core",
@@ -574,16 +589,15 @@
574
589
  "dist",
575
590
  "commands",
576
591
  "auth",
577
- "whoami.js"
592
+ "revoke.js"
578
593
  ]
579
594
  },
580
- "asa:connect": {
595
+ "auth:status": {
581
596
  "aliases": [],
582
597
  "args": {},
583
- "description": "Connect an Apple Search Ads account to this company",
598
+ "description": "Show the local authentication state (no network)",
584
599
  "examples": [
585
- "<%= config.bin %> asa connect",
586
- "<%= config.bin %> asa connect --no-wait"
600
+ "<%= config.bin %> auth status"
587
601
  ],
588
602
  "flags": {
589
603
  "json": {
@@ -592,25 +606,11 @@
592
606
  "name": "json",
593
607
  "allowNo": false,
594
608
  "type": "boolean"
595
- },
596
- "timeout": {
597
- "description": "Seconds to wait for the browser step",
598
- "name": "timeout",
599
- "default": 300,
600
- "hasDynamicHelp": false,
601
- "multiple": false,
602
- "type": "option"
603
- },
604
- "wait": {
605
- "description": "Wait until Apple Ads reports as connected",
606
- "name": "wait",
607
- "allowNo": true,
608
- "type": "boolean"
609
609
  }
610
610
  },
611
611
  "hasDynamicHelp": false,
612
612
  "hiddenAliases": [],
613
- "id": "asa:connect",
613
+ "id": "auth:status",
614
614
  "pluginAlias": "adapty",
615
615
  "pluginName": "adapty",
616
616
  "pluginType": "core",
@@ -620,16 +620,16 @@
620
620
  "relativePath": [
621
621
  "dist",
622
622
  "commands",
623
- "asa",
624
- "connect.js"
623
+ "auth",
624
+ "status.js"
625
625
  ]
626
626
  },
627
- "asa:whoami": {
627
+ "auth:whoami": {
628
628
  "aliases": [],
629
629
  "args": {},
630
- "description": "Show which company the token unlocks and whether Apple Ads is connected",
630
+ "description": "Show the current user from the server (verifies the token)",
631
631
  "examples": [
632
- "<%= config.bin %> asa whoami"
632
+ "<%= config.bin %> auth whoami"
633
633
  ],
634
634
  "flags": {
635
635
  "json": {
@@ -642,7 +642,7 @@
642
642
  },
643
643
  "hasDynamicHelp": false,
644
644
  "hiddenAliases": [],
645
- "id": "asa:whoami",
645
+ "id": "auth:whoami",
646
646
  "pluginAlias": "adapty",
647
647
  "pluginName": "adapty",
648
648
  "pluginType": "core",
@@ -652,16 +652,16 @@
652
652
  "relativePath": [
653
653
  "dist",
654
654
  "commands",
655
- "asa",
655
+ "auth",
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,18 +889,26 @@
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",
894
895
  "required": true,
895
896
  "hasDynamicHelp": false,
896
- "multiple": false,
897
+ "multiple": true,
898
+ "type": "option"
899
+ },
900
+ "title": {
901
+ "description": "Paywall title",
902
+ "name": "title",
903
+ "required": true,
904
+ "hasDynamicHelp": false,
905
+ "multiple": false,
897
906
  "type": "option"
898
907
  }
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,63 +1126,31 @@
1099
1126
  "hasDynamicHelp": false,
1100
1127
  "multiple": false,
1101
1128
  "type": "option"
1102
- }
1103
- },
1104
- "hasDynamicHelp": false,
1105
- "hiddenAliases": [],
1106
- "id": "paywalls:placements",
1107
- "pluginAlias": "adapty",
1108
- "pluginName": "adapty",
1109
- "pluginType": "core",
1110
- "strict": true,
1111
- "enableJsonFlag": true,
1112
- "isESM": true,
1113
- "relativePath": [
1114
- "dist",
1115
- "commands",
1116
- "paywalls",
1117
- "placements.js"
1118
- ]
1119
- },
1120
- "paywalls:update": {
1121
- "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",
1130
- "examples": [
1131
- "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1132
- ],
1133
- "flags": {
1134
- "json": {
1135
- "description": "Format output as json.",
1136
- "helpGroup": "GLOBAL",
1137
- "name": "json",
1138
- "allowNo": false,
1139
- "type": "boolean"
1140
1129
  },
1141
- "app": {
1142
- "description": "App ID (UUID)",
1143
- "name": "app",
1144
- "required": true,
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",
1145
1133
  "hasDynamicHelp": false,
1146
1134
  "multiple": false,
1147
1135
  "type": "option"
1148
1136
  },
1149
- "product-id": {
1150
- "description": "Product ID (UUID). Repeat for multiple.",
1151
- "name": "product-id",
1137
+ "developer-id": {
1138
+ "description": "Developer ID for the placement",
1139
+ "name": "developer-id",
1152
1140
  "required": true,
1153
1141
  "hasDynamicHelp": false,
1154
- "multiple": true,
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,
1155
1150
  "type": "option"
1156
1151
  },
1157
1152
  "title": {
1158
- "description": "Paywall title",
1153
+ "description": "Placement title",
1159
1154
  "name": "title",
1160
1155
  "required": true,
1161
1156
  "hasDynamicHelp": false,
@@ -1165,7 +1160,7 @@
1165
1160
  },
1166
1161
  "hasDynamicHelp": false,
1167
1162
  "hiddenAliases": [],
1168
- "id": "paywalls:update",
1163
+ "id": "placements:update",
1169
1164
  "pluginAlias": "adapty",
1170
1165
  "pluginName": "adapty",
1171
1166
  "pluginType": "core",
@@ -1175,18 +1170,16 @@
1175
1170
  "relativePath": [
1176
1171
  "dist",
1177
1172
  "commands",
1178
- "paywalls",
1173
+ "placements",
1179
1174
  "update.js"
1180
1175
  ]
1181
1176
  },
1182
- "placements:create": {
1177
+ "products:create": {
1183
1178
  "aliases": [],
1184
1179
  "args": {},
1185
- "description": "Create a placement with a paywall",
1180
+ "description": "Create a product with vendor products per platform",
1186
1181
  "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"
1182
+ "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
1190
1183
  ],
1191
1184
  "flags": {
1192
1185
  "json": {
@@ -1204,30 +1197,80 @@
1204
1197
  "multiple": false,
1205
1198
  "type": "option"
1206
1199
  },
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",
1200
+ "access-level-id": {
1201
+ "description": "Access level ID (UUID)",
1202
+ "name": "access-level-id",
1203
+ "required": true,
1210
1204
  "hasDynamicHelp": false,
1211
1205
  "multiple": false,
1212
1206
  "type": "option"
1213
1207
  },
1214
- "developer-id": {
1215
- "description": "Developer ID for the placement",
1216
- "name": "developer-id",
1208
+ "android-base-plan-id": {
1209
+ "description": "Android base plan ID",
1210
+ "helpGroup": "STORE BINDINGS",
1211
+ "name": "android-base-plan-id",
1212
+ "hasDynamicHelp": false,
1213
+ "multiple": false,
1214
+ "type": "option"
1215
+ },
1216
+ "android-product-id": {
1217
+ "description": "Android product ID",
1218
+ "helpGroup": "STORE BINDINGS",
1219
+ "name": "android-product-id",
1220
+ "hasDynamicHelp": false,
1221
+ "multiple": false,
1222
+ "type": "option"
1223
+ },
1224
+ "ios-product-id": {
1225
+ "description": "iOS product ID",
1226
+ "helpGroup": "STORE BINDINGS",
1227
+ "name": "ios-product-id",
1228
+ "hasDynamicHelp": false,
1229
+ "multiple": false,
1230
+ "type": "option"
1231
+ },
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,94 +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",
1366
- "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"
1370
- ],
1371
- "flags": {
1372
- "json": {
1373
- "description": "Format output as json.",
1374
- "helpGroup": "GLOBAL",
1375
- "name": "json",
1376
- "allowNo": false,
1377
- "type": "boolean"
1378
- },
1379
- "app": {
1380
- "description": "App ID (UUID)",
1381
- "name": "app",
1382
- "required": true,
1383
- "hasDynamicHelp": false,
1384
- "multiple": false,
1385
- "type": "option"
1386
- },
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",
1397
- "required": true,
1398
- "hasDynamicHelp": false,
1399
- "multiple": false,
1400
- "type": "option"
1401
- },
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
- "title": {
1410
- "description": "Placement title",
1411
- "name": "title",
1412
- "required": true,
1413
- "hasDynamicHelp": false,
1414
- "multiple": false,
1415
- "type": "option"
1416
- }
1417
- },
1418
- "hasDynamicHelp": false,
1419
- "hiddenAliases": [],
1420
- "id": "placements:update",
1421
- "pluginAlias": "adapty",
1422
- "pluginName": "adapty",
1423
- "pluginType": "core",
1424
- "strict": true,
1425
- "enableJsonFlag": true,
1426
- "isESM": true,
1427
- "relativePath": [
1428
- "dist",
1429
- "commands",
1430
- "placements",
1431
- "update.js"
1432
- ]
1433
- },
1434
- "products:create": {
1435
- "aliases": [],
1436
- "args": {},
1437
- "description": "Create a product with vendor products per platform",
1408
+ "description": "Update a product (title and access level only)",
1438
1409
  "examples": [
1439
- "<%= config.bin %> products create --app UUID --title \"Monthly\" --access-level-id UUID --period monthly --ios-product-id com.example.monthly"
1410
+ "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1440
1411
  ],
1441
1412
  "flags": {
1442
1413
  "json": {
@@ -1462,70 +1433,6 @@
1462
1433
  "multiple": false,
1463
1434
  "type": "option"
1464
1435
  },
1465
- "android-base-plan-id": {
1466
- "description": "Android base plan ID",
1467
- "helpGroup": "STORE BINDINGS",
1468
- "name": "android-base-plan-id",
1469
- "hasDynamicHelp": false,
1470
- "multiple": false,
1471
- "type": "option"
1472
- },
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
1436
  "title": {
1530
1437
  "description": "Product title",
1531
1438
  "name": "title",
@@ -1537,7 +1444,7 @@
1537
1444
  },
1538
1445
  "hasDynamicHelp": false,
1539
1446
  "hiddenAliases": [],
1540
- "id": "products:create",
1447
+ "id": "products:update",
1541
1448
  "pluginAlias": "adapty",
1542
1449
  "pluginName": "adapty",
1543
1450
  "pluginType": "core",
@@ -1548,21 +1455,21 @@
1548
1455
  "dist",
1549
1456
  "commands",
1550
1457
  "products",
1551
- "create.js"
1458
+ "update.js"
1552
1459
  ]
1553
1460
  },
1554
- "products:get": {
1461
+ "segments:get": {
1555
1462
  "aliases": [],
1556
1463
  "args": {
1557
- "product_id": {
1558
- "description": "Product ID (UUID)",
1559
- "name": "product_id",
1464
+ "segment_id": {
1465
+ "description": "Segment ID (UUID)",
1466
+ "name": "segment_id",
1560
1467
  "required": true
1561
1468
  }
1562
1469
  },
1563
- "description": "Get product details",
1470
+ "description": "Get segment details",
1564
1471
  "examples": [
1565
- "<%= config.bin %> products get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1472
+ "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1566
1473
  ],
1567
1474
  "flags": {
1568
1475
  "json": {
@@ -1583,7 +1490,7 @@
1583
1490
  },
1584
1491
  "hasDynamicHelp": false,
1585
1492
  "hiddenAliases": [],
1586
- "id": "products:get",
1493
+ "id": "segments:get",
1587
1494
  "pluginAlias": "adapty",
1588
1495
  "pluginName": "adapty",
1589
1496
  "pluginType": "core",
@@ -1593,16 +1500,16 @@
1593
1500
  "relativePath": [
1594
1501
  "dist",
1595
1502
  "commands",
1596
- "products",
1503
+ "segments",
1597
1504
  "get.js"
1598
1505
  ]
1599
1506
  },
1600
- "products:list": {
1507
+ "segments:list": {
1601
1508
  "aliases": [],
1602
1509
  "args": {},
1603
- "description": "List products for an app",
1510
+ "description": "List segments for an app",
1604
1511
  "examples": [
1605
- "<%= config.bin %> products list --app 550e8400-..."
1512
+ "<%= config.bin %> segments list --app 550e8400-..."
1606
1513
  ],
1607
1514
  "flags": {
1608
1515
  "json": {
@@ -1639,7 +1546,7 @@
1639
1546
  },
1640
1547
  "hasDynamicHelp": false,
1641
1548
  "hiddenAliases": [],
1642
- "id": "products:list",
1549
+ "id": "segments:list",
1643
1550
  "pluginAlias": "adapty",
1644
1551
  "pluginName": "adapty",
1645
1552
  "pluginType": "core",
@@ -1649,22 +1556,16 @@
1649
1556
  "relativePath": [
1650
1557
  "dist",
1651
1558
  "commands",
1652
- "products",
1559
+ "segments",
1653
1560
  "list.js"
1654
1561
  ]
1655
1562
  },
1656
- "products:update": {
1563
+ "flows:create": {
1657
1564
  "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)",
1565
+ "args": {},
1566
+ "description": "Create a flow (row only — write its config with `flows config update`)",
1666
1567
  "examples": [
1667
- "<%= config.bin %> products update --app UUID 550e8400-... --title \"Monthly\" --access-level-id UUID"
1568
+ "<%= config.bin %> flows create --app UUID --name \"Onboarding\""
1668
1569
  ],
1669
1570
  "flags": {
1670
1571
  "json": {
@@ -1682,17 +1583,9 @@
1682
1583
  "multiple": false,
1683
1584
  "type": "option"
1684
1585
  },
1685
- "access-level-id": {
1686
- "description": "Access level ID (UUID)",
1687
- "name": "access-level-id",
1688
- "required": true,
1689
- "hasDynamicHelp": false,
1690
- "multiple": false,
1691
- "type": "option"
1692
- },
1693
- "title": {
1694
- "description": "Product title",
1695
- "name": "title",
1586
+ "name": {
1587
+ "description": "Flow name",
1588
+ "name": "name",
1696
1589
  "required": true,
1697
1590
  "hasDynamicHelp": false,
1698
1591
  "multiple": false,
@@ -1701,7 +1594,7 @@
1701
1594
  },
1702
1595
  "hasDynamicHelp": false,
1703
1596
  "hiddenAliases": [],
1704
- "id": "products:update",
1597
+ "id": "flows:create",
1705
1598
  "pluginAlias": "adapty",
1706
1599
  "pluginName": "adapty",
1707
1600
  "pluginType": "core",
@@ -1711,22 +1604,22 @@
1711
1604
  "relativePath": [
1712
1605
  "dist",
1713
1606
  "commands",
1714
- "products",
1715
- "update.js"
1607
+ "flows",
1608
+ "create.js"
1716
1609
  ]
1717
1610
  },
1718
- "segments:get": {
1611
+ "flows:get": {
1719
1612
  "aliases": [],
1720
1613
  "args": {
1721
- "segment_id": {
1722
- "description": "Segment ID (UUID)",
1723
- "name": "segment_id",
1614
+ "flow_id": {
1615
+ "description": "Flow ID (UUID)",
1616
+ "name": "flow_id",
1724
1617
  "required": true
1725
1618
  }
1726
1619
  },
1727
- "description": "Get segment details",
1620
+ "description": "Get flow details",
1728
1621
  "examples": [
1729
- "<%= config.bin %> segments get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1622
+ "<%= config.bin %> flows get --app UUID 550e8400-e29b-41d4-a716-446655440000"
1730
1623
  ],
1731
1624
  "flags": {
1732
1625
  "json": {
@@ -1747,7 +1640,7 @@
1747
1640
  },
1748
1641
  "hasDynamicHelp": false,
1749
1642
  "hiddenAliases": [],
1750
- "id": "segments:get",
1643
+ "id": "flows:get",
1751
1644
  "pluginAlias": "adapty",
1752
1645
  "pluginName": "adapty",
1753
1646
  "pluginType": "core",
@@ -1757,16 +1650,16 @@
1757
1650
  "relativePath": [
1758
1651
  "dist",
1759
1652
  "commands",
1760
- "segments",
1653
+ "flows",
1761
1654
  "get.js"
1762
1655
  ]
1763
1656
  },
1764
- "segments:list": {
1657
+ "flows:list": {
1765
1658
  "aliases": [],
1766
1659
  "args": {},
1767
- "description": "List segments for an app",
1660
+ "description": "List flows for an app",
1768
1661
  "examples": [
1769
- "<%= config.bin %> segments list --app 550e8400-..."
1662
+ "<%= config.bin %> flows list --app 550e8400-..."
1770
1663
  ],
1771
1664
  "flags": {
1772
1665
  "json": {
@@ -1803,7 +1696,7 @@
1803
1696
  },
1804
1697
  "hasDynamicHelp": false,
1805
1698
  "hiddenAliases": [],
1806
- "id": "segments:list",
1699
+ "id": "flows:list",
1807
1700
  "pluginAlias": "adapty",
1808
1701
  "pluginName": "adapty",
1809
1702
  "pluginType": "core",
@@ -1813,21 +1706,128 @@
1813
1706
  "relativePath": [
1814
1707
  "dist",
1815
1708
  "commands",
1816
- "segments",
1709
+ "flows",
1817
1710
  "list.js"
1818
1711
  ]
1819
1712
  },
1820
- "asa:ad-groups:create": {
1713
+ "flows:publish": {
1821
1714
  "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": {
1715
+ "args": {
1716
+ "flow_id": {
1717
+ "description": "Flow ID (UUID)",
1718
+ "name": "flow_id",
1719
+ "required": true
1720
+ }
1721
+ },
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.",
1723
+ "examples": [
1724
+ "<%= config.bin %> flows publish --app UUID 550e8400-e29b-41d4-a716-446655440000"
1725
+ ],
1726
+ "flags": {
1727
+ "json": {
1728
+ "description": "Format output as json.",
1729
+ "helpGroup": "GLOBAL",
1730
+ "name": "json",
1731
+ "allowNo": false,
1732
+ "type": "boolean"
1733
+ },
1734
+ "app": {
1735
+ "description": "App ID (UUID)",
1736
+ "name": "app",
1737
+ "required": true,
1738
+ "hasDynamicHelp": false,
1739
+ "multiple": false,
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"
1748
+ }
1749
+ },
1750
+ "hasDynamicHelp": false,
1751
+ "hiddenAliases": [],
1752
+ "id": "flows:publish",
1753
+ "pluginAlias": "adapty",
1754
+ "pluginName": "adapty",
1755
+ "pluginType": "core",
1756
+ "strict": true,
1757
+ "enableJsonFlag": true,
1758
+ "isESM": true,
1759
+ "relativePath": [
1760
+ "dist",
1761
+ "commands",
1762
+ "flows",
1763
+ "publish.js"
1764
+ ]
1765
+ },
1766
+ "flows:update": {
1767
+ "aliases": [],
1768
+ "args": {
1769
+ "flow_id": {
1770
+ "description": "Flow ID (UUID)",
1771
+ "name": "flow_id",
1772
+ "required": true
1773
+ }
1774
+ },
1775
+ "description": "Rename a flow",
1776
+ "examples": [
1777
+ "<%= config.bin %> flows update --app UUID 550e8400-e29b-41d4-a716-446655440000 --name \"Onboarding v2\""
1778
+ ],
1779
+ "flags": {
1780
+ "json": {
1781
+ "description": "Format output as json.",
1782
+ "helpGroup": "GLOBAL",
1783
+ "name": "json",
1784
+ "allowNo": false,
1785
+ "type": "boolean"
1786
+ },
1787
+ "app": {
1788
+ "description": "App ID (UUID)",
1789
+ "name": "app",
1790
+ "required": true,
1791
+ "hasDynamicHelp": false,
1792
+ "multiple": false,
1793
+ "type": "option"
1794
+ },
1795
+ "name": {
1796
+ "description": "New flow name",
1797
+ "name": "name",
1798
+ "required": true,
1799
+ "hasDynamicHelp": false,
1800
+ "multiple": false,
1801
+ "type": "option"
1802
+ }
1803
+ },
1804
+ "hasDynamicHelp": false,
1805
+ "hiddenAliases": [],
1806
+ "id": "flows:update",
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
+ "flows",
1817
+ "update.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
1831
  "description": "Format output as json.",
1832
1832
  "helpGroup": "GLOBAL",
1833
1833
  "name": "json",
@@ -2198,12 +2198,13 @@
2198
2198
  "update.js"
2199
2199
  ]
2200
2200
  },
2201
- "asa:ads:create": {
2201
+ "asa:apps:list": {
2202
2202
  "aliases": [],
2203
2203
  "args": {},
2204
- "description": "Create an ad from a creative in an ad group",
2204
+ "description": "List the apps promoted by this company in Apple Search Ads",
2205
2205
  "examples": [
2206
- "<%= config.bin %> asa ads create --ad-group UUID --creative-id 4321 --name \"Summer ad\""
2206
+ "<%= config.bin %> asa apps list",
2207
+ "<%= config.bin %> asa apps list --page 2 --page-size 50"
2207
2208
  ],
2208
2209
  "flags": {
2209
2210
  "json": {
@@ -2213,98 +2214,26 @@
2213
2214
  "allowNo": false,
2214
2215
  "type": "boolean"
2215
2216
  },
2216
- "yes": {
2217
- "char": "y",
2218
- "description": "Apply without asking; required when the output is piped or --json is used",
2219
- "name": "yes",
2220
- "allowNo": false,
2221
- "type": "boolean"
2222
- },
2223
- "idempotency-key": {
2224
- "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2225
- "name": "idempotency-key",
2226
- "hasDynamicHelp": false,
2227
- "multiple": false,
2228
- "type": "option"
2229
- },
2230
- "ad-group": {
2231
- "description": "Ad group ID (UUID) — the campaign is resolved from it",
2232
- "name": "ad-group",
2233
- "required": true,
2234
- "hasDynamicHelp": false,
2235
- "multiple": false,
2236
- "type": "option"
2237
- },
2238
- "creative-id": {
2239
- "description": "Apple creative ID from a product page or the default set",
2240
- "name": "creative-id",
2241
- "required": true,
2242
- "hasDynamicHelp": false,
2243
- "multiple": false,
2244
- "type": "option"
2245
- },
2246
- "name": {
2247
- "description": "Ad name",
2248
- "name": "name",
2249
- "required": true,
2217
+ "page": {
2218
+ "description": "Page number",
2219
+ "name": "page",
2220
+ "default": 1,
2250
2221
  "hasDynamicHelp": false,
2251
2222
  "multiple": false,
2252
2223
  "type": "option"
2253
2224
  },
2254
- "status": {
2255
- "description": "Initial status",
2256
- "name": "status",
2225
+ "page-size": {
2226
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2227
+ "name": "page-size",
2228
+ "default": 100,
2257
2229
  "hasDynamicHelp": false,
2258
2230
  "multiple": false,
2259
- "options": [
2260
- "ENABLED",
2261
- "PAUSED"
2262
- ],
2263
2231
  "type": "option"
2264
2232
  }
2265
2233
  },
2266
2234
  "hasDynamicHelp": false,
2267
2235
  "hiddenAliases": [],
2268
- "id": "asa:ads:create",
2269
- "pluginAlias": "adapty",
2270
- "pluginName": "adapty",
2271
- "pluginType": "core",
2272
- "strict": true,
2273
- "enableJsonFlag": true,
2274
- "isESM": true,
2275
- "relativePath": [
2276
- "dist",
2277
- "commands",
2278
- "asa",
2279
- "ads",
2280
- "create.js"
2281
- ]
2282
- },
2283
- "asa:ads:get": {
2284
- "aliases": [],
2285
- "args": {
2286
- "ad_id": {
2287
- "description": "Ad ID (UUID)",
2288
- "name": "ad_id",
2289
- "required": true
2290
- }
2291
- },
2292
- "description": "Show one ad and its serving state",
2293
- "examples": [
2294
- "<%= config.bin %> asa ads get 550e8400-e29b-41d4-a716-446655440000"
2295
- ],
2296
- "flags": {
2297
- "json": {
2298
- "description": "Format output as json.",
2299
- "helpGroup": "GLOBAL",
2300
- "name": "json",
2301
- "allowNo": false,
2302
- "type": "boolean"
2303
- }
2304
- },
2305
- "hasDynamicHelp": false,
2306
- "hiddenAliases": [],
2307
- "id": "asa:ads:get",
2236
+ "id": "asa:apps:list",
2308
2237
  "pluginAlias": "adapty",
2309
2238
  "pluginName": "adapty",
2310
2239
  "pluginType": "core",
@@ -2315,17 +2244,19 @@
2315
2244
  "dist",
2316
2245
  "commands",
2317
2246
  "asa",
2318
- "ads",
2319
- "get.js"
2247
+ "apps",
2248
+ "list.js"
2320
2249
  ]
2321
2250
  },
2322
- "asa:ads:list": {
2251
+ "asa:automations:create": {
2323
2252
  "aliases": [],
2324
2253
  "args": {},
2325
- "description": "List ads; serving_state_reasons explains why an enabled ad is not running",
2254
+ "description": "Create an automation rule from a JSON rule file. The add-as-keyword action flags fill in or override actions[0].params, so the bid, the match type and the target ad groups need no hand-written JSON.",
2326
2255
  "examples": [
2327
- "<%= config.bin %> asa ads list",
2328
- "<%= config.bin %> asa ads list --ad-group AD_GROUP_UUID --status ENABLED"
2256
+ "<%= config.bin %> asa automations create --file rule.json",
2257
+ "<%= config.bin %> asa automations create --file rule.json --run-now",
2258
+ "<%= config.bin %> asa automations create --file rule.json --target-ad-group AD_GROUP_ID --match-type EXACT --cpt-bid-type search_term_current_cpt",
2259
+ "<%= config.bin %> asa automations create --file rule.json --target-ad-group AD_GROUP_ID --match-type EXACT --cpt-bid-type set_to --cpt-bid 1.50 --negate ad-group"
2329
2260
  ],
2330
2261
  "flags": {
2331
2262
  "json": {
@@ -2335,241 +2266,29 @@
2335
2266
  "allowNo": false,
2336
2267
  "type": "boolean"
2337
2268
  },
2338
- "page": {
2339
- "description": "Page number",
2340
- "name": "page",
2341
- "default": 1,
2269
+ "cpt-bid": {
2270
+ "description": "cpt_bid.value: the bid itself with --cpt-bid-type set_to, or a percent markup on the entity bid with search_term_current_cpt / keyword_current_bid; not accepted with ad_group_default_bid",
2271
+ "name": "cpt-bid",
2342
2272
  "hasDynamicHelp": false,
2343
2273
  "multiple": false,
2344
2274
  "type": "option"
2345
2275
  },
2346
- "page-size": {
2347
- "description": "Items per page (max 1000); prefer one big page over a pagination loop",
2348
- "name": "page-size",
2349
- "default": 100,
2276
+ "cpt-bid-type": {
2277
+ "description": "Where the bid of the created keyword comes from; the API has no default",
2278
+ "name": "cpt-bid-type",
2350
2279
  "hasDynamicHelp": false,
2351
2280
  "multiple": false,
2281
+ "options": [
2282
+ "ad_group_default_bid",
2283
+ "keyword_current_bid",
2284
+ "search_term_current_cpt",
2285
+ "set_to"
2286
+ ],
2352
2287
  "type": "option"
2353
2288
  },
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",
2364
- "hasDynamicHelp": false,
2365
- "multiple": true,
2366
- "type": "option"
2367
- },
2368
- "campaign-group": {
2369
- "description": "Keep only rows in this campaign group; repeatable",
2370
- "name": "campaign-group",
2371
- "hasDynamicHelp": false,
2372
- "multiple": true,
2373
- "type": "option"
2374
- },
2375
- "search": {
2376
- "description": "Case-insensitive substring match on the name",
2377
- "name": "search",
2378
- "hasDynamicHelp": false,
2379
- "multiple": false,
2380
- "type": "option"
2381
- },
2382
- "status": {
2383
- "description": "Keep only rows in this state",
2384
- "name": "status",
2385
- "hasDynamicHelp": false,
2386
- "multiple": false,
2387
- "options": [
2388
- "ENABLED",
2389
- "PAUSED"
2390
- ],
2391
- "type": "option"
2392
- }
2393
- },
2394
- "hasDynamicHelp": false,
2395
- "hiddenAliases": [],
2396
- "id": "asa:ads:list",
2397
- "pluginAlias": "adapty",
2398
- "pluginName": "adapty",
2399
- "pluginType": "core",
2400
- "strict": true,
2401
- "enableJsonFlag": true,
2402
- "isESM": true,
2403
- "relativePath": [
2404
- "dist",
2405
- "commands",
2406
- "asa",
2407
- "ads",
2408
- "list.js"
2409
- ]
2410
- },
2411
- "asa:ads:update": {
2412
- "aliases": [],
2413
- "args": {
2414
- "ad_id": {
2415
- "description": "Ad ID (UUID)",
2416
- "name": "ad_id",
2417
- "required": true
2418
- }
2419
- },
2420
- "description": "Rename an ad or pause it; the creative and ad group are fixed at creation",
2421
- "examples": [
2422
- "<%= config.bin %> asa ads update UUID --status PAUSED"
2423
- ],
2424
- "flags": {
2425
- "json": {
2426
- "description": "Format output as json.",
2427
- "helpGroup": "GLOBAL",
2428
- "name": "json",
2429
- "allowNo": false,
2430
- "type": "boolean"
2431
- },
2432
- "yes": {
2433
- "char": "y",
2434
- "description": "Apply without asking; required when the output is piped or --json is used",
2435
- "name": "yes",
2436
- "allowNo": false,
2437
- "type": "boolean"
2438
- },
2439
- "idempotency-key": {
2440
- "description": "Idempotency key for this write; re-running with the same key replays the stored result instead of applying twice",
2441
- "name": "idempotency-key",
2442
- "hasDynamicHelp": false,
2443
- "multiple": false,
2444
- "type": "option"
2445
- },
2446
- "name": {
2447
- "description": "Ad name",
2448
- "name": "name",
2449
- "hasDynamicHelp": false,
2450
- "multiple": false,
2451
- "type": "option"
2452
- },
2453
- "status": {
2454
- "description": "Ad status",
2455
- "name": "status",
2456
- "hasDynamicHelp": false,
2457
- "multiple": false,
2458
- "options": [
2459
- "ENABLED",
2460
- "PAUSED"
2461
- ],
2462
- "type": "option"
2463
- }
2464
- },
2465
- "hasDynamicHelp": false,
2466
- "hiddenAliases": [],
2467
- "id": "asa:ads:update",
2468
- "pluginAlias": "adapty",
2469
- "pluginName": "adapty",
2470
- "pluginType": "core",
2471
- "strict": true,
2472
- "enableJsonFlag": true,
2473
- "isESM": true,
2474
- "relativePath": [
2475
- "dist",
2476
- "commands",
2477
- "asa",
2478
- "ads",
2479
- "update.js"
2480
- ]
2481
- },
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
- "asa:automations:create": {
2533
- "aliases": [],
2534
- "args": {},
2535
- "description": "Create an automation rule from a JSON rule file. The add-as-keyword action flags fill in or override actions[0].params, so the bid, the match type and the target ad groups need no hand-written JSON.",
2536
- "examples": [
2537
- "<%= config.bin %> asa automations create --file rule.json",
2538
- "<%= config.bin %> asa automations create --file rule.json --run-now",
2539
- "<%= config.bin %> asa automations create --file rule.json --target-ad-group AD_GROUP_ID --match-type EXACT --cpt-bid-type search_term_current_cpt",
2540
- "<%= config.bin %> asa automations create --file rule.json --target-ad-group AD_GROUP_ID --match-type EXACT --cpt-bid-type set_to --cpt-bid 1.50 --negate ad-group"
2541
- ],
2542
- "flags": {
2543
- "json": {
2544
- "description": "Format output as json.",
2545
- "helpGroup": "GLOBAL",
2546
- "name": "json",
2547
- "allowNo": false,
2548
- "type": "boolean"
2549
- },
2550
- "cpt-bid": {
2551
- "description": "cpt_bid.value: the bid itself with --cpt-bid-type set_to, or a percent markup on the entity bid with search_term_current_cpt / keyword_current_bid; not accepted with ad_group_default_bid",
2552
- "name": "cpt-bid",
2553
- "hasDynamicHelp": false,
2554
- "multiple": false,
2555
- "type": "option"
2556
- },
2557
- "cpt-bid-type": {
2558
- "description": "Where the bid of the created keyword comes from; the API has no default",
2559
- "name": "cpt-bid-type",
2560
- "hasDynamicHelp": false,
2561
- "multiple": false,
2562
- "options": [
2563
- "ad_group_default_bid",
2564
- "keyword_current_bid",
2565
- "search_term_current_cpt",
2566
- "set_to"
2567
- ],
2568
- "type": "option"
2569
- },
2570
- "match-type": {
2571
- "description": "Match type of the created keyword; the API has no default",
2572
- "name": "match-type",
2289
+ "match-type": {
2290
+ "description": "Match type of the created keyword; the API has no default",
2291
+ "name": "match-type",
2573
2292
  "hasDynamicHelp": false,
2574
2293
  "multiple": false,
2575
2294
  "options": [
@@ -4158,7 +3877,7 @@
4158
3877
  "asa:metrics": {
4159
3878
  "aliases": [],
4160
3879
  "args": {},
4161
- "description": "Query metrics for any level of the account over a date range\n\nOne row per entity, already aggregated server-side and sorted by --order-by, so a top-N question is one\ncall with --order-by and --page-size N — never sum pages yourself. Account-level totals are one call to\nasa metrics overview instead. The date window is capped by the finest --group-by period: 28 days when\nday is grouped, 90 with no period grouping, 180 by week, 365 by month and coarser — widen the window by\ncoarsening the grouping, not by splitting into more calls. Each page is also capped at 5000 breakdown\nrows (entities × countries × periods); over it the call fails with 422 cli_response_too_large — coarsen\nthe grouping, narrow the window, or reduce page[size]. Budget: 5 metrics calls per minute, at most\n2 per 10 seconds, one at a time.\n\n--metric is required and every metric named is computed over the whole entity set, so ask for the\ncolumns you actually read. subscribers and paid_subscribers (and arppu / arpas, which derive from them)\ncount unique profiles per entity and cost roughly seventeen times the rest; whatever the --entity, they\nare refused unless --campaign or --ad-group scopes the call. Those scope flags are also the cheapest way\nto make any call fast, since cost follows the number of entities aggregated, not the page size.",
3880
+ "description": "Query metrics for any level of the account over a date range\n\nOne row per entity, already aggregated server-side and sorted by --order-by, so a top-N question is one\ncall with --order-by and --page-size N — never sum pages yourself. Account-level totals are one call to\nasa metrics overview instead. The date window is capped by the finest --group-by period: 28 days when\nday is grouped, 90 with no period grouping, 180 by week, 365 by month and coarser — widen the window by\ncoarsening the grouping, not by splitting into more calls. Each page is also capped at a breakdown-row\ncount (entities × countries × periods); over it the call fails with 422 cli_response_too_large naming the\npage[size] that fits — coarsen the grouping, narrow the window, or reduce page[size].\n\nMoney columns are in the campaign group currency, not USD, and spend and local_spend carry the same\nfigure; the currency itself comes from asa orgs list. Rate budgets and the breakdown-row cap are set per\ncompany: read the current ones with asa whoami rather than assuming a default. meta.pagination.count is\nthe full entity count behind the filters, so take inventory from there instead of counting the rows on a\npage. meta.max_valid_day says how many days the youngest cohort in the window has lived — any --by-days\nwindow above it repeats the last real figure because that time has not passed yet, so treat those as\nunreached rather than as a plateau.\n\n--metric is required and every metric named is computed over the whole entity set, so ask for the\ncolumns you actually read. subscribers and paid_subscribers (and arppu / arpas, which derive from them)\ncount unique profiles per entity and cost roughly seventeen times the rest; whatever the --entity, they\nare refused unless --campaign or --ad-group scopes the call. Those scope flags are also the cheapest way\nto make any call fast, since cost follows the number of entities aggregated, not the page size.",
4162
3881
  "examples": [
4163
3882
  "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --metric spend --metric adapty_installs",
4164
3883
  "<%= config.bin %> asa metrics --entity campaign --date-from 2026-07-01 --date-to 2026-07-31 --metric spend --order-by spend --page-size 5",
@@ -4877,6 +4596,287 @@
4877
4596
  "list.js"
4878
4597
  ]
4879
4598
  },
4599
+ "asa:ads:create": {
4600
+ "aliases": [],
4601
+ "args": {},
4602
+ "description": "Create an ad from a creative in an ad group",
4603
+ "examples": [
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"
4727
+ ],
4728
+ "flags": {
4729
+ "json": {
4730
+ "description": "Format output as json.",
4731
+ "helpGroup": "GLOBAL",
4732
+ "name": "json",
4733
+ "allowNo": false,
4734
+ "type": "boolean"
4735
+ },
4736
+ "page": {
4737
+ "description": "Page number",
4738
+ "name": "page",
4739
+ "default": 1,
4740
+ "hasDynamicHelp": false,
4741
+ "multiple": false,
4742
+ "type": "option"
4743
+ },
4744
+ "page-size": {
4745
+ "description": "Items per page (max 1000); prefer one big page over a pagination loop",
4746
+ "name": "page-size",
4747
+ "default": 100,
4748
+ "hasDynamicHelp": false,
4749
+ "multiple": false,
4750
+ "type": "option"
4751
+ },
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",
4762
+ "hasDynamicHelp": false,
4763
+ "multiple": true,
4764
+ "type": "option"
4765
+ },
4766
+ "campaign-group": {
4767
+ "description": "Keep only rows in this campaign group; repeatable",
4768
+ "name": "campaign-group",
4769
+ "hasDynamicHelp": false,
4770
+ "multiple": true,
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"
4790
+ }
4791
+ },
4792
+ "hasDynamicHelp": false,
4793
+ "hiddenAliases": [],
4794
+ "id": "asa:ads:list",
4795
+ "pluginAlias": "adapty",
4796
+ "pluginName": "adapty",
4797
+ "pluginType": "core",
4798
+ "strict": true,
4799
+ "enableJsonFlag": true,
4800
+ "isESM": true,
4801
+ "relativePath": [
4802
+ "dist",
4803
+ "commands",
4804
+ "asa",
4805
+ "ads",
4806
+ "list.js"
4807
+ ]
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.4"
5184
+ "version": "0.8.6"
5185
5185
  }