@hookbase/cli 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 (114) hide show
  1. package/README.md +107 -0
  2. package/dist/commands/api-keys.d.ts +15 -0
  3. package/dist/commands/api-keys.d.ts.map +1 -0
  4. package/dist/commands/api-keys.js +143 -0
  5. package/dist/commands/api-keys.js.map +1 -0
  6. package/dist/commands/dashboard.d.ts +3 -0
  7. package/dist/commands/dashboard.d.ts.map +1 -0
  8. package/dist/commands/dashboard.js +26 -0
  9. package/dist/commands/dashboard.js.map +1 -0
  10. package/dist/commands/deliveries.d.ts +22 -0
  11. package/dist/commands/deliveries.d.ts.map +1 -0
  12. package/dist/commands/deliveries.js +223 -0
  13. package/dist/commands/deliveries.js.map +1 -0
  14. package/dist/commands/destinations.d.ts +29 -0
  15. package/dist/commands/destinations.d.ts.map +1 -0
  16. package/dist/commands/destinations.js +232 -0
  17. package/dist/commands/destinations.js.map +1 -0
  18. package/dist/commands/events.d.ts +13 -0
  19. package/dist/commands/events.d.ts.map +1 -0
  20. package/dist/commands/events.js +192 -0
  21. package/dist/commands/events.js.map +1 -0
  22. package/dist/commands/forward.d.ts +2 -0
  23. package/dist/commands/forward.d.ts.map +1 -0
  24. package/dist/commands/forward.js +25 -0
  25. package/dist/commands/forward.js.map +1 -0
  26. package/dist/commands/login.d.ts +2 -0
  27. package/dist/commands/login.d.ts.map +1 -0
  28. package/dist/commands/login.js +91 -0
  29. package/dist/commands/login.js.map +1 -0
  30. package/dist/commands/logout.d.ts +2 -0
  31. package/dist/commands/logout.d.ts.map +1 -0
  32. package/dist/commands/logout.js +12 -0
  33. package/dist/commands/logout.js.map +1 -0
  34. package/dist/commands/logs.d.ts +5 -0
  35. package/dist/commands/logs.d.ts.map +1 -0
  36. package/dist/commands/logs.js +43 -0
  37. package/dist/commands/logs.js.map +1 -0
  38. package/dist/commands/routes.d.ts +28 -0
  39. package/dist/commands/routes.d.ts.map +1 -0
  40. package/dist/commands/routes.js +225 -0
  41. package/dist/commands/routes.js.map +1 -0
  42. package/dist/commands/sources.d.ts +30 -0
  43. package/dist/commands/sources.d.ts.map +1 -0
  44. package/dist/commands/sources.js +256 -0
  45. package/dist/commands/sources.js.map +1 -0
  46. package/dist/commands/tunnel.d.ts +6 -0
  47. package/dist/commands/tunnel.d.ts.map +1 -0
  48. package/dist/commands/tunnel.js +150 -0
  49. package/dist/commands/tunnel.js.map +1 -0
  50. package/dist/commands/tunnels.d.ts +32 -0
  51. package/dist/commands/tunnels.d.ts.map +1 -0
  52. package/dist/commands/tunnels.js +432 -0
  53. package/dist/commands/tunnels.js.map +1 -0
  54. package/dist/index.d.ts +3 -0
  55. package/dist/index.d.ts.map +1 -0
  56. package/dist/index.js +430 -0
  57. package/dist/index.js.map +1 -0
  58. package/dist/lib/api.d.ts +472 -0
  59. package/dist/lib/api.d.ts.map +1 -0
  60. package/dist/lib/api.js +480 -0
  61. package/dist/lib/api.js.map +1 -0
  62. package/dist/lib/config.d.ts +31 -0
  63. package/dist/lib/config.d.ts.map +1 -0
  64. package/dist/lib/config.js +98 -0
  65. package/dist/lib/config.js.map +1 -0
  66. package/dist/lib/logger.d.ts +19 -0
  67. package/dist/lib/logger.d.ts.map +1 -0
  68. package/dist/lib/logger.js +90 -0
  69. package/dist/lib/logger.js.map +1 -0
  70. package/dist/lib/tunnel.d.ts +28 -0
  71. package/dist/lib/tunnel.d.ts.map +1 -0
  72. package/dist/lib/tunnel.js +197 -0
  73. package/dist/lib/tunnel.js.map +1 -0
  74. package/dist/tui/App.d.ts +2 -0
  75. package/dist/tui/App.d.ts.map +1 -0
  76. package/dist/tui/App.js +136 -0
  77. package/dist/tui/App.js.map +1 -0
  78. package/dist/tui/Dashboard.d.ts +2 -0
  79. package/dist/tui/Dashboard.d.ts.map +1 -0
  80. package/dist/tui/Dashboard.js +113 -0
  81. package/dist/tui/Dashboard.js.map +1 -0
  82. package/dist/tui/TunnelMonitor.d.ts +2 -0
  83. package/dist/tui/TunnelMonitor.d.ts.map +1 -0
  84. package/dist/tui/TunnelMonitor.js +131 -0
  85. package/dist/tui/TunnelMonitor.js.map +1 -0
  86. package/dist/tui/components/Box.d.ts +22 -0
  87. package/dist/tui/components/Box.d.ts.map +1 -0
  88. package/dist/tui/components/Box.js +27 -0
  89. package/dist/tui/components/Box.js.map +1 -0
  90. package/dist/tui/views/Analytics.d.ts +6 -0
  91. package/dist/tui/views/Analytics.d.ts.map +1 -0
  92. package/dist/tui/views/Analytics.js +104 -0
  93. package/dist/tui/views/Analytics.js.map +1 -0
  94. package/dist/tui/views/Destinations.d.ts +10 -0
  95. package/dist/tui/views/Destinations.d.ts.map +1 -0
  96. package/dist/tui/views/Destinations.js +156 -0
  97. package/dist/tui/views/Destinations.js.map +1 -0
  98. package/dist/tui/views/Events.d.ts +9 -0
  99. package/dist/tui/views/Events.d.ts.map +1 -0
  100. package/dist/tui/views/Events.js +60 -0
  101. package/dist/tui/views/Events.js.map +1 -0
  102. package/dist/tui/views/Overview.d.ts +13 -0
  103. package/dist/tui/views/Overview.d.ts.map +1 -0
  104. package/dist/tui/views/Overview.js +29 -0
  105. package/dist/tui/views/Overview.js.map +1 -0
  106. package/dist/tui/views/Sources.d.ts +10 -0
  107. package/dist/tui/views/Sources.d.ts.map +1 -0
  108. package/dist/tui/views/Sources.js +151 -0
  109. package/dist/tui/views/Sources.js.map +1 -0
  110. package/dist/tui/views/Tunnels.d.ts +10 -0
  111. package/dist/tui/views/Tunnels.d.ts.map +1 -0
  112. package/dist/tui/views/Tunnels.js +283 -0
  113. package/dist/tui/views/Tunnels.js.map +1 -0
  114. package/package.json +62 -0
package/dist/index.js ADDED
@@ -0,0 +1,430 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import { loginCommand } from './commands/login.js';
4
+ import { logoutCommand } from './commands/logout.js';
5
+ import { sourcesListCommand, sourcesCreateCommand, sourcesGetCommand, sourcesUpdateCommand, sourcesDeleteCommand, sourcesRotateSecretCommand, } from './commands/sources.js';
6
+ import { destinationsListCommand, destinationsCreateCommand, destinationsGetCommand, destinationsUpdateCommand, destinationsDeleteCommand, destinationsTestCommand, } from './commands/destinations.js';
7
+ import { routesListCommand, routesCreateCommand, routesGetCommand, routesUpdateCommand, routesDeleteCommand, } from './commands/routes.js';
8
+ import { tunnelsListCommand, tunnelsCreateCommand, tunnelsConnectCommand, tunnelsStartCommand, tunnelsDisconnectCommand, tunnelsDeleteCommand, tunnelsStatusCommand, tunnelsGetCommand, } from './commands/tunnels.js';
9
+ import { eventsListCommand, eventsGetCommand, eventsFollowCommand, } from './commands/events.js';
10
+ import { deliveriesListCommand, deliveriesGetCommand, deliveriesReplayCommand, deliveriesBulkReplayCommand, } from './commands/deliveries.js';
11
+ import { apiKeysListCommand, apiKeysCreateCommand, apiKeysRevokeCommand, } from './commands/api-keys.js';
12
+ import { logsCommand } from './commands/logs.js';
13
+ import { forwardCommand } from './commands/forward.js';
14
+ import { dashboardCommand, tunnelMonitorCommand } from './commands/dashboard.js';
15
+ import * as config from './lib/config.js';
16
+ import * as logger from './lib/logger.js';
17
+ const program = new Command();
18
+ program
19
+ .name('hookbase')
20
+ .description('CLI tool for Hookbase - manage webhooks and localhost tunnels')
21
+ .version('1.0.0')
22
+ .option('--json', 'Output as JSON (for scripting)')
23
+ .option('-y, --yes', 'Skip confirmation prompts');
24
+ // ============================================================================
25
+ // Authentication Commands
26
+ // ============================================================================
27
+ program
28
+ .command('login')
29
+ .description('Authenticate with Hookbase')
30
+ .action(loginCommand);
31
+ program
32
+ .command('logout')
33
+ .description('Log out and clear stored credentials')
34
+ .action(logoutCommand);
35
+ program
36
+ .command('whoami')
37
+ .alias('status')
38
+ .description('Show current authentication status')
39
+ .option('--json', 'Output as JSON')
40
+ .action((options) => {
41
+ if (!config.isAuthenticated()) {
42
+ if (options.json) {
43
+ console.log(JSON.stringify({ authenticated: false }, null, 2));
44
+ }
45
+ else {
46
+ logger.info('Not logged in');
47
+ logger.dim('Run "hookbase login" to authenticate');
48
+ }
49
+ return;
50
+ }
51
+ const user = config.getCurrentUser();
52
+ const org = config.getCurrentOrg();
53
+ if (options.json) {
54
+ console.log(JSON.stringify({
55
+ authenticated: true,
56
+ user,
57
+ organization: org,
58
+ }, null, 2));
59
+ return;
60
+ }
61
+ logger.log('');
62
+ logger.log(logger.bold('Hookbase CLI Status'));
63
+ logger.log('');
64
+ logger.log(`User: ${user?.email || 'API key authentication'}`);
65
+ if (user?.displayName) {
66
+ logger.log(`Display Name: ${user.displayName}`);
67
+ }
68
+ logger.log(`Organization: ${org?.slug || 'none'}`);
69
+ logger.log('');
70
+ logger.dim(`Config: ${config.getConfigPath()}`);
71
+ });
72
+ // ============================================================================
73
+ // API Keys Commands
74
+ // ============================================================================
75
+ const apiKeys = program
76
+ .command('api-keys')
77
+ .alias('keys')
78
+ .description('Manage API keys');
79
+ apiKeys
80
+ .command('list')
81
+ .alias('ls')
82
+ .description('List all API keys')
83
+ .option('--json', 'Output as JSON')
84
+ .action(apiKeysListCommand);
85
+ apiKeys
86
+ .command('create')
87
+ .description('Create a new API key')
88
+ .option('-n, --name <name>', 'API key name')
89
+ .option('-s, --scopes <scopes>', 'Comma-separated scopes (read,write)')
90
+ .option('-e, --expires <days>', 'Expiration in days')
91
+ .option('-y, --yes', 'Skip confirmation')
92
+ .option('--json', 'Output as JSON')
93
+ .action(apiKeysCreateCommand);
94
+ apiKeys
95
+ .command('revoke <keyId>')
96
+ .alias('delete')
97
+ .description('Revoke an API key')
98
+ .option('-y, --yes', 'Skip confirmation')
99
+ .option('--json', 'Output as JSON')
100
+ .action(apiKeysRevokeCommand);
101
+ // ============================================================================
102
+ // Sources Commands
103
+ // ============================================================================
104
+ const sources = program
105
+ .command('sources')
106
+ .description('Manage webhook sources');
107
+ sources
108
+ .command('list')
109
+ .alias('ls')
110
+ .description('List all sources')
111
+ .option('--json', 'Output as JSON')
112
+ .action(sourcesListCommand);
113
+ sources
114
+ .command('create')
115
+ .description('Create a new source')
116
+ .option('-n, --name <name>', 'Source name')
117
+ .option('-s, --slug <slug>', 'Custom slug')
118
+ .option('-p, --provider <provider>', 'Provider (github, stripe, etc.)')
119
+ .option('-y, --yes', 'Skip confirmation')
120
+ .option('--json', 'Output as JSON')
121
+ .action(sourcesCreateCommand);
122
+ sources
123
+ .command('get <sourceId>')
124
+ .alias('show')
125
+ .description('Get source details')
126
+ .option('--json', 'Output as JSON')
127
+ .action(sourcesGetCommand);
128
+ sources
129
+ .command('update <sourceId>')
130
+ .description('Update a source')
131
+ .option('-n, --name <name>', 'New name')
132
+ .option('-p, --provider <provider>', 'New provider')
133
+ .option('-d, --description <description>', 'New description')
134
+ .option('--active', 'Set source as active')
135
+ .option('--inactive', 'Set source as inactive')
136
+ .option('--json', 'Output as JSON')
137
+ .action(sourcesUpdateCommand);
138
+ sources
139
+ .command('delete <sourceId>')
140
+ .alias('rm')
141
+ .description('Delete a source')
142
+ .option('-y, --yes', 'Skip confirmation')
143
+ .option('--json', 'Output as JSON')
144
+ .action(sourcesDeleteCommand);
145
+ sources
146
+ .command('rotate-secret <sourceId>')
147
+ .description('Rotate the signing secret for a source')
148
+ .option('-y, --yes', 'Skip confirmation')
149
+ .option('--json', 'Output as JSON')
150
+ .action(sourcesRotateSecretCommand);
151
+ // ============================================================================
152
+ // Destinations Commands
153
+ // ============================================================================
154
+ const destinations = program
155
+ .command('destinations')
156
+ .alias('dest')
157
+ .description('Manage webhook destinations');
158
+ destinations
159
+ .command('list')
160
+ .alias('ls')
161
+ .description('List all destinations')
162
+ .option('--json', 'Output as JSON')
163
+ .action(destinationsListCommand);
164
+ destinations
165
+ .command('create')
166
+ .description('Create a new destination')
167
+ .option('-n, --name <name>', 'Destination name')
168
+ .option('-u, --url <url>', 'Destination URL')
169
+ .option('-m, --method <method>', 'HTTP method (POST, PUT, PATCH)')
170
+ .option('-y, --yes', 'Skip confirmation')
171
+ .option('--json', 'Output as JSON')
172
+ .action(destinationsCreateCommand);
173
+ destinations
174
+ .command('get <destId>')
175
+ .alias('show')
176
+ .description('Get destination details')
177
+ .option('--json', 'Output as JSON')
178
+ .action(destinationsGetCommand);
179
+ destinations
180
+ .command('update <destId>')
181
+ .description('Update a destination')
182
+ .option('-n, --name <name>', 'New name')
183
+ .option('-u, --url <url>', 'New URL')
184
+ .option('-m, --method <method>', 'New HTTP method')
185
+ .option('--active', 'Set destination as active')
186
+ .option('--inactive', 'Set destination as inactive')
187
+ .option('--json', 'Output as JSON')
188
+ .action(destinationsUpdateCommand);
189
+ destinations
190
+ .command('delete <destId>')
191
+ .alias('rm')
192
+ .description('Delete a destination')
193
+ .option('-y, --yes', 'Skip confirmation')
194
+ .option('--json', 'Output as JSON')
195
+ .action(destinationsDeleteCommand);
196
+ destinations
197
+ .command('test <destId>')
198
+ .description('Test a destination with a sample webhook')
199
+ .option('--json', 'Output as JSON')
200
+ .action(destinationsTestCommand);
201
+ // ============================================================================
202
+ // Routes Commands
203
+ // ============================================================================
204
+ const routes = program
205
+ .command('routes')
206
+ .description('Manage webhook routes');
207
+ routes
208
+ .command('list')
209
+ .alias('ls')
210
+ .description('List all routes')
211
+ .option('--json', 'Output as JSON')
212
+ .action(routesListCommand);
213
+ routes
214
+ .command('create')
215
+ .description('Create a new route')
216
+ .option('-n, --name <name>', 'Route name')
217
+ .option('-s, --source <sourceId>', 'Source ID')
218
+ .option('-d, --destination <destId>', 'Destination ID')
219
+ .option('-p, --priority <priority>', 'Priority (higher = runs first)')
220
+ .option('-y, --yes', 'Skip confirmation')
221
+ .option('--json', 'Output as JSON')
222
+ .action(routesCreateCommand);
223
+ routes
224
+ .command('get <routeId>')
225
+ .alias('show')
226
+ .description('Get route details')
227
+ .option('--json', 'Output as JSON')
228
+ .action(routesGetCommand);
229
+ routes
230
+ .command('update <routeId>')
231
+ .description('Update a route')
232
+ .option('-n, --name <name>', 'New name')
233
+ .option('-s, --source <sourceId>', 'New source ID')
234
+ .option('-d, --destination <destId>', 'New destination ID')
235
+ .option('-p, --priority <priority>', 'New priority')
236
+ .option('--active', 'Set route as active')
237
+ .option('--inactive', 'Set route as inactive')
238
+ .option('--json', 'Output as JSON')
239
+ .action(routesUpdateCommand);
240
+ routes
241
+ .command('delete <routeId>')
242
+ .alias('rm')
243
+ .description('Delete a route')
244
+ .option('-y, --yes', 'Skip confirmation')
245
+ .option('--json', 'Output as JSON')
246
+ .action(routesDeleteCommand);
247
+ // ============================================================================
248
+ // Tunnels Commands
249
+ // ============================================================================
250
+ const tunnels = program
251
+ .command('tunnels')
252
+ .alias('tunnel')
253
+ .description('Manage localhost tunnels');
254
+ tunnels
255
+ .command('list')
256
+ .alias('ls')
257
+ .description('List all tunnels')
258
+ .option('--json', 'Output as JSON')
259
+ .action(tunnelsListCommand);
260
+ tunnels
261
+ .command('create')
262
+ .description('Create a new tunnel (without connecting)')
263
+ .option('-n, --name <name>', 'Tunnel name')
264
+ .option('-s, --subdomain <subdomain>', 'Custom subdomain (Pro plan)')
265
+ .option('-y, --yes', 'Skip confirmation')
266
+ .option('--json', 'Output as JSON')
267
+ .action(tunnelsCreateCommand);
268
+ tunnels
269
+ .command('connect <tunnelId> <port>')
270
+ .description('Connect to an existing tunnel')
271
+ .option('--json', 'Output as JSON')
272
+ .action(tunnelsConnectCommand);
273
+ tunnels
274
+ .command('start <port>')
275
+ .alias('s')
276
+ .description('Create and connect a tunnel in one step')
277
+ .option('-n, --name <name>', 'Tunnel name')
278
+ .option('-s, --subdomain <subdomain>', 'Custom subdomain (Pro plan)')
279
+ .option('--json', 'Output as JSON')
280
+ .action(tunnelsStartCommand);
281
+ tunnels
282
+ .command('get <tunnelId>')
283
+ .alias('show')
284
+ .description('Get tunnel details')
285
+ .option('--json', 'Output as JSON')
286
+ .action(tunnelsGetCommand);
287
+ tunnels
288
+ .command('status <tunnelId>')
289
+ .description('Get live tunnel status')
290
+ .option('--json', 'Output as JSON')
291
+ .action(tunnelsStatusCommand);
292
+ tunnels
293
+ .command('disconnect <tunnelId>')
294
+ .description('Disconnect a tunnel')
295
+ .option('-y, --yes', 'Skip confirmation')
296
+ .option('--json', 'Output as JSON')
297
+ .action(tunnelsDisconnectCommand);
298
+ tunnels
299
+ .command('delete <tunnelId>')
300
+ .alias('rm')
301
+ .description('Delete a tunnel')
302
+ .option('-y, --yes', 'Skip confirmation')
303
+ .option('--json', 'Output as JSON')
304
+ .action(tunnelsDeleteCommand);
305
+ // ============================================================================
306
+ // Events Commands
307
+ // ============================================================================
308
+ const events = program
309
+ .command('events')
310
+ .description('View webhook events');
311
+ events
312
+ .command('list')
313
+ .alias('ls')
314
+ .description('List recent events')
315
+ .option('-l, --limit <number>', 'Number of events to show', '50')
316
+ .option('-s, --source <sourceId>', 'Filter by source')
317
+ .option('--status <status>', 'Filter by status (delivered, failed, pending)')
318
+ .option('--json', 'Output as JSON')
319
+ .action(eventsListCommand);
320
+ events
321
+ .command('get <eventId>')
322
+ .alias('show')
323
+ .description('Get event details with payload')
324
+ .option('--json', 'Output as JSON')
325
+ .action(eventsGetCommand);
326
+ events
327
+ .command('follow')
328
+ .alias('stream')
329
+ .description('Stream live events')
330
+ .option('-s, --source <sourceId>', 'Filter by source')
331
+ .action(eventsFollowCommand);
332
+ // ============================================================================
333
+ // Deliveries Commands
334
+ // ============================================================================
335
+ const deliveries = program
336
+ .command('deliveries')
337
+ .description('View and manage webhook deliveries');
338
+ deliveries
339
+ .command('list')
340
+ .alias('ls')
341
+ .description('List deliveries')
342
+ .option('-l, --limit <number>', 'Number of deliveries to show', '50')
343
+ .option('-e, --event <eventId>', 'Filter by event')
344
+ .option('-r, --route <routeId>', 'Filter by route')
345
+ .option('-d, --destination <destId>', 'Filter by destination')
346
+ .option('--status <status>', 'Filter by status (success, failed, pending, retrying)')
347
+ .option('--json', 'Output as JSON')
348
+ .action(deliveriesListCommand);
349
+ deliveries
350
+ .command('get <deliveryId>')
351
+ .alias('show')
352
+ .description('Get delivery details')
353
+ .option('--json', 'Output as JSON')
354
+ .action(deliveriesGetCommand);
355
+ deliveries
356
+ .command('replay <deliveryId>')
357
+ .description('Replay a failed delivery')
358
+ .option('-y, --yes', 'Skip confirmation')
359
+ .option('--json', 'Output as JSON')
360
+ .action(deliveriesReplayCommand);
361
+ deliveries
362
+ .command('bulk-replay')
363
+ .description('Replay multiple failed deliveries')
364
+ .option('--status <status>', 'Filter by status', 'failed')
365
+ .option('-l, --limit <number>', 'Max deliveries to replay', '50')
366
+ .option('-y, --yes', 'Skip confirmation (replay all)')
367
+ .option('--json', 'Output as JSON')
368
+ .action(deliveriesBulkReplayCommand);
369
+ // ============================================================================
370
+ // TUI Commands
371
+ // ============================================================================
372
+ program
373
+ .command('dashboard')
374
+ .alias('dash')
375
+ .description('Launch interactive dashboard (TUI)')
376
+ .action(dashboardCommand);
377
+ tunnels
378
+ .command('monitor <tunnelId> <port>')
379
+ .description('Launch tunnel monitor TUI')
380
+ .action(tunnelMonitorCommand);
381
+ // ============================================================================
382
+ // Convenience Commands
383
+ // ============================================================================
384
+ // Logs command (alias for events)
385
+ program
386
+ .command('logs')
387
+ .description('View recent webhook events (alias for events list)')
388
+ .option('-l, --limit <number>', 'Number of events to show', '50')
389
+ .option('-f, --follow', 'Follow live events')
390
+ .action(logsCommand);
391
+ // Forward command
392
+ program
393
+ .command('forward <url>')
394
+ .description('Quick forward webhooks to a URL')
395
+ .action(forwardCommand);
396
+ // ============================================================================
397
+ // Configuration Commands
398
+ // ============================================================================
399
+ program
400
+ .command('config')
401
+ .description('Show configuration')
402
+ .option('--json', 'Output as JSON')
403
+ .option('--path', 'Show config file path only')
404
+ .action((options) => {
405
+ if (options.path) {
406
+ console.log(config.getConfigPath());
407
+ return;
408
+ }
409
+ if (options.json) {
410
+ console.log(JSON.stringify(config.getAllConfig(), null, 2));
411
+ return;
412
+ }
413
+ logger.log('');
414
+ logger.log(logger.bold('Configuration'));
415
+ logger.log('');
416
+ logger.log(`Config file: ${config.getConfigPath()}`);
417
+ logger.log(`API URL: ${config.getApiUrl()}`);
418
+ logger.log(`Auth Token: ${config.getAuthToken() ? '***' : 'Not set'}`);
419
+ logger.log(`Organization: ${config.getCurrentOrg()?.slug || 'Not set'}`);
420
+ logger.log('');
421
+ logger.log(logger.bold('Environment Variables'));
422
+ logger.log('');
423
+ logger.log(`HOOKBASE_API_KEY: ${process.env.HOOKBASE_API_KEY ? 'Set' : 'Not set'}`);
424
+ logger.log(`HOOKBASE_API_URL: ${process.env.HOOKBASE_API_URL || 'Not set'}`);
425
+ logger.log(`HOOKBASE_ORG_ID: ${process.env.HOOKBASE_ORG_ID || 'Not set'}`);
426
+ logger.log(`HOOKBASE_DEBUG: ${process.env.HOOKBASE_DEBUG || 'Not set'}`);
427
+ });
428
+ // Parse arguments
429
+ program.parse();
430
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}