@profullstack/stripe-config 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.
@@ -0,0 +1,399 @@
1
+ import inquirer from 'inquirer';
2
+ import chalk from 'chalk';
3
+ import ora from 'ora';
4
+ import { ConfigManager } from '../../core/config-manager.js';
5
+ import { StripeClient } from '../../core/stripe-client.js';
6
+ /**
7
+ * Prices command - Manage Stripe prices
8
+ */
9
+ export async function pricesCommand() {
10
+ console.log(chalk.bold.blue('\n💰 Stripe Prices Management\n'));
11
+ const configManager = new ConfigManager();
12
+ const config = await configManager.loadConfig();
13
+ if (config.projects.length === 0) {
14
+ console.log(chalk.yellow('No projects configured. Run "stripeconf setup" first.'));
15
+ return;
16
+ }
17
+ // Select project
18
+ let project;
19
+ if (config.projects.length === 1) {
20
+ project = config.projects[0];
21
+ console.log(chalk.gray(`Using project: ${project.name}\n`));
22
+ }
23
+ else {
24
+ const { selectedProject } = await inquirer.prompt([
25
+ {
26
+ type: 'list',
27
+ name: 'selectedProject',
28
+ message: 'Select a project:',
29
+ choices: config.projects.map((p) => ({
30
+ name: `${p.name} (${p.environment})`,
31
+ value: p.name,
32
+ })),
33
+ },
34
+ ]);
35
+ project = await configManager.getProject(selectedProject);
36
+ }
37
+ const stripeClient = new StripeClient(project);
38
+ // Select operation
39
+ const { operation } = await inquirer.prompt([
40
+ {
41
+ type: 'list',
42
+ name: 'operation',
43
+ message: 'What would you like to do?',
44
+ choices: [
45
+ { name: 'List all prices', value: 'list' },
46
+ { name: 'View price details', value: 'get' },
47
+ { name: 'Create new price', value: 'create' },
48
+ { name: 'Update price', value: 'update' },
49
+ { name: 'Archive price', value: 'archive' },
50
+ ],
51
+ },
52
+ ]);
53
+ switch (operation) {
54
+ case 'list':
55
+ await listPrices(stripeClient);
56
+ break;
57
+ case 'get':
58
+ await getPrice(stripeClient);
59
+ break;
60
+ case 'create':
61
+ await createPrice(stripeClient, project);
62
+ break;
63
+ case 'update':
64
+ await updatePrice(stripeClient);
65
+ break;
66
+ case 'archive':
67
+ await archivePrice(stripeClient);
68
+ break;
69
+ }
70
+ }
71
+ async function listPrices(stripeClient) {
72
+ const { filterByProduct } = await inquirer.prompt([
73
+ {
74
+ type: 'confirm',
75
+ name: 'filterByProduct',
76
+ message: 'Filter by product?',
77
+ default: false,
78
+ },
79
+ ]);
80
+ let productId;
81
+ if (filterByProduct) {
82
+ const answer = await inquirer.prompt([
83
+ {
84
+ type: 'input',
85
+ name: 'productId',
86
+ message: 'Product ID:',
87
+ validate: (input) => input.trim() ? true : 'Product ID is required',
88
+ },
89
+ ]);
90
+ productId = answer.productId;
91
+ }
92
+ const spinner = ora('Fetching prices...').start();
93
+ try {
94
+ const prices = await stripeClient.listPrices(productId ? { product: productId, limit: 100 } : { limit: 100 });
95
+ spinner.stop();
96
+ if (prices.length === 0) {
97
+ console.log(chalk.yellow('\nNo prices found.'));
98
+ return;
99
+ }
100
+ console.log(chalk.bold(`\nFound ${prices.length} price(s):\n`));
101
+ prices.forEach((price) => {
102
+ const amount = price.unit_amount
103
+ ? `${(price.unit_amount / 100).toFixed(2)} ${price.currency.toUpperCase()}`
104
+ : 'Metered';
105
+ console.log(chalk.bold(` ${amount}`) + chalk.gray(` (${price.id})`));
106
+ console.log(chalk.gray(` Product: ${price.product}`));
107
+ console.log(chalk.gray(` Active: ${price.active ? 'Yes' : 'No'}`));
108
+ if (price.recurring) {
109
+ console.log(chalk.gray(` Recurring: ${price.recurring.interval_count || 1} ${price.recurring.interval}(s)`));
110
+ }
111
+ else {
112
+ console.log(chalk.gray(` Type: One-time`));
113
+ }
114
+ if (price.nickname) {
115
+ console.log(chalk.gray(` Nickname: ${price.nickname}`));
116
+ }
117
+ console.log();
118
+ });
119
+ }
120
+ catch (error) {
121
+ spinner.fail('Failed to fetch prices');
122
+ throw error;
123
+ }
124
+ }
125
+ async function getPrice(stripeClient) {
126
+ const { priceId } = await inquirer.prompt([
127
+ {
128
+ type: 'input',
129
+ name: 'priceId',
130
+ message: 'Price ID:',
131
+ validate: (input) => input.trim() ? true : 'Price ID is required',
132
+ },
133
+ ]);
134
+ const spinner = ora('Fetching price...').start();
135
+ try {
136
+ const price = await stripeClient.getPrice(priceId);
137
+ spinner.stop();
138
+ console.log(chalk.bold('\nPrice Details:\n'));
139
+ console.log(chalk.bold(' ID:'), price.id);
140
+ console.log(chalk.bold(' Product:'), price.product);
141
+ console.log(chalk.bold(' Currency:'), price.currency.toUpperCase());
142
+ if (price.unit_amount) {
143
+ console.log(chalk.bold(' Amount:'), `${(price.unit_amount / 100).toFixed(2)} ${price.currency.toUpperCase()}`);
144
+ }
145
+ console.log(chalk.bold(' Active:'), price.active ? 'Yes' : 'No');
146
+ if (price.recurring) {
147
+ console.log(chalk.bold(' Type:'), 'Recurring');
148
+ console.log(chalk.bold(' Interval:'), `${price.recurring.interval_count || 1} ${price.recurring.interval}(s)`);
149
+ if (price.recurring.usage_type) {
150
+ console.log(chalk.bold(' Usage Type:'), price.recurring.usage_type);
151
+ }
152
+ }
153
+ else {
154
+ console.log(chalk.bold(' Type:'), 'One-time');
155
+ }
156
+ if (price.nickname) {
157
+ console.log(chalk.bold(' Nickname:'), price.nickname);
158
+ }
159
+ if (price.lookup_key) {
160
+ console.log(chalk.bold(' Lookup Key:'), price.lookup_key);
161
+ }
162
+ if (price.metadata && Object.keys(price.metadata).length > 0) {
163
+ console.log(chalk.bold(' Metadata:'), JSON.stringify(price.metadata, null, 2));
164
+ }
165
+ console.log();
166
+ }
167
+ catch (error) {
168
+ spinner.fail('Failed to fetch price');
169
+ throw error;
170
+ }
171
+ }
172
+ async function createPrice(stripeClient, project) {
173
+ console.log(chalk.bold('\nCreate New Price\n'));
174
+ const answers = await inquirer.prompt([
175
+ {
176
+ type: 'input',
177
+ name: 'productId',
178
+ message: 'Product ID:',
179
+ validate: (input) => input.trim() ? true : 'Product ID is required',
180
+ },
181
+ {
182
+ type: 'input',
183
+ name: 'currency',
184
+ message: 'Currency:',
185
+ default: project.defaultCurrency,
186
+ validate: (input) => {
187
+ if (!input.trim())
188
+ return 'Currency is required';
189
+ if (input.length !== 3)
190
+ return 'Currency must be a 3-letter ISO code';
191
+ return true;
192
+ },
193
+ },
194
+ {
195
+ type: 'list',
196
+ name: 'type',
197
+ message: 'Price type:',
198
+ choices: [
199
+ { name: 'One-time', value: 'one_time' },
200
+ { name: 'Recurring', value: 'recurring' },
201
+ ],
202
+ },
203
+ ]);
204
+ let recurringConfig = undefined;
205
+ if (answers.type === 'recurring') {
206
+ recurringConfig = await inquirer.prompt([
207
+ {
208
+ type: 'list',
209
+ name: 'interval',
210
+ message: 'Billing interval:',
211
+ choices: ['day', 'week', 'month', 'year'],
212
+ },
213
+ {
214
+ type: 'number',
215
+ name: 'interval_count',
216
+ message: 'Interval count (e.g., 1=every interval, 3=every 3 intervals):',
217
+ default: 1,
218
+ validate: (input) => input > 0 ? true : 'Must be greater than 0',
219
+ },
220
+ {
221
+ type: 'list',
222
+ name: 'usage_type',
223
+ message: 'Usage type:',
224
+ choices: [
225
+ { name: 'Licensed (fixed quantity)', value: 'licensed' },
226
+ { name: 'Metered (usage-based)', value: 'metered' },
227
+ ],
228
+ default: 'licensed',
229
+ },
230
+ ]);
231
+ }
232
+ const amountAnswer = await inquirer.prompt([
233
+ {
234
+ type: 'number',
235
+ name: 'amount',
236
+ message: 'Amount (in cents):',
237
+ validate: (input) => {
238
+ if (recurringConfig?.usage_type === 'metered')
239
+ return true;
240
+ return input >= 0 ? true : 'Amount must be 0 or greater';
241
+ },
242
+ when: () => !recurringConfig || recurringConfig.usage_type !== 'metered',
243
+ },
244
+ {
245
+ type: 'input',
246
+ name: 'nickname',
247
+ message: 'Nickname (optional):',
248
+ },
249
+ {
250
+ type: 'confirm',
251
+ name: 'active',
252
+ message: 'Active?',
253
+ default: true,
254
+ },
255
+ ]);
256
+ const spinner = ora('Creating price...').start();
257
+ try {
258
+ const priceData = {
259
+ product: answers.productId,
260
+ currency: answers.currency.toLowerCase(),
261
+ active: amountAnswer.active,
262
+ };
263
+ if (amountAnswer.amount !== undefined) {
264
+ priceData.unit_amount = amountAnswer.amount;
265
+ }
266
+ if (amountAnswer.nickname) {
267
+ priceData.nickname = amountAnswer.nickname;
268
+ }
269
+ if (recurringConfig) {
270
+ priceData.recurring = {
271
+ interval: recurringConfig.interval,
272
+ interval_count: recurringConfig.interval_count,
273
+ usage_type: recurringConfig.usage_type,
274
+ };
275
+ }
276
+ const price = await stripeClient.createPrice(priceData);
277
+ spinner.succeed('Price created successfully');
278
+ console.log(chalk.green('\n✓ Price created!'));
279
+ console.log(chalk.gray(` ID: ${price.id}`));
280
+ if (price.unit_amount) {
281
+ console.log(chalk.gray(` Amount: ${(price.unit_amount / 100).toFixed(2)} ${price.currency.toUpperCase()}`));
282
+ }
283
+ console.log();
284
+ }
285
+ catch (error) {
286
+ spinner.fail('Failed to create price');
287
+ throw error;
288
+ }
289
+ }
290
+ async function updatePrice(stripeClient) {
291
+ const { priceId } = await inquirer.prompt([
292
+ {
293
+ type: 'input',
294
+ name: 'priceId',
295
+ message: 'Price ID to update:',
296
+ validate: (input) => input.trim() ? true : 'Price ID is required',
297
+ },
298
+ ]);
299
+ // Fetch current price
300
+ const spinner = ora('Fetching price...').start();
301
+ let currentPrice;
302
+ try {
303
+ currentPrice = await stripeClient.getPrice(priceId);
304
+ spinner.stop();
305
+ }
306
+ catch (error) {
307
+ spinner.fail('Failed to fetch price');
308
+ throw error;
309
+ }
310
+ console.log(chalk.bold('\nCurrent values:\n'));
311
+ console.log(chalk.gray(` Active: ${currentPrice.active}`));
312
+ console.log(chalk.gray(` Nickname: ${currentPrice.nickname || 'None'}\n`));
313
+ console.log(chalk.yellow('Note: Most price fields are immutable after creation.\n'));
314
+ const answers = await inquirer.prompt([
315
+ {
316
+ type: 'list',
317
+ name: 'active',
318
+ message: 'Active status:',
319
+ choices: [
320
+ { name: 'Keep current', value: null },
321
+ { name: 'Active', value: true },
322
+ { name: 'Inactive', value: false },
323
+ ],
324
+ },
325
+ {
326
+ type: 'input',
327
+ name: 'nickname',
328
+ message: 'New nickname (leave empty to keep current):',
329
+ },
330
+ ]);
331
+ const updates = {};
332
+ if (answers.active !== null)
333
+ updates.active = answers.active;
334
+ if (answers.nickname)
335
+ updates.nickname = answers.nickname;
336
+ if (Object.keys(updates).length === 0) {
337
+ console.log(chalk.yellow('\nNo changes made.'));
338
+ return;
339
+ }
340
+ const updateSpinner = ora('Updating price...').start();
341
+ try {
342
+ const price = await stripeClient.updatePrice(priceId, updates);
343
+ updateSpinner.succeed('Price updated successfully');
344
+ console.log(chalk.green('\n✓ Price updated!'));
345
+ console.log(chalk.gray(` ID: ${price.id}\n`));
346
+ }
347
+ catch (error) {
348
+ updateSpinner.fail('Failed to update price');
349
+ throw error;
350
+ }
351
+ }
352
+ async function archivePrice(stripeClient) {
353
+ const { priceId } = await inquirer.prompt([
354
+ {
355
+ type: 'input',
356
+ name: 'priceId',
357
+ message: 'Price ID to archive:',
358
+ validate: (input) => input.trim() ? true : 'Price ID is required',
359
+ },
360
+ ]);
361
+ // Fetch price to show details
362
+ const spinner = ora('Fetching price...').start();
363
+ let price;
364
+ try {
365
+ price = await stripeClient.getPrice(priceId);
366
+ spinner.stop();
367
+ }
368
+ catch (error) {
369
+ spinner.fail('Failed to fetch price');
370
+ throw error;
371
+ }
372
+ console.log(chalk.bold('\nPrice to archive:\n'));
373
+ console.log(chalk.gray(` ID: ${price.id}`));
374
+ console.log(chalk.gray(` Product: ${price.product}\n`));
375
+ console.log(chalk.yellow('Note: Prices cannot be deleted, only archived (set to inactive).\n'));
376
+ const { confirm } = await inquirer.prompt([
377
+ {
378
+ type: 'confirm',
379
+ name: 'confirm',
380
+ message: 'Archive this price?',
381
+ default: false,
382
+ },
383
+ ]);
384
+ if (!confirm) {
385
+ console.log(chalk.yellow('\nArchival cancelled.'));
386
+ return;
387
+ }
388
+ const archiveSpinner = ora('Archiving price...').start();
389
+ try {
390
+ await stripeClient.archivePrice(priceId);
391
+ archiveSpinner.succeed('Price archived successfully');
392
+ console.log(chalk.green('\n✓ Price archived!\n'));
393
+ }
394
+ catch (error) {
395
+ archiveSpinner.fail('Failed to archive price');
396
+ throw error;
397
+ }
398
+ }
399
+ //# sourceMappingURL=prices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prices.js","sourceRoot":"","sources":["../../../src/cli/commands/prices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Products command - Manage Stripe products
3
+ */
4
+ export declare function productsCommand(): Promise<void>;
5
+ //# sourceMappingURL=products.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"products.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/products.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,wBAAsB,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC,CAkErD"}