paymongo-cli 1.2.0 → 1.4.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.
Files changed (113) hide show
  1. package/.github/copilot-instructions.md +95 -0
  2. package/.github/workflows/release.yml +15 -0
  3. package/AGENTS.md +418 -0
  4. package/CHANGELOG.md +331 -185
  5. package/README.md +93 -12
  6. package/TESTING.md +235 -0
  7. package/coverage/base.css +224 -0
  8. package/coverage/block-navigation.js +87 -0
  9. package/coverage/favicon.png +0 -0
  10. package/coverage/index.html +281 -0
  11. package/coverage/lcov-report/base.css +224 -0
  12. package/coverage/lcov-report/block-navigation.js +87 -0
  13. package/coverage/lcov-report/favicon.png +0 -0
  14. package/coverage/lcov-report/index.html +281 -0
  15. package/coverage/lcov-report/prettify.css +1 -0
  16. package/coverage/lcov-report/prettify.js +2 -0
  17. package/coverage/lcov-report/sort-arrow-sprite.png +0 -0
  18. package/coverage/lcov-report/sorter.js +210 -0
  19. package/coverage/lcov.info +5053 -0
  20. package/coverage/prettify.css +1 -0
  21. package/coverage/prettify.js +2 -0
  22. package/coverage/sort-arrow-sprite.png +0 -0
  23. package/coverage/sorter.js +210 -0
  24. package/dist/.tsbuildinfo +1 -1
  25. package/dist/commands/config.d.ts +17 -0
  26. package/dist/commands/config.d.ts.map +1 -1
  27. package/dist/commands/config.js +268 -55
  28. package/dist/commands/config.js.map +1 -1
  29. package/dist/commands/dev.d.ts +13 -1
  30. package/dist/commands/dev.d.ts.map +1 -1
  31. package/dist/commands/dev.js +40 -56
  32. package/dist/commands/dev.js.map +1 -1
  33. package/dist/commands/env.d.ts +4 -0
  34. package/dist/commands/env.d.ts.map +1 -0
  35. package/dist/commands/env.js +106 -0
  36. package/dist/commands/env.js.map +1 -0
  37. package/dist/commands/generate.js +1184 -0
  38. package/dist/commands/init.d.ts +11 -0
  39. package/dist/commands/init.d.ts.map +1 -1
  40. package/dist/commands/init.js +33 -33
  41. package/dist/commands/init.js.map +1 -1
  42. package/dist/commands/login.d.ts +17 -1
  43. package/dist/commands/login.d.ts.map +1 -1
  44. package/dist/commands/login.js +2 -17
  45. package/dist/commands/login.js.map +1 -1
  46. package/dist/commands/payments.d.ts +37 -0
  47. package/dist/commands/payments.d.ts.map +1 -1
  48. package/dist/commands/payments.js +367 -32
  49. package/dist/commands/payments.js.map +1 -1
  50. package/dist/commands/team/index.d.ts.map +1 -1
  51. package/dist/commands/team/index.js +192 -95
  52. package/dist/commands/team/index.js.map +1 -1
  53. package/dist/commands/trigger.d.ts.map +1 -1
  54. package/dist/commands/trigger.js +239 -75
  55. package/dist/commands/trigger.js.map +1 -1
  56. package/dist/commands/webhooks.d.ts +19 -0
  57. package/dist/commands/webhooks.d.ts.map +1 -1
  58. package/dist/commands/webhooks.js +246 -70
  59. package/dist/commands/webhooks.js.map +1 -1
  60. package/dist/index.js +56 -32
  61. package/dist/index.js.map +1 -1
  62. package/dist/services/analytics/service.js +6 -8
  63. package/dist/services/api/client.d.ts +6 -8
  64. package/dist/services/api/client.d.ts.map +1 -1
  65. package/dist/services/api/client.js +20 -131
  66. package/dist/services/api/client.js.map +1 -1
  67. package/dist/services/api/rate-limiter.d.ts +64 -0
  68. package/dist/services/api/rate-limiter.d.ts.map +1 -0
  69. package/dist/services/api/rate-limiter.js +83 -0
  70. package/dist/services/api/rate-limiter.js.map +1 -0
  71. package/dist/services/api/undici-client.d.ts +39 -0
  72. package/dist/services/api/undici-client.d.ts.map +1 -0
  73. package/dist/services/api/undici-client.js +294 -0
  74. package/dist/services/api/undici-client.js.map +1 -0
  75. package/dist/services/config/manager.js +1 -16
  76. package/dist/services/dev/process-manager.js +0 -32
  77. package/dist/services/github/client.d.ts +41 -0
  78. package/dist/services/github/client.d.ts.map +1 -1
  79. package/dist/services/github/client.js +28 -0
  80. package/dist/services/github/client.js.map +1 -1
  81. package/dist/services/payments/simulator.d.ts +28 -0
  82. package/dist/services/payments/simulator.d.ts.map +1 -0
  83. package/dist/services/payments/simulator.js +115 -0
  84. package/dist/services/payments/simulator.js.map +1 -0
  85. package/dist/services/team/service.d.ts +44 -0
  86. package/dist/services/team/service.d.ts.map +1 -0
  87. package/dist/services/team/service.js +153 -0
  88. package/dist/services/team/service.js.map +1 -0
  89. package/dist/types/paymongo.d.ts +36 -3
  90. package/dist/types/paymongo.d.ts.map +1 -1
  91. package/dist/types/paymongo.js +0 -1
  92. package/dist/types/schemas.js +0 -8
  93. package/dist/utils/bulk.d.ts +62 -0
  94. package/dist/utils/bulk.d.ts.map +1 -0
  95. package/dist/utils/bulk.js +123 -0
  96. package/dist/utils/bulk.js.map +1 -0
  97. package/dist/utils/cache.js +4 -16
  98. package/dist/utils/constants.js +2 -13
  99. package/dist/utils/errors.d.ts.map +1 -1
  100. package/dist/utils/errors.js +22 -7
  101. package/dist/utils/errors.js.map +1 -1
  102. package/dist/utils/logger.d.ts +3 -1
  103. package/dist/utils/logger.d.ts.map +1 -1
  104. package/dist/utils/logger.js +38 -25
  105. package/dist/utils/logger.js.map +1 -1
  106. package/dist/utils/spinner.js +0 -1
  107. package/dist/utils/validator.js +0 -3
  108. package/dist/utils/webhook-store.d.ts +22 -0
  109. package/dist/utils/webhook-store.d.ts.map +1 -0
  110. package/dist/utils/webhook-store.js +57 -0
  111. package/dist/utils/webhook-store.js.map +1 -0
  112. package/package.json +74 -76
  113. package/web/index.html +0 -688
@@ -1,44 +1,186 @@
1
+ import Table from 'cli-table3';
1
2
  import { Command } from 'commander';
2
3
  import { input, checkbox } from '@inquirer/prompts';
3
4
  import chalk from 'chalk';
4
5
  import ConfigManager from '../services/config/manager.js';
5
6
  import ApiClient from '../services/api/client.js';
7
+ import { BulkOperations } from '../utils/bulk.js';
6
8
  import Spinner from '../utils/spinner.js';
7
9
  import { validateWebhookUrl, validateEventTypes } from '../utils/validator.js';
8
- const command = new Command('webhooks');
9
- command
10
- .description('Manage webhooks')
11
- .addCommand(new Command('create')
12
- .description('Create a new webhook')
13
- .option('-u, --url <url>', 'Webhook URL')
14
- .option('-e, --events <events>', 'Comma-separated events to listen for')
15
- .action(async (options) => {
10
+ export async function exportAction(options) {
16
11
  const spinner = new Spinner();
17
12
  const configManager = new ConfigManager();
18
13
  try {
19
- // Load configuration
20
14
  spinner.start('Loading configuration...');
21
15
  const config = await configManager.load();
22
16
  if (!config) {
23
17
  spinner.fail('No configuration found');
24
18
  console.log(chalk.yellow('No PayMongo configuration found.'));
25
- console.log(chalk.gray('Run \'paymongo init\' to set up your project first.'));
19
+ console.log(chalk.gray("Run 'paymongo init' to set up your project first."));
20
+ return;
21
+ }
22
+ spinner.succeed('Configuration loaded');
23
+ spinner.start('Fetching webhooks...');
24
+ const apiClient = new ApiClient({ config });
25
+ const webhooks = await apiClient.listWebhooks();
26
+ spinner.succeed(`Found ${webhooks.length} webhook${webhooks.length !== 1 ? 's' : ''}`);
27
+ if (webhooks.length === 0) {
28
+ console.log(chalk.yellow('No webhooks found to export.'));
29
+ return;
30
+ }
31
+ let filename = options.file;
32
+ if (!filename) {
33
+ filename = BulkOperations.generateFilename('webhooks', config.environment);
34
+ }
35
+ else {
36
+ filename = BulkOperations.ensureJsonExtension(filename);
37
+ }
38
+ spinner.start(`Exporting to ${filename}...`);
39
+ await BulkOperations.exportWebhooks(webhooks, filename, config.environment);
40
+ spinner.succeed('Export completed');
41
+ console.log('\n' + chalk.green('✅ Webhooks exported successfully!'));
42
+ console.log('');
43
+ console.log(`${chalk.bold('File:')} ${filename}`);
44
+ console.log(`${chalk.bold('Webhooks:')} ${webhooks.length}`);
45
+ console.log(`${chalk.bold('Environment:')} ${config.environment}`);
46
+ const statusCounts = webhooks.reduce((acc, webhook) => {
47
+ acc[webhook.attributes.status] = (acc[webhook.attributes.status] || 0) + 1;
48
+ return acc;
49
+ }, {});
50
+ console.log(`${chalk.bold('Status breakdown:')} ${Object.entries(statusCounts)
51
+ .map(([status, count]) => `${status}: ${count}`)
52
+ .join(', ')}`);
53
+ }
54
+ catch (error) {
55
+ spinner.stop();
56
+ const err = error;
57
+ console.error(chalk.red('❌ Failed to export webhooks:'), err.message);
58
+ process.exit(1);
59
+ }
60
+ }
61
+ export async function importAction(filename, options) {
62
+ const spinner = new Spinner();
63
+ const configManager = new ConfigManager();
64
+ try {
65
+ spinner.start(`Loading webhooks from ${filename}...`);
66
+ const { webhooks, metadata } = await BulkOperations.importWebhooks(filename);
67
+ spinner.succeed(`Loaded ${webhooks.length} webhooks from export`);
68
+ if (options.json) {
69
+ console.log(JSON.stringify({ webhooks, metadata }, null, 2));
70
+ return;
71
+ }
72
+ console.log('\n' + chalk.green('✅ Webhooks loaded successfully!'));
73
+ console.log('');
74
+ console.log(`${chalk.bold('Source:')} ${filename}`);
75
+ console.log(`${chalk.bold('Webhooks:')} ${webhooks.length}`);
76
+ console.log(`${chalk.bold('Exported from:')} ${metadata.environment} environment`);
77
+ console.log(`${chalk.bold('Export date:')} ${new Date(metadata.exported_at).toLocaleString()}`);
78
+ if (webhooks.length === 0) {
79
+ console.log(chalk.yellow('No webhooks found in the export file.'));
80
+ return;
81
+ }
82
+ console.log('\n' + chalk.bold('Webhooks to import:'));
83
+ console.log(chalk.gray('─'.repeat(80)));
84
+ webhooks.forEach((webhook, index) => {
85
+ const status = options.dryRun ? chalk.gray('pending') : chalk.yellow('will create');
86
+ console.log(`${(index + 1).toString().padStart(2)}. ${webhook.attributes.url}`);
87
+ console.log(` Events: ${webhook.attributes.events.join(', ')}`);
88
+ console.log(` Status: ${status}`);
89
+ console.log('');
90
+ });
91
+ if (options.dryRun) {
92
+ console.log(chalk.blue('ℹ️ Dry run mode - no webhooks were created'));
93
+ console.log(chalk.gray('Remove --dry-run flag to actually import the webhooks'));
94
+ return;
95
+ }
96
+ console.log(chalk.yellow('⚠️ This will create new webhooks in your PayMongo account'));
97
+ const { confirm } = await import('@inquirer/prompts');
98
+ const shouldImport = await confirm({
99
+ message: `Import ${webhooks.length} webhook${webhooks.length !== 1 ? 's' : ''}?`,
100
+ default: false,
101
+ });
102
+ if (!shouldImport) {
103
+ console.log(chalk.yellow('Webhook import cancelled.'));
104
+ return;
105
+ }
106
+ const config = await configManager.load();
107
+ if (!config) {
108
+ throw new Error('Configuration lost during import process');
109
+ }
110
+ const apiClient = new ApiClient({ config });
111
+ const results = [];
112
+ for (const [index, webhook] of webhooks.entries()) {
113
+ try {
114
+ spinner.start(`Creating webhook ${index + 1}/${webhooks.length}: ${webhook.attributes.url}`);
115
+ const createdWebhook = await apiClient.createWebhook(webhook.attributes.url, webhook.attributes.events);
116
+ results.push({ success: true, webhook: createdWebhook, original: webhook });
117
+ spinner.succeed(`Created webhook: ${createdWebhook.id}`);
118
+ }
119
+ catch (error) {
120
+ results.push({ success: false, error: error, original: webhook });
121
+ spinner.fail(`Failed to create webhook: ${error.message}`);
122
+ }
123
+ }
124
+ const successful = results.filter((r) => r.success).length;
125
+ const failed = results.filter((r) => !r.success).length;
126
+ console.log('\n' + chalk.bold('Import Results:'));
127
+ console.log(chalk.gray('─'.repeat(50)));
128
+ console.log(`${chalk.green('Successful:')} ${successful}`);
129
+ if (failed > 0) {
130
+ console.log(`${chalk.red('Failed:')} ${failed}`);
131
+ }
132
+ if (successful > 0) {
133
+ console.log('\n' + chalk.green('✅ Successfully created webhooks:'));
134
+ results
135
+ .filter((r) => r.success)
136
+ .forEach((r, index) => {
137
+ if (r.success && r.webhook) {
138
+ console.log(` ${index + 1}. ${r.webhook.id} - ${r.webhook.attributes.url}`);
139
+ }
140
+ });
141
+ }
142
+ if (failed > 0) {
143
+ console.log('\n' + chalk.red('❌ Failed webhooks:'));
144
+ results
145
+ .filter((r) => !r.success)
146
+ .forEach((r, index) => {
147
+ if (!r.success && r.original && r.error) {
148
+ console.log(` ${index + 1}. ${r.original.attributes.url} - ${r.error.message}`);
149
+ }
150
+ });
151
+ }
152
+ }
153
+ catch (error) {
154
+ spinner.stop();
155
+ const err = error;
156
+ console.error(chalk.red('❌ Failed to import webhooks:'), err.message);
157
+ process.exit(1);
158
+ }
159
+ }
160
+ export async function createAction(options) {
161
+ const spinner = new Spinner();
162
+ const configManager = new ConfigManager();
163
+ try {
164
+ spinner.start('Loading configuration...');
165
+ const config = await configManager.load();
166
+ if (!config) {
167
+ spinner.fail('No configuration found');
168
+ console.log(chalk.yellow('No PayMongo configuration found.'));
169
+ console.log(chalk.gray("Run 'paymongo init' to set up your project first."));
26
170
  return;
27
171
  }
28
172
  spinner.succeed('Configuration loaded');
29
173
  let answers;
30
174
  if (options.url && options.events) {
31
- // Non-interactive mode
32
175
  answers = {
33
176
  url: options.url,
34
177
  events: options.events.split(','),
35
178
  };
36
179
  }
37
180
  else {
38
- // Interactive mode
39
181
  const url = await input({
40
182
  message: 'Webhook URL:',
41
- default: options.url,
183
+ default: options.url || '',
42
184
  validate: (value) => {
43
185
  if (!value) {
44
186
  return 'Webhook URL is required';
@@ -55,8 +197,14 @@ command
55
197
  { name: 'payment.paid - Payment successful', value: 'payment.paid', checked: true },
56
198
  { name: 'payment.failed - Payment failed', value: 'payment.failed', checked: true },
57
199
  { name: 'payment.refunded - Payment refunded', value: 'payment.refunded' },
58
- { name: 'source.chargeable - Source ready for charging', value: 'source.chargeable' },
59
- { name: 'checkout_session.payment.paid - Checkout payment successful', value: 'checkout_session.payment.paid' },
200
+ {
201
+ name: 'source.chargeable - Source ready for charging',
202
+ value: 'source.chargeable',
203
+ },
204
+ {
205
+ name: 'checkout_session.payment.paid - Checkout payment successful',
206
+ value: 'checkout_session.payment.paid',
207
+ },
60
208
  { name: 'qrph.expired - QR Ph expired', value: 'qrph.expired' },
61
209
  ],
62
210
  validate: (value) => {
@@ -64,8 +212,7 @@ command
64
212
  return 'At least one event must be selected';
65
213
  }
66
214
  try {
67
- // Extract string values from checkbox choices
68
- const eventStrings = value.map(v => typeof v === 'string' ? v : String(v));
215
+ const eventStrings = value.map((v) => (typeof v === 'string' ? v : String(v)));
69
216
  validateEventTypes(eventStrings);
70
217
  return true;
71
218
  }
@@ -76,7 +223,6 @@ command
76
223
  });
77
224
  answers = { url, events };
78
225
  }
79
- // Validate inputs
80
226
  if (!validateWebhookUrl(answers.url)) {
81
227
  throw new Error('Invalid webhook URL');
82
228
  }
@@ -86,18 +232,15 @@ command
86
232
  catch {
87
233
  throw new Error('Invalid event types');
88
234
  }
89
- // Create webhook
90
235
  spinner.start('Creating webhook...');
91
236
  const apiClient = new ApiClient({ config });
92
237
  const webhook = await apiClient.createWebhook(answers.url, answers.events);
93
238
  spinner.succeed('Webhook created successfully');
94
- // Store webhook secret if available
95
239
  if (webhook.attributes?.secret) {
96
240
  config.webhookSecrets = config.webhookSecrets || {};
97
241
  config.webhookSecrets[webhook.id] = webhook.attributes.secret;
98
242
  await configManager.save(config);
99
243
  }
100
- // Display result
101
244
  console.log('\n' + chalk.green('✓ Webhook created successfully!'));
102
245
  console.log('');
103
246
  console.log(chalk.bold('ID:'), webhook.id);
@@ -131,7 +274,7 @@ command
131
274
  console.log(chalk.yellow('💡 Check:'));
132
275
  console.log(chalk.gray('• Webhook URL must be HTTPS in production'));
133
276
  console.log(chalk.gray('• Localhost URLs only work with ngrok tunnels'));
134
- console.log(chalk.gray('• URL must be accessible from PayMongo\'s servers'));
277
+ console.log(chalk.gray("• URL must be accessible from PayMongo's servers"));
135
278
  }
136
279
  else {
137
280
  console.error(chalk.red('❌ Failed to create webhook:'), err.message);
@@ -140,26 +283,20 @@ command
140
283
  }
141
284
  process.exit(1);
142
285
  }
143
- }))
144
- .addCommand(new Command('list')
145
- .description('List all webhooks')
146
- .option('-j, --json', 'Output as JSON')
147
- .option('-s, --status <status>', 'Filter by status (enabled/disabled)')
148
- .action(async (options) => {
286
+ }
287
+ export async function listAction(options) {
149
288
  const spinner = new Spinner();
150
289
  const configManager = new ConfigManager();
151
290
  try {
152
- // Load configuration
153
291
  spinner.start('Loading configuration...');
154
292
  const config = await configManager.load();
155
293
  if (!config) {
156
294
  spinner.fail('No configuration found');
157
295
  console.log(chalk.yellow('No PayMongo configuration found.'));
158
- console.log(chalk.gray('Run \'paymongo init\' to set up your project first.'));
296
+ console.log(chalk.gray("Run 'paymongo init' to set up your project first."));
159
297
  return;
160
298
  }
161
299
  spinner.succeed('Configuration loaded');
162
- // List webhooks
163
300
  spinner.start('Fetching webhooks...');
164
301
  const apiClient = new ApiClient({ config });
165
302
  const webhooks = await apiClient.listWebhooks();
@@ -169,42 +306,53 @@ command
169
306
  console.log(chalk.gray('Create one with: paymongo webhooks create'));
170
307
  return;
171
308
  }
172
- // Filter by status if specified
173
309
  let filteredWebhooks = webhooks;
174
310
  if (options.status) {
175
- filteredWebhooks = webhooks.filter(w => w.attributes.status === options.status);
311
+ filteredWebhooks = webhooks.filter((w) => w.attributes.status === options.status);
312
+ }
313
+ if (options.events) {
314
+ const eventFilter = options.events.toLowerCase();
315
+ filteredWebhooks = filteredWebhooks.filter((w) => w.attributes.events.some((event) => event.toLowerCase().includes(eventFilter)));
176
316
  }
177
317
  if (options.json) {
178
318
  console.log(JSON.stringify(filteredWebhooks, null, 2));
179
319
  return;
180
320
  }
181
- // Display table
182
- console.log('\nWebhooks (' + filteredWebhooks.length + ' total)');
183
- console.log('');
184
- console.log('┌──────────────┬─────────────────────────┬───────────┬──────────────────────┐');
185
- console.log('│ ID │ URL │ Status │ Events │');
186
- console.log('├──────────────┼─────────────────────────┼───────────┼──────────────────────┤');
187
- filteredWebhooks.forEach(webhook => {
188
- const id = webhook.id.substring(0, 12) + '...';
189
- const url = webhook.attributes.url.length > 23
190
- ? webhook.attributes.url.substring(0, 20) + '...'
321
+ console.log('\n' + chalk.bold('Webhooks'));
322
+ console.log(chalk.gray('─'.repeat(95)));
323
+ const table = new Table({
324
+ head: [chalk.bold('ID'), chalk.bold('URL'), chalk.bold('Status'), chalk.bold('Events')],
325
+ colWidths: [15, 35, 12, 25],
326
+ style: {
327
+ head: [],
328
+ border: [],
329
+ },
330
+ });
331
+ filteredWebhooks.forEach((webhook) => {
332
+ const id = webhook.id.substring(0, 12) + (webhook.id.length > 12 ? '...' : '');
333
+ const url = webhook.attributes.url.length > 30
334
+ ? webhook.attributes.url.substring(0, 27) + '...'
191
335
  : webhook.attributes.url;
192
336
  const status = webhook.attributes.status;
193
337
  const events = webhook.attributes.events.length > 1
194
338
  ? `${webhook.attributes.events[0]} +${webhook.attributes.events.length - 1} more`
195
339
  : webhook.attributes.events[0] || 'None';
196
- console.log(`│ ${id.padEnd(12)} │ ${url.padEnd(23)} │ ${status.padEnd(9)} │ ${events.padEnd(20)} │`);
340
+ table.push([
341
+ chalk.cyan(id),
342
+ chalk.yellow(url),
343
+ getStatusColor(status)(status),
344
+ chalk.white(events),
345
+ ]);
197
346
  });
198
- console.log('└──────────────┴─────────────────────────┴───────────┴──────────────────────┘');
199
- console.log('');
200
- // Check if any webhooks are ngrok tunnels and add helpful note
201
- const hasNgrokUrls = filteredWebhooks.some(w => w.attributes.url.includes('ngrok'));
347
+ console.log(table.toString());
348
+ console.log(chalk.gray(`Total: ${filteredWebhooks.length} webhooks`));
349
+ const hasNgrokUrls = filteredWebhooks.some((w) => w.attributes.url.includes('ngrok'));
202
350
  if (hasNgrokUrls) {
203
351
  console.log(chalk.yellow('ℹ️ Note: URLs containing "ngrok" are tunnels that forward to your localhost'));
204
352
  console.log(chalk.gray(' These are created by "paymongo dev" and cleaned up when the server stops.'));
205
353
  console.log('');
206
354
  }
207
- console.log(chalk.gray('Use \'paymongo webhooks show <id>\' for details'));
355
+ console.log(chalk.gray("Use 'paymongo webhooks show <id>' for details"));
208
356
  }
209
357
  catch (error) {
210
358
  spinner.stop();
@@ -228,26 +376,20 @@ command
228
376
  }
229
377
  process.exit(1);
230
378
  }
231
- }))
232
- .addCommand(new Command('delete')
233
- .description('Delete a webhook')
234
- .argument('<id>', 'Webhook ID to delete')
235
- .option('-y, --yes', 'Skip confirmation prompt')
236
- .action(async (id, options) => {
379
+ }
380
+ export async function deleteAction(id, options) {
237
381
  const spinner = new Spinner();
238
382
  const configManager = new ConfigManager();
239
383
  try {
240
- // Load configuration
241
384
  spinner.start('Loading configuration...');
242
385
  const config = await configManager.load();
243
386
  if (!config) {
244
387
  spinner.fail('No configuration found');
245
388
  console.log(chalk.yellow('No PayMongo configuration found.'));
246
- console.log(chalk.gray('Run \'paymongo init\' to set up your project first.'));
389
+ console.log(chalk.gray("Run 'paymongo init' to set up your project first."));
247
390
  return;
248
391
  }
249
392
  spinner.succeed('Configuration loaded');
250
- // Confirm deletion
251
393
  if (!options.yes) {
252
394
  const { confirm } = await import('@inquirer/prompts');
253
395
  const shouldDelete = await confirm({
@@ -259,7 +401,6 @@ command
259
401
  return;
260
402
  }
261
403
  }
262
- // Delete webhook
263
404
  spinner.start('Deleting webhook...');
264
405
  const apiClient = new ApiClient({ config });
265
406
  await apiClient.deleteWebhook(id);
@@ -287,30 +428,24 @@ command
287
428
  }
288
429
  process.exit(1);
289
430
  }
290
- }))
291
- .addCommand(new Command('show')
292
- .description('Show webhook details')
293
- .argument('<id>', 'Webhook ID to show')
294
- .action(async (id) => {
431
+ }
432
+ export async function showAction(id) {
295
433
  const spinner = new Spinner();
296
434
  const configManager = new ConfigManager();
297
435
  try {
298
- // Load configuration
299
436
  spinner.start('Loading configuration...');
300
437
  const config = await configManager.load();
301
438
  if (!config) {
302
439
  spinner.fail('No configuration found');
303
440
  console.log(chalk.yellow('No PayMongo configuration found.'));
304
- console.log(chalk.gray('Run \'paymongo init\' to set up your project first.'));
441
+ console.log(chalk.gray("Run 'paymongo init' to set up your project first."));
305
442
  return;
306
443
  }
307
444
  spinner.succeed('Configuration loaded');
308
- // Get webhook details
309
445
  spinner.start('Fetching webhook details...');
310
446
  const apiClient = new ApiClient({ config });
311
447
  const webhook = await apiClient.getWebhook(id);
312
448
  spinner.succeed('Webhook details loaded');
313
- // Display details
314
449
  console.log('\n' + chalk.bold('Webhook Details'));
315
450
  console.log('═'.repeat(50));
316
451
  console.log(chalk.bold('ID:'), webhook.id);
@@ -346,6 +481,47 @@ command
346
481
  }
347
482
  process.exit(1);
348
483
  }
349
- }));
484
+ }
485
+ const command = new Command('webhooks')
486
+ .description('Manage PayMongo webhooks')
487
+ .addCommand(new Command('export')
488
+ .description('Export webhooks to JSON file')
489
+ .option('-f, --file <file>', 'Output file name')
490
+ .action(async (options) => exportAction(options)))
491
+ .addCommand(new Command('import')
492
+ .description('Import webhooks from JSON file')
493
+ .argument('<filename>', 'JSON file to import')
494
+ .option('-d, --dry-run', 'Show what would be imported without creating')
495
+ .option('-j, --json', 'Output as JSON')
496
+ .action(async (filename, options) => importAction(filename, options)))
497
+ .addCommand(new Command('create')
498
+ .description('Create a new webhook')
499
+ .option('-u, --url <url>', 'Webhook URL')
500
+ .option('-e, --events <events>', 'Comma-separated events to listen for')
501
+ .action(async (options) => createAction(options)))
502
+ .addCommand(new Command('list')
503
+ .description('List all webhooks')
504
+ .option('-j, --json', 'Output as JSON')
505
+ .option('-s, --status <status>', 'Filter by status (enabled/disabled)')
506
+ .option('-e, --events <events>', 'Filter by event type (e.g., payment, source)')
507
+ .action(async (options) => listAction(options)))
508
+ .addCommand(new Command('delete')
509
+ .description('Delete a webhook')
510
+ .argument('<id>', 'Webhook ID to delete')
511
+ .option('-y, --yes', 'Skip confirmation prompt')
512
+ .action(async (id, options) => deleteAction(id, options)))
513
+ .addCommand(new Command('show')
514
+ .description('Show webhook details')
515
+ .argument('<id>', 'Webhook ID to show')
516
+ .action(async (id) => showAction(id)));
350
517
  export default command;
351
- //# sourceMappingURL=webhooks.js.map
518
+ function getStatusColor(status) {
519
+ switch (status) {
520
+ case 'enabled':
521
+ return chalk.green;
522
+ case 'disabled':
523
+ return chalk.red;
524
+ default:
525
+ return chalk.white;
526
+ }
527
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"webhooks.js","sourceRoot":"","sources":["../../src/commands/webhooks.ts"],"names":[],"mappings":"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"}