adapty 0.2.0 → 0.3.0-beta.0

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.
@@ -9,7 +9,11 @@ export default class ProductsCreate extends Command {
9
9
  'android-base-plan-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
10
10
  'android-product-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
11
11
  'ios-product-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
+ 'paddle-price-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
+ 'paddle-product-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
12
14
  period: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
+ 'stripe-price-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
16
+ 'stripe-product-id': import("@oclif/core/interfaces").OptionFlag<string | undefined, import("@oclif/core/interfaces").CustomOptions>;
13
17
  title: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
14
18
  app: import("@oclif/core/interfaces").OptionFlag<string, import("@oclif/core/interfaces").CustomOptions>;
15
19
  };
@@ -11,6 +11,7 @@ const VALID_PERIODS = [
11
11
  'annual',
12
12
  'lifetime',
13
13
  ];
14
+ const xor = (a, b) => (a === undefined) !== (b === undefined);
14
15
  export default class ProductsCreate extends Command {
15
16
  static description = 'Create a product with vendor products per platform';
16
17
  static enableJsonFlag = true;
@@ -20,13 +21,17 @@ export default class ProductsCreate extends Command {
20
21
  static flags = {
21
22
  ...appFlag,
22
23
  'access-level-id': Flags.string({ description: 'Access level ID (UUID)', required: true }),
23
- 'android-base-plan-id': Flags.string({ description: 'Android base plan ID' }),
24
- 'android-product-id': Flags.string({ description: 'Android product ID' }),
25
- 'ios-product-id': Flags.string({ description: 'iOS product ID' }),
24
+ 'android-base-plan-id': Flags.string({ description: 'Android base plan ID', helpGroup: 'STORE BINDINGS' }),
25
+ 'android-product-id': Flags.string({ description: 'Android product ID', helpGroup: 'STORE BINDINGS' }),
26
+ 'ios-product-id': Flags.string({ description: 'iOS product ID', helpGroup: 'STORE BINDINGS' }),
27
+ 'paddle-price-id': Flags.string({ description: 'Paddle price ID (requires --paddle-product-id)', helpGroup: 'STORE BINDINGS' }),
28
+ 'paddle-product-id': Flags.string({ description: 'Paddle product ID (requires --paddle-price-id)', helpGroup: 'STORE BINDINGS' }),
26
29
  period: Flags.string({
27
30
  description: 'Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)',
28
31
  required: true,
29
32
  }),
33
+ 'stripe-price-id': Flags.string({ description: 'Stripe price ID (requires --stripe-product-id)', helpGroup: 'STORE BINDINGS' }),
34
+ 'stripe-product-id': Flags.string({ description: 'Stripe product ID (requires --stripe-price-id)', helpGroup: 'STORE BINDINGS' }),
30
35
  title: Flags.string({ description: 'Product title', required: true }),
31
36
  };
32
37
  async run() {
@@ -34,8 +39,17 @@ export default class ProductsCreate extends Command {
34
39
  if (!VALID_PERIODS.includes(flags.period)) {
35
40
  this.error(`Invalid period. Must be one of: ${VALID_PERIODS.join(', ')}`, { exit: 2 });
36
41
  }
37
- if (!flags['ios-product-id'] && !flags['android-product-id']) {
38
- this.error('At least one of --ios-product-id or --android-product-id is required', { exit: 2 });
42
+ if (xor(flags['stripe-product-id'], flags['stripe-price-id'])) {
43
+ this.error('--stripe-product-id and --stripe-price-id are required together', { exit: 2 });
44
+ }
45
+ if (xor(flags['paddle-product-id'], flags['paddle-price-id'])) {
46
+ this.error('--paddle-product-id and --paddle-price-id are required together', { exit: 2 });
47
+ }
48
+ if (!flags['ios-product-id'] &&
49
+ !flags['android-product-id'] &&
50
+ !flags['stripe-product-id'] &&
51
+ !flags['paddle-product-id']) {
52
+ this.error('At least one store binding is required (ios/android/stripe/paddle)', { exit: 2 });
39
53
  }
40
54
  if (flags['android-product-id'] && !flags['android-base-plan-id'] && flags.period !== 'lifetime') {
41
55
  this.error('--android-base-plan-id is required with --android-product-id for subscriptions', { exit: 2 });
@@ -52,6 +66,14 @@ export default class ProductsCreate extends Command {
52
66
  body.android_product_id = flags['android-product-id'];
53
67
  if (flags['android-base-plan-id'])
54
68
  body.android_base_plan_id = flags['android-base-plan-id'];
69
+ if (flags['stripe-product-id'])
70
+ body.stripe_product_id = flags['stripe-product-id'];
71
+ if (flags['stripe-price-id'])
72
+ body.stripe_price_id = flags['stripe-price-id'];
73
+ if (flags['paddle-product-id'])
74
+ body.paddle_product_id = flags['paddle-product-id'];
75
+ if (flags['paddle-price-id'])
76
+ body.paddle_price_id = flags['paddle-price-id'];
55
77
  const result = await client.post(`/apps/${flags.app}/products`, body);
56
78
  this.log('Product created!');
57
79
  printResponse(result, this.log.bind(this));
@@ -52,8 +52,12 @@ export interface ProductCreateRequestDTO {
52
52
  android_base_plan_id?: null | string;
53
53
  android_product_id?: null | string;
54
54
  ios_product_id?: null | string;
55
+ paddle_price_id?: null | string;
56
+ paddle_product_id?: null | string;
55
57
  period: ProductPeriod;
56
58
  price_usd?: null | number;
59
+ stripe_price_id?: null | string;
60
+ stripe_product_id?: null | string;
57
61
  title: string;
58
62
  }
59
63
  export interface ProductUpdateRequestDTO {
@@ -577,12 +577,13 @@
577
577
  "whoami.js"
578
578
  ]
579
579
  },
580
- "paywalls:create": {
580
+ "placements:create": {
581
581
  "aliases": [],
582
582
  "args": {},
583
- "description": "Create a paywall with products",
583
+ "description": "Create a placement with a paywall",
584
584
  "examples": [
585
- "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
585
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
586
+ "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
586
587
  ],
587
588
  "flags": {
588
589
  "json": {
@@ -600,16 +601,30 @@
600
601
  "multiple": false,
601
602
  "type": "option"
602
603
  },
603
- "product-id": {
604
- "description": "Product ID (UUID). Repeat for multiple.",
605
- "name": "product-id",
604
+ "audiences": {
605
+ "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
606
+ "name": "audiences",
607
+ "hasDynamicHelp": false,
608
+ "multiple": false,
609
+ "type": "option"
610
+ },
611
+ "developer-id": {
612
+ "description": "Developer ID for the placement",
613
+ "name": "developer-id",
606
614
  "required": true,
607
615
  "hasDynamicHelp": false,
608
- "multiple": true,
616
+ "multiple": false,
617
+ "type": "option"
618
+ },
619
+ "paywall-id": {
620
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
621
+ "name": "paywall-id",
622
+ "hasDynamicHelp": false,
623
+ "multiple": false,
609
624
  "type": "option"
610
625
  },
611
626
  "title": {
612
- "description": "Paywall title",
627
+ "description": "Placement title",
613
628
  "name": "title",
614
629
  "required": true,
615
630
  "hasDynamicHelp": false,
@@ -619,7 +634,7 @@
619
634
  },
620
635
  "hasDynamicHelp": false,
621
636
  "hiddenAliases": [],
622
- "id": "paywalls:create",
637
+ "id": "placements:create",
623
638
  "pluginAlias": "adapty",
624
639
  "pluginName": "adapty",
625
640
  "pluginType": "core",
@@ -629,22 +644,22 @@
629
644
  "relativePath": [
630
645
  "dist",
631
646
  "commands",
632
- "paywalls",
647
+ "placements",
633
648
  "create.js"
634
649
  ]
635
650
  },
636
- "paywalls:get": {
651
+ "placements:get": {
637
652
  "aliases": [],
638
653
  "args": {
639
- "paywall_id": {
640
- "description": "Paywall ID (UUID)",
641
- "name": "paywall_id",
654
+ "placement_id": {
655
+ "description": "Placement ID (UUID)",
656
+ "name": "placement_id",
642
657
  "required": true
643
658
  }
644
659
  },
645
- "description": "Get paywall details",
660
+ "description": "Get placement details",
646
661
  "examples": [
647
- "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
662
+ "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
648
663
  ],
649
664
  "flags": {
650
665
  "json": {
@@ -665,7 +680,7 @@
665
680
  },
666
681
  "hasDynamicHelp": false,
667
682
  "hiddenAliases": [],
668
- "id": "paywalls:get",
683
+ "id": "placements:get",
669
684
  "pluginAlias": "adapty",
670
685
  "pluginName": "adapty",
671
686
  "pluginType": "core",
@@ -675,16 +690,16 @@
675
690
  "relativePath": [
676
691
  "dist",
677
692
  "commands",
678
- "paywalls",
693
+ "placements",
679
694
  "get.js"
680
695
  ]
681
696
  },
682
- "paywalls:list": {
697
+ "placements:list": {
683
698
  "aliases": [],
684
699
  "args": {},
685
- "description": "List paywalls for an app",
700
+ "description": "List placements for an app",
686
701
  "examples": [
687
- "<%= config.bin %> paywalls list --app 550e8400-..."
702
+ "<%= config.bin %> placements list --app 550e8400-..."
688
703
  ],
689
704
  "flags": {
690
705
  "json": {
@@ -721,7 +736,7 @@
721
736
  },
722
737
  "hasDynamicHelp": false,
723
738
  "hiddenAliases": [],
724
- "id": "paywalls:list",
739
+ "id": "placements:list",
725
740
  "pluginAlias": "adapty",
726
741
  "pluginName": "adapty",
727
742
  "pluginType": "core",
@@ -731,22 +746,23 @@
731
746
  "relativePath": [
732
747
  "dist",
733
748
  "commands",
734
- "paywalls",
749
+ "placements",
735
750
  "list.js"
736
751
  ]
737
752
  },
738
- "paywalls:placements": {
753
+ "placements:update": {
739
754
  "aliases": [],
740
755
  "args": {
741
- "paywall_id": {
742
- "description": "Paywall ID (UUID)",
743
- "name": "paywall_id",
756
+ "placement_id": {
757
+ "description": "Placement ID (UUID)",
758
+ "name": "placement_id",
744
759
  "required": true
745
760
  }
746
761
  },
747
- "description": "List placements that currently use this paywall",
762
+ "description": "Update a placement",
748
763
  "examples": [
749
- "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
764
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
765
+ "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
750
766
  ],
751
767
  "flags": {
752
768
  "json": {
@@ -763,63 +779,31 @@
763
779
  "hasDynamicHelp": false,
764
780
  "multiple": false,
765
781
  "type": "option"
766
- }
767
- },
768
- "hasDynamicHelp": false,
769
- "hiddenAliases": [],
770
- "id": "paywalls:placements",
771
- "pluginAlias": "adapty",
772
- "pluginName": "adapty",
773
- "pluginType": "core",
774
- "strict": true,
775
- "enableJsonFlag": true,
776
- "isESM": true,
777
- "relativePath": [
778
- "dist",
779
- "commands",
780
- "paywalls",
781
- "placements.js"
782
- ]
783
- },
784
- "paywalls:update": {
785
- "aliases": [],
786
- "args": {
787
- "paywall_id": {
788
- "description": "Paywall ID (UUID)",
789
- "name": "paywall_id",
790
- "required": true
791
- }
792
- },
793
- "description": "Update a paywall",
794
- "examples": [
795
- "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
796
- ],
797
- "flags": {
798
- "json": {
799
- "description": "Format output as json.",
800
- "helpGroup": "GLOBAL",
801
- "name": "json",
802
- "allowNo": false,
803
- "type": "boolean"
804
782
  },
805
- "app": {
806
- "description": "App ID (UUID)",
807
- "name": "app",
808
- "required": true,
783
+ "audiences": {
784
+ "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
785
+ "name": "audiences",
809
786
  "hasDynamicHelp": false,
810
787
  "multiple": false,
811
788
  "type": "option"
812
789
  },
813
- "product-id": {
814
- "description": "Product ID (UUID). Repeat for multiple.",
815
- "name": "product-id",
790
+ "developer-id": {
791
+ "description": "Developer ID for the placement",
792
+ "name": "developer-id",
816
793
  "required": true,
817
794
  "hasDynamicHelp": false,
818
- "multiple": true,
795
+ "multiple": false,
796
+ "type": "option"
797
+ },
798
+ "paywall-id": {
799
+ "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
800
+ "name": "paywall-id",
801
+ "hasDynamicHelp": false,
802
+ "multiple": false,
819
803
  "type": "option"
820
804
  },
821
805
  "title": {
822
- "description": "Paywall title",
806
+ "description": "Placement title",
823
807
  "name": "title",
824
808
  "required": true,
825
809
  "hasDynamicHelp": false,
@@ -829,7 +813,7 @@
829
813
  },
830
814
  "hasDynamicHelp": false,
831
815
  "hiddenAliases": [],
832
- "id": "paywalls:update",
816
+ "id": "placements:update",
833
817
  "pluginAlias": "adapty",
834
818
  "pluginName": "adapty",
835
819
  "pluginType": "core",
@@ -839,17 +823,16 @@
839
823
  "relativePath": [
840
824
  "dist",
841
825
  "commands",
842
- "paywalls",
826
+ "placements",
843
827
  "update.js"
844
828
  ]
845
829
  },
846
- "placements:create": {
830
+ "paywalls:create": {
847
831
  "aliases": [],
848
832
  "args": {},
849
- "description": "Create a placement with a paywall",
833
+ "description": "Create a paywall with products",
850
834
  "examples": [
851
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
852
- "<%= config.bin %> placements create --app UUID --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
835
+ "<%= config.bin %> paywalls create --app UUID --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
853
836
  ],
854
837
  "flags": {
855
838
  "json": {
@@ -867,30 +850,16 @@
867
850
  "multiple": false,
868
851
  "type": "option"
869
852
  },
870
- "audiences": {
871
- "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
872
- "name": "audiences",
873
- "hasDynamicHelp": false,
874
- "multiple": false,
875
- "type": "option"
876
- },
877
- "developer-id": {
878
- "description": "Developer ID for the placement",
879
- "name": "developer-id",
853
+ "product-id": {
854
+ "description": "Product ID (UUID). Repeat for multiple.",
855
+ "name": "product-id",
880
856
  "required": true,
881
857
  "hasDynamicHelp": false,
882
- "multiple": false,
883
- "type": "option"
884
- },
885
- "paywall-id": {
886
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
887
- "name": "paywall-id",
888
- "hasDynamicHelp": false,
889
- "multiple": false,
858
+ "multiple": true,
890
859
  "type": "option"
891
860
  },
892
861
  "title": {
893
- "description": "Placement title",
862
+ "description": "Paywall title",
894
863
  "name": "title",
895
864
  "required": true,
896
865
  "hasDynamicHelp": false,
@@ -900,7 +869,7 @@
900
869
  },
901
870
  "hasDynamicHelp": false,
902
871
  "hiddenAliases": [],
903
- "id": "placements:create",
872
+ "id": "paywalls:create",
904
873
  "pluginAlias": "adapty",
905
874
  "pluginName": "adapty",
906
875
  "pluginType": "core",
@@ -910,22 +879,22 @@
910
879
  "relativePath": [
911
880
  "dist",
912
881
  "commands",
913
- "placements",
882
+ "paywalls",
914
883
  "create.js"
915
884
  ]
916
885
  },
917
- "placements:get": {
886
+ "paywalls:get": {
918
887
  "aliases": [],
919
888
  "args": {
920
- "placement_id": {
921
- "description": "Placement ID (UUID)",
922
- "name": "placement_id",
889
+ "paywall_id": {
890
+ "description": "Paywall ID (UUID)",
891
+ "name": "paywall_id",
923
892
  "required": true
924
893
  }
925
894
  },
926
- "description": "Get placement details",
895
+ "description": "Get paywall details",
927
896
  "examples": [
928
- "<%= config.bin %> placements get --app UUID 550e8400-e29b-41d4-a716-446655440000"
897
+ "<%= config.bin %> paywalls get --app UUID 550e8400-e29b-41d4-a716-446655440000"
929
898
  ],
930
899
  "flags": {
931
900
  "json": {
@@ -946,7 +915,7 @@
946
915
  },
947
916
  "hasDynamicHelp": false,
948
917
  "hiddenAliases": [],
949
- "id": "placements:get",
918
+ "id": "paywalls:get",
950
919
  "pluginAlias": "adapty",
951
920
  "pluginName": "adapty",
952
921
  "pluginType": "core",
@@ -956,16 +925,16 @@
956
925
  "relativePath": [
957
926
  "dist",
958
927
  "commands",
959
- "placements",
928
+ "paywalls",
960
929
  "get.js"
961
930
  ]
962
931
  },
963
- "placements:list": {
932
+ "paywalls:list": {
964
933
  "aliases": [],
965
934
  "args": {},
966
- "description": "List placements for an app",
935
+ "description": "List paywalls for an app",
967
936
  "examples": [
968
- "<%= config.bin %> placements list --app 550e8400-..."
937
+ "<%= config.bin %> paywalls list --app 550e8400-..."
969
938
  ],
970
939
  "flags": {
971
940
  "json": {
@@ -1002,7 +971,7 @@
1002
971
  },
1003
972
  "hasDynamicHelp": false,
1004
973
  "hiddenAliases": [],
1005
- "id": "placements:list",
974
+ "id": "paywalls:list",
1006
975
  "pluginAlias": "adapty",
1007
976
  "pluginName": "adapty",
1008
977
  "pluginType": "core",
@@ -1012,23 +981,22 @@
1012
981
  "relativePath": [
1013
982
  "dist",
1014
983
  "commands",
1015
- "placements",
984
+ "paywalls",
1016
985
  "list.js"
1017
986
  ]
1018
987
  },
1019
- "placements:update": {
988
+ "paywalls:placements": {
1020
989
  "aliases": [],
1021
990
  "args": {
1022
- "placement_id": {
1023
- "description": "Placement ID (UUID)",
1024
- "name": "placement_id",
991
+ "paywall_id": {
992
+ "description": "Paywall ID (UUID)",
993
+ "name": "paywall_id",
1025
994
  "required": true
1026
995
  }
1027
996
  },
1028
- "description": "Update a placement",
997
+ "description": "List placements that currently use this paywall",
1029
998
  "examples": [
1030
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --audiences '[{\"segment_ids\":[],\"paywall_id\":\"PAYWALL_UUID\",\"priority\":0}]'",
1031
- "<%= config.bin %> placements update --app UUID 550e8400-... --title \"Default\" --developer-id default --paywall-id PAYWALL_UUID"
999
+ "<%= config.bin %> paywalls placements --app UUID 770e8400-e29b-41d4-a716-446655440002"
1032
1000
  ],
1033
1001
  "flags": {
1034
1002
  "json": {
@@ -1045,31 +1013,63 @@
1045
1013
  "hasDynamicHelp": false,
1046
1014
  "multiple": false,
1047
1015
  "type": "option"
1016
+ }
1017
+ },
1018
+ "hasDynamicHelp": false,
1019
+ "hiddenAliases": [],
1020
+ "id": "paywalls:placements",
1021
+ "pluginAlias": "adapty",
1022
+ "pluginName": "adapty",
1023
+ "pluginType": "core",
1024
+ "strict": true,
1025
+ "enableJsonFlag": true,
1026
+ "isESM": true,
1027
+ "relativePath": [
1028
+ "dist",
1029
+ "commands",
1030
+ "paywalls",
1031
+ "placements.js"
1032
+ ]
1033
+ },
1034
+ "paywalls:update": {
1035
+ "aliases": [],
1036
+ "args": {
1037
+ "paywall_id": {
1038
+ "description": "Paywall ID (UUID)",
1039
+ "name": "paywall_id",
1040
+ "required": true
1041
+ }
1042
+ },
1043
+ "description": "Update a paywall",
1044
+ "examples": [
1045
+ "<%= config.bin %> paywalls update --app UUID 550e8400-... --title \"Default Paywall\" --product-id UUID1 --product-id UUID2"
1046
+ ],
1047
+ "flags": {
1048
+ "json": {
1049
+ "description": "Format output as json.",
1050
+ "helpGroup": "GLOBAL",
1051
+ "name": "json",
1052
+ "allowNo": false,
1053
+ "type": "boolean"
1048
1054
  },
1049
- "audiences": {
1050
- "description": "JSON array of audience entries: [{segment_ids, paywall_id, priority}]",
1051
- "name": "audiences",
1052
- "hasDynamicHelp": false,
1053
- "multiple": false,
1054
- "type": "option"
1055
- },
1056
- "developer-id": {
1057
- "description": "Developer ID for the placement",
1058
- "name": "developer-id",
1055
+ "app": {
1056
+ "description": "App ID (UUID)",
1057
+ "name": "app",
1059
1058
  "required": true,
1060
1059
  "hasDynamicHelp": false,
1061
1060
  "multiple": false,
1062
1061
  "type": "option"
1063
1062
  },
1064
- "paywall-id": {
1065
- "description": "Paywall ID (UUID). DEPRECATED: use --audiences.",
1066
- "name": "paywall-id",
1063
+ "product-id": {
1064
+ "description": "Product ID (UUID). Repeat for multiple.",
1065
+ "name": "product-id",
1066
+ "required": true,
1067
1067
  "hasDynamicHelp": false,
1068
- "multiple": false,
1068
+ "multiple": true,
1069
1069
  "type": "option"
1070
1070
  },
1071
1071
  "title": {
1072
- "description": "Placement title",
1072
+ "description": "Paywall title",
1073
1073
  "name": "title",
1074
1074
  "required": true,
1075
1075
  "hasDynamicHelp": false,
@@ -1079,7 +1079,7 @@
1079
1079
  },
1080
1080
  "hasDynamicHelp": false,
1081
1081
  "hiddenAliases": [],
1082
- "id": "placements:update",
1082
+ "id": "paywalls:update",
1083
1083
  "pluginAlias": "adapty",
1084
1084
  "pluginName": "adapty",
1085
1085
  "pluginType": "core",
@@ -1089,7 +1089,7 @@
1089
1089
  "relativePath": [
1090
1090
  "dist",
1091
1091
  "commands",
1092
- "placements",
1092
+ "paywalls",
1093
1093
  "update.js"
1094
1094
  ]
1095
1095
  },
@@ -1126,6 +1126,7 @@
1126
1126
  },
1127
1127
  "android-base-plan-id": {
1128
1128
  "description": "Android base plan ID",
1129
+ "helpGroup": "STORE BINDINGS",
1129
1130
  "name": "android-base-plan-id",
1130
1131
  "hasDynamicHelp": false,
1131
1132
  "multiple": false,
@@ -1133,6 +1134,7 @@
1133
1134
  },
1134
1135
  "android-product-id": {
1135
1136
  "description": "Android product ID",
1137
+ "helpGroup": "STORE BINDINGS",
1136
1138
  "name": "android-product-id",
1137
1139
  "hasDynamicHelp": false,
1138
1140
  "multiple": false,
@@ -1140,11 +1142,28 @@
1140
1142
  },
1141
1143
  "ios-product-id": {
1142
1144
  "description": "iOS product ID",
1145
+ "helpGroup": "STORE BINDINGS",
1143
1146
  "name": "ios-product-id",
1144
1147
  "hasDynamicHelp": false,
1145
1148
  "multiple": false,
1146
1149
  "type": "option"
1147
1150
  },
1151
+ "paddle-price-id": {
1152
+ "description": "Paddle price ID (requires --paddle-product-id)",
1153
+ "helpGroup": "STORE BINDINGS",
1154
+ "name": "paddle-price-id",
1155
+ "hasDynamicHelp": false,
1156
+ "multiple": false,
1157
+ "type": "option"
1158
+ },
1159
+ "paddle-product-id": {
1160
+ "description": "Paddle product ID (requires --paddle-price-id)",
1161
+ "helpGroup": "STORE BINDINGS",
1162
+ "name": "paddle-product-id",
1163
+ "hasDynamicHelp": false,
1164
+ "multiple": false,
1165
+ "type": "option"
1166
+ },
1148
1167
  "period": {
1149
1168
  "description": "Subscription period (weekly, monthly, two_months, trimonthly, semiannual, annual, lifetime)",
1150
1169
  "name": "period",
@@ -1153,6 +1172,22 @@
1153
1172
  "multiple": false,
1154
1173
  "type": "option"
1155
1174
  },
1175
+ "stripe-price-id": {
1176
+ "description": "Stripe price ID (requires --stripe-product-id)",
1177
+ "helpGroup": "STORE BINDINGS",
1178
+ "name": "stripe-price-id",
1179
+ "hasDynamicHelp": false,
1180
+ "multiple": false,
1181
+ "type": "option"
1182
+ },
1183
+ "stripe-product-id": {
1184
+ "description": "Stripe product ID (requires --stripe-price-id)",
1185
+ "helpGroup": "STORE BINDINGS",
1186
+ "name": "stripe-product-id",
1187
+ "hasDynamicHelp": false,
1188
+ "multiple": false,
1189
+ "type": "option"
1190
+ },
1156
1191
  "title": {
1157
1192
  "description": "Product title",
1158
1193
  "name": "title",
@@ -1445,5 +1480,5 @@
1445
1480
  ]
1446
1481
  }
1447
1482
  },
1448
- "version": "0.2.0"
1483
+ "version": "0.3.0-beta.0"
1449
1484
  }
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "adapty",
3
3
  "description": "Adapty command line interface",
4
- "version": "0.2.0",
4
+ "version": "0.3.0-beta.0",
5
5
  "author": "Adapty team <support@adapty.io>",
6
6
  "bin": {
7
7
  "adapty": "./bin/run.js"