@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
@@ -0,0 +1,472 @@
1
+ interface ApiResponse<T> {
2
+ data?: T;
3
+ error?: string;
4
+ status: number;
5
+ }
6
+ export interface VerifyApiKeyResponse {
7
+ user: {
8
+ id: string;
9
+ email: string;
10
+ displayName: string;
11
+ };
12
+ organizations: Array<{
13
+ id: string;
14
+ name: string;
15
+ slug: string;
16
+ plan: string;
17
+ }>;
18
+ }
19
+ export declare function verifyApiKey(apiKey: string): Promise<ApiResponse<VerifyApiKeyResponse>>;
20
+ export interface Organization {
21
+ id: string;
22
+ name: string;
23
+ slug: string;
24
+ plan: string;
25
+ }
26
+ export declare function getOrganizations(): Promise<ApiResponse<{
27
+ organizations: Organization[];
28
+ }>>;
29
+ export declare function getOrganization(orgId: string): Promise<ApiResponse<{
30
+ organization: Organization;
31
+ }>>;
32
+ export interface ApiKey {
33
+ id: string;
34
+ name: string;
35
+ key_prefix: string;
36
+ scopes: string[];
37
+ last_used_at: string | null;
38
+ created_at: string;
39
+ expires_at: string | null;
40
+ }
41
+ export interface CreateApiKeyResponse {
42
+ apiKey: ApiKey;
43
+ key: string;
44
+ }
45
+ export declare function listApiKeys(): Promise<ApiResponse<{
46
+ apiKeys: ApiKey[];
47
+ }>>;
48
+ export declare function createApiKey(name: string, scopes?: string[], expiresInDays?: number): Promise<ApiResponse<CreateApiKeyResponse>>;
49
+ export declare function revokeApiKey(keyId: string): Promise<ApiResponse<{
50
+ success: boolean;
51
+ }>>;
52
+ export interface Source {
53
+ id: string;
54
+ name: string;
55
+ slug: string;
56
+ provider: string | null;
57
+ description?: string;
58
+ signing_secret?: string;
59
+ reject_invalid_signatures?: boolean;
60
+ rate_limit_per_minute?: number;
61
+ isActive?: boolean;
62
+ is_active?: number;
63
+ eventCount?: number;
64
+ event_count?: number;
65
+ routeCount?: number;
66
+ route_count?: number;
67
+ created_at?: string;
68
+ }
69
+ export declare function getSources(): Promise<ApiResponse<{
70
+ sources: Source[];
71
+ }>>;
72
+ export declare function getSource(sourceId: string): Promise<ApiResponse<{
73
+ source: Source;
74
+ }>>;
75
+ export declare function createSource(name: string, slug: string, provider?: string, options?: {
76
+ description?: string;
77
+ rejectInvalidSignatures?: boolean;
78
+ rateLimitPerMinute?: number;
79
+ }): Promise<ApiResponse<{
80
+ source: Source;
81
+ }>>;
82
+ export declare function updateSource(sourceId: string, data: {
83
+ name?: string;
84
+ provider?: string;
85
+ description?: string;
86
+ isActive?: boolean;
87
+ rejectInvalidSignatures?: boolean;
88
+ rateLimitPerMinute?: number;
89
+ }): Promise<ApiResponse<{
90
+ source: Source;
91
+ }>>;
92
+ export declare function deleteSource(sourceId: string): Promise<ApiResponse<{
93
+ success: boolean;
94
+ }>>;
95
+ export declare function rotateSourceSecret(sourceId: string): Promise<ApiResponse<{
96
+ source: Source;
97
+ signingSecret: string;
98
+ }>>;
99
+ export interface Destination {
100
+ id: string;
101
+ name: string;
102
+ slug: string;
103
+ url: string;
104
+ method: string;
105
+ headers?: Record<string, string>;
106
+ auth_type: 'none' | 'basic' | 'bearer' | 'api_key' | 'custom_header';
107
+ auth_config?: Record<string, string>;
108
+ timeout_ms?: number;
109
+ rate_limit_per_minute?: number;
110
+ mock_mode?: boolean;
111
+ is_active: number;
112
+ delivery_count?: number;
113
+ success_count?: number;
114
+ failure_count?: number;
115
+ created_at?: string;
116
+ }
117
+ export declare function getDestinations(): Promise<ApiResponse<{
118
+ destinations: Destination[];
119
+ }>>;
120
+ export declare function getDestination(destId: string): Promise<ApiResponse<{
121
+ destination: Destination;
122
+ }>>;
123
+ export declare function createDestination(data: {
124
+ name: string;
125
+ slug?: string;
126
+ url: string;
127
+ method?: string;
128
+ headers?: Record<string, string>;
129
+ authType?: 'none' | 'basic' | 'bearer' | 'api_key' | 'custom_header';
130
+ authConfig?: Record<string, string>;
131
+ timeoutMs?: number;
132
+ rateLimitPerMinute?: number;
133
+ mockMode?: boolean;
134
+ }): Promise<ApiResponse<{
135
+ destination: Destination;
136
+ }>>;
137
+ export declare function updateDestination(destId: string, data: {
138
+ name?: string;
139
+ url?: string;
140
+ method?: string;
141
+ headers?: Record<string, string>;
142
+ authType?: string;
143
+ authConfig?: Record<string, string>;
144
+ timeoutMs?: number;
145
+ rateLimitPerMinute?: number;
146
+ mockMode?: boolean;
147
+ isActive?: boolean;
148
+ }): Promise<ApiResponse<{
149
+ destination: Destination;
150
+ }>>;
151
+ export declare function deleteDestination(destId: string): Promise<ApiResponse<{
152
+ success: boolean;
153
+ }>>;
154
+ export declare function testDestination(destId: string): Promise<ApiResponse<{
155
+ success: boolean;
156
+ statusCode: number;
157
+ responseTime: number;
158
+ responseBody?: string;
159
+ error?: string;
160
+ }>>;
161
+ export interface Route {
162
+ id: string;
163
+ name: string;
164
+ source_id: string;
165
+ destination_id: string;
166
+ source_name?: string;
167
+ destination_name?: string;
168
+ filter_id?: string;
169
+ transform_id?: string;
170
+ schema_id?: string;
171
+ priority: number;
172
+ is_active: number;
173
+ delivery_count?: number;
174
+ created_at?: string;
175
+ }
176
+ export interface FilterCondition {
177
+ field: string;
178
+ operator: 'equals' | 'not_equals' | 'contains' | 'starts_with' | 'ends_with' | 'exists' | 'not_exists' | 'greater_than' | 'less_than' | 'regex';
179
+ value?: string;
180
+ }
181
+ export declare function getRoutes(): Promise<ApiResponse<{
182
+ routes: Route[];
183
+ }>>;
184
+ export declare function getRoute(routeId: string): Promise<ApiResponse<{
185
+ route: Route;
186
+ }>>;
187
+ export declare function createRoute(data: {
188
+ name: string;
189
+ sourceId: string;
190
+ destinationId: string;
191
+ filterId?: string;
192
+ filterConditions?: {
193
+ logic: 'AND' | 'OR';
194
+ conditions: FilterCondition[];
195
+ };
196
+ transformId?: string;
197
+ schemaId?: string;
198
+ priority?: number;
199
+ isActive?: boolean;
200
+ }): Promise<ApiResponse<{
201
+ route: Route;
202
+ }>>;
203
+ export declare function updateRoute(routeId: string, data: {
204
+ name?: string;
205
+ sourceId?: string;
206
+ destinationId?: string;
207
+ filterId?: string;
208
+ filterConditions?: {
209
+ logic: 'AND' | 'OR';
210
+ conditions: FilterCondition[];
211
+ };
212
+ transformId?: string;
213
+ schemaId?: string;
214
+ priority?: number;
215
+ isActive?: boolean;
216
+ }): Promise<ApiResponse<{
217
+ route: Route;
218
+ }>>;
219
+ export declare function deleteRoute(routeId: string): Promise<ApiResponse<{
220
+ success: boolean;
221
+ }>>;
222
+ export interface Tunnel {
223
+ id: string;
224
+ name: string;
225
+ subdomain: string;
226
+ status: 'connected' | 'disconnected' | 'error';
227
+ auth_token?: string;
228
+ total_requests: number;
229
+ last_connected_at: string | null;
230
+ created_at?: string;
231
+ }
232
+ export interface CreateTunnelResponse {
233
+ tunnel: Tunnel;
234
+ tunnelUrl: string;
235
+ wsUrl: string;
236
+ }
237
+ export declare function getTunnels(): Promise<ApiResponse<{
238
+ tunnels: Tunnel[];
239
+ }>>;
240
+ export declare function getTunnel(tunnelId: string): Promise<ApiResponse<{
241
+ tunnel: Tunnel;
242
+ }>>;
243
+ export declare function createTunnel(name: string, subdomain?: string): Promise<ApiResponse<CreateTunnelResponse>>;
244
+ export declare function updateTunnel(tunnelId: string, data: {
245
+ name?: string;
246
+ }): Promise<ApiResponse<{
247
+ tunnel: Tunnel;
248
+ }>>;
249
+ export declare function deleteTunnel(tunnelId: string): Promise<ApiResponse<{
250
+ success: boolean;
251
+ }>>;
252
+ export declare function getTunnelStatus(tunnelId: string): Promise<ApiResponse<{
253
+ tunnel: Tunnel;
254
+ liveStatus: unknown;
255
+ }>>;
256
+ export declare function regenerateTunnelToken(tunnelId: string): Promise<ApiResponse<{
257
+ tunnel: Tunnel;
258
+ authToken: string;
259
+ auth_token: string;
260
+ wsUrl: string;
261
+ }>>;
262
+ export declare function disconnectTunnel(tunnelId: string): Promise<ApiResponse<{
263
+ success: boolean;
264
+ }>>;
265
+ export interface Event {
266
+ id: string;
267
+ source_id: string;
268
+ source_name?: string;
269
+ source_slug?: string;
270
+ event_type?: string;
271
+ method?: string;
272
+ path?: string;
273
+ headers?: Record<string, string>;
274
+ payload_size?: number;
275
+ signature_valid?: boolean;
276
+ status?: 'delivered' | 'failed' | 'pending' | 'partial' | 'no_routes';
277
+ delivery_count?: number;
278
+ received_at: string;
279
+ }
280
+ export interface EventWithPayload extends Event {
281
+ payload?: unknown;
282
+ deliveries?: Delivery[];
283
+ }
284
+ export declare function getEvents(options?: {
285
+ limit?: number;
286
+ offset?: number;
287
+ sourceId?: string;
288
+ status?: string;
289
+ eventType?: string;
290
+ fromDate?: string;
291
+ toDate?: string;
292
+ search?: string;
293
+ }): Promise<ApiResponse<{
294
+ events: Event[];
295
+ total: number;
296
+ hasMore: boolean;
297
+ }>>;
298
+ export declare function getEvent(eventId: string): Promise<ApiResponse<{
299
+ event: EventWithPayload;
300
+ }>>;
301
+ export interface Delivery {
302
+ id: string;
303
+ event_id: string;
304
+ route_id: string;
305
+ destination_id: string;
306
+ destination_name?: string;
307
+ route_name?: string;
308
+ status: 'pending' | 'success' | 'failed' | 'retrying';
309
+ attempt_count: number;
310
+ max_attempts: number;
311
+ response_status?: number;
312
+ response_time_ms?: number;
313
+ response_body?: string;
314
+ error_message?: string;
315
+ next_retry_at?: string;
316
+ completed_at?: string;
317
+ created_at: string;
318
+ }
319
+ export declare function getDeliveries(options?: {
320
+ limit?: number;
321
+ offset?: number;
322
+ eventId?: string;
323
+ routeId?: string;
324
+ destinationId?: string;
325
+ status?: string;
326
+ }): Promise<ApiResponse<{
327
+ deliveries: Delivery[];
328
+ total: number;
329
+ hasMore: boolean;
330
+ }>>;
331
+ export declare function getDelivery(deliveryId: string): Promise<ApiResponse<{
332
+ delivery: Delivery;
333
+ }>>;
334
+ export declare function replayDelivery(deliveryId: string): Promise<ApiResponse<{
335
+ delivery: Delivery;
336
+ }>>;
337
+ export declare function bulkReplayDeliveries(deliveryIds: string[]): Promise<ApiResponse<{
338
+ replayed: number;
339
+ failed: number;
340
+ }>>;
341
+ export interface Transform {
342
+ id: string;
343
+ name: string;
344
+ type: 'jsonata' | 'javascript' | 'liquid' | 'xslt';
345
+ expression: string;
346
+ input_format: 'json' | 'xml' | 'text';
347
+ output_format: 'json' | 'xml' | 'text';
348
+ is_active: number;
349
+ route_count?: number;
350
+ created_at?: string;
351
+ }
352
+ export declare function getTransforms(): Promise<ApiResponse<{
353
+ transforms: Transform[];
354
+ }>>;
355
+ export declare function getTransform(transformId: string): Promise<ApiResponse<{
356
+ transform: Transform;
357
+ }>>;
358
+ export declare function createTransform(data: {
359
+ name: string;
360
+ type: 'jsonata' | 'javascript' | 'liquid' | 'xslt';
361
+ expression: string;
362
+ inputFormat?: 'json' | 'xml' | 'text';
363
+ outputFormat?: 'json' | 'xml' | 'text';
364
+ }): Promise<ApiResponse<{
365
+ transform: Transform;
366
+ }>>;
367
+ export declare function updateTransform(transformId: string, data: {
368
+ name?: string;
369
+ expression?: string;
370
+ isActive?: boolean;
371
+ }): Promise<ApiResponse<{
372
+ transform: Transform;
373
+ }>>;
374
+ export declare function deleteTransform(transformId: string): Promise<ApiResponse<{
375
+ success: boolean;
376
+ }>>;
377
+ export declare function testTransform(data: {
378
+ type: string;
379
+ expression: string;
380
+ payload: unknown;
381
+ }): Promise<ApiResponse<{
382
+ result: unknown;
383
+ error?: string;
384
+ }>>;
385
+ export interface Filter {
386
+ id: string;
387
+ name: string;
388
+ logic: 'AND' | 'OR';
389
+ conditions: FilterCondition[];
390
+ is_active: number;
391
+ route_count?: number;
392
+ created_at?: string;
393
+ }
394
+ export declare function getFilters(): Promise<ApiResponse<{
395
+ filters: Filter[];
396
+ }>>;
397
+ export declare function getFilter(filterId: string): Promise<ApiResponse<{
398
+ filter: Filter;
399
+ }>>;
400
+ export declare function createFilter(data: {
401
+ name: string;
402
+ logic: 'AND' | 'OR';
403
+ conditions: FilterCondition[];
404
+ }): Promise<ApiResponse<{
405
+ filter: Filter;
406
+ }>>;
407
+ export declare function updateFilter(filterId: string, data: {
408
+ name?: string;
409
+ logic?: 'AND' | 'OR';
410
+ conditions?: FilterCondition[];
411
+ isActive?: boolean;
412
+ }): Promise<ApiResponse<{
413
+ filter: Filter;
414
+ }>>;
415
+ export declare function deleteFilter(filterId: string): Promise<ApiResponse<{
416
+ success: boolean;
417
+ }>>;
418
+ export declare function testFilter(data: {
419
+ logic: 'AND' | 'OR';
420
+ conditions: FilterCondition[];
421
+ payload: unknown;
422
+ }): Promise<ApiResponse<{
423
+ matches: boolean;
424
+ details?: unknown;
425
+ }>>;
426
+ export interface AnalyticsOverview {
427
+ totalEvents: number;
428
+ totalDeliveries: number;
429
+ successRate: number;
430
+ avgLatency: number;
431
+ activeSources: number;
432
+ activeDestinations: number;
433
+ activeRoutes: number;
434
+ }
435
+ export declare function getAnalyticsOverview(): Promise<ApiResponse<AnalyticsOverview>>;
436
+ export interface DashboardAnalytics {
437
+ overview: {
438
+ totalEvents: number;
439
+ totalDeliveries: number;
440
+ successfulDeliveries: number;
441
+ failedDeliveries: number;
442
+ successRate: number;
443
+ avgResponseTime: number;
444
+ };
445
+ topSources: Array<{
446
+ id: string;
447
+ name: string;
448
+ slug: string;
449
+ eventCount: number;
450
+ }>;
451
+ topDestinations: Array<{
452
+ id: string;
453
+ name: string;
454
+ deliveryCount: number;
455
+ successRate: number;
456
+ }>;
457
+ recentEvents: Event[];
458
+ eventsByHour?: Array<{
459
+ hour: string;
460
+ count: number;
461
+ }>;
462
+ deliveriesByStatus?: Array<{
463
+ status: string;
464
+ count: number;
465
+ }>;
466
+ }
467
+ export declare function getDashboardAnalytics(range?: '1h' | '24h' | '7d' | '30d'): Promise<ApiResponse<DashboardAnalytics>>;
468
+ export declare function getRecentActivity(limit?: number): Promise<ApiResponse<{
469
+ events: Event[];
470
+ }>>;
471
+ export {};
472
+ //# sourceMappingURL=api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}