@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.
- package/README.md +107 -0
- package/dist/commands/api-keys.d.ts +15 -0
- package/dist/commands/api-keys.d.ts.map +1 -0
- package/dist/commands/api-keys.js +143 -0
- package/dist/commands/api-keys.js.map +1 -0
- package/dist/commands/dashboard.d.ts +3 -0
- package/dist/commands/dashboard.d.ts.map +1 -0
- package/dist/commands/dashboard.js +26 -0
- package/dist/commands/dashboard.js.map +1 -0
- package/dist/commands/deliveries.d.ts +22 -0
- package/dist/commands/deliveries.d.ts.map +1 -0
- package/dist/commands/deliveries.js +223 -0
- package/dist/commands/deliveries.js.map +1 -0
- package/dist/commands/destinations.d.ts +29 -0
- package/dist/commands/destinations.d.ts.map +1 -0
- package/dist/commands/destinations.js +232 -0
- package/dist/commands/destinations.js.map +1 -0
- package/dist/commands/events.d.ts +13 -0
- package/dist/commands/events.d.ts.map +1 -0
- package/dist/commands/events.js +192 -0
- package/dist/commands/events.js.map +1 -0
- package/dist/commands/forward.d.ts +2 -0
- package/dist/commands/forward.d.ts.map +1 -0
- package/dist/commands/forward.js +25 -0
- package/dist/commands/forward.js.map +1 -0
- package/dist/commands/login.d.ts +2 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +91 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/logout.d.ts +2 -0
- package/dist/commands/logout.d.ts.map +1 -0
- package/dist/commands/logout.js +12 -0
- package/dist/commands/logout.js.map +1 -0
- package/dist/commands/logs.d.ts +5 -0
- package/dist/commands/logs.d.ts.map +1 -0
- package/dist/commands/logs.js +43 -0
- package/dist/commands/logs.js.map +1 -0
- package/dist/commands/routes.d.ts +28 -0
- package/dist/commands/routes.d.ts.map +1 -0
- package/dist/commands/routes.js +225 -0
- package/dist/commands/routes.js.map +1 -0
- package/dist/commands/sources.d.ts +30 -0
- package/dist/commands/sources.d.ts.map +1 -0
- package/dist/commands/sources.js +256 -0
- package/dist/commands/sources.js.map +1 -0
- package/dist/commands/tunnel.d.ts +6 -0
- package/dist/commands/tunnel.d.ts.map +1 -0
- package/dist/commands/tunnel.js +150 -0
- package/dist/commands/tunnel.js.map +1 -0
- package/dist/commands/tunnels.d.ts +32 -0
- package/dist/commands/tunnels.d.ts.map +1 -0
- package/dist/commands/tunnels.js +432 -0
- package/dist/commands/tunnels.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +430 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/api.d.ts +472 -0
- package/dist/lib/api.d.ts.map +1 -0
- package/dist/lib/api.js +480 -0
- package/dist/lib/api.js.map +1 -0
- package/dist/lib/config.d.ts +31 -0
- package/dist/lib/config.d.ts.map +1 -0
- package/dist/lib/config.js +98 -0
- package/dist/lib/config.js.map +1 -0
- package/dist/lib/logger.d.ts +19 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +90 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/tunnel.d.ts +28 -0
- package/dist/lib/tunnel.d.ts.map +1 -0
- package/dist/lib/tunnel.js +197 -0
- package/dist/lib/tunnel.js.map +1 -0
- package/dist/tui/App.d.ts +2 -0
- package/dist/tui/App.d.ts.map +1 -0
- package/dist/tui/App.js +136 -0
- package/dist/tui/App.js.map +1 -0
- package/dist/tui/Dashboard.d.ts +2 -0
- package/dist/tui/Dashboard.d.ts.map +1 -0
- package/dist/tui/Dashboard.js +113 -0
- package/dist/tui/Dashboard.js.map +1 -0
- package/dist/tui/TunnelMonitor.d.ts +2 -0
- package/dist/tui/TunnelMonitor.d.ts.map +1 -0
- package/dist/tui/TunnelMonitor.js +131 -0
- package/dist/tui/TunnelMonitor.js.map +1 -0
- package/dist/tui/components/Box.d.ts +22 -0
- package/dist/tui/components/Box.d.ts.map +1 -0
- package/dist/tui/components/Box.js +27 -0
- package/dist/tui/components/Box.js.map +1 -0
- package/dist/tui/views/Analytics.d.ts +6 -0
- package/dist/tui/views/Analytics.d.ts.map +1 -0
- package/dist/tui/views/Analytics.js +104 -0
- package/dist/tui/views/Analytics.js.map +1 -0
- package/dist/tui/views/Destinations.d.ts +10 -0
- package/dist/tui/views/Destinations.d.ts.map +1 -0
- package/dist/tui/views/Destinations.js +156 -0
- package/dist/tui/views/Destinations.js.map +1 -0
- package/dist/tui/views/Events.d.ts +9 -0
- package/dist/tui/views/Events.d.ts.map +1 -0
- package/dist/tui/views/Events.js +60 -0
- package/dist/tui/views/Events.js.map +1 -0
- package/dist/tui/views/Overview.d.ts +13 -0
- package/dist/tui/views/Overview.d.ts.map +1 -0
- package/dist/tui/views/Overview.js +29 -0
- package/dist/tui/views/Overview.js.map +1 -0
- package/dist/tui/views/Sources.d.ts +10 -0
- package/dist/tui/views/Sources.d.ts.map +1 -0
- package/dist/tui/views/Sources.js +151 -0
- package/dist/tui/views/Sources.js.map +1 -0
- package/dist/tui/views/Tunnels.d.ts +10 -0
- package/dist/tui/views/Tunnels.d.ts.map +1 -0
- package/dist/tui/views/Tunnels.js +283 -0
- package/dist/tui/views/Tunnels.js.map +1 -0
- package/package.json +62 -0
package/README.md
ADDED
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
# @hookbase/cli
|
|
2
|
+
|
|
3
|
+
The official CLI for [Hookbase](https://hookbase.app) - manage webhooks, create localhost tunnels, and monitor deliveries from your terminal.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install -g @hookbase/cli
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## Quick Start
|
|
12
|
+
|
|
13
|
+
```bash
|
|
14
|
+
# Login to your account
|
|
15
|
+
hookbase login
|
|
16
|
+
|
|
17
|
+
# Start a tunnel to receive webhooks locally
|
|
18
|
+
hookbase tunnels start 3000
|
|
19
|
+
|
|
20
|
+
# Or launch the interactive dashboard
|
|
21
|
+
hookbase dashboard
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Features
|
|
25
|
+
|
|
26
|
+
- **Full API Access** - Create and manage sources, destinations, routes, and more
|
|
27
|
+
- **Localhost Tunnels** - Expose local servers to receive webhooks during development
|
|
28
|
+
- **Interactive Dashboard** - Visual TUI with keyboard navigation
|
|
29
|
+
- **Live Event Streaming** - Watch webhook events in real-time
|
|
30
|
+
- **Delivery Management** - View, debug, and replay failed deliveries
|
|
31
|
+
- **CI/CD Ready** - JSON output and environment variable support
|
|
32
|
+
|
|
33
|
+
## Commands
|
|
34
|
+
|
|
35
|
+
### Authentication
|
|
36
|
+
```bash
|
|
37
|
+
hookbase login # Authenticate with Hookbase
|
|
38
|
+
hookbase logout # Clear credentials
|
|
39
|
+
hookbase whoami # Show current user
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Resources
|
|
43
|
+
```bash
|
|
44
|
+
hookbase sources list # List webhook sources
|
|
45
|
+
hookbase sources create # Create a new source
|
|
46
|
+
|
|
47
|
+
hookbase destinations list # List destinations
|
|
48
|
+
hookbase destinations create # Create a destination
|
|
49
|
+
|
|
50
|
+
hookbase routes list # List routes
|
|
51
|
+
hookbase routes create # Create a route
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Tunnels
|
|
55
|
+
```bash
|
|
56
|
+
hookbase tunnels start 3000 # Create and connect a tunnel
|
|
57
|
+
hookbase tunnels list # List all tunnels
|
|
58
|
+
hookbase tunnels connect <id> <port> # Connect to existing tunnel
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
### Events & Deliveries
|
|
62
|
+
```bash
|
|
63
|
+
hookbase events list # List recent events
|
|
64
|
+
hookbase events follow # Stream live events
|
|
65
|
+
hookbase deliveries list # List deliveries
|
|
66
|
+
hookbase deliveries replay <id> # Replay a failed delivery
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
### API Keys
|
|
70
|
+
```bash
|
|
71
|
+
hookbase api-keys list # List API keys
|
|
72
|
+
hookbase api-keys create # Create a new API key
|
|
73
|
+
hookbase api-keys revoke <id> # Revoke an API key
|
|
74
|
+
```
|
|
75
|
+
|
|
76
|
+
### Interactive Dashboard
|
|
77
|
+
```bash
|
|
78
|
+
hookbase dashboard # Launch TUI dashboard
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Navigate with `Tab` or number keys `1-6`, use arrow keys to browse lists, `Enter` to select, and `Esc` to go back.
|
|
82
|
+
|
|
83
|
+
## Environment Variables
|
|
84
|
+
|
|
85
|
+
```bash
|
|
86
|
+
HOOKBASE_API_KEY # API key for authentication
|
|
87
|
+
HOOKBASE_API_URL # Custom API URL
|
|
88
|
+
HOOKBASE_ORG_ID # Default organization ID
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## CI/CD Usage
|
|
92
|
+
|
|
93
|
+
```bash
|
|
94
|
+
export HOOKBASE_API_KEY="whr_live_xxx"
|
|
95
|
+
hookbase sources list --json
|
|
96
|
+
hookbase deliveries bulk-replay --status failed --yes
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
## Documentation
|
|
100
|
+
|
|
101
|
+
- [CLI Commands Reference](https://docs.hookbase.app/cli/commands)
|
|
102
|
+
- [API Documentation](https://docs.hookbase.app/api/)
|
|
103
|
+
- [Tunnels Guide](https://docs.hookbase.app/guide/tunnels)
|
|
104
|
+
|
|
105
|
+
## License
|
|
106
|
+
|
|
107
|
+
MIT
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export declare function apiKeysListCommand(options: {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}): Promise<void>;
|
|
4
|
+
export declare function apiKeysCreateCommand(options: {
|
|
5
|
+
name?: string;
|
|
6
|
+
scopes?: string;
|
|
7
|
+
expires?: string;
|
|
8
|
+
yes?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function apiKeysRevokeCommand(keyId: string, options: {
|
|
12
|
+
yes?: boolean;
|
|
13
|
+
json?: boolean;
|
|
14
|
+
}): Promise<void>;
|
|
15
|
+
//# sourceMappingURL=api-keys.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.d.ts","sourceRoot":"","sources":["../../src/commands/api-keys.ts"],"names":[],"mappings":"AAaA,wBAAsB,kBAAkB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAuCnF;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE;IAClD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFhB;AAED,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,MAAM,EACb,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CA4Bf"}
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
import { input, confirm, select } from '@inquirer/prompts';
|
|
2
|
+
import * as api from '../lib/api.js';
|
|
3
|
+
import * as config from '../lib/config.js';
|
|
4
|
+
import * as logger from '../lib/logger.js';
|
|
5
|
+
function requireAuth() {
|
|
6
|
+
if (!config.isAuthenticated()) {
|
|
7
|
+
logger.error('Not logged in. Run "hookbase login" first.');
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
export async function apiKeysListCommand(options) {
|
|
13
|
+
requireAuth();
|
|
14
|
+
const spinner = logger.spinner('Fetching API keys...');
|
|
15
|
+
const result = await api.listApiKeys();
|
|
16
|
+
if (result.error) {
|
|
17
|
+
spinner.fail('Failed to fetch API keys');
|
|
18
|
+
logger.error(result.error);
|
|
19
|
+
return;
|
|
20
|
+
}
|
|
21
|
+
spinner.stop();
|
|
22
|
+
const keys = result.data?.apiKeys || [];
|
|
23
|
+
if (options.json) {
|
|
24
|
+
console.log(JSON.stringify(keys, null, 2));
|
|
25
|
+
return;
|
|
26
|
+
}
|
|
27
|
+
if (keys.length === 0) {
|
|
28
|
+
logger.info('No API keys found');
|
|
29
|
+
logger.dim('Create one with "hookbase api-keys create"');
|
|
30
|
+
return;
|
|
31
|
+
}
|
|
32
|
+
logger.table(['ID', 'Name', 'Key Prefix', 'Scopes', 'Last Used', 'Created'], keys.map(k => [
|
|
33
|
+
k.id?.slice(0, 8) + '...' || '-',
|
|
34
|
+
k.name || '-',
|
|
35
|
+
(k.key_prefix || 'whr_') + '...',
|
|
36
|
+
Array.isArray(k.scopes) ? k.scopes.join(', ') :
|
|
37
|
+
(typeof k.scopes === 'string' ? JSON.parse(k.scopes).join(', ') : 'read, write'),
|
|
38
|
+
k.last_used_at ? new Date(k.last_used_at).toLocaleDateString() : 'Never',
|
|
39
|
+
k.created_at ? new Date(k.created_at).toLocaleDateString() : '-',
|
|
40
|
+
]));
|
|
41
|
+
}
|
|
42
|
+
export async function apiKeysCreateCommand(options) {
|
|
43
|
+
requireAuth();
|
|
44
|
+
let name = options.name;
|
|
45
|
+
let scopes = options.scopes ? options.scopes.split(',').map(s => s.trim()) : undefined;
|
|
46
|
+
let expiresInDays;
|
|
47
|
+
// Interactive mode if name not provided
|
|
48
|
+
if (!name) {
|
|
49
|
+
name = await input({
|
|
50
|
+
message: 'API key name:',
|
|
51
|
+
validate: (value) => value.length > 0 || 'Name is required',
|
|
52
|
+
});
|
|
53
|
+
const scopeChoice = await select({
|
|
54
|
+
message: 'Select permissions:',
|
|
55
|
+
choices: [
|
|
56
|
+
{ name: 'Read & Write (full access)', value: 'read,write' },
|
|
57
|
+
{ name: 'Read only', value: 'read' },
|
|
58
|
+
{ name: 'Write only', value: 'write' },
|
|
59
|
+
],
|
|
60
|
+
});
|
|
61
|
+
scopes = scopeChoice.split(',');
|
|
62
|
+
const setExpiry = await confirm({
|
|
63
|
+
message: 'Set an expiration date?',
|
|
64
|
+
default: false,
|
|
65
|
+
});
|
|
66
|
+
if (setExpiry) {
|
|
67
|
+
const expiryChoice = await select({
|
|
68
|
+
message: 'Expires in:',
|
|
69
|
+
choices: [
|
|
70
|
+
{ name: '30 days', value: '30' },
|
|
71
|
+
{ name: '90 days', value: '90' },
|
|
72
|
+
{ name: '180 days', value: '180' },
|
|
73
|
+
{ name: '365 days', value: '365' },
|
|
74
|
+
],
|
|
75
|
+
});
|
|
76
|
+
expiresInDays = parseInt(expiryChoice, 10);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
else if (options.expires) {
|
|
80
|
+
expiresInDays = parseInt(options.expires, 10);
|
|
81
|
+
}
|
|
82
|
+
if (!options.yes && !options.name) {
|
|
83
|
+
const confirmed = await confirm({
|
|
84
|
+
message: `Create API key "${name}" with scopes [${scopes?.join(', ')}]?`,
|
|
85
|
+
default: true,
|
|
86
|
+
});
|
|
87
|
+
if (!confirmed) {
|
|
88
|
+
logger.info('Cancelled');
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
const spinner = logger.spinner('Creating API key...');
|
|
93
|
+
const result = await api.createApiKey(name, scopes || ['read', 'write'], expiresInDays);
|
|
94
|
+
if (result.error) {
|
|
95
|
+
spinner.fail('Failed to create API key');
|
|
96
|
+
logger.error(result.error);
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
spinner.succeed('API key created');
|
|
100
|
+
if (options.json) {
|
|
101
|
+
console.log(JSON.stringify(result.data, null, 2));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const key = result.data;
|
|
105
|
+
if (key) {
|
|
106
|
+
logger.log('');
|
|
107
|
+
logger.box('API Key Created', [
|
|
108
|
+
`Name: ${key.apiKey.name}`,
|
|
109
|
+
`Scopes: ${key.apiKey.scopes.join(', ')}`,
|
|
110
|
+
``,
|
|
111
|
+
logger.yellow('Your API key (save this - it will not be shown again):'),
|
|
112
|
+
``,
|
|
113
|
+
logger.bold(key.key),
|
|
114
|
+
].join('\n'));
|
|
115
|
+
logger.log('');
|
|
116
|
+
logger.warn('Store this key securely. You won\'t be able to see it again.');
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
export async function apiKeysRevokeCommand(keyId, options) {
|
|
120
|
+
requireAuth();
|
|
121
|
+
if (!options.yes) {
|
|
122
|
+
const confirmed = await confirm({
|
|
123
|
+
message: `Are you sure you want to revoke API key ${keyId}? This cannot be undone.`,
|
|
124
|
+
default: false,
|
|
125
|
+
});
|
|
126
|
+
if (!confirmed) {
|
|
127
|
+
logger.info('Cancelled');
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
const spinner = logger.spinner('Revoking API key...');
|
|
132
|
+
const result = await api.revokeApiKey(keyId);
|
|
133
|
+
if (result.error) {
|
|
134
|
+
spinner.fail('Failed to revoke API key');
|
|
135
|
+
logger.error(result.error);
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
spinner.succeed('API key revoked');
|
|
139
|
+
if (options.json) {
|
|
140
|
+
console.log(JSON.stringify({ success: true, keyId }, null, 2));
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
//# sourceMappingURL=api-keys.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"api-keys.js","sourceRoot":"","sources":["../../src/commands/api-keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.d.ts","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAGA,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAStD;AAED,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,IAAI,CAAC,CAef"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as config from '../lib/config.js';
|
|
2
|
+
import * as logger from '../lib/logger.js';
|
|
3
|
+
export async function dashboardCommand() {
|
|
4
|
+
if (!config.isAuthenticated()) {
|
|
5
|
+
logger.error('Not logged in. Run "hookbase login" first.');
|
|
6
|
+
process.exit(1);
|
|
7
|
+
}
|
|
8
|
+
// Dynamic import to avoid loading React when not needed
|
|
9
|
+
const { runApp } = await import('../tui/App.js');
|
|
10
|
+
await runApp();
|
|
11
|
+
}
|
|
12
|
+
export async function tunnelMonitorCommand(tunnelId, port) {
|
|
13
|
+
if (!config.isAuthenticated()) {
|
|
14
|
+
logger.error('Not logged in. Run "hookbase login" first.');
|
|
15
|
+
process.exit(1);
|
|
16
|
+
}
|
|
17
|
+
const localPort = parseInt(port, 10);
|
|
18
|
+
if (isNaN(localPort) || localPort < 1 || localPort > 65535) {
|
|
19
|
+
logger.error('Invalid port number');
|
|
20
|
+
process.exit(1);
|
|
21
|
+
}
|
|
22
|
+
// Dynamic import to avoid loading React when not needed
|
|
23
|
+
const { runTunnelMonitor } = await import('../tui/TunnelMonitor.js');
|
|
24
|
+
await runTunnelMonitor(tunnelId, localPort);
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dashboard.js","sourceRoot":"","sources":["../../src/commands/dashboard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAE3C,MAAM,CAAC,KAAK,UAAU,gBAAgB;IACpC,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wDAAwD;IACxD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IACjD,MAAM,MAAM,EAAE,CAAC;AACjB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,QAAgB,EAChB,IAAY;IAEZ,IAAI,CAAC,MAAM,CAAC,eAAe,EAAE,EAAE,CAAC;QAC9B,MAAM,CAAC,KAAK,CAAC,4CAA4C,CAAC,CAAC;QAC3D,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,MAAM,SAAS,GAAG,QAAQ,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACrC,IAAI,KAAK,CAAC,SAAS,CAAC,IAAI,SAAS,GAAG,CAAC,IAAI,SAAS,GAAG,KAAK,EAAE,CAAC;QAC3D,MAAM,CAAC,KAAK,CAAC,qBAAqB,CAAC,CAAC;QACpC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,wDAAwD;IACxD,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,MAAM,CAAC,yBAAyB,CAAC,CAAC;IACrE,MAAM,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC9C,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export declare function deliveriesListCommand(options: {
|
|
2
|
+
limit?: string;
|
|
3
|
+
event?: string;
|
|
4
|
+
route?: string;
|
|
5
|
+
destination?: string;
|
|
6
|
+
status?: string;
|
|
7
|
+
json?: boolean;
|
|
8
|
+
}): Promise<void>;
|
|
9
|
+
export declare function deliveriesGetCommand(deliveryId: string, options: {
|
|
10
|
+
json?: boolean;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
export declare function deliveriesReplayCommand(deliveryId: string, options: {
|
|
13
|
+
yes?: boolean;
|
|
14
|
+
json?: boolean;
|
|
15
|
+
}): Promise<void>;
|
|
16
|
+
export declare function deliveriesBulkReplayCommand(options: {
|
|
17
|
+
status?: string;
|
|
18
|
+
limit?: string;
|
|
19
|
+
yes?: boolean;
|
|
20
|
+
json?: boolean;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
//# sourceMappingURL=deliveries.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliveries.d.ts","sourceRoot":"","sources":["../../src/commands/deliveries.ts"],"names":[],"mappings":"AAiCA,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+ChB;AAED,wBAAsB,oBAAoB,CACxC,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAyEf;AAED,wBAAsB,uBAAuB,CAC3C,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CAoCf;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA4EhB"}
|
|
@@ -0,0 +1,223 @@
|
|
|
1
|
+
import { confirm, checkbox } from '@inquirer/prompts';
|
|
2
|
+
import * as api from '../lib/api.js';
|
|
3
|
+
import * as config from '../lib/config.js';
|
|
4
|
+
import * as logger from '../lib/logger.js';
|
|
5
|
+
function requireAuth() {
|
|
6
|
+
if (!config.isAuthenticated()) {
|
|
7
|
+
logger.error('Not logged in. Run "hookbase login" first.');
|
|
8
|
+
process.exit(1);
|
|
9
|
+
}
|
|
10
|
+
return true;
|
|
11
|
+
}
|
|
12
|
+
function formatDate(dateStr) {
|
|
13
|
+
const date = new Date(dateStr);
|
|
14
|
+
return date.toLocaleString();
|
|
15
|
+
}
|
|
16
|
+
function formatStatus(status) {
|
|
17
|
+
switch (status) {
|
|
18
|
+
case 'success':
|
|
19
|
+
return logger.green('success');
|
|
20
|
+
case 'failed':
|
|
21
|
+
return logger.red('failed');
|
|
22
|
+
case 'pending':
|
|
23
|
+
return logger.yellow('pending');
|
|
24
|
+
case 'retrying':
|
|
25
|
+
return logger.yellow('retrying');
|
|
26
|
+
default:
|
|
27
|
+
return logger.dimText(status);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
export async function deliveriesListCommand(options) {
|
|
31
|
+
requireAuth();
|
|
32
|
+
const spinner = logger.spinner('Fetching deliveries...');
|
|
33
|
+
const result = await api.getDeliveries({
|
|
34
|
+
limit: options.limit ? parseInt(options.limit, 10) : 50,
|
|
35
|
+
eventId: options.event,
|
|
36
|
+
routeId: options.route,
|
|
37
|
+
destinationId: options.destination,
|
|
38
|
+
status: options.status,
|
|
39
|
+
});
|
|
40
|
+
if (result.error) {
|
|
41
|
+
spinner.fail('Failed to fetch deliveries');
|
|
42
|
+
logger.error(result.error);
|
|
43
|
+
return;
|
|
44
|
+
}
|
|
45
|
+
spinner.stop();
|
|
46
|
+
const deliveries = result.data?.deliveries || [];
|
|
47
|
+
if (options.json) {
|
|
48
|
+
console.log(JSON.stringify(deliveries, null, 2));
|
|
49
|
+
return;
|
|
50
|
+
}
|
|
51
|
+
if (deliveries.length === 0) {
|
|
52
|
+
logger.info('No deliveries found');
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
logger.table(['ID', 'Destination', 'Status', 'Response', 'Attempts', 'Time', 'Created'], deliveries.map(d => [
|
|
56
|
+
d.id.slice(0, 8) + '...',
|
|
57
|
+
d.destination_name || d.destination_id.slice(0, 8) + '...',
|
|
58
|
+
formatStatus(d.status),
|
|
59
|
+
d.response_status ? String(d.response_status) : '-',
|
|
60
|
+
`${d.attempt_count}/${d.max_attempts}`,
|
|
61
|
+
d.response_time_ms ? `${d.response_time_ms}ms` : '-',
|
|
62
|
+
formatDate(d.created_at),
|
|
63
|
+
]));
|
|
64
|
+
logger.log('');
|
|
65
|
+
logger.dim(`Showing ${deliveries.length} of ${result.data?.total || deliveries.length} deliveries`);
|
|
66
|
+
}
|
|
67
|
+
export async function deliveriesGetCommand(deliveryId, options) {
|
|
68
|
+
requireAuth();
|
|
69
|
+
const spinner = logger.spinner('Fetching delivery...');
|
|
70
|
+
const result = await api.getDelivery(deliveryId);
|
|
71
|
+
if (result.error) {
|
|
72
|
+
spinner.fail('Failed to fetch delivery');
|
|
73
|
+
logger.error(result.error);
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
spinner.stop();
|
|
77
|
+
const delivery = result.data?.delivery;
|
|
78
|
+
if (options.json) {
|
|
79
|
+
console.log(JSON.stringify(delivery, null, 2));
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
if (!delivery) {
|
|
83
|
+
logger.error('Delivery not found');
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
logger.log('');
|
|
87
|
+
logger.log(logger.bold('Delivery Details'));
|
|
88
|
+
logger.log('');
|
|
89
|
+
logger.log(`ID: ${delivery.id}`);
|
|
90
|
+
logger.log(`Event: ${delivery.event_id}`);
|
|
91
|
+
logger.log(`Route: ${delivery.route_name || delivery.route_id}`);
|
|
92
|
+
logger.log(`Destination: ${delivery.destination_name || delivery.destination_id}`);
|
|
93
|
+
logger.log(`Status: ${formatStatus(delivery.status)}`);
|
|
94
|
+
logger.log(`Attempts: ${delivery.attempt_count} of ${delivery.max_attempts}`);
|
|
95
|
+
if (delivery.response_status) {
|
|
96
|
+
const statusColor = delivery.response_status >= 200 && delivery.response_status < 300
|
|
97
|
+
? logger.green
|
|
98
|
+
: delivery.response_status >= 400
|
|
99
|
+
? logger.red
|
|
100
|
+
: logger.yellow;
|
|
101
|
+
logger.log(`Response: ${statusColor(String(delivery.response_status))}`);
|
|
102
|
+
}
|
|
103
|
+
if (delivery.response_time_ms) {
|
|
104
|
+
logger.log(`Response Time: ${delivery.response_time_ms}ms`);
|
|
105
|
+
}
|
|
106
|
+
if (delivery.error_message) {
|
|
107
|
+
logger.log(`Error: ${logger.red(delivery.error_message)}`);
|
|
108
|
+
}
|
|
109
|
+
if (delivery.next_retry_at) {
|
|
110
|
+
logger.log(`Next Retry: ${formatDate(delivery.next_retry_at)}`);
|
|
111
|
+
}
|
|
112
|
+
logger.log(`Created: ${formatDate(delivery.created_at)}`);
|
|
113
|
+
if (delivery.completed_at) {
|
|
114
|
+
logger.log(`Completed: ${formatDate(delivery.completed_at)}`);
|
|
115
|
+
}
|
|
116
|
+
if (delivery.response_body) {
|
|
117
|
+
logger.log('');
|
|
118
|
+
logger.log(logger.bold('Response Body:'));
|
|
119
|
+
try {
|
|
120
|
+
const parsed = JSON.parse(delivery.response_body);
|
|
121
|
+
logger.log(JSON.stringify(parsed, null, 2));
|
|
122
|
+
}
|
|
123
|
+
catch {
|
|
124
|
+
logger.log(delivery.response_body);
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
export async function deliveriesReplayCommand(deliveryId, options) {
|
|
129
|
+
requireAuth();
|
|
130
|
+
if (!options.yes) {
|
|
131
|
+
const confirmed = await confirm({
|
|
132
|
+
message: `Replay delivery ${deliveryId}?`,
|
|
133
|
+
default: true,
|
|
134
|
+
});
|
|
135
|
+
if (!confirmed) {
|
|
136
|
+
logger.info('Cancelled');
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
const spinner = logger.spinner('Replaying delivery...');
|
|
141
|
+
const result = await api.replayDelivery(deliveryId);
|
|
142
|
+
if (result.error) {
|
|
143
|
+
spinner.fail('Failed to replay delivery');
|
|
144
|
+
logger.error(result.error);
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
spinner.succeed('Delivery replayed');
|
|
148
|
+
if (options.json) {
|
|
149
|
+
console.log(JSON.stringify(result.data?.delivery, null, 2));
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
const delivery = result.data?.delivery;
|
|
153
|
+
if (delivery) {
|
|
154
|
+
logger.log('');
|
|
155
|
+
logger.log(`New delivery ID: ${delivery.id}`);
|
|
156
|
+
logger.log(`Status: ${formatStatus(delivery.status)}`);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
export async function deliveriesBulkReplayCommand(options) {
|
|
160
|
+
requireAuth();
|
|
161
|
+
// First fetch failed deliveries
|
|
162
|
+
const spinner = logger.spinner('Fetching failed deliveries...');
|
|
163
|
+
const listResult = await api.getDeliveries({
|
|
164
|
+
status: options.status || 'failed',
|
|
165
|
+
limit: options.limit ? parseInt(options.limit, 10) : 50,
|
|
166
|
+
});
|
|
167
|
+
if (listResult.error) {
|
|
168
|
+
spinner.fail('Failed to fetch deliveries');
|
|
169
|
+
logger.error(listResult.error);
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
spinner.stop();
|
|
173
|
+
const deliveries = listResult.data?.deliveries || [];
|
|
174
|
+
if (deliveries.length === 0) {
|
|
175
|
+
logger.info('No failed deliveries found');
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
// Interactive selection
|
|
179
|
+
let selectedIds;
|
|
180
|
+
if (options.yes) {
|
|
181
|
+
selectedIds = deliveries.map(d => d.id);
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
selectedIds = await checkbox({
|
|
185
|
+
message: 'Select deliveries to replay:',
|
|
186
|
+
choices: deliveries.map(d => ({
|
|
187
|
+
name: `${d.id.slice(0, 8)}... - ${d.destination_name || d.destination_id.slice(0, 8)} - ${d.error_message || 'Failed'}`,
|
|
188
|
+
value: d.id,
|
|
189
|
+
checked: true,
|
|
190
|
+
})),
|
|
191
|
+
});
|
|
192
|
+
if (selectedIds.length === 0) {
|
|
193
|
+
logger.info('No deliveries selected');
|
|
194
|
+
return;
|
|
195
|
+
}
|
|
196
|
+
const confirmed = await confirm({
|
|
197
|
+
message: `Replay ${selectedIds.length} deliveries?`,
|
|
198
|
+
default: true,
|
|
199
|
+
});
|
|
200
|
+
if (!confirmed) {
|
|
201
|
+
logger.info('Cancelled');
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
const replaySpinner = logger.spinner(`Replaying ${selectedIds.length} deliveries...`);
|
|
206
|
+
const result = await api.bulkReplayDeliveries(selectedIds);
|
|
207
|
+
if (result.error) {
|
|
208
|
+
replaySpinner.fail('Failed to replay deliveries');
|
|
209
|
+
logger.error(result.error);
|
|
210
|
+
return;
|
|
211
|
+
}
|
|
212
|
+
replaySpinner.succeed('Bulk replay completed');
|
|
213
|
+
if (options.json) {
|
|
214
|
+
console.log(JSON.stringify(result.data, null, 2));
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
logger.log('');
|
|
218
|
+
logger.log(`Replayed: ${logger.green(String(result.data?.replayed || 0))}`);
|
|
219
|
+
if (result.data?.failed) {
|
|
220
|
+
logger.log(`Failed: ${logger.red(String(result.data.failed))}`);
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
//# sourceMappingURL=deliveries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deliveries.js","sourceRoot":"","sources":["../../src/commands/deliveries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
export declare function destinationsListCommand(options: {
|
|
2
|
+
json?: boolean;
|
|
3
|
+
}): Promise<void>;
|
|
4
|
+
export declare function destinationsCreateCommand(options: {
|
|
5
|
+
name?: string;
|
|
6
|
+
url?: string;
|
|
7
|
+
method?: string;
|
|
8
|
+
yes?: boolean;
|
|
9
|
+
json?: boolean;
|
|
10
|
+
}): Promise<void>;
|
|
11
|
+
export declare function destinationsGetCommand(destId: string, options: {
|
|
12
|
+
json?: boolean;
|
|
13
|
+
}): Promise<void>;
|
|
14
|
+
export declare function destinationsUpdateCommand(destId: string, options: {
|
|
15
|
+
name?: string;
|
|
16
|
+
url?: string;
|
|
17
|
+
method?: string;
|
|
18
|
+
active?: boolean;
|
|
19
|
+
inactive?: boolean;
|
|
20
|
+
json?: boolean;
|
|
21
|
+
}): Promise<void>;
|
|
22
|
+
export declare function destinationsDeleteCommand(destId: string, options: {
|
|
23
|
+
yes?: boolean;
|
|
24
|
+
json?: boolean;
|
|
25
|
+
}): Promise<void>;
|
|
26
|
+
export declare function destinationsTestCommand(destId: string, options: {
|
|
27
|
+
json?: boolean;
|
|
28
|
+
}): Promise<void>;
|
|
29
|
+
//# sourceMappingURL=destinations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"destinations.d.ts","sourceRoot":"","sources":["../../src/commands/destinations.ts"],"names":[],"mappings":"AAaA,wBAAsB,uBAAuB,CAAC,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAsCxF;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EhB;AAED,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CA4Cf;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IACP,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,GACA,OAAO,CAAC,IAAI,CAAC,CA8Bf;AAED,wBAAsB,yBAAyB,CAC7C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GACzC,OAAO,CAAC,IAAI,CAAC,CA4Bf;AAED,wBAAsB,uBAAuB,CAC3C,MAAM,EAAE,MAAM,EACd,OAAO,EAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAiCf"}
|