@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,167 @@
1
+ import { BaseCommand } from './base-command.js';
2
+ export class QueryCommand extends BaseCommand {
3
+ getCommandName() {
4
+ return 'query';
5
+ }
6
+ getCommandDescription() {
7
+ return 'Execute a query agains a dataset';
8
+ }
9
+ getCommandOptions() {
10
+ return [
11
+ {
12
+ flags: '--dataset-id <id>',
13
+ description: 'Dataset ID to query'
14
+ },
15
+ {
16
+ flags: '--dataset-name <name>',
17
+ description: 'Dataset name to query (will be resolved to ID)'
18
+ },
19
+ {
20
+ flags: '--sort-order <order>',
21
+ description: 'Sort order for results (UNSORTED, ASC, DESC)',
22
+ defaultValue: 'UNSORTED'
23
+ },
24
+ {
25
+ flags: '--query-engine <engine>',
26
+ description: 'Query engine (grepr-raw-log-source, logs-iceberg-table-source)',
27
+ defaultValue: 'grepr-raw-log-source'
28
+ },
29
+ {
30
+ flags: '--query-type <type>',
31
+ description: 'Query type (e.g., datadog-query)',
32
+ defaultValue: 'datadog-query'
33
+ },
34
+ {
35
+ flags: '--query <query>',
36
+ description: 'Query string',
37
+ defaultValue: ''
38
+ },
39
+ {
40
+ flags: '--start <timestamp>',
41
+ description: 'Start timestamp (ISO 8601 format)'
42
+ },
43
+ {
44
+ flags: '--end <timestamp>',
45
+ description: 'End timestamp (ISO 8601 format)'
46
+ },
47
+ {
48
+ flags: '--limit <number>',
49
+ description: 'Maximum number of records to return',
50
+ parser: parseInt
51
+ }
52
+ ];
53
+ }
54
+ addToProgram(program, mergeConfiguration) {
55
+ let command = program.command(this.getCommandName())
56
+ .description(this.getCommandDescription());
57
+ // Add command-specific options
58
+ this.getCommandOptions().forEach(option => {
59
+ if (option.parser) {
60
+ command = command.option(option.flags, option.description, option.parser, option.defaultValue);
61
+ }
62
+ else {
63
+ command = command.option(option.flags, option.description, option.defaultValue);
64
+ }
65
+ });
66
+ // Add streaming options
67
+ command
68
+ .option('-f, --format <format>', 'Output format (table, csv, pretty, raw, compact)', 'table')
69
+ .option('-s, --sort <column:order>', 'Sort table by column (e.g., "eventTimestamp:asc")', 'eventTimestamp:asc')
70
+ .option('--no-color', 'Disable colored output')
71
+ .option('--no-timestamps', 'Hide timestamps')
72
+ .option('--no-job-state', 'Hide job state messages')
73
+ .action(async (options, command) => {
74
+ try {
75
+ const globalOptions = command.parent?.opts();
76
+ const mergedGlobalOptions = await mergeConfiguration(globalOptions);
77
+ const mergedOptions = {
78
+ ...mergedGlobalOptions,
79
+ ...options
80
+ };
81
+ await this.execute(mergedOptions);
82
+ }
83
+ catch (error) {
84
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
85
+ console.error('Fatal error:', errorMessage);
86
+ process.exit(1);
87
+ }
88
+ });
89
+ }
90
+ async execute(options) {
91
+ try {
92
+ this.validateQueryOptions(options);
93
+ this.validateHeaderAuth(options);
94
+ this.initializeComponents(options);
95
+ // Resolve dataset ID
96
+ const datasetId = await this.resolveDatasetId(options);
97
+ // Create job definition
98
+ const jobDefinition = await this.createJobDefinition(options, datasetId);
99
+ await this.processJobStream(jobDefinition, options);
100
+ }
101
+ catch (error) {
102
+ this.handleError(error, 'Query initialization error');
103
+ process.exit(1);
104
+ }
105
+ }
106
+ validateQueryOptions(options) {
107
+ if (!options.datasetId && !options.datasetName) {
108
+ console.error('Error: Either --dataset-id or --dataset-name is required');
109
+ process.exit(1);
110
+ }
111
+ if (options.datasetId && options.datasetName) {
112
+ console.error('Error: Cannot specify both --dataset-id and --dataset-name');
113
+ process.exit(1);
114
+ }
115
+ }
116
+ async resolveDatasetId(options) {
117
+ if (options.datasetId) {
118
+ return options.datasetId;
119
+ }
120
+ if (!options.quiet) {
121
+ console.log(`Looking up dataset: ${options.datasetName}`);
122
+ }
123
+ const dataset = await this.apiClient.lookupDataset(options.datasetName);
124
+ if (!options.quiet) {
125
+ console.log(`Found dataset: ${dataset.name} (ID: ${dataset.id})`);
126
+ }
127
+ return dataset.id;
128
+ }
129
+ async createJobDefinition(options, datasetId) {
130
+ try {
131
+ const queryEngine = options.queryEngine || 'grepr-raw-log-source';
132
+ // Build the job definition directly in code based on query engine
133
+ const jobDefinition = {
134
+ name: `query_tool_job_${Date.now()}`,
135
+ execution: 'SYNCHRONOUS',
136
+ processing: 'BATCH',
137
+ jobGraph: {
138
+ vertices: [
139
+ {
140
+ type: queryEngine,
141
+ name: 'source',
142
+ datasetId: datasetId,
143
+ start: options.start || new Date(Date.now() - 10 * 60 * 1000).toISOString(), // Default: 10 minutes ago
144
+ end: options.end || new Date().toISOString(), // Default: now
145
+ query: {
146
+ type: options.queryType || 'datadog-query',
147
+ query: options.query || ''
148
+ },
149
+ sortOrder: options.sortOrder || 'UNSORTED',
150
+ limit: options.limit || 100 // Default limit to stay under sync query limit
151
+ },
152
+ {
153
+ type: 'logs-sync-sink',
154
+ name: 'sink'
155
+ }
156
+ ],
157
+ edges: ['source -> sink']
158
+ }
159
+ };
160
+ return jobDefinition;
161
+ }
162
+ catch (error) {
163
+ throw new Error(`Failed to create job definition: ${error.message}`);
164
+ }
165
+ }
166
+ }
167
+ //# sourceMappingURL=query-command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-command.js","sourceRoot":"","sources":["../../../src/main/typescript/commands/query-command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=grepr.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepr.d.ts","sourceRoot":"","sources":["../../src/main/typescript/grepr.ts"],"names":[],"mappings":""}
@@ -0,0 +1,155 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import process from 'process';
4
+ import { readFileSync } from 'fs';
5
+ import { fileURLToPath } from 'url';
6
+ import { dirname, join } from 'path';
7
+ import { ConfigManager } from './lib/config.js';
8
+ import { CommandRegistry } from './lib/command-registry.js';
9
+ import { QueryCommand } from './commands/query-command.js';
10
+ import { ConfigCommand } from './commands/config-command.js';
11
+ import { JobListCommand, JobCrudCommand } from './commands/job-command.js';
12
+ import { IntegrationListCommand, IntegrationCrudCommand } from './commands/integration-command.js';
13
+ import { DatasetListCommand, DatasetCrudCommand } from './commands/dataset-command.js';
14
+ /**
15
+ * Get the version from package.json
16
+ */
17
+ function getVersion() {
18
+ try {
19
+ const __filename = fileURLToPath(import.meta.url);
20
+ const __dirname = dirname(__filename);
21
+ // Try multiple possible locations for package.json
22
+ const possiblePaths = [
23
+ join(__dirname, '../../package.json'), // Development: build/dist/grepr.js -> package.json
24
+ join(__dirname, 'package.json'), // Distribution: grepr.js in same dir as package.json
25
+ join(__dirname, '../package.json'), // Alternative distribution structure
26
+ ];
27
+ for (const packageJsonPath of possiblePaths) {
28
+ try {
29
+ const packageJson = JSON.parse(readFileSync(packageJsonPath, 'utf8'));
30
+ return packageJson.version;
31
+ }
32
+ catch (pathError) {
33
+ // Continue to next path
34
+ }
35
+ }
36
+ throw new Error('package.json not found in any expected location');
37
+ }
38
+ catch (error) {
39
+ console.warn('Could not read version from package.json:', error);
40
+ return '1.1.0'; // fallback version
41
+ }
42
+ }
43
+ /**
44
+ * Main CLI application for Grepr query tool using self-registering commands
45
+ */
46
+ class GreprQueryCLI {
47
+ program;
48
+ commandRegistry;
49
+ constructor() {
50
+ this.program = new Command();
51
+ this.commandRegistry = new CommandRegistry();
52
+ }
53
+ /**
54
+ * Parse and validate URL
55
+ */
56
+ parseUrl(url) {
57
+ if (!url) {
58
+ return url;
59
+ }
60
+ if (url.startsWith('http://') || url.startsWith('https://')) {
61
+ return url;
62
+ }
63
+ throw new Error(`Invalid API base URL: ${url}. Must start with http:// or https://`);
64
+ }
65
+ /**
66
+ * Merge configuration with CLI options
67
+ */
68
+ async mergeConfiguration(options) {
69
+ const configManager = new ConfigManager();
70
+ if (options.conf) {
71
+ try {
72
+ const savedConfig = await configManager.getConfig(options.conf);
73
+ if (savedConfig) {
74
+ options = ConfigManager.mergeConfigWithOptions(savedConfig, options);
75
+ // Remove conf from final options
76
+ delete options.conf;
77
+ }
78
+ }
79
+ catch (error) {
80
+ const errorMessage = error instanceof Error ? error.message : 'Unknown error';
81
+ console.error(`Error loading configuration '${options.conf}': ${errorMessage}`);
82
+ process.exit(1);
83
+ }
84
+ }
85
+ // Validate required orgName if no config loaded
86
+ if (!options.orgName) {
87
+ console.error('Error: --org-name is required (unless using --conf with a saved configuration)');
88
+ process.exit(1);
89
+ }
90
+ // Set all the defaults
91
+ if (!options.authBaseUrl) {
92
+ options.authBaseUrl = 'https://grepr-prod.us.auth0.com';
93
+ }
94
+ if (!options.apiBaseUrl) {
95
+ options.apiBaseUrl = `https://${options.orgName}.app.grepr.ai/api`;
96
+ }
97
+ if (!options.clientId) {
98
+ // prod app clientId.
99
+ options.clientId = '4XOD92WjzdfT4yxWeHpwh4J2u8t9qPtS';
100
+ }
101
+ return options;
102
+ }
103
+ /**
104
+ * Register all commands with the command registry
105
+ */
106
+ registerCommands() {
107
+ // Register streaming commands
108
+ this.commandRegistry.register(new QueryCommand());
109
+ // Register configuration commands
110
+ this.commandRegistry.register(new ConfigCommand());
111
+ // Register job commands
112
+ this.commandRegistry.register(new JobListCommand());
113
+ this.commandRegistry.register(new JobCrudCommand());
114
+ // Register integration commands
115
+ this.commandRegistry.register(new IntegrationListCommand());
116
+ this.commandRegistry.register(new IntegrationCrudCommand());
117
+ // Register dataset commands
118
+ this.commandRegistry.register(new DatasetListCommand());
119
+ this.commandRegistry.register(new DatasetCrudCommand());
120
+ }
121
+ /**
122
+ * Setup CLI commands and options
123
+ */
124
+ setupCLI() {
125
+ this.program
126
+ .name('grepr')
127
+ .description('Grepr Command Line Interface (CLI) Tool')
128
+ .version(getVersion());
129
+ // Global options for all commands
130
+ this.program
131
+ .option('--conf <name>', 'Use saved configuration from ~/.grepr/cli-config.json')
132
+ .option('--org-name <name>', 'Organization name (required unless using --conf)')
133
+ .option('--api-base-url <url>', 'API server base URL (default: https://<orgName>.app.grepr.ai/api)', this.parseUrl)
134
+ .option('--auth-base-url <url>', 'Auth0 base URL', this.parseUrl)
135
+ .option('--auth-method <method>', 'Authentication method (oauth, header)', 'oauth')
136
+ .option('--user-id <id>', 'User ID for header authentication (required when using --auth-method header)')
137
+ .option('--client-id <id>', 'OAuth Client ID (optional, defaults to Web Client ID)')
138
+ .option('--no-auth-cache', 'Force fresh authentication by ignoring cached tokens', true)
139
+ .option('--no-browser', 'Do not automatically open browser for OAuth authentication', true)
140
+ .option('--timezone <tz>', 'Timezone for timestamp formatting (e.g., UTC, America/New_York)', 'system')
141
+ .option('-o, --output <file>', 'Output results to file instead of stdout')
142
+ .option('-d, --debug', 'Enable debug output')
143
+ .option('-q, --quiet', 'Suppress non-essential output');
144
+ // Register all commands using the registry
145
+ this.registerCommands();
146
+ this.commandRegistry.registerAll(this.program, this.mergeConfiguration.bind(this));
147
+ return this.program;
148
+ }
149
+ }
150
+ // Main execution
151
+ if (import.meta.url === `file://${process.argv[1]}`) {
152
+ const cli = new GreprQueryCLI();
153
+ cli.setupCLI().parse();
154
+ }
155
+ //# sourceMappingURL=grepr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"grepr.js","sourceRoot":"","sources":["../../src/main/typescript/grepr.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { GreprApiClient } from './api-client.js';
2
+ /**
3
+ * Common interface for options needed to create an API client
4
+ */
5
+ export interface ApiClientFactoryOptions {
6
+ orgName: string;
7
+ apiBaseUrl?: string;
8
+ authBaseUrl?: string;
9
+ authMethod?: 'oauth' | 'header';
10
+ userId?: string;
11
+ clientId?: string;
12
+ debug?: boolean;
13
+ authCache: boolean;
14
+ browser: boolean;
15
+ }
16
+ /**
17
+ * Factory function to create GreprApiClient instances
18
+ * Shared across all command types to ensure DRY principle
19
+ */
20
+ export declare function createApiClient(options: ApiClientFactoryOptions): GreprApiClient;
21
+ //# sourceMappingURL=api-client-factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client-factory.d.ts","sourceRoot":"","sources":["../../../src/main/typescript/lib/api-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAChC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,cAAc,CAkBhF"}
@@ -0,0 +1,23 @@
1
+ import { GreprApiClient } from './api-client.js';
2
+ /**
3
+ * Factory function to create GreprApiClient instances
4
+ * Shared across all command types to ensure DRY principle
5
+ */
6
+ export function createApiClient(options) {
7
+ const clientConfig = {
8
+ orgName: options.orgName,
9
+ apiBaseUrl: options.apiBaseUrl || `https://${options.orgName}.app.grepr.ai/api`,
10
+ authBaseUrl: options.authBaseUrl || `https://${options.orgName}.app.grepr.ai/auth`,
11
+ authMethod: options.authMethod,
12
+ clientId: options.clientId || 'default-client-id',
13
+ debug: options.debug || false,
14
+ authCache: options.authCache,
15
+ browser: options.browser,
16
+ userId: options.userId,
17
+ };
18
+ if (options.debug) {
19
+ console.log("API Client Config:", clientConfig);
20
+ }
21
+ return new GreprApiClient(clientConfig);
22
+ }
23
+ //# sourceMappingURL=api-client-factory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client-factory.js","sourceRoot":"","sources":["../../../src/main/typescript/lib/api-client-factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAiBjD;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,OAAgC;IAC9D,MAAM,YAAY,GAAG;QACnB,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,WAAW,OAAO,CAAC,OAAO,mBAAmB;QAC/E,WAAW,EAAE,OAAO,CAAC,WAAW,IAAI,WAAW,OAAO,CAAC,OAAO,oBAAoB;QAClF,UAAU,EAAE,OAAO,CAAC,UAAgC;QACpD,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,mBAAmB;QACjD,KAAK,EAAE,OAAO,CAAC,KAAK,IAAI,KAAK;QAC7B,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,OAAO,EAAE,OAAO,CAAC,OAAO;QACxB,MAAM,EAAE,OAAO,CAAC,MAAM;KACvB,CAAC;IAEF,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;QAClB,OAAO,CAAC,GAAG,CAAC,oBAAoB,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,OAAO,IAAI,cAAc,CAAC,YAAY,CAAC,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { GreprApiClient } from './grepr-api-client.js';
2
+ //# sourceMappingURL=api-client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.d.ts","sourceRoot":"","sources":["../../../src/main/typescript/lib/api-client.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Re-export the new OpenAPI-based API client
2
+ export { GreprApiClient } from './grepr-api-client.js';
3
+ //# sourceMappingURL=api-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-client.js","sourceRoot":"","sources":["../../../src/main/typescript/lib/api-client.ts"],"names":[],"mappings":"AAAA,6CAA6C;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC"}
@@ -0,0 +1,104 @@
1
+ import { ApiClientConfig } from '../types.js';
2
+ export interface AuthConfig extends ApiClientConfig {
3
+ }
4
+ interface TokenData {
5
+ access_token: string;
6
+ refresh_token?: string;
7
+ expires_in: number;
8
+ expires_at: number;
9
+ token_type: string;
10
+ }
11
+ interface HeaderAuthConfig extends AuthConfig {
12
+ userId: string;
13
+ authMethod: 'header';
14
+ }
15
+ interface OAuthAuthConfig extends AuthConfig {
16
+ authMethod: 'oauth';
17
+ authUrl: string;
18
+ tokenUrl: string;
19
+ redirectUrl: string;
20
+ audience: string;
21
+ clientId: string;
22
+ orgId: string;
23
+ }
24
+ /**
25
+ * Header-based authentication for testing (no OAuth required)
26
+ */
27
+ export declare class HeaderAuth {
28
+ config: HeaderAuthConfig;
29
+ constructor(options: ApiClientConfig);
30
+ /**
31
+ * Build configuration from command-line options
32
+ */
33
+ private buildConfig;
34
+ /**
35
+ * Get authentication headers for API requests
36
+ */
37
+ getAuthHeaders(): Promise<Record<string, string>>;
38
+ }
39
+ /**
40
+ * OAuth-based authentication (simplified version for now)
41
+ */
42
+ export declare class GreprAuth {
43
+ config: OAuthAuthConfig;
44
+ constructor(options: ApiClientConfig);
45
+ /**
46
+ * Get the path to the token cache file
47
+ */
48
+ private get tokenCachePath();
49
+ /**
50
+ * Build configuration from command-line options
51
+ */
52
+ private buildConfig;
53
+ /**
54
+ * Get authentication headers for API requests (OAuth uses Bearer token)
55
+ */
56
+ getAuthHeaders(): Promise<{
57
+ Authorization: string;
58
+ }>;
59
+ /**
60
+ * Get a valid access token, refreshing if necessary
61
+ */
62
+ getAccessToken(): Promise<string>;
63
+ /**
64
+ * Perform fresh OAuth authentication and optionally cache the result
65
+ */
66
+ private performFreshAuthentication;
67
+ /**
68
+ * OAuth 2.0 PKCE flow with local callback server
69
+ */
70
+ authenticateWithPKCE(): Promise<TokenData>;
71
+ /**
72
+ * Generate PKCE code verifier and challenge
73
+ */
74
+ generatePKCEPair(): {
75
+ codeVerifier: string;
76
+ codeChallenge: string;
77
+ };
78
+ /**
79
+ * Start local HTTP server to receive OAuth callback
80
+ */
81
+ startCallbackServer(expectedState: string, authUrl: string): Promise<string>;
82
+ /**
83
+ * Exchange authorization code for access token
84
+ */
85
+ exchangeCodeForToken(authCode: string, codeVerifier: string): Promise<TokenData>;
86
+ /**
87
+ * Refresh access token using refresh token
88
+ */
89
+ refreshToken(refreshToken: string): Promise<TokenData>;
90
+ /**
91
+ * Load cached token from file system
92
+ */
93
+ loadCachedToken(): Promise<TokenData | null>;
94
+ /**
95
+ * Save token to cache
96
+ */
97
+ saveCachedToken(tokenData: TokenData): Promise<void>;
98
+ /**
99
+ * Check if token is expired (with 5 minute buffer)
100
+ */
101
+ isTokenExpired(tokenData: TokenData): boolean;
102
+ }
103
+ export {};
104
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../src/main/typescript/lib/auth.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAI9C,MAAM,WAAW,UAAW,SAAQ,eAAe;CAClD;AAED,UAAU,SAAS;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,gBAAiB,SAAQ,UAAU;IAC3C,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,QAAQ,CAAC;CACtB;AAED,UAAU,eAAgB,SAAQ,UAAU;IAC1C,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,UAAU;IACd,MAAM,EAAE,gBAAgB,CAAC;gBAEpB,OAAO,EAAE,eAAe;IAIpC;;OAEG;IACH,OAAO,CAAC,WAAW;IAqBnB;;OAEG;IACG,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAOxD;AAED;;GAEG;AACH,qBAAa,SAAS;IACb,MAAM,EAAE,eAAe,CAAC;gBAEnB,OAAO,EAAE,eAAe;IAIpC;;OAEG;IACH,OAAO,KAAK,cAAc,GAEzB;IAED;;OAEG;IACH,OAAO,CAAC,WAAW;IA6BnB;;OAEG;IACG,cAAc;;;IAOpB;;OAEG;IACG,cAAc;IA2BpB;;OAEG;YACW,0BAA0B;IAWxC;;OAEG;IACG,oBAAoB;IAkC1B;;OAEG;IACH,gBAAgB;;;;IAShB;;OAEG;IACG,mBAAmB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAyDlF;;OAEG;IACG,oBAAoB,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IA2BtF;;OAEG;IACG,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAyB5D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAYlD;;OAEG;IACG,eAAe,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1D;;OAEG;IACH,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,OAAO;CAQ9C"}