@qodalis/cli-server-plugin-aws 0.0.0-stage → 1.0.0-beta.14

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 (63) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +155 -2
  3. package/dist/aws-command-processor.d.ts +19 -0
  4. package/dist/aws-command-processor.d.ts.map +1 -0
  5. package/dist/aws-command-processor.js +265 -0
  6. package/dist/aws-command-processor.js.map +1 -0
  7. package/dist/index.d.ts +12 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.js +23 -0
  10. package/dist/index.js.map +1 -0
  11. package/dist/processors/cloudwatch-processor.d.ts +12 -0
  12. package/dist/processors/cloudwatch-processor.d.ts.map +1 -0
  13. package/dist/processors/cloudwatch-processor.js +168 -0
  14. package/dist/processors/cloudwatch-processor.js.map +1 -0
  15. package/dist/processors/dynamodb-processor.d.ts +12 -0
  16. package/dist/processors/dynamodb-processor.d.ts.map +1 -0
  17. package/dist/processors/dynamodb-processor.js +201 -0
  18. package/dist/processors/dynamodb-processor.js.map +1 -0
  19. package/dist/processors/ec2-processor.d.ts +12 -0
  20. package/dist/processors/ec2-processor.d.ts.map +1 -0
  21. package/dist/processors/ec2-processor.js +305 -0
  22. package/dist/processors/ec2-processor.js.map +1 -0
  23. package/dist/processors/ecs-processor.d.ts +12 -0
  24. package/dist/processors/ecs-processor.d.ts.map +1 -0
  25. package/dist/processors/ecs-processor.js +169 -0
  26. package/dist/processors/ecs-processor.js.map +1 -0
  27. package/dist/processors/iam-processor.d.ts +12 -0
  28. package/dist/processors/iam-processor.d.ts.map +1 -0
  29. package/dist/processors/iam-processor.js +151 -0
  30. package/dist/processors/iam-processor.js.map +1 -0
  31. package/dist/processors/lambda-processor.d.ts +12 -0
  32. package/dist/processors/lambda-processor.d.ts.map +1 -0
  33. package/dist/processors/lambda-processor.js +187 -0
  34. package/dist/processors/lambda-processor.js.map +1 -0
  35. package/dist/processors/s3-processor.d.ts +27 -0
  36. package/dist/processors/s3-processor.d.ts.map +1 -0
  37. package/dist/processors/s3-processor.js +345 -0
  38. package/dist/processors/s3-processor.js.map +1 -0
  39. package/dist/processors/sns-processor.d.ts +12 -0
  40. package/dist/processors/sns-processor.d.ts.map +1 -0
  41. package/dist/processors/sns-processor.js +157 -0
  42. package/dist/processors/sns-processor.js.map +1 -0
  43. package/dist/processors/sqs-processor.d.ts +12 -0
  44. package/dist/processors/sqs-processor.d.ts.map +1 -0
  45. package/dist/processors/sqs-processor.js +191 -0
  46. package/dist/processors/sqs-processor.js.map +1 -0
  47. package/dist/services/aws-config-service.d.ts +50 -0
  48. package/dist/services/aws-config-service.d.ts.map +1 -0
  49. package/dist/services/aws-config-service.js +61 -0
  50. package/dist/services/aws-config-service.js.map +1 -0
  51. package/dist/services/aws-credential-manager.d.ts +29 -0
  52. package/dist/services/aws-credential-manager.d.ts.map +1 -0
  53. package/dist/services/aws-credential-manager.js +50 -0
  54. package/dist/services/aws-credential-manager.js.map +1 -0
  55. package/dist/utils/output-helpers.d.ts +68 -0
  56. package/dist/utils/output-helpers.d.ts.map +1 -0
  57. package/dist/utils/output-helpers.js +107 -0
  58. package/dist/utils/output-helpers.js.map +1 -0
  59. package/dist/utils/pagination.d.ts +9 -0
  60. package/dist/utils/pagination.d.ts.map +1 -0
  61. package/dist/utils/pagination.js +21 -0
  62. package/dist/utils/pagination.js.map +1 -0
  63. package/package.json +51 -5
@@ -0,0 +1,168 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsCloudWatchProcessor = void 0;
4
+ const cli_server_abstractions_1 = require("@qodalis/cli-server-abstractions");
5
+ const client_cloudwatch_1 = require("@aws-sdk/client-cloudwatch");
6
+ const client_cloudwatch_logs_1 = require("@aws-sdk/client-cloudwatch-logs");
7
+ const output_helpers_1 = require("../utils/output-helpers");
8
+ /** Sub-processor that lists CloudWatch alarms. */
9
+ class CloudWatchAlarmsProcessor extends cli_server_abstractions_1.CliCommandProcessor {
10
+ credentialManager;
11
+ command = 'alarms';
12
+ description = 'List CloudWatch alarms';
13
+ parameters = [
14
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
15
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
16
+ ];
17
+ constructor(credentialManager) {
18
+ super();
19
+ this.credentialManager = credentialManager;
20
+ }
21
+ /** @inheritdoc */
22
+ async handleAsync() {
23
+ return '';
24
+ }
25
+ /** @inheritdoc */
26
+ async handleStructuredAsync(command) {
27
+ const client = this.credentialManager.getClient(client_cloudwatch_1.CloudWatchClient, {
28
+ region: command.args?.region ? String(command.args.region) : undefined,
29
+ });
30
+ try {
31
+ const response = await client.send(new client_cloudwatch_1.DescribeAlarmsCommand({}));
32
+ const alarms = response.MetricAlarms ?? [];
33
+ if (alarms.length === 0) {
34
+ return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No alarms found.', style: 'warning' }]);
35
+ }
36
+ const rows = alarms.map((a) => [
37
+ a.AlarmName ?? '(unknown)',
38
+ a.StateValue ?? '(unknown)',
39
+ a.MetricName ?? '(unknown)',
40
+ a.Namespace ?? '(unknown)',
41
+ ]);
42
+ const tableOutput = (0, output_helpers_1.formatAsTable)(['Name', 'State', 'Metric', 'Namespace'], rows);
43
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, alarms)]);
44
+ }
45
+ catch (err) {
46
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to list alarms: ${err.message ?? err}`);
47
+ }
48
+ }
49
+ }
50
+ /** Sub-processor that fetches log events from a CloudWatch log group. */
51
+ class CloudWatchLogsProcessor extends cli_server_abstractions_1.CliCommandProcessor {
52
+ credentialManager;
53
+ command = 'logs';
54
+ description = 'Fetch log events from a CloudWatch log group';
55
+ valueRequired = true;
56
+ parameters = [
57
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('filter', 'Filter pattern for log events', false, 'string', ['-f']),
58
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('limit', 'Maximum number of events to return (default: 50)', false, 'number', ['-l'], '50'),
59
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
60
+ ];
61
+ constructor(credentialManager) {
62
+ super();
63
+ this.credentialManager = credentialManager;
64
+ }
65
+ /** @inheritdoc */
66
+ async handleAsync() {
67
+ return '';
68
+ }
69
+ /** @inheritdoc */
70
+ async handleStructuredAsync(command) {
71
+ const logGroupName = (0, cli_server_abstractions_1.getPositionalText)(command);
72
+ if (!logGroupName) {
73
+ return (0, output_helpers_1.buildErrorResponse)('Log group name is required. Usage: cloudwatch logs <log-group>');
74
+ }
75
+ const client = this.credentialManager.getClient(client_cloudwatch_logs_1.CloudWatchLogsClient, {
76
+ region: command.args?.region ? String(command.args.region) : undefined,
77
+ });
78
+ const limit = command.args?.limit ? Number(command.args.limit) : 50;
79
+ const filterPattern = command.args?.filter ? String(command.args.filter) : undefined;
80
+ try {
81
+ const response = await client.send(new client_cloudwatch_logs_1.FilterLogEventsCommand({
82
+ logGroupName,
83
+ filterPattern,
84
+ limit,
85
+ }));
86
+ const events = response.events ?? [];
87
+ if (events.length === 0) {
88
+ return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No log events found.', style: 'warning' }]);
89
+ }
90
+ const lines = events.map((e) => {
91
+ const timestamp = e.timestamp ? new Date(e.timestamp).toISOString() : '(unknown)';
92
+ const message = e.message?.trimEnd() ?? '';
93
+ return `${timestamp} ${message}`;
94
+ });
95
+ return (0, output_helpers_1.buildResponse)([{ type: 'text', value: lines.join('\n') }]);
96
+ }
97
+ catch (err) {
98
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to fetch log events: ${err.message ?? err}`);
99
+ }
100
+ }
101
+ }
102
+ /** Sub-processor that lists CloudWatch metrics for a given namespace. */
103
+ class CloudWatchMetricsProcessor extends cli_server_abstractions_1.CliCommandProcessor {
104
+ credentialManager;
105
+ command = 'metrics';
106
+ description = 'List CloudWatch metrics for a namespace';
107
+ valueRequired = true;
108
+ parameters = [
109
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
110
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (table|json|text)', false, 'string', ['-o'], 'table'),
111
+ ];
112
+ constructor(credentialManager) {
113
+ super();
114
+ this.credentialManager = credentialManager;
115
+ }
116
+ /** @inheritdoc */
117
+ async handleAsync() {
118
+ return '';
119
+ }
120
+ /** @inheritdoc */
121
+ async handleStructuredAsync(command) {
122
+ const namespace = (0, cli_server_abstractions_1.getPositionalText)(command);
123
+ if (!namespace) {
124
+ return (0, output_helpers_1.buildErrorResponse)('Namespace is required. Usage: cloudwatch metrics <namespace>');
125
+ }
126
+ const client = this.credentialManager.getClient(client_cloudwatch_1.CloudWatchClient, {
127
+ region: command.args?.region ? String(command.args.region) : undefined,
128
+ });
129
+ try {
130
+ const response = await client.send(new client_cloudwatch_1.ListMetricsCommand({ Namespace: namespace }));
131
+ const metrics = response.Metrics ?? [];
132
+ if (metrics.length === 0) {
133
+ return (0, output_helpers_1.buildResponse)([{ type: 'text', value: `No metrics found for namespace "${namespace}".`, style: 'warning' }]);
134
+ }
135
+ const rows = metrics.map((m) => {
136
+ const dims = (m.Dimensions ?? [])
137
+ .map((d) => `${d.Name}=${d.Value}`)
138
+ .join(', ');
139
+ return [m.MetricName ?? '(unknown)', dims];
140
+ });
141
+ const tableOutput = (0, output_helpers_1.formatAsTable)(['MetricName', 'Dimensions'], rows);
142
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, tableOutput, metrics)]);
143
+ }
144
+ catch (err) {
145
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to list metrics: ${err.message ?? err}`);
146
+ }
147
+ }
148
+ }
149
+ /** Parent processor for CloudWatch sub-commands (alarms, logs, metrics). */
150
+ class AwsCloudWatchProcessor extends cli_server_abstractions_1.CliCommandProcessor {
151
+ command = 'cloudwatch';
152
+ description = 'Amazon CloudWatch — alarms, logs, and metrics';
153
+ processors;
154
+ constructor(credentialManager) {
155
+ super();
156
+ this.processors = [
157
+ new CloudWatchAlarmsProcessor(credentialManager),
158
+ new CloudWatchLogsProcessor(credentialManager),
159
+ new CloudWatchMetricsProcessor(credentialManager),
160
+ ];
161
+ }
162
+ /** @inheritdoc */
163
+ async handleAsync() {
164
+ return '';
165
+ }
166
+ }
167
+ exports.AwsCloudWatchProcessor = AwsCloudWatchProcessor;
168
+ //# sourceMappingURL=cloudwatch-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cloudwatch-processor.js","sourceRoot":"","sources":["../../src/processors/cloudwatch-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CliCommandProcessor, ICliCommandProcessor } from '@qodalis/cli-server-abstractions';
2
+ import { AwsCredentialManager } from '../services/aws-credential-manager';
3
+ /** Parent processor for DynamoDB sub-commands (tables, describe, scan, query). */
4
+ export declare class AwsDynamoDbProcessor extends CliCommandProcessor {
5
+ command: string;
6
+ description: string;
7
+ processors: ICliCommandProcessor[];
8
+ constructor(credentialManager: AwsCredentialManager);
9
+ /** @inheritdoc */
10
+ handleAsync(): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=dynamodb-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb-processor.d.ts","sourceRoot":"","sources":["../../src/processors/dynamodb-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAInB,oBAAoB,EAEvB,MAAM,kCAAkC,CAAC;AAQ1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAkN1E,kFAAkF;AAClF,qBAAa,oBAAqB,SAAQ,mBAAmB;IACzD,OAAO,SAAc;IACrB,WAAW,SAA6D;IACxE,UAAU,EAAE,oBAAoB,EAAE,CAAC;gBAEvB,iBAAiB,EAAE,oBAAoB;IAUnD,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsDynamoDbProcessor = void 0;
4
+ const cli_server_abstractions_1 = require("@qodalis/cli-server-abstractions");
5
+ const client_dynamodb_1 = require("@aws-sdk/client-dynamodb");
6
+ const output_helpers_1 = require("../utils/output-helpers");
7
+ /** Sub-processor that lists DynamoDB tables. */
8
+ class DynamoDbTablesProcessor extends cli_server_abstractions_1.CliCommandProcessor {
9
+ credentialManager;
10
+ command = 'tables';
11
+ description = 'List DynamoDB tables';
12
+ parameters = [
13
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
14
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('output', 'Output format (list|json|text)', false, 'string', ['-o'], 'list'),
15
+ ];
16
+ constructor(credentialManager) {
17
+ super();
18
+ this.credentialManager = credentialManager;
19
+ }
20
+ /** @inheritdoc */
21
+ async handleAsync() {
22
+ return '';
23
+ }
24
+ /** @inheritdoc */
25
+ async handleStructuredAsync(command) {
26
+ const client = this.credentialManager.getClient(client_dynamodb_1.DynamoDBClient, {
27
+ region: command.args?.region ? String(command.args.region) : undefined,
28
+ });
29
+ try {
30
+ const response = await client.send(new client_dynamodb_1.ListTablesCommand({}));
31
+ const tableNames = response.TableNames ?? [];
32
+ if (tableNames.length === 0) {
33
+ return (0, output_helpers_1.buildResponse)([{ type: 'text', value: 'No DynamoDB tables found.', style: 'warning' }]);
34
+ }
35
+ const listOutput = (0, output_helpers_1.formatAsList)(tableNames);
36
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.applyOutputFormat)(command, listOutput, tableNames)]);
37
+ }
38
+ catch (err) {
39
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to list DynamoDB tables: ${err.message ?? err}`);
40
+ }
41
+ }
42
+ }
43
+ /** Sub-processor that describes a DynamoDB table's metadata (key schema, item count, etc.). */
44
+ class DynamoDbDescribeProcessor extends cli_server_abstractions_1.CliCommandProcessor {
45
+ credentialManager;
46
+ command = 'describe';
47
+ description = 'Describe a DynamoDB table';
48
+ valueRequired = true;
49
+ parameters = [
50
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
51
+ ];
52
+ constructor(credentialManager) {
53
+ super();
54
+ this.credentialManager = credentialManager;
55
+ }
56
+ /** @inheritdoc */
57
+ async handleAsync() {
58
+ return '';
59
+ }
60
+ /** @inheritdoc */
61
+ async handleStructuredAsync(command) {
62
+ const tableName = (0, cli_server_abstractions_1.getPositionalText)(command);
63
+ if (!tableName) {
64
+ return (0, output_helpers_1.buildErrorResponse)('Table name is required. Usage: dynamodb describe <table-name>');
65
+ }
66
+ const client = this.credentialManager.getClient(client_dynamodb_1.DynamoDBClient, {
67
+ region: command.args?.region ? String(command.args.region) : undefined,
68
+ });
69
+ try {
70
+ const response = await client.send(new client_dynamodb_1.DescribeTableCommand({ TableName: tableName }));
71
+ const table = response.Table;
72
+ if (!table) {
73
+ return (0, output_helpers_1.buildErrorResponse)(`Table "${tableName}" not found.`);
74
+ }
75
+ const keySchema = (table.KeySchema ?? [])
76
+ .map((k) => `${k.AttributeName} (${k.KeyType})`)
77
+ .join(', ');
78
+ const entries = {
79
+ TableName: table.TableName ?? '(unknown)',
80
+ TableStatus: table.TableStatus ?? '(unknown)',
81
+ ItemCount: String(table.ItemCount ?? 0),
82
+ TableSizeBytes: String(table.TableSizeBytes ?? 0),
83
+ KeySchema: keySchema,
84
+ CreationDateTime: table.CreationDateTime ? table.CreationDateTime.toISOString() : '(unknown)',
85
+ };
86
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.formatAsKeyValue)(entries)]);
87
+ }
88
+ catch (err) {
89
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to describe DynamoDB table: ${err.message ?? err}`);
90
+ }
91
+ }
92
+ }
93
+ /** Sub-processor that scans items from a DynamoDB table. */
94
+ class DynamoDbScanProcessor extends cli_server_abstractions_1.CliCommandProcessor {
95
+ credentialManager;
96
+ command = 'scan';
97
+ description = 'Scan items from a DynamoDB table';
98
+ valueRequired = true;
99
+ parameters = [
100
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('limit', 'Maximum number of items to return (default: 25)', false, 'number', ['-l'], '25'),
101
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
102
+ ];
103
+ constructor(credentialManager) {
104
+ super();
105
+ this.credentialManager = credentialManager;
106
+ }
107
+ /** @inheritdoc */
108
+ async handleAsync() {
109
+ return '';
110
+ }
111
+ /** @inheritdoc */
112
+ async handleStructuredAsync(command) {
113
+ const tableName = (0, cli_server_abstractions_1.getPositionalText)(command);
114
+ if (!tableName) {
115
+ return (0, output_helpers_1.buildErrorResponse)('Table name is required. Usage: dynamodb scan <table-name>');
116
+ }
117
+ const limit = command.args?.limit ? Number(command.args.limit) : 25;
118
+ const client = this.credentialManager.getClient(client_dynamodb_1.DynamoDBClient, {
119
+ region: command.args?.region ? String(command.args.region) : undefined,
120
+ });
121
+ try {
122
+ const response = await client.send(new client_dynamodb_1.ScanCommand({
123
+ TableName: tableName,
124
+ Limit: limit,
125
+ }));
126
+ const items = response.Items ?? [];
127
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.formatAsJson)(items)]);
128
+ }
129
+ catch (err) {
130
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to scan DynamoDB table: ${err.message ?? err}`);
131
+ }
132
+ }
133
+ }
134
+ /** Sub-processor that queries items from a DynamoDB table using a key condition expression. */
135
+ class DynamoDbQueryProcessor extends cli_server_abstractions_1.CliCommandProcessor {
136
+ credentialManager;
137
+ command = 'query';
138
+ description = 'Query items from a DynamoDB table';
139
+ valueRequired = true;
140
+ parameters = [
141
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('key', 'KeyConditionExpression for the query', true, 'string', ['-k']),
142
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('filter', 'FilterExpression for the query', false, 'string', ['-f']),
143
+ new cli_server_abstractions_1.CliCommandParameterDescriptor('region', 'AWS region override', false, 'string', ['-r']),
144
+ ];
145
+ constructor(credentialManager) {
146
+ super();
147
+ this.credentialManager = credentialManager;
148
+ }
149
+ /** @inheritdoc */
150
+ async handleAsync() {
151
+ return '';
152
+ }
153
+ /** @inheritdoc */
154
+ async handleStructuredAsync(command) {
155
+ const tableName = (0, cli_server_abstractions_1.getPositionalText)(command);
156
+ if (!tableName) {
157
+ return (0, output_helpers_1.buildErrorResponse)('Table name is required. Usage: dynamodb query <table-name> --key <expression>');
158
+ }
159
+ const keyCondition = command.args?.key;
160
+ if (!keyCondition) {
161
+ return (0, output_helpers_1.buildErrorResponse)('--key (KeyConditionExpression) is required. Usage: dynamodb query <table-name> --key <expression>');
162
+ }
163
+ const filterExpression = command.args?.filter;
164
+ const client = this.credentialManager.getClient(client_dynamodb_1.DynamoDBClient, {
165
+ region: command.args?.region ? String(command.args.region) : undefined,
166
+ });
167
+ try {
168
+ const response = await client.send(new client_dynamodb_1.QueryCommand({
169
+ TableName: tableName,
170
+ KeyConditionExpression: keyCondition,
171
+ FilterExpression: filterExpression,
172
+ }));
173
+ const items = response.Items ?? [];
174
+ return (0, output_helpers_1.buildResponse)([(0, output_helpers_1.formatAsJson)(items)]);
175
+ }
176
+ catch (err) {
177
+ return (0, output_helpers_1.buildErrorResponse)(`Failed to query DynamoDB table: ${err.message ?? err}`);
178
+ }
179
+ }
180
+ }
181
+ /** Parent processor for DynamoDB sub-commands (tables, describe, scan, query). */
182
+ class AwsDynamoDbProcessor extends cli_server_abstractions_1.CliCommandProcessor {
183
+ command = 'dynamodb';
184
+ description = 'AWS DynamoDB operations — tables, describe, scan, query';
185
+ processors;
186
+ constructor(credentialManager) {
187
+ super();
188
+ this.processors = [
189
+ new DynamoDbTablesProcessor(credentialManager),
190
+ new DynamoDbDescribeProcessor(credentialManager),
191
+ new DynamoDbScanProcessor(credentialManager),
192
+ new DynamoDbQueryProcessor(credentialManager),
193
+ ];
194
+ }
195
+ /** @inheritdoc */
196
+ async handleAsync() {
197
+ return '';
198
+ }
199
+ }
200
+ exports.AwsDynamoDbProcessor = AwsDynamoDbProcessor;
201
+ //# sourceMappingURL=dynamodb-processor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dynamodb-processor.js","sourceRoot":"","sources":["../../src/processors/dynamodb-processor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { CliCommandProcessor, ICliCommandProcessor } from '@qodalis/cli-server-abstractions';
2
+ import { AwsCredentialManager } from '../services/aws-credential-manager';
3
+ /** Parent processor for all EC2 sub-commands (list, describe, start, stop, reboot, sg). */
4
+ export declare class AwsEc2Processor extends CliCommandProcessor {
5
+ command: string;
6
+ description: string;
7
+ processors: ICliCommandProcessor[];
8
+ constructor(credentialManager: AwsCredentialManager);
9
+ /** @inheritdoc */
10
+ handleAsync(): Promise<string>;
11
+ }
12
+ //# sourceMappingURL=ec2-processor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ec2-processor.d.ts","sourceRoot":"","sources":["../../src/processors/ec2-processor.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,mBAAmB,EAInB,oBAAoB,EAEvB,MAAM,kCAAkC,CAAC;AAS1C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAsU1E,2FAA2F;AAC3F,qBAAa,eAAgB,SAAQ,mBAAmB;IACpD,OAAO,SAAS;IAChB,WAAW,SAAkE;IAC7E,UAAU,EAAE,oBAAoB,EAAE,CAAC;gBAEvB,iBAAiB,EAAE,oBAAoB;IAYnD,kBAAkB;IACZ,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;CAGvC"}