storeconfig 0.0.1

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.
package/README.md ADDED
@@ -0,0 +1,292 @@
1
+ # Store Config CLI
2
+
3
+ A powerful command-line tool for managing apps on **App Store Connect**. Manage **in-app purchases**, **subscriptions**, **pricing**, **localizations**, **metadata**, **availability**, and more. Sync your app configurations from local JSON files to App Store Connect - the smart way. **No more manual work**.
4
+
5
+ [![npm version](https://badge.fury.io/js/storeconfig.svg)](https://badge.fury.io/js/storeconfig)
6
+
7
+ ## 🚀 Quick Start
8
+
9
+ ```bash
10
+ # Install globally
11
+ npm install -g storeconfig
12
+
13
+ # Or use with npx
14
+ npx storeconfig --help
15
+ ```
16
+
17
+ ## 📖 Documentation
18
+
19
+ For detailed documentation, visit [storeconfig.com/docs](https://storeconfig.com/docs)
20
+
21
+ ## ✨ Features
22
+
23
+ - **😌 Easy to Use** - Prepare App Store Connect for your app in minutes instead of hours. What normally takes 2+ hours of manual work is now done in minutes.
24
+ - **⚡️ Quick App Duplication** - Copy App Store Connect data from an existing app to a new app in minutes.
25
+ - **📄 Configuration as Code** - Define your app structure in version-controlled JSON files.
26
+ - **🤖 AI-Powered Editing** - Use any AI tool to modify your JSON configuration for app descriptions, content updates, and more.
27
+ - **🌍 Multi-Language Support** - Easily manage localized content across all supported territories.
28
+ - **📊 Bulk Operations** - Make changes across multiple products, subscriptions, or territories at once.
29
+ - **🔄 Bidirectional Sync** - Fetch current state of your app and apply changes to App Store Connect.
30
+ - **💰 Interactive Pricing** - Set prices across territories based on Purchasing Power Parity (PPP) for fair pricing to increase revenue. Also supports Apple's standard pricing tiers.
31
+
32
+ ## 🛠 Installation
33
+
34
+ ### Global Installation
35
+
36
+ ```bash
37
+ npm install -g storeconfig
38
+ ```
39
+
40
+ ### Local Installation
41
+
42
+ ```bash
43
+ npm install storeconfig
44
+ npx storeconfig --help
45
+ ```
46
+
47
+ ## 🔧 Setup
48
+
49
+ ### 1. Sign Up & Get Secret Key
50
+
51
+ First, sign up at [storeconfig.com](https://storeconfig.com) to get your Secret Key.
52
+
53
+ ### 2. Authentication
54
+
55
+ Set up your App Store Connect API credentials:
56
+
57
+ ```bash
58
+ # Configure StoreConfig with the StoreConfig Secret Key
59
+ storeconfig configure
60
+
61
+ # Add Apple credentials
62
+ # See below for how to get the key and IDs.
63
+ storeconfig apple \
64
+ --issuer-id YOUR_ISSUER_ID \
65
+ --key-id YOUR_KEY_ID \
66
+ --key-path /path/to/your/AuthKey_XXXXX.p8
67
+ ```
68
+
69
+ #### Get App Store Connect Key and IDs
70
+
71
+ This is required for store config to manage your apps on App Store Connect.
72
+
73
+ 1. **Open App Store Connect API Settings**
74
+
75
+ - Go to [https://appstoreconnect.apple.com/access/integrations/api](https://appstoreconnect.apple.com/access/integrations/api)
76
+ - Make sure the correct team is selected on top right corner of the page
77
+
78
+ 2. **Create a New Team Key**
79
+
80
+ - Click the "Plus" button to create a new `Team Key` (Not Individual Key)
81
+ - Choose a descriptive name (e.g., "StoreConfig") to easily identify it later
82
+
83
+ 3. **Set Required Permissions**
84
+
85
+ - Select **App Manager Access** - this is required to manage prices and other app configurations
86
+
87
+ 4. **Download and Copy Credentials**
88
+ - Download the `.p8` file. This is the `--key-path` for the `apple` command.
89
+ - **Key ID** is the `--key-id` for the `apple` command.
90
+ - **Issuer ID** is the `--issuer-id` for the `apple` command.
91
+
92
+ ## 📋 Commands
93
+
94
+ #### `fetch`
95
+
96
+ Fetch current app configuration from App Store Connect. Easiest way to get started. Fetch the app you want to manage or fetch another app to use as a template for your new app.
97
+
98
+ ```bash
99
+ # Show all your apps to select from (saves to storeconfig.json by default)
100
+ storeconfig fetch
101
+
102
+ # Fetch specific app by ID
103
+ storeconfig fetch --id 1234567890
104
+ ```
105
+
106
+ #### `apply`
107
+
108
+ Apply changes from JSON file to App Store Connect after making changes on it. It will preview the changes and ask for approval before applying them.
109
+
110
+ ```bash
111
+ # Apply changes (uses storeconfig.json by default)
112
+ storeconfig apply
113
+ ```
114
+
115
+ #### `set-price`
116
+
117
+ Set prices for your app, in-app purchases, and subscriptions interactively. This updates pricing only in your configuration file; changes won't be applied to App Store Connect until you run the `apply` command.
118
+
119
+ ```bash
120
+ # Set prices (uses storeconfig.json by default)
121
+ storeconfig set-price
122
+ ```
123
+
124
+ #### `compare-price`
125
+
126
+ Compare prices across territories in USD. Useful to see how your pricing compares to other territories.
127
+
128
+ ```bash
129
+ # Compare prices (uses storeconfig.json and outputs to compare-price.csv by default)
130
+ storeconfig compare-price
131
+ ```
132
+
133
+ #### `example`
134
+
135
+ Generate example JSON files for different data types. Useful to get started or to see how to structure your JSON file.
136
+
137
+ ```bash
138
+ # Interactive selection of example type
139
+ storeconfig example
140
+
141
+ # Generate minimal app example
142
+ storeconfig example --type minimal
143
+
144
+ # Generate full app example
145
+ storeconfig example --type full
146
+
147
+ # Generate subscription example
148
+ storeconfig example --type subscription
149
+
150
+ # Generate in-app purchase example
151
+ storeconfig example --type iap
152
+ ```
153
+
154
+ ## 📁 Example JSON Structure
155
+
156
+ ```json
157
+ {
158
+ "schemaVersion": "1.0.0",
159
+ "appId": "1234567890",
160
+ "versionString": "2.1.17",
161
+ "pricing": {
162
+ "baseTerritory": "USA",
163
+ "prices": [
164
+ {
165
+ "price": "0",
166
+ "territory": "USA"
167
+ }
168
+ ]
169
+ },
170
+ "availableTerritories": "worldwide",
171
+ "inAppPurchases": [
172
+ {
173
+ "productId": "com.mycompany.myapp.premium",
174
+ "type": "NON_CONSUMABLE",
175
+ "referenceName": "Premium",
176
+ "familySharable": false,
177
+ "pricing": {
178
+ "baseTerritory": "USA",
179
+ "prices": [
180
+ {
181
+ "price": "49.99",
182
+ "territory": "USA"
183
+ }
184
+ ]
185
+ },
186
+ "availability": {
187
+ "availableInNewTerritories": true,
188
+ "availableTerritories": "worldwide"
189
+ },
190
+ "localizations": [
191
+ {
192
+ "locale": "en-US",
193
+ "name": "Premium Upgrade",
194
+ "description": "Unlock all premium features"
195
+ }
196
+ ]
197
+ }
198
+ ],
199
+ "primaryLocale": "en-US",
200
+ "localizations": [
201
+ {
202
+ "locale": "en-US",
203
+ "name": "My Awesome App",
204
+ "subtitle": "The best app ever",
205
+ "description": "The best app ever in the whole world",
206
+ "keywords": "best,app,ever",
207
+ "promotionalText": "The best app ever in the whole world",
208
+ "whatsNew": "Bug fixes and improvements"
209
+ }
210
+ ]
211
+ }
212
+ ```
213
+
214
+ ## 🧰 AI Integration - IDE Support - JSON Schema
215
+
216
+ StoreConfig provides a JSON Schema that enhances the development experience by offering validation, autocomplete, and IntelliSense support in your favorite IDE, while also improving results with AI tools.
217
+
218
+ ### AI Integration
219
+
220
+ When using AI tools to modify your StoreConfig JSON files, provide the schema URL for more accurate and consistent results:
221
+
222
+ **JSON Schema URL:** `https://storeconfig.com/storeconfig-schema.json`
223
+
224
+ ### VSCode Setup
225
+
226
+ 1. **Open VSCode Settings** (Cmd/Ctrl + ,)
227
+ 2. **Search for "json schema"**
228
+ 3. **Ensure Schema Download is enabled:**
229
+ 4. **Click "Edit in settings.json"**
230
+ 5. **Add the following configuration:**
231
+
232
+ ```json
233
+ // root settings.json
234
+ {
235
+ // Other settings (if any)...
236
+ "json.schemas": [
237
+ // Other schemas (if any)...
238
+ {
239
+ "fileMatch": ["*storeconfig*.json"],
240
+ "url": "https://storeconfig.com/storeconfig-schema.json"
241
+ }
242
+ ]
243
+ }
244
+ ```
245
+
246
+ > **Note:** You can add this configuration to either:
247
+ >
248
+ > - **User Settings** (applies to all your projects)
249
+ > - **Workspace Settings** (applies only to the current project)
250
+
251
+ ### Benefits
252
+
253
+ - ✅ **Real-time validation** - Catch errors as you type
254
+ - ✅ **Autocomplete** - Get suggestions for properties and values
255
+ - ✅ **Documentation** - Hover over properties to see descriptions
256
+ - ✅ **Type safety** - Ensure your JSON structure is correct
257
+
258
+ ### Schema URL
259
+
260
+ The JSON Schema is available at: [https://storeconfig.com/storeconfig-schema.json](https://storeconfig.com/storeconfig-schema.json)
261
+
262
+ ### Tool Limitations
263
+
264
+ Due to current App Store Connect API restrictions, some features are not yet available in the CLI. As soon as these capabilities are supported by the API, we will update the CLI accordingly.
265
+
266
+ - **Creating a New App**: New apps can only be created via the App Store Connect website.
267
+ - **App Privacy**: App Privacy data can only be created or updated through the App Store Connect website. This process is repetitive, and we plan to add support once the API allows it.
268
+ - **State Management**: Submitting apps, in-app purchases, and subscriptions is not supported. These actions are usually performed as a final step and are not repetitive or particularly difficult to do manually.
269
+ - **Age Rating**: Setting age ratings for apps is not currently supported.
270
+ - **Start and End Dates**: Setting start and end dates for in-app purchases and subscriptions is not supported.
271
+ - **Promo Offers**: Promo offers for subscriptions are not supported.
272
+ - **Billing Grace Period**: Billing grace period for subscriptions is not supported.
273
+
274
+ ### Planned Features
275
+
276
+ - **App Category**: Support for setting app categories will be added soon.
277
+ - **Content Rights**: Support for managing content rights will be added soon.
278
+ - **iOS Platform**: Currently, only the iOS platform is supported. We plan to add support for additional platforms in the future.
279
+
280
+ ### Security
281
+
282
+ - StoreConfig Secret Keys are stored in your local machine
283
+ - Apple credentials and key are securely sent and stored on our servers for app management purposes. You can revoke access at any time through Apple or contact us to delete your user data and credentials.
284
+
285
+ ## Support
286
+
287
+ - 📚 [Documentation](https://storeconfig.com/docs)
288
+ - 📄 [Schemas Documentation](https://storeconfig.com/schemas)
289
+ - 📄 [JSON Schema](https://storeconfig.com/storeconfig-schema.json)
290
+ - 🐛 [Report Issues](https://github.com/semihcihan/storeconfig/issues)
291
+
292
+ This CLI is proprietary software. Usage requires a valid subscription and Secret Key from [StoreConfig](https://storeconfig.com).