@grepr/cli 1.1.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 (91) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +71 -0
  3. package/build/dist/commands/base-command.d.ts +13 -0
  4. package/build/dist/commands/base-command.d.ts.map +1 -0
  5. package/build/dist/commands/base-command.js +28 -0
  6. package/build/dist/commands/base-command.js.map +1 -0
  7. package/build/dist/commands/config-command.d.ts +19 -0
  8. package/build/dist/commands/config-command.d.ts.map +1 -0
  9. package/build/dist/commands/config-command.js +108 -0
  10. package/build/dist/commands/config-command.js.map +1 -0
  11. package/build/dist/commands/crud-command.d.ts +117 -0
  12. package/build/dist/commands/crud-command.d.ts.map +1 -0
  13. package/build/dist/commands/crud-command.js +264 -0
  14. package/build/dist/commands/crud-command.js.map +1 -0
  15. package/build/dist/commands/dataset-command.d.ts +45 -0
  16. package/build/dist/commands/dataset-command.d.ts.map +1 -0
  17. package/build/dist/commands/dataset-command.js +139 -0
  18. package/build/dist/commands/dataset-command.js.map +1 -0
  19. package/build/dist/commands/integration-command.d.ts +30 -0
  20. package/build/dist/commands/integration-command.d.ts.map +1 -0
  21. package/build/dist/commands/integration-command.js +80 -0
  22. package/build/dist/commands/integration-command.js.map +1 -0
  23. package/build/dist/commands/job-command.d.ts +92 -0
  24. package/build/dist/commands/job-command.d.ts.map +1 -0
  25. package/build/dist/commands/job-command.js +294 -0
  26. package/build/dist/commands/job-command.js.map +1 -0
  27. package/build/dist/commands/list-command.d.ts +69 -0
  28. package/build/dist/commands/list-command.d.ts.map +1 -0
  29. package/build/dist/commands/list-command.js +130 -0
  30. package/build/dist/commands/list-command.js.map +1 -0
  31. package/build/dist/commands/query-command.d.ts +20 -0
  32. package/build/dist/commands/query-command.d.ts.map +1 -0
  33. package/build/dist/commands/query-command.js +167 -0
  34. package/build/dist/commands/query-command.js.map +1 -0
  35. package/build/dist/grepr.d.ts +3 -0
  36. package/build/dist/grepr.d.ts.map +1 -0
  37. package/build/dist/grepr.js +155 -0
  38. package/build/dist/grepr.js.map +1 -0
  39. package/build/dist/lib/api-client-factory.d.ts +21 -0
  40. package/build/dist/lib/api-client-factory.d.ts.map +1 -0
  41. package/build/dist/lib/api-client-factory.js +23 -0
  42. package/build/dist/lib/api-client-factory.js.map +1 -0
  43. package/build/dist/lib/api-client.d.ts +2 -0
  44. package/build/dist/lib/api-client.d.ts.map +1 -0
  45. package/build/dist/lib/api-client.js +3 -0
  46. package/build/dist/lib/api-client.js.map +1 -0
  47. package/build/dist/lib/auth.d.ts +104 -0
  48. package/build/dist/lib/auth.d.ts.map +1 -0
  49. package/build/dist/lib/auth.js +312 -0
  50. package/build/dist/lib/auth.js.map +1 -0
  51. package/build/dist/lib/command-registry.d.ts +35 -0
  52. package/build/dist/lib/command-registry.d.ts.map +1 -0
  53. package/build/dist/lib/command-registry.js +33 -0
  54. package/build/dist/lib/command-registry.js.map +1 -0
  55. package/build/dist/lib/config.d.ts +40 -0
  56. package/build/dist/lib/config.d.ts.map +1 -0
  57. package/build/dist/lib/config.js +114 -0
  58. package/build/dist/lib/config.js.map +1 -0
  59. package/build/dist/lib/grepr-api-client.d.ts +216 -0
  60. package/build/dist/lib/grepr-api-client.d.ts.map +1 -0
  61. package/build/dist/lib/grepr-api-client.js +424 -0
  62. package/build/dist/lib/grepr-api-client.js.map +1 -0
  63. package/build/dist/lib/heartbeat.d.ts +17 -0
  64. package/build/dist/lib/heartbeat.d.ts.map +1 -0
  65. package/build/dist/lib/heartbeat.js +56 -0
  66. package/build/dist/lib/heartbeat.js.map +1 -0
  67. package/build/dist/lib/json-formatter.d.ts +135 -0
  68. package/build/dist/lib/json-formatter.d.ts.map +1 -0
  69. package/build/dist/lib/json-formatter.js +658 -0
  70. package/build/dist/lib/json-formatter.js.map +1 -0
  71. package/build/dist/lib/parser.d.ts +26 -0
  72. package/build/dist/lib/parser.d.ts.map +1 -0
  73. package/build/dist/lib/parser.js +95 -0
  74. package/build/dist/lib/parser.js.map +1 -0
  75. package/build/dist/lib/streaming-job-executor.d.ts +31 -0
  76. package/build/dist/lib/streaming-job-executor.d.ts.map +1 -0
  77. package/build/dist/lib/streaming-job-executor.js +281 -0
  78. package/build/dist/lib/streaming-job-executor.js.map +1 -0
  79. package/build/dist/lib/time-utils.d.ts +28 -0
  80. package/build/dist/lib/time-utils.d.ts.map +1 -0
  81. package/build/dist/lib/time-utils.js +87 -0
  82. package/build/dist/lib/time-utils.js.map +1 -0
  83. package/build/dist/openapi/openApiTypes.d.ts +10430 -0
  84. package/build/dist/openapi/openApiTypes.d.ts.map +1 -0
  85. package/build/dist/openapi/openApiTypes.js +571 -0
  86. package/build/dist/openapi/openApiTypes.js.map +1 -0
  87. package/build/dist/types.d.ts +168 -0
  88. package/build/dist/types.d.ts.map +1 -0
  89. package/build/dist/types.js +20 -0
  90. package/build/dist/types.js.map +1 -0
  91. package/package.json +68 -0
@@ -0,0 +1,17 @@
1
+ import { EventEmitter } from 'events';
2
+ import { GreprApiClient } from './api-client.js';
3
+ /**
4
+ * Manages heartbeat messages to keep sync jobs alive
5
+ */
6
+ export declare class HeartbeatManager extends EventEmitter {
7
+ private apiClient;
8
+ private isActive;
9
+ private maxRetries;
10
+ private retryAttempts;
11
+ constructor(apiClient: GreprApiClient, maxRetries?: number);
12
+ start(): void;
13
+ stop(): void;
14
+ handleHeartbeatRequest(token: string): Promise<void>;
15
+ private handleRetry;
16
+ }
17
+ //# sourceMappingURL=heartbeat.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.d.ts","sourceRoot":"","sources":["../../../src/main/typescript/lib/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AACrC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAA;AAGhD;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,YAAY;IAChD,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,aAAa,CAA6B;gBAEtC,SAAS,EAAE,cAAc,EAAE,UAAU,SAAI;IAMrD,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAKN,sBAAsB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAiB5C,WAAW;CAkB1B"}
@@ -0,0 +1,56 @@
1
+ import { EventEmitter } from 'events';
2
+ import { HEARTBEAT_EVENTS } from '../types.js';
3
+ /**
4
+ * Manages heartbeat messages to keep sync jobs alive
5
+ */
6
+ export class HeartbeatManager extends EventEmitter {
7
+ apiClient;
8
+ isActive = false;
9
+ maxRetries;
10
+ retryAttempts = new Map();
11
+ constructor(apiClient, maxRetries = 3) {
12
+ super();
13
+ this.apiClient = apiClient;
14
+ this.maxRetries = maxRetries;
15
+ }
16
+ start() {
17
+ this.isActive = true;
18
+ }
19
+ stop() {
20
+ this.isActive = false;
21
+ this.retryAttempts.clear();
22
+ }
23
+ async handleHeartbeatRequest(token) {
24
+ if (!this.isActive) {
25
+ return;
26
+ }
27
+ this.emit(HEARTBEAT_EVENTS.REQUEST, token);
28
+ try {
29
+ await this.apiClient.sendHeartbeat(token);
30
+ this.emit(HEARTBEAT_EVENTS.SENT, token);
31
+ // Reset retry count on success
32
+ this.retryAttempts.delete(token);
33
+ }
34
+ catch (error) {
35
+ await this.handleRetry(token, error);
36
+ }
37
+ }
38
+ async handleRetry(token, error) {
39
+ const currentAttempts = this.retryAttempts.get(token) || 0;
40
+ const newAttempts = currentAttempts + 1;
41
+ if (newAttempts <= this.maxRetries) {
42
+ this.retryAttempts.set(token, newAttempts);
43
+ this.emit(HEARTBEAT_EVENTS.RETRY, newAttempts, this.maxRetries, error);
44
+ // Wait a bit before retrying
45
+ setTimeout(() => {
46
+ this.handleHeartbeatRequest(token);
47
+ }, 1000 * newAttempts); // Exponential backoff
48
+ }
49
+ else {
50
+ // Retry failed too many times
51
+ this.emit(HEARTBEAT_EVENTS.ERROR, error, token);
52
+ this.retryAttempts.delete(token);
53
+ }
54
+ }
55
+ }
56
+ //# sourceMappingURL=heartbeat.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"heartbeat.js","sourceRoot":"","sources":["../../../src/main/typescript/lib/heartbeat.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAA;AAErC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAE9C;;GAEG;AACH,MAAM,OAAO,gBAAiB,SAAQ,YAAY;IACxC,SAAS,CAAiB;IAC1B,QAAQ,GAAG,KAAK,CAAC;IACjB,UAAU,CAAS;IACnB,aAAa,GAAG,IAAI,GAAG,EAAkB,CAAC;IAElD,YAAY,SAAyB,EAAE,UAAU,GAAG,CAAC;QACnD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;IACvB,CAAC;IAED,IAAI;QACF,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAAC,KAAa;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QAED,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QAE3C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;YACxC,+BAA+B;YAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,KAAc,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,KAAa,EAAE,KAAY;QACnD,MAAM,eAAe,GAAG,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3D,MAAM,WAAW,GAAG,eAAe,GAAG,CAAC,CAAC;QAExC,IAAI,WAAW,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACnC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;YAC3C,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,WAAW,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;YAEvE,6BAA6B;YAC7B,UAAU,CAAC,GAAG,EAAE;gBACd,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC;YACrC,CAAC,EAAE,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,sBAAsB;QAChD,CAAC;aAAM,CAAC;YACN,8BAA8B;YAC9B,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;YAChD,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QACnC,CAAC;IACH,CAAC;CACF"}
@@ -0,0 +1,135 @@
1
+ export interface JsonFormatterOptions {
2
+ format: 'table' | 'csv' | 'pretty' | 'raw' | 'compact';
3
+ showTimestamps?: boolean;
4
+ colorize?: boolean;
5
+ sortBy?: string;
6
+ timezone?: string;
7
+ maxDepth?: number;
8
+ }
9
+ export interface ProcessStats {
10
+ recordsProcessed: number;
11
+ heartbeatsSent: number;
12
+ errors: number;
13
+ errorMessages: string[];
14
+ startTime: number | null;
15
+ endTime: number | null;
16
+ duration?: string;
17
+ }
18
+ /**
19
+ * Generic formatter for any JSON objects (jobs, integrations, datasets, etc.)
20
+ * Replaces the LogEvent-specific OutputFormatter
21
+ */
22
+ export declare class JsonFormatter {
23
+ options: JsonFormatterOptions;
24
+ private tableData;
25
+ private tableHeaders;
26
+ private csvHeaders;
27
+ private csvHeadersPrinted;
28
+ constructor(options: JsonFormatterOptions);
29
+ /**
30
+ * Reset formatter state
31
+ */
32
+ reset(): void;
33
+ /**
34
+ * Format a single object based on selected format
35
+ */
36
+ formatObject(data: Record<string, unknown>): string;
37
+ /**
38
+ * Format an array of objects
39
+ */
40
+ formatObjects(data: Record<string, unknown>[]): string;
41
+ /**
42
+ * Add data to table and return empty string (table will be rendered at the end)
43
+ */
44
+ private addToTable;
45
+ /**
46
+ * Add data to CSV and return CSV row string (with headers on first call)
47
+ */
48
+ private addToCsv;
49
+ /**
50
+ * Flatten nested object into dot notation
51
+ */
52
+ private flattenObject;
53
+ /**
54
+ * Format cell value - keep JSON as formatted JSON, primitives as strings
55
+ * Special handling for timestamp columns to show readable local time
56
+ */
57
+ private formatCellValue;
58
+ /**
59
+ * Check if a column name indicates it contains timestamps
60
+ */
61
+ private isTimestampColumn;
62
+ /**
63
+ * Format timestamp value to readable time string with timezone support
64
+ */
65
+ private formatTimestamp;
66
+ /**
67
+ * Parse a timestamp value for sorting (returns milliseconds since epoch or null)
68
+ */
69
+ private parseTimestamp;
70
+ /**
71
+ * Order headers according to common column preferences
72
+ */
73
+ private orderHeaders;
74
+ /**
75
+ * Render the accumulated table data
76
+ */
77
+ renderTable(): string;
78
+ /**
79
+ * Sort data based on the sortBy option
80
+ */
81
+ private sortData;
82
+ /**
83
+ * Find the actual column name in the data (case-insensitive search)
84
+ */
85
+ private findActualColumnName;
86
+ /**
87
+ * Format a CSV row with proper escaping
88
+ */
89
+ private formatCsvRow;
90
+ /**
91
+ * Escape a CSV value according to RFC 4180
92
+ */
93
+ private escapeCsvValue;
94
+ /**
95
+ * Format data as a table
96
+ */
97
+ private formatTable;
98
+ /**
99
+ * Wrap text to fit column width and pad with spaces
100
+ */
101
+ private wrapAndPad;
102
+ /**
103
+ * Wrap text to multiple lines based on column width
104
+ */
105
+ private wrapText;
106
+ /**
107
+ * Format JSON with pretty printing and syntax highlighting
108
+ */
109
+ formatPrettyJson(data: Record<string, unknown>): string;
110
+ /**
111
+ * Format log data based on selected format (alias for formatObject for backwards compatibility)
112
+ */
113
+ formatLogData(data: Record<string, unknown>): string;
114
+ /**
115
+ * Format job state message
116
+ */
117
+ formatJobState(state: string): string;
118
+ /**
119
+ * Format heartbeat status
120
+ */
121
+ formatHeartbeatStatus(action: string, details?: string): string;
122
+ /**
123
+ * Format connection status
124
+ */
125
+ formatConnectionStatus(status: string, details?: string): string;
126
+ /**
127
+ * Format error messages
128
+ */
129
+ formatError(error: Error, context?: string): string;
130
+ /**
131
+ * Format summary statistics
132
+ */
133
+ formatSummary(stats: ProcessStats): string;
134
+ }
135
+ //# sourceMappingURL=json-formatter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"json-formatter.d.ts","sourceRoot":"","sources":["../../../src/main/typescript/lib/json-formatter.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,GAAG,KAAK,GAAG,QAAQ,GAAG,KAAK,GAAG,SAAS,CAAC;IACvD,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,qBAAa,aAAa;IACjB,OAAO,EAAE,oBAAoB,CAAC;IACrC,OAAO,CAAC,SAAS,CAAiC;IAClD,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,UAAU,CAAgB;IAClC,OAAO,CAAC,iBAAiB,CAAkB;gBAE/B,OAAO,EAAE,oBAAoB;IAKzC;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAiBnD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,GAAG,MAAM;IAkDtD;;OAEG;IACH,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA6BhB;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;;OAGG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAiBzB;;OAEG;IACH,OAAO,CAAC,eAAe;IA+BvB;;OAEG;IACH,OAAO,CAAC,cAAc;IAqBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IA8CpB;;OAEG;IACH,WAAW,IAAI,MAAM;IAcrB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAoDhB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAwB5B;;OAEG;IACH,OAAO,CAAC,YAAY;IAIpB;;OAEG;IACH,OAAO,CAAC,cAAc;IAatB;;OAEG;IACH,OAAO,CAAC,WAAW;IAuEnB;;OAEG;IACH,OAAO,CAAC,UAAU;IAWlB;;OAEG;IACH,OAAO,CAAC,QAAQ;IA+ChB;;OAEG;IACH,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAgBvD;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM;IAIpD;;OAEG;IACH,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAkDrC;;OAEG;IACH,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;IAoB3D;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,SAAK,GAAG,MAAM;IAsB5D;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,SAAK,GAAG,MAAM;IAY/C;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,YAAY,GAAG,MAAM;CA4B3C"}