kappmaker 1.0.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.
Files changed (103) hide show
  1. package/README.md +545 -0
  2. package/dist/cli.d.ts +2 -0
  3. package/dist/cli.js +195 -0
  4. package/dist/cli.js.map +1 -0
  5. package/dist/commands/adapty-setup.d.ts +2 -0
  6. package/dist/commands/adapty-setup.js +240 -0
  7. package/dist/commands/adapty-setup.js.map +1 -0
  8. package/dist/commands/config.d.ts +12 -0
  9. package/dist/commands/config.js +230 -0
  10. package/dist/commands/config.js.map +1 -0
  11. package/dist/commands/create-appstore-app.d.ts +2 -0
  12. package/dist/commands/create-appstore-app.js +261 -0
  13. package/dist/commands/create-appstore-app.js.map +1 -0
  14. package/dist/commands/create-logo.d.ts +2 -0
  15. package/dist/commands/create-logo.js +93 -0
  16. package/dist/commands/create-logo.js.map +1 -0
  17. package/dist/commands/create.d.ts +2 -0
  18. package/dist/commands/create.js +143 -0
  19. package/dist/commands/create.js.map +1 -0
  20. package/dist/commands/enhance.d.ts +2 -0
  21. package/dist/commands/enhance.js +55 -0
  22. package/dist/commands/enhance.js.map +1 -0
  23. package/dist/commands/generate-screenshots.d.ts +2 -0
  24. package/dist/commands/generate-screenshots.js +174 -0
  25. package/dist/commands/generate-screenshots.js.map +1 -0
  26. package/dist/commands/remove-bg.d.ts +2 -0
  27. package/dist/commands/remove-bg.js +41 -0
  28. package/dist/commands/remove-bg.js.map +1 -0
  29. package/dist/commands/split.d.ts +2 -0
  30. package/dist/commands/split.js +37 -0
  31. package/dist/commands/split.js.map +1 -0
  32. package/dist/commands/translate-screenshots.d.ts +2 -0
  33. package/dist/commands/translate-screenshots.js +224 -0
  34. package/dist/commands/translate-screenshots.js.map +1 -0
  35. package/dist/index.d.ts +2 -0
  36. package/dist/index.js +12 -0
  37. package/dist/index.js.map +1 -0
  38. package/dist/services/adapty.service.d.ts +26 -0
  39. package/dist/services/adapty.service.js +230 -0
  40. package/dist/services/adapty.service.js.map +1 -0
  41. package/dist/services/asc-monetization.service.d.ts +3 -0
  42. package/dist/services/asc-monetization.service.js +223 -0
  43. package/dist/services/asc-monetization.service.js.map +1 -0
  44. package/dist/services/asc.service.d.ts +14 -0
  45. package/dist/services/asc.service.js +321 -0
  46. package/dist/services/asc.service.js.map +1 -0
  47. package/dist/services/fal.service.d.ts +15 -0
  48. package/dist/services/fal.service.js +236 -0
  49. package/dist/services/fal.service.js.map +1 -0
  50. package/dist/services/fastlane.service.d.ts +2 -0
  51. package/dist/services/fastlane.service.js +32 -0
  52. package/dist/services/fastlane.service.js.map +1 -0
  53. package/dist/services/firebase.service.d.ts +7 -0
  54. package/dist/services/firebase.service.js +176 -0
  55. package/dist/services/firebase.service.js.map +1 -0
  56. package/dist/services/git.service.d.ts +3 -0
  57. package/dist/services/git.service.js +13 -0
  58. package/dist/services/git.service.js.map +1 -0
  59. package/dist/services/gradle.service.d.ts +4 -0
  60. package/dist/services/gradle.service.js +31 -0
  61. package/dist/services/gradle.service.js.map +1 -0
  62. package/dist/services/ios.service.d.ts +1 -0
  63. package/dist/services/ios.service.js +9 -0
  64. package/dist/services/ios.service.js.map +1 -0
  65. package/dist/services/logo.service.d.ts +12 -0
  66. package/dist/services/logo.service.js +168 -0
  67. package/dist/services/logo.service.js.map +1 -0
  68. package/dist/services/openai.service.d.ts +2 -0
  69. package/dist/services/openai.service.js +42 -0
  70. package/dist/services/openai.service.js.map +1 -0
  71. package/dist/services/screenshot-styles.d.ts +1 -0
  72. package/dist/services/screenshot-styles.js +1050 -0
  73. package/dist/services/screenshot-styles.js.map +1 -0
  74. package/dist/services/screenshot.service.d.ts +14 -0
  75. package/dist/services/screenshot.service.js +136 -0
  76. package/dist/services/screenshot.service.js.map +1 -0
  77. package/dist/templates/adapty-config.json +50 -0
  78. package/dist/templates/appstore-config.json +188 -0
  79. package/dist/types/adapty.d.ts +38 -0
  80. package/dist/types/adapty.js +2 -0
  81. package/dist/types/adapty.js.map +1 -0
  82. package/dist/types/appstore.d.ts +150 -0
  83. package/dist/types/appstore.js +2 -0
  84. package/dist/types/appstore.js.map +1 -0
  85. package/dist/types/index.d.ts +80 -0
  86. package/dist/types/index.js +2 -0
  87. package/dist/types/index.js.map +1 -0
  88. package/dist/utils/config.d.ts +18 -0
  89. package/dist/utils/config.js +107 -0
  90. package/dist/utils/config.js.map +1 -0
  91. package/dist/utils/exec.d.ts +17 -0
  92. package/dist/utils/exec.js +62 -0
  93. package/dist/utils/exec.js.map +1 -0
  94. package/dist/utils/logger.d.ts +10 -0
  95. package/dist/utils/logger.js +29 -0
  96. package/dist/utils/logger.js.map +1 -0
  97. package/dist/utils/prompt.d.ts +2 -0
  98. package/dist/utils/prompt.js +26 -0
  99. package/dist/utils/prompt.js.map +1 -0
  100. package/dist/utils/validator.d.ts +2 -0
  101. package/dist/utils/validator.js +93 -0
  102. package/dist/utils/validator.js.map +1 -0
  103. package/package.json +35 -0
package/dist/cli.js ADDED
@@ -0,0 +1,195 @@
1
+ import { Command } from 'commander';
2
+ import { createApp } from './commands/create.js';
3
+ import { createLogo } from './commands/create-logo.js';
4
+ import { split } from './commands/split.js';
5
+ import { removeBackground } from './commands/remove-bg.js';
6
+ import { enhance } from './commands/enhance.js';
7
+ import { translateScreenshots } from './commands/translate-screenshots.js';
8
+ import { configList, configGet, configSet, configPath, configInit, configAppStoreDefaults, configAdaptyDefaults } from './commands/config.js';
9
+ import { createAppStoreApp } from './commands/create-appstore-app.js';
10
+ import { generateScreenshots } from './commands/generate-screenshots.js';
11
+ import { adaptySetup } from './commands/adapty-setup.js';
12
+ export function createCli() {
13
+ const program = new Command();
14
+ program
15
+ .name('kappmaker')
16
+ .description('CLI tool for bootstrapping KAppMaker mobile apps')
17
+ .version('0.1.0');
18
+ program
19
+ .command('create')
20
+ .description('Create a new KAppMaker app from template')
21
+ .argument('<app-name>', 'Name of the app (PascalCase, e.g., Remimi)')
22
+ .option('--template-repo <url>', 'Git URL of the template repository')
23
+ .option('--organization <org>', 'Organization name for Fastlane signing')
24
+ .action(async (appName, options) => {
25
+ await createApp(appName, options);
26
+ });
27
+ program
28
+ .command('create-logo')
29
+ .description('Generate an app logo using AI (fal.ai)')
30
+ .option('--output <path>', 'Custom output path for the logo')
31
+ .action(async (options) => {
32
+ await createLogo(options);
33
+ });
34
+ // ── Image tools ────────────────────────────────────────────────────
35
+ program
36
+ .command('image-split')
37
+ .description('Split a grid image into individual tiles')
38
+ .argument('<source>', 'Path to the grid image')
39
+ .option('--rows <n>', 'Number of rows', '4')
40
+ .option('--cols <n>', 'Number of columns', '4')
41
+ .option('--zoom <factor>', 'Zoom factor to crop background edges', '1.07')
42
+ .option('--gap <pixels>', 'Gap pixels to skip at each tile edge', '0')
43
+ .option('--width <pixels>', 'Output tile width in pixels', '512')
44
+ .option('--height <pixels>', 'Output tile height in pixels', '512')
45
+ .option('--output-dir <path>', 'Directory to save tiles', '.')
46
+ .option('--keep <indices>', 'Comma-separated tile indices to keep (e.g., 1,3,5). Others are deleted')
47
+ .action(async (source, options) => {
48
+ const keep = options.keep
49
+ ? options.keep.split(',').map((s) => parseInt(s.trim(), 10))
50
+ : undefined;
51
+ await split(source, {
52
+ rows: parseInt(options.rows, 10),
53
+ cols: parseInt(options.cols, 10),
54
+ zoom: parseFloat(options.zoom),
55
+ gap: parseInt(options.gap, 10),
56
+ width: parseInt(options.width, 10),
57
+ height: parseInt(options.height, 10),
58
+ outputDir: options.outputDir,
59
+ keep,
60
+ });
61
+ });
62
+ program
63
+ .command('image-remove-bg')
64
+ .description('Remove background from an image using AI (fal.ai)')
65
+ .argument('<source>', 'Path to the image')
66
+ .option('--output <path>', 'Custom output path')
67
+ .action(async (source, options) => {
68
+ await removeBackground(source, options);
69
+ });
70
+ program
71
+ .command('image-enhance')
72
+ .description('Enhance image quality using AI (fal.ai)')
73
+ .argument('<source>', 'Path to the image')
74
+ .option('--output <path>', 'Custom output path')
75
+ .action(async (source, options) => {
76
+ await enhance(source, options);
77
+ });
78
+ program
79
+ .command('translate-screenshots')
80
+ .description('Translate app screenshots into multiple locales using AI (fal.ai)')
81
+ .argument('[source-dir]', 'Directory containing source screenshots (default: MobileApp/distribution/ios/appstore_metadata/screenshots/en-US)')
82
+ .option('--output <path>', 'Distribution directory root (auto-detected from source path)')
83
+ .option('--locales <codes...>', 'Target Play Store locale codes (space-separated)')
84
+ .option('--rows <n>', 'Grid rows', '2')
85
+ .option('--cols <n>', 'Grid columns', '4')
86
+ .option('--resolution <res>', 'AI resolution (1K, 2K, 4K)', '2K')
87
+ .option('--poll-interval <seconds>', 'Seconds between status checks', '10')
88
+ .action(async (sourceDir, options) => {
89
+ const resolvedDir = sourceDir ?? 'MobileApp/distribution/ios/appstore_metadata/screenshots/en-US';
90
+ await translateScreenshots(resolvedDir, {
91
+ output: options.output,
92
+ locales: options.locales,
93
+ rows: parseInt(options.rows, 10),
94
+ cols: parseInt(options.cols, 10),
95
+ resolution: options.resolution,
96
+ pollInterval: parseInt(options.pollInterval, 10),
97
+ });
98
+ });
99
+ program
100
+ .command('generate-screenshots')
101
+ .description('Generate App Store/Play Store marketing screenshots using AI (OpenAI + fal.ai)')
102
+ .requiredOption('--prompt <text>', 'App description or PRD for screenshot generation')
103
+ .option('--input <dir>', 'Directory with reference screenshots (default: auto-detect Assets/screenshots)')
104
+ .option('--style <id>', 'Style preset ID', '1')
105
+ .option('--output <dir>', 'Output base directory (default: Assets/screenshots)')
106
+ .option('--resolution <res>', 'AI resolution (1K, 2K, 4K)', '2K')
107
+ .option('--rows <n>', 'Grid rows', '2')
108
+ .option('--cols <n>', 'Grid columns', '4')
109
+ .option('--poll-interval <seconds>', 'Seconds between status checks', '10')
110
+ .action(async (options) => {
111
+ await generateScreenshots({
112
+ prompt: options.prompt,
113
+ input: options.input,
114
+ style: parseInt(options.style, 10),
115
+ output: options.output,
116
+ resolution: options.resolution,
117
+ rows: parseInt(options.rows, 10),
118
+ cols: parseInt(options.cols, 10),
119
+ pollInterval: parseInt(options.pollInterval, 10),
120
+ });
121
+ });
122
+ // ── App Store Connect ─────────────────────────────────────────────
123
+ program
124
+ .command('create-appstore-app')
125
+ .description('Configure an existing app on App Store Connect (version, subscriptions, metadata, etc.)')
126
+ .option('--config <path>', 'Path to App Store Connect JSON config file')
127
+ .action(async (options) => {
128
+ await createAppStoreApp(options);
129
+ });
130
+ // ── Adapty ──────────────────────────────────────────────────────────
131
+ const adapty = program
132
+ .command('adapty')
133
+ .description('Adapty subscription management');
134
+ adapty
135
+ .command('setup')
136
+ .description('Set up Adapty products, paywall, and placements')
137
+ .option('--config <path>', 'Path to Adapty JSON config file')
138
+ .action(async (options) => {
139
+ await adaptySetup(options);
140
+ });
141
+ // ── Config ─────────────────────────────────────────────────────────
142
+ const config = program
143
+ .command('config')
144
+ .description('Manage CLI configuration');
145
+ config
146
+ .command('list')
147
+ .description('Show all config values')
148
+ .action(async () => {
149
+ await configList();
150
+ });
151
+ config
152
+ .command('get')
153
+ .description('Get a config value')
154
+ .argument('<key>', 'Config key to read')
155
+ .action(async (key) => {
156
+ await configGet(key);
157
+ });
158
+ config
159
+ .command('set')
160
+ .description('Set a config value')
161
+ .argument('<key>', 'Config key to set')
162
+ .argument('<value>', 'Value to set')
163
+ .action(async (key, value) => {
164
+ await configSet(key, value);
165
+ });
166
+ config
167
+ .command('path')
168
+ .description('Show config file path')
169
+ .action(async () => {
170
+ await configPath();
171
+ });
172
+ config
173
+ .command('init')
174
+ .description('Interactively set up configuration')
175
+ .action(async () => {
176
+ await configInit();
177
+ });
178
+ config
179
+ .command('appstore-defaults')
180
+ .description('Save or view global App Store Connect defaults (reused across all apps)')
181
+ .option('--save <path>', 'Save a JSON file as global appstore defaults')
182
+ .option('--init', 'Interactively set up App Store defaults')
183
+ .action(async (options) => {
184
+ await configAppStoreDefaults(options);
185
+ });
186
+ config
187
+ .command('adapty-defaults')
188
+ .description('Save or view global Adapty defaults (reused across all apps)')
189
+ .option('--save <path>', 'Save a JSON file as global Adapty defaults')
190
+ .action(async (options) => {
191
+ await configAdaptyDefaults(options);
192
+ });
193
+ return program;
194
+ }
195
+ //# sourceMappingURL=cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AACvD,OAAO,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAC;AAC5C,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,sBAAsB,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAC9I,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AACtE,OAAO,EAAE,mBAAmB,EAAE,MAAM,oCAAoC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AAEzD,MAAM,UAAU,SAAS;IACvB,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,OAAO;SACJ,IAAI,CAAC,WAAW,CAAC;SACjB,WAAW,CAAC,kDAAkD,CAAC;SAC/D,OAAO,CAAC,OAAO,CAAC,CAAC;IAEpB,OAAO;SACJ,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,YAAY,EAAE,4CAA4C,CAAC;SACpE,MAAM,CAAC,uBAAuB,EAAE,oCAAoC,CAAC;SACrE,MAAM,CAAC,sBAAsB,EAAE,wCAAwC,CAAC;SACxE,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,OAAO,EAAE,EAAE;QACzC,MAAM,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,wCAAwC,CAAC;SACrD,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,UAAU,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC,CAAC,CAAC;IAEL,sEAAsE;IAEtE,OAAO;SACJ,OAAO,CAAC,aAAa,CAAC;SACtB,WAAW,CAAC,0CAA0C,CAAC;SACvD,QAAQ,CAAC,UAAU,EAAE,wBAAwB,CAAC;SAC9C,MAAM,CAAC,YAAY,EAAE,gBAAgB,EAAE,GAAG,CAAC;SAC3C,MAAM,CAAC,YAAY,EAAE,mBAAmB,EAAE,GAAG,CAAC;SAC9C,MAAM,CAAC,iBAAiB,EAAE,sCAAsC,EAAE,MAAM,CAAC;SACzE,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,EAAE,GAAG,CAAC;SACrE,MAAM,CAAC,kBAAkB,EAAE,6BAA6B,EAAE,KAAK,CAAC;SAChE,MAAM,CAAC,mBAAmB,EAAE,8BAA8B,EAAE,KAAK,CAAC;SAClE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,GAAG,CAAC;SAC7D,MAAM,CAAC,kBAAkB,EAAE,wEAAwE,CAAC;SACpG,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI;YACvB,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC;YACpE,CAAC,CAAC,SAAS,CAAC;QACd,MAAM,KAAK,CAAC,MAAM,EAAE;YAClB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,EAAE,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;YAC9B,GAAG,EAAE,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC;YAC9B,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACpC,SAAS,EAAE,OAAO,CAAC,SAAS;YAC5B,IAAI;SACL,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,mDAAmD,CAAC;SAChE,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,eAAe,CAAC;SACxB,WAAW,CAAC,yCAAyC,CAAC;SACtD,QAAQ,CAAC,UAAU,EAAE,mBAAmB,CAAC;SACzC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC;SAC/C,MAAM,CAAC,KAAK,EAAE,MAAc,EAAE,OAAO,EAAE,EAAE;QACxC,MAAM,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,uBAAuB,CAAC;SAChC,WAAW,CAAC,mEAAmE,CAAC;SAChF,QAAQ,CAAC,cAAc,EAAE,mHAAmH,CAAC;SAC7I,MAAM,CAAC,iBAAiB,EAAE,8DAA8D,CAAC;SACzF,MAAM,CAAC,sBAAsB,EAAE,kDAAkD,CAAC;SAClF,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC;SACtC,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC;SACzC,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAI,CAAC;SAChE,MAAM,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,SAA6B,EAAE,OAAO,EAAE,EAAE;QACvD,MAAM,WAAW,GAAG,SAAS,IAAI,gEAAgE,CAAC;QAClG,MAAM,oBAAoB,CAAC,WAAW,EAAE;YACtC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,OAAO;SACJ,OAAO,CAAC,sBAAsB,CAAC;SAC/B,WAAW,CAAC,gFAAgF,CAAC;SAC7F,cAAc,CAAC,iBAAiB,EAAE,kDAAkD,CAAC;SACrF,MAAM,CAAC,eAAe,EAAE,gFAAgF,CAAC;SACzG,MAAM,CAAC,cAAc,EAAE,iBAAiB,EAAE,GAAG,CAAC;SAC9C,MAAM,CAAC,gBAAgB,EAAE,qDAAqD,CAAC;SAC/E,MAAM,CAAC,oBAAoB,EAAE,4BAA4B,EAAE,IAAI,CAAC;SAChE,MAAM,CAAC,YAAY,EAAE,WAAW,EAAE,GAAG,CAAC;SACtC,MAAM,CAAC,YAAY,EAAE,cAAc,EAAE,GAAG,CAAC;SACzC,MAAM,CAAC,2BAA2B,EAAE,+BAA+B,EAAE,IAAI,CAAC;SAC1E,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,mBAAmB,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,KAAK,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC;YAClC,MAAM,EAAE,OAAO,CAAC,MAAM;YACtB,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,IAAI,EAAE,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,CAAC;YAChC,YAAY,EAAE,QAAQ,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,CAAC;SACjD,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEL,qEAAqE;IAErE,OAAO;SACJ,OAAO,CAAC,qBAAqB,CAAC;SAC9B,WAAW,CAAC,yFAAyF,CAAC;SACtG,MAAM,CAAC,iBAAiB,EAAE,4CAA4C,CAAC;SACvE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,iBAAiB,CAAC,OAAO,CAAC,CAAC;IACnC,CAAC,CAAC,CAAC;IAEL,uEAAuE;IAEvE,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,gCAAgC,CAAC,CAAC;IAEjD,MAAM;SACH,OAAO,CAAC,OAAO,CAAC;SAChB,WAAW,CAAC,iDAAiD,CAAC;SAC9D,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC;SAC5D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7B,CAAC,CAAC,CAAC;IAEL,sEAAsE;IAEtE,MAAM,MAAM,GAAG,OAAO;SACnB,OAAO,CAAC,QAAQ,CAAC;SACjB,WAAW,CAAC,0BAA0B,CAAC,CAAC;IAE3C,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,wBAAwB,CAAC;SACrC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,oBAAoB,CAAC;SACjC,QAAQ,CAAC,OAAO,EAAE,oBAAoB,CAAC;SACvC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,EAAE;QAC5B,MAAM,SAAS,CAAC,GAAG,CAAC,CAAC;IACvB,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,KAAK,CAAC;SACd,WAAW,CAAC,oBAAoB,CAAC;SACjC,QAAQ,CAAC,OAAO,EAAE,mBAAmB,CAAC;SACtC,QAAQ,CAAC,SAAS,EAAE,cAAc,CAAC;SACnC,MAAM,CAAC,KAAK,EAAE,GAAW,EAAE,KAAa,EAAE,EAAE;QAC3C,MAAM,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;IAC9B,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,uBAAuB,CAAC;SACpC,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,MAAM,CAAC;SACf,WAAW,CAAC,oCAAoC,CAAC;SACjD,MAAM,CAAC,KAAK,IAAI,EAAE;QACjB,MAAM,UAAU,EAAE,CAAC;IACrB,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,mBAAmB,CAAC;SAC5B,WAAW,CAAC,yEAAyE,CAAC;SACtF,MAAM,CAAC,eAAe,EAAE,8CAA8C,CAAC;SACvE,MAAM,CAAC,QAAQ,EAAE,yCAAyC,CAAC;SAC3D,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,sBAAsB,CAAC,OAAO,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEL,MAAM;SACH,OAAO,CAAC,iBAAiB,CAAC;SAC1B,WAAW,CAAC,8DAA8D,CAAC;SAC3E,MAAM,CAAC,eAAe,EAAE,4CAA4C,CAAC;SACrE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;QACxB,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEL,OAAO,OAAO,CAAC;AACjB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import type { CreateAdaptyOptions } from '../types/adapty.js';
2
+ export declare function adaptySetup(options: CreateAdaptyOptions): Promise<void>;
@@ -0,0 +1,240 @@
1
+ import path from 'node:path';
2
+ import fs from 'fs-extra';
3
+ import chalk from 'chalk';
4
+ import { logger } from '../utils/logger.js';
5
+ import { promptInput, confirm } from '../utils/prompt.js';
6
+ import { loadConfig, getAdaptyTemplate, loadAdaptyDefaults } from '../utils/config.js';
7
+ import * as adapty from '../services/adapty.service.js';
8
+ const CONFIG_FILENAME = 'Assets/adapty-config.json';
9
+ const TOTAL_STEPS = 8;
10
+ export async function adaptySetup(options) {
11
+ // Step 1: Validate adapty CLI
12
+ logger.step(1, TOTAL_STEPS, 'Validating adapty CLI');
13
+ await adapty.validateAdaptyInstalled();
14
+ // Step 2: Validate auth
15
+ logger.step(2, TOTAL_STEPS, 'Checking Adapty authentication');
16
+ await adapty.validateAdaptyAuth();
17
+ // Step 3: Load config
18
+ logger.step(3, TOTAL_STEPS, 'Loading Adapty config');
19
+ const { config, configPath } = await loadAdaptyConfig(options.config);
20
+ logger.info(`App: ${config.app.title} (${config.app.bundle_id})`);
21
+ // Show summary and ask for confirmation
22
+ console.log('');
23
+ console.log(chalk.bold(' Review before proceeding:\n'));
24
+ console.log(` ${chalk.cyan('Config:')} ${configPath}`);
25
+ console.log(` ${chalk.cyan('App:')} ${config.app.title}`);
26
+ console.log(` ${chalk.cyan('Bundle ID:')} ${config.app.bundle_id}`);
27
+ console.log(` ${chalk.cyan('Package ID:')} ${config.app.package_id}`);
28
+ console.log(` ${chalk.cyan('Access Level:')} ${config.access_level.sdk_id}`);
29
+ console.log(` ${chalk.cyan('Products:')}`);
30
+ for (const product of config.products) {
31
+ console.log(` ${chalk.gray('•')} ${product.title} (${product.period})`);
32
+ console.log(` iOS: ${product.ios_product_id || chalk.gray('(not set)')}`);
33
+ console.log(` Android: ${product.android_product_id || chalk.gray('(not set)')}`);
34
+ }
35
+ console.log(` ${chalk.cyan('Paywalls:')}`);
36
+ for (const paywall of config.paywalls) {
37
+ console.log(` ${chalk.gray('•')} ${paywall.title}`);
38
+ }
39
+ console.log(` ${chalk.cyan('Placements:')}`);
40
+ for (const placement of config.placements) {
41
+ console.log(` ${chalk.gray('•')} ${placement.title} (${placement.developer_id})`);
42
+ }
43
+ console.log('');
44
+ console.log(chalk.gray(' Edit the config file to change any values before continuing.'));
45
+ console.log('');
46
+ const shouldContinue = await confirm(' Continue with these settings?');
47
+ if (!shouldContinue) {
48
+ logger.info(`Config saved at: ${configPath}`);
49
+ logger.info('Edit the file and run the command again.');
50
+ process.exit(0);
51
+ }
52
+ // Re-read config in case user edited it during confirmation
53
+ const finalConfig = await fs.readJson(configPath);
54
+ Object.assign(config, finalConfig);
55
+ // Step 4: Find or create app
56
+ logger.step(4, TOTAL_STEPS, 'Finding or creating Adapty app');
57
+ let appId = config.app.app_id;
58
+ if (!appId) {
59
+ const existing = await adapty.findAppByBundleId(config.app.bundle_id);
60
+ if (existing) {
61
+ appId = existing.id;
62
+ logger.info(`Found existing app: ${appId}`);
63
+ }
64
+ else {
65
+ const created = await adapty.createApp(config.app.title, config.app.bundle_id, config.app.package_id);
66
+ appId = created.app_id;
67
+ if (created.sdk_key) {
68
+ logger.info(`SDK Key (save this for your mobile app): ${chalk.bold(created.sdk_key)}`);
69
+ }
70
+ }
71
+ config.app.app_id = appId;
72
+ }
73
+ logger.info(`App ID: ${appId}`);
74
+ // Step 5: Find or create access level
75
+ logger.step(5, TOTAL_STEPS, 'Setting up access level');
76
+ const levels = await adapty.listAccessLevels(appId);
77
+ let accessLevelId = '';
78
+ const existing = levels.find((l) => l.sdk_id === config.access_level.sdk_id);
79
+ if (existing) {
80
+ accessLevelId = existing.id;
81
+ logger.info(`Access level "${config.access_level.sdk_id}" already exists.`);
82
+ }
83
+ else {
84
+ accessLevelId = await adapty.createAccessLevel(appId, config.access_level.sdk_id, config.access_level.title);
85
+ }
86
+ // If we couldn't get the ID, try listing again
87
+ if (!accessLevelId) {
88
+ const refreshed = await adapty.listAccessLevels(appId);
89
+ const found = refreshed.find((l) => l.sdk_id === config.access_level.sdk_id);
90
+ if (found)
91
+ accessLevelId = found.id;
92
+ }
93
+ if (!accessLevelId) {
94
+ logger.warn('Could not determine access level ID. Products may fail to create.');
95
+ }
96
+ // Step 6: Create products
97
+ logger.step(6, TOTAL_STEPS, 'Creating products');
98
+ const productIds = [];
99
+ for (const product of config.products) {
100
+ const productId = await adapty.createProduct(appId, product, accessLevelId);
101
+ if (productId) {
102
+ product.adapty_product_id = productId;
103
+ productIds.push(productId);
104
+ }
105
+ }
106
+ // Step 7: Create paywalls
107
+ logger.step(7, TOTAL_STEPS, 'Creating paywalls');
108
+ // Build a map of product title → adapty product ID
109
+ const productIdByTitle = new Map();
110
+ for (const product of config.products) {
111
+ if (product.adapty_product_id) {
112
+ productIdByTitle.set(product.title, product.adapty_product_id);
113
+ }
114
+ }
115
+ const paywallIds = [];
116
+ for (const paywall of config.paywalls) {
117
+ if (paywall.paywall_id) {
118
+ paywallIds.push(paywall.paywall_id);
119
+ continue;
120
+ }
121
+ // Resolve product titles to IDs for this paywall
122
+ const paywallProductIds = paywall.product_titles
123
+ .map((t) => productIdByTitle.get(t))
124
+ .filter((id) => !!id);
125
+ if (paywallProductIds.length === 0) {
126
+ logger.warn(`No product IDs found for paywall "${paywall.title}". Skipping.`);
127
+ continue;
128
+ }
129
+ const id = await adapty.createPaywall(appId, paywall.title, paywallProductIds);
130
+ if (id) {
131
+ paywall.paywall_id = id;
132
+ paywallIds.push(id);
133
+ }
134
+ }
135
+ // Step 8: Create placements
136
+ logger.step(8, TOTAL_STEPS, 'Creating placements');
137
+ if (paywallIds.length > 0) {
138
+ for (let i = 0; i < config.placements.length; i++) {
139
+ const placement = config.placements[i];
140
+ // Link each placement to the corresponding paywall (or the first one if fewer paywalls than placements)
141
+ const paywallId = paywallIds[i] ?? paywallIds[0];
142
+ await adapty.createPlacement(appId, placement.title, placement.developer_id, paywallId);
143
+ }
144
+ }
145
+ else {
146
+ logger.warn('No paywall IDs available. Skipping placement creation.');
147
+ }
148
+ // Save updated config with generated IDs
149
+ await fs.writeJson(configPath, config, { spaces: 2 });
150
+ logger.info(`Config saved to ${configPath}`);
151
+ logger.done();
152
+ }
153
+ async function loadAdaptyConfig(configPath) {
154
+ const savePath = configPath ?? path.resolve(CONFIG_FILENAME);
155
+ // If config file exists, load it
156
+ if (await fs.pathExists(savePath)) {
157
+ logger.info(`Using config: ${savePath}`);
158
+ const config = await fs.readJson(savePath);
159
+ fillProductDefaults(config);
160
+ await fs.writeJson(savePath, config, { spaces: 2 });
161
+ return { config, configPath: savePath };
162
+ }
163
+ // No config found — prompt for required fields and generate one
164
+ logger.info("No config file found. Let's set up the basics.");
165
+ const config = await loadDefaultTemplate();
166
+ const userConfig = await loadConfig();
167
+ config.app.title = await promptInput(' App name: ');
168
+ const appNameLower = config.app.title.toLowerCase().replace(/\s+/g, '');
169
+ const defaultBundleId = userConfig.bundleIdPrefix
170
+ ? `${userConfig.bundleIdPrefix}.${appNameLower}`
171
+ : `com.${appNameLower}`;
172
+ config.app.bundle_id =
173
+ (await promptInput(` iOS Bundle ID (${defaultBundleId}): `)) || defaultBundleId;
174
+ config.app.package_id =
175
+ (await promptInput(` Android Package ID (${config.app.bundle_id}): `)) ||
176
+ config.app.bundle_id;
177
+ fillProductDefaults(config);
178
+ await fs.ensureDir(path.dirname(savePath));
179
+ await fs.writeJson(savePath, config, { spaces: 2 });
180
+ logger.success(`Config saved to ${savePath}`);
181
+ return { config, configPath: savePath };
182
+ }
183
+ async function loadDefaultTemplate() {
184
+ const template = getAdaptyTemplate();
185
+ const globals = await loadAdaptyDefaults();
186
+ if (!globals)
187
+ return template;
188
+ return deepMerge(template, globals);
189
+ }
190
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
191
+ function deepMerge(base, override) {
192
+ const result = { ...base };
193
+ for (const key of Object.keys(override)) {
194
+ const val = override[key];
195
+ if (val === undefined || val === '')
196
+ continue;
197
+ if (Array.isArray(val)) {
198
+ result[key] = val;
199
+ }
200
+ else if (val && typeof val === 'object') {
201
+ result[key] = deepMerge(base[key] ?? {}, val);
202
+ }
203
+ else {
204
+ result[key] = val;
205
+ }
206
+ }
207
+ return result;
208
+ }
209
+ function fillProductDefaults(config) {
210
+ const appName = config.app.title;
211
+ const appNameLower = appName.toLowerCase().replace(/\s+/g, '');
212
+ if (!appNameLower)
213
+ return;
214
+ const periodSuffix = {
215
+ weekly: 'weekly',
216
+ monthly: 'monthly',
217
+ two_months: 'twomonths',
218
+ trimonthly: 'quarterly',
219
+ semiannual: 'semiannual',
220
+ annual: 'yearly',
221
+ lifetime: 'lifetime',
222
+ };
223
+ for (const product of config.products) {
224
+ const suffix = periodSuffix[product.period] ?? product.period;
225
+ const priceTag = (product.price || '0').replace('.', '');
226
+ // iOS product ID matches App Store format: appname.premium.weekly.v1.699.v1
227
+ if (!product.ios_product_id) {
228
+ product.ios_product_id = `${appNameLower}.premium.${suffix}.v1.${priceTag}.v1`;
229
+ }
230
+ // Android product ID: appname.premium.weekly.v1
231
+ if (!product.android_product_id) {
232
+ product.android_product_id = `${appNameLower}.premium.${suffix}.v1`;
233
+ }
234
+ // Android base plan ID: autorenew-weekly-price-v1
235
+ if (!product.android_base_plan_id) {
236
+ product.android_base_plan_id = `autorenew-${suffix}-price-v1`;
237
+ }
238
+ }
239
+ }
240
+ //# sourceMappingURL=adapty-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adapty-setup.js","sourceRoot":"","sources":["../../src/commands/adapty-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ export declare function configList(): Promise<void>;
2
+ export declare function configGet(key: string): Promise<void>;
3
+ export declare function configSet(key: string, value: string): Promise<void>;
4
+ export declare function configPath(): Promise<void>;
5
+ export declare function configInit(): Promise<void>;
6
+ export declare function configAppStoreDefaults(options: {
7
+ save?: string;
8
+ init?: boolean;
9
+ }): Promise<void>;
10
+ export declare function configAdaptyDefaults(options: {
11
+ save?: string;
12
+ }): Promise<void>;