@infodb/lctl 0.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 (43) hide show
  1. package/README.md +245 -0
  2. package/bin/cli.js +3 -0
  3. package/dist/commands/delete.d.ts +7 -0
  4. package/dist/commands/delete.d.ts.map +1 -0
  5. package/dist/commands/delete.js +23 -0
  6. package/dist/commands/delete.js.map +1 -0
  7. package/dist/commands/deploy.d.ts +11 -0
  8. package/dist/commands/deploy.d.ts.map +1 -0
  9. package/dist/commands/deploy.js +98 -0
  10. package/dist/commands/deploy.js.map +1 -0
  11. package/dist/commands/export.d.ts +12 -0
  12. package/dist/commands/export.d.ts.map +1 -0
  13. package/dist/commands/export.js +50 -0
  14. package/dist/commands/export.js.map +1 -0
  15. package/dist/commands/info.d.ts +7 -0
  16. package/dist/commands/info.d.ts.map +1 -0
  17. package/dist/commands/info.js +48 -0
  18. package/dist/commands/info.js.map +1 -0
  19. package/dist/index.d.ts +3 -0
  20. package/dist/index.d.ts.map +1 -0
  21. package/dist/index.js +73 -0
  22. package/dist/index.js.map +1 -0
  23. package/dist/utils/aws-cli.d.ts +35 -0
  24. package/dist/utils/aws-cli.d.ts.map +1 -0
  25. package/dist/utils/aws-cli.js +196 -0
  26. package/dist/utils/aws-cli.js.map +1 -0
  27. package/dist/utils/config.d.ts +41 -0
  28. package/dist/utils/config.d.ts.map +1 -0
  29. package/dist/utils/config.js +119 -0
  30. package/dist/utils/config.js.map +1 -0
  31. package/dist/utils/logger.d.ts +11 -0
  32. package/dist/utils/logger.d.ts.map +1 -0
  33. package/dist/utils/logger.js +42 -0
  34. package/dist/utils/logger.js.map +1 -0
  35. package/dist/utils/script-generator.d.ts +19 -0
  36. package/dist/utils/script-generator.d.ts.map +1 -0
  37. package/dist/utils/script-generator.js +205 -0
  38. package/dist/utils/script-generator.js.map +1 -0
  39. package/dist/utils/zip.d.ts +9 -0
  40. package/dist/utils/zip.d.ts.map +1 -0
  41. package/dist/utils/zip.js +122 -0
  42. package/dist/utils/zip.js.map +1 -0
  43. package/package.json +42 -0
@@ -0,0 +1,35 @@
1
+ import { Logger } from './logger';
2
+ import { LambdaConfig } from './config';
3
+ export interface LambdaFunctionInfo {
4
+ FunctionName: string;
5
+ Runtime: string;
6
+ Handler: string;
7
+ MemorySize: number;
8
+ Timeout: number;
9
+ LastModified: string;
10
+ CodeSize: number;
11
+ State: string;
12
+ Architectures?: string[];
13
+ Description?: string;
14
+ Environment?: {
15
+ Variables: Record<string, string>;
16
+ };
17
+ Layers?: Array<{
18
+ Arn: string;
19
+ }>;
20
+ }
21
+ export declare class AwsCliManager {
22
+ private region?;
23
+ private profile?;
24
+ private logger?;
25
+ constructor(region?: string | undefined, profile?: string | undefined, logger?: Logger | undefined);
26
+ deployFunction(functionName: string, config: LambdaConfig, zipPath: string): Promise<void>;
27
+ private functionExists;
28
+ private createFunction;
29
+ private updateFunction;
30
+ private setAdditionalConfigurations;
31
+ deleteFunction(functionName: string): Promise<void>;
32
+ getFunctionInfo(functionName: string): Promise<LambdaFunctionInfo>;
33
+ private runAwsCommand;
34
+ }
35
+ //# sourceMappingURL=aws-cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-cli.d.ts","sourceRoot":"","sources":["../../src/utils/aws-cli.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE;QACZ,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KACnC,CAAC;IACF,MAAM,CAAC,EAAE,KAAK,CAAC;QACb,GAAG,EAAE,MAAM,CAAC;KACb,CAAC,CAAC;CACJ;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM,CAAC;IACf,OAAO,CAAC,OAAO,CAAC;IAChB,OAAO,CAAC,MAAM,CAAC;gBAFP,MAAM,CAAC,EAAE,MAAM,YAAA,EACf,OAAO,CAAC,EAAE,MAAM,YAAA,EAChB,MAAM,CAAC,EAAE,MAAM,YAAA;IAGnB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAWlF,cAAc;YASd,cAAc;YAqDd,cAAc;YAgDd,2BAA2B;IAsCnC,cAAc,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAOnD,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;YAU1D,aAAa;CA8C5B"}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AwsCliManager = void 0;
4
+ const child_process_1 = require("child_process");
5
+ class AwsCliManager {
6
+ constructor(region, profile, logger) {
7
+ this.region = region;
8
+ this.profile = profile;
9
+ this.logger = logger;
10
+ }
11
+ async deployFunction(functionName, config, zipPath) {
12
+ // Check if function exists
13
+ const functionExists = await this.functionExists(functionName);
14
+ if (functionExists) {
15
+ await this.updateFunction(functionName, config, zipPath);
16
+ }
17
+ else {
18
+ await this.createFunction(functionName, config, zipPath);
19
+ }
20
+ }
21
+ async functionExists(functionName) {
22
+ try {
23
+ await this.runAwsCommand(['lambda', 'get-function', '--function-name', functionName]);
24
+ return true;
25
+ }
26
+ catch (error) {
27
+ return false;
28
+ }
29
+ }
30
+ async createFunction(functionName, config, zipPath) {
31
+ this.logger?.info('Creating new Lambda function...');
32
+ const args = [
33
+ 'lambda', 'create-function',
34
+ '--function-name', functionName,
35
+ '--runtime', config.runtime,
36
+ '--role', config.role,
37
+ '--handler', config.handler,
38
+ '--zip-file', `fileb://${zipPath}`,
39
+ ];
40
+ // Add optional parameters
41
+ if (config.description) {
42
+ args.push('--description', config.description);
43
+ }
44
+ if (config.memory) {
45
+ args.push('--memory-size', config.memory.toString());
46
+ }
47
+ if (config.timeout) {
48
+ args.push('--timeout', config.timeout.toString());
49
+ }
50
+ if (config.architecture && config.architecture !== 'x86_64') {
51
+ args.push('--architectures', config.architecture);
52
+ }
53
+ if (config.environment && Object.keys(config.environment).length > 0) {
54
+ const envVars = Object.entries(config.environment)
55
+ .map(([key, value]) => `${key}=${value}`)
56
+ .join(',');
57
+ args.push('--environment', `Variables={${envVars}}`);
58
+ }
59
+ if (config.layers && config.layers.length > 0) {
60
+ args.push('--layers', config.layers.join(' '));
61
+ }
62
+ if (config.tags && Object.keys(config.tags).length > 0) {
63
+ const tags = Object.entries(config.tags)
64
+ .map(([key, value]) => `${key}=${value}`)
65
+ .join(',');
66
+ args.push('--tags', tags);
67
+ }
68
+ await this.runAwsCommand(args);
69
+ // Set additional configurations
70
+ await this.setAdditionalConfigurations(functionName, config);
71
+ }
72
+ async updateFunction(functionName, config, zipPath) {
73
+ this.logger?.info('Updating existing Lambda function...');
74
+ // Update function code
75
+ await this.runAwsCommand([
76
+ 'lambda', 'update-function-code',
77
+ '--function-name', functionName,
78
+ '--zip-file', `fileb://${zipPath}`,
79
+ ]);
80
+ // Update function configuration
81
+ const configArgs = [
82
+ 'lambda', 'update-function-configuration',
83
+ '--function-name', functionName,
84
+ '--runtime', config.runtime,
85
+ '--role', config.role,
86
+ '--handler', config.handler,
87
+ ];
88
+ if (config.description) {
89
+ configArgs.push('--description', config.description);
90
+ }
91
+ if (config.memory) {
92
+ configArgs.push('--memory-size', config.memory.toString());
93
+ }
94
+ if (config.timeout) {
95
+ configArgs.push('--timeout', config.timeout.toString());
96
+ }
97
+ if (config.environment) {
98
+ const envVars = Object.entries(config.environment)
99
+ .map(([key, value]) => `${key}=${value}`)
100
+ .join(',');
101
+ configArgs.push('--environment', `Variables={${envVars}}`);
102
+ }
103
+ if (config.layers) {
104
+ configArgs.push('--layers', config.layers.join(' '));
105
+ }
106
+ await this.runAwsCommand(configArgs);
107
+ // Set additional configurations
108
+ await this.setAdditionalConfigurations(functionName, config);
109
+ }
110
+ async setAdditionalConfigurations(functionName, config) {
111
+ // Set reserved concurrency
112
+ if (config.reserved_concurrency !== undefined) {
113
+ await this.runAwsCommand([
114
+ 'lambda', 'put-reserved-concurrency-capacity',
115
+ '--function-name', functionName,
116
+ '--reserved-concurrency-capacity', config.reserved_concurrency.toString(),
117
+ ]);
118
+ }
119
+ // Set VPC configuration
120
+ if (config.vpc) {
121
+ await this.runAwsCommand([
122
+ 'lambda', 'update-function-configuration',
123
+ '--function-name', functionName,
124
+ '--vpc-config', `SubnetIds=${config.vpc.subnets.join(',')},SecurityGroupIds=${config.vpc.security_groups.join(',')}`,
125
+ ]);
126
+ }
127
+ // Set dead letter queue
128
+ if (config.dead_letter_queue) {
129
+ await this.runAwsCommand([
130
+ 'lambda', 'update-function-configuration',
131
+ '--function-name', functionName,
132
+ '--dead-letter-config', `TargetArn=${config.dead_letter_queue.target_arn}`,
133
+ ]);
134
+ }
135
+ // Set ephemeral storage
136
+ if (config.ephemeral_storage) {
137
+ await this.runAwsCommand([
138
+ 'lambda', 'update-function-configuration',
139
+ '--function-name', functionName,
140
+ '--ephemeral-storage', `Size=${config.ephemeral_storage}`,
141
+ ]);
142
+ }
143
+ }
144
+ async deleteFunction(functionName) {
145
+ await this.runAwsCommand([
146
+ 'lambda', 'delete-function',
147
+ '--function-name', functionName,
148
+ ]);
149
+ }
150
+ async getFunctionInfo(functionName) {
151
+ const result = await this.runAwsCommand([
152
+ 'lambda', 'get-function',
153
+ '--function-name', functionName,
154
+ ]);
155
+ const response = JSON.parse(result);
156
+ return response.Configuration;
157
+ }
158
+ async runAwsCommand(args) {
159
+ return new Promise((resolve, reject) => {
160
+ const baseArgs = ['aws'];
161
+ if (this.profile) {
162
+ baseArgs.push('--profile', this.profile);
163
+ }
164
+ if (this.region) {
165
+ baseArgs.push('--region', this.region);
166
+ }
167
+ baseArgs.push('--output', 'json');
168
+ const fullArgs = [...baseArgs, ...args];
169
+ this.logger?.verbose(`Running command: ${fullArgs.join(' ')}`);
170
+ const child = (0, child_process_1.spawn)(fullArgs[0], fullArgs.slice(1), {
171
+ stdio: ['inherit', 'pipe', 'pipe'],
172
+ });
173
+ let stdout = '';
174
+ let stderr = '';
175
+ child.stdout?.on('data', (data) => {
176
+ stdout += data.toString();
177
+ });
178
+ child.stderr?.on('data', (data) => {
179
+ stderr += data.toString();
180
+ });
181
+ child.on('close', (code) => {
182
+ if (code === 0) {
183
+ resolve(stdout);
184
+ }
185
+ else {
186
+ reject(new Error(`AWS CLI command failed (exit code ${code}): ${stderr || stdout}`));
187
+ }
188
+ });
189
+ child.on('error', (error) => {
190
+ reject(new Error(`Failed to spawn AWS CLI: ${error.message}`));
191
+ });
192
+ });
193
+ }
194
+ }
195
+ exports.AwsCliManager = AwsCliManager;
196
+ //# sourceMappingURL=aws-cli.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-cli.js","sourceRoot":"","sources":["../../src/utils/aws-cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,41 @@
1
+ import { Logger } from './logger';
2
+ export interface LambdaConfig {
3
+ runtime: string;
4
+ handler: string;
5
+ role: string;
6
+ architecture?: string;
7
+ memory?: number;
8
+ timeout?: number;
9
+ description?: string;
10
+ reserved_concurrency?: number;
11
+ provisioned_concurrency?: number;
12
+ ephemeral_storage?: number;
13
+ files?: string[];
14
+ environment?: Record<string, string>;
15
+ layers?: string[];
16
+ vpc?: {
17
+ subnets: string[];
18
+ security_groups: string[];
19
+ };
20
+ dead_letter_queue?: {
21
+ target_arn: string;
22
+ };
23
+ tags?: Record<string, string>;
24
+ log_retention_days?: number;
25
+ auto_create_log_group?: boolean;
26
+ zip_excludes?: string[];
27
+ }
28
+ export interface DeployConfig {
29
+ runtime?: string;
30
+ handler?: string;
31
+ role?: string;
32
+ }
33
+ export declare class ConfigManager {
34
+ private functionName;
35
+ private params;
36
+ private logger;
37
+ constructor(functionName: string, params: Record<string, string>, logger: Logger);
38
+ loadConfig(overrides: DeployConfig): Promise<LambdaConfig>;
39
+ private substituteVariables;
40
+ }
41
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,uBAAuB,CAAC,EAAE,MAAM,CAAC;IACjC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,GAAG,CAAC,EAAE;QACJ,OAAO,EAAE,MAAM,EAAE,CAAC;QAClB,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;IACF,iBAAiB,CAAC,EAAE;QAClB,UAAU,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAG9B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,aAAa;IAEtB,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;gBAFN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC9B,MAAM,EAAE,MAAM;IAGlB,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IA8ChE,OAAO,CAAC,mBAAmB;CAkC5B"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.ConfigManager = void 0;
37
+ const fs = __importStar(require("fs/promises"));
38
+ const path = __importStar(require("path"));
39
+ const yaml = __importStar(require("yaml"));
40
+ class ConfigManager {
41
+ constructor(functionName, params, logger) {
42
+ this.functionName = functionName;
43
+ this.params = params;
44
+ this.logger = logger;
45
+ }
46
+ async loadConfig(overrides) {
47
+ const yamlPath = path.join(process.cwd(), `${this.functionName}.yaml`);
48
+ let yamlConfig = {};
49
+ // Try to load YAML config
50
+ try {
51
+ const yamlContent = await fs.readFile(yamlPath, 'utf-8');
52
+ const parsedYaml = yaml.parse(yamlContent);
53
+ yamlConfig = this.substituteVariables(parsedYaml);
54
+ this.logger.verbose(`Loaded YAML config from: ${yamlPath}`);
55
+ }
56
+ catch (error) {
57
+ this.logger.verbose(`No YAML config found at: ${yamlPath}`);
58
+ }
59
+ // Set defaults
60
+ const defaultHandler = `${this.functionName}.handler`;
61
+ const config = {
62
+ runtime: overrides.runtime || yamlConfig.runtime || 'python3.12',
63
+ handler: overrides.handler || yamlConfig.handler || defaultHandler,
64
+ role: overrides.role || yamlConfig.role || '',
65
+ architecture: yamlConfig.architecture || 'x86_64',
66
+ memory: yamlConfig.memory || 128,
67
+ timeout: yamlConfig.timeout || 3,
68
+ description: yamlConfig.description,
69
+ reserved_concurrency: yamlConfig.reserved_concurrency,
70
+ provisioned_concurrency: yamlConfig.provisioned_concurrency,
71
+ ephemeral_storage: yamlConfig.ephemeral_storage,
72
+ files: yamlConfig.files || ['.'],
73
+ environment: yamlConfig.environment || {},
74
+ layers: yamlConfig.layers || [],
75
+ vpc: yamlConfig.vpc,
76
+ dead_letter_queue: yamlConfig.dead_letter_queue,
77
+ tags: yamlConfig.tags || {},
78
+ log_retention_days: yamlConfig.log_retention_days || 7,
79
+ auto_create_log_group: yamlConfig.auto_create_log_group !== false,
80
+ zip_excludes: yamlConfig.zip_excludes || ['*.git*', 'node_modules/*', '*.zip', 'dist/*', '.DS_Store'],
81
+ };
82
+ // Validate required fields
83
+ if (!config.role) {
84
+ throw new Error('IAM role ARN is required. Specify with --role option or in YAML config.');
85
+ }
86
+ return config;
87
+ }
88
+ substituteVariables(obj) {
89
+ if (typeof obj === 'string') {
90
+ // Replace $key with params
91
+ let result = obj;
92
+ for (const [key, value] of Object.entries(this.params)) {
93
+ result = result.replace(new RegExp(`\\$${key}\\b`, 'g'), value);
94
+ }
95
+ // Replace ${ENV_VAR} with environment variables
96
+ result = result.replace(/\$\{([^}]+)\}/g, (match, envVar) => {
97
+ const envValue = process.env[envVar];
98
+ if (envValue === undefined) {
99
+ throw new Error(`Environment variable ${envVar} is not defined`);
100
+ }
101
+ return envValue;
102
+ });
103
+ return result;
104
+ }
105
+ if (Array.isArray(obj)) {
106
+ return obj.map(item => this.substituteVariables(item));
107
+ }
108
+ if (obj && typeof obj === 'object') {
109
+ const result = {};
110
+ for (const [key, value] of Object.entries(obj)) {
111
+ result[key] = this.substituteVariables(value);
112
+ }
113
+ return result;
114
+ }
115
+ return obj;
116
+ }
117
+ }
118
+ exports.ConfigManager = ConfigManager;
119
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ export declare class Logger {
2
+ private isVerbose;
3
+ constructor(isVerbose?: boolean);
4
+ info(message: string): void;
5
+ success(message: string): void;
6
+ error(message: string): void;
7
+ warning(message: string): void;
8
+ verbose(message: string, data?: any): void;
9
+ debug(message: string, data?: any): void;
10
+ }
11
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"AAEA,qBAAa,MAAM;IACL,OAAO,CAAC,SAAS;gBAAT,SAAS,GAAE,OAAe;IAE9C,IAAI,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI3B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,KAAK,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI5B,OAAO,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAI9B,OAAO,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;IAS1C,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,GAAG,IAAI;CAQzC"}
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Logger = void 0;
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ class Logger {
9
+ constructor(isVerbose = false) {
10
+ this.isVerbose = isVerbose;
11
+ }
12
+ info(message) {
13
+ console.log(chalk_1.default.blue('ℹ'), message);
14
+ }
15
+ success(message) {
16
+ console.log(message);
17
+ }
18
+ error(message) {
19
+ console.error(chalk_1.default.red('✗'), message);
20
+ }
21
+ warning(message) {
22
+ console.warn(chalk_1.default.yellow('⚠'), message);
23
+ }
24
+ verbose(message, data) {
25
+ if (this.isVerbose) {
26
+ console.log(chalk_1.default.gray('🔍'), chalk_1.default.gray(message));
27
+ if (data) {
28
+ console.log(chalk_1.default.gray(JSON.stringify(data, null, 2)));
29
+ }
30
+ }
31
+ }
32
+ debug(message, data) {
33
+ if (this.isVerbose) {
34
+ console.log(chalk_1.default.magenta('🐛'), chalk_1.default.magenta(message));
35
+ if (data) {
36
+ console.log(chalk_1.default.magenta(JSON.stringify(data, null, 2)));
37
+ }
38
+ }
39
+ }
40
+ }
41
+ exports.Logger = Logger;
42
+ //# sourceMappingURL=logger.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":";;;;;;AAAA,kDAA0B;AAE1B,MAAa,MAAM;IACjB,YAAoB,YAAqB,KAAK;QAA1B,cAAS,GAAT,SAAS,CAAiB;IAAG,CAAC;IAElD,IAAI,CAAC,OAAe;QAClB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAe;QACnB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IAED,OAAO,CAAC,OAAe;QACrB,OAAO,CAAC,IAAI,CAAC,eAAK,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED,OAAO,CAAC,OAAe,EAAE,IAAU;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,eAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;YACnD,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,OAAe,EAAE,IAAU;QAC/B,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,eAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC;YACzD,IAAI,IAAI,EAAE,CAAC;gBACT,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;CACF;AApCD,wBAoCC"}
@@ -0,0 +1,19 @@
1
+ import { LambdaConfig } from './config';
2
+ import { Logger } from './logger';
3
+ export declare class ScriptGenerator {
4
+ private logger;
5
+ constructor(logger: Logger);
6
+ generateDeployScript(functionName: string, config: LambdaConfig): string;
7
+ private generateEnvironmentSection;
8
+ private generateZipSection;
9
+ private generateEnvironmentVariablesSection;
10
+ private generateLayersSection;
11
+ private generateEnvironmentVariablesFlag;
12
+ private generateLayersFlag;
13
+ private generateDescriptionFlag;
14
+ private generateAdditionalConfigurationCommands;
15
+ private generateLogGroupSection;
16
+ saveScript(outputPath: string, script: string): Promise<string>;
17
+ cleanupScript(scriptPath: string): Promise<void>;
18
+ }
19
+ //# sourceMappingURL=script-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"script-generator.d.ts","sourceRoot":"","sources":["../../src/utils/script-generator.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,qBAAa,eAAe;IACd,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,MAAM;IAElC,oBAAoB,CAAC,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,MAAM;IAkDxE,OAAO,CAAC,0BAA0B;IAIlC,OAAO,CAAC,kBAAkB;IA4B1B,OAAO,CAAC,mCAAmC;IAqB3C,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uCAAuC;IA0C/C,OAAO,CAAC,uBAAuB;IAuBzB,UAAU,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAO/D,aAAa,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CAQvD"}