@infodb/lctl 0.8.0 → 0.9.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.
- package/README.md +91 -11
- package/dist/commands/deploy.d.ts.map +1 -1
- package/dist/commands/deploy.js +17 -15
- package/dist/commands/deploy.js.map +1 -1
- package/dist/commands/makezip.d.ts +5 -0
- package/dist/commands/makezip.d.ts.map +1 -0
- package/dist/commands/makezip.js +187 -0
- package/dist/commands/makezip.js.map +1 -0
- package/dist/index.js +9 -1
- package/dist/index.js.map +1 -1
- package/dist/utils/config.d.ts +1 -0
- package/dist/utils/config.d.ts.map +1 -1
- package/dist/utils/config.js +1 -0
- package/dist/utils/config.js.map +1 -1
- package/dist/utils/script-generator.d.ts.map +1 -1
- package/dist/utils/script-generator.js +11 -33
- package/dist/utils/script-generator.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -18,9 +18,8 @@ project/
|
|
|
18
18
|
│ └── other-function.yaml
|
|
19
19
|
├── functions/ # Lambda関数コード(必須)
|
|
20
20
|
│ ├── my-function.py
|
|
21
|
-
│ ├── requirements.txt
|
|
22
21
|
│ └── utils.py
|
|
23
|
-
└──
|
|
22
|
+
└── my-function.zip # 生成されるデプロイパッケージ
|
|
24
23
|
```
|
|
25
24
|
|
|
26
25
|
### 2. YAML設定ファイルを作成
|
|
@@ -35,7 +34,12 @@ role: arn:aws:iam::123456789012:role/lambda-execution-role
|
|
|
35
34
|
# ファイル設定
|
|
36
35
|
files:
|
|
37
36
|
- my_function.py
|
|
38
|
-
-
|
|
37
|
+
- utils.py
|
|
38
|
+
|
|
39
|
+
# Python依存関係(自動インストール)
|
|
40
|
+
requirements:
|
|
41
|
+
- requests>=2.28.0
|
|
42
|
+
- boto3>=1.26.0
|
|
39
43
|
|
|
40
44
|
# 環境変数
|
|
41
45
|
environment:
|
|
@@ -49,13 +53,39 @@ permissions:
|
|
|
49
53
|
|
|
50
54
|
### 3. デプロイ実行
|
|
51
55
|
```bash
|
|
52
|
-
#
|
|
56
|
+
# 一括デプロイ(推奨)
|
|
53
57
|
pnpx @infodb/lctl deploy my-function
|
|
58
|
+
|
|
59
|
+
# または個別実行
|
|
60
|
+
pnpx @infodb/lctl makezip my-function # ZIPパッケージ作成
|
|
61
|
+
pnpx @infodb/lctl export my-function # スクリプト生成
|
|
62
|
+
bash deploy-my-function.sh # デプロイ実行
|
|
54
63
|
```
|
|
55
64
|
|
|
56
65
|
## コマンド一覧
|
|
57
66
|
|
|
58
|
-
### 1.
|
|
67
|
+
### 1. makezip - デプロイパッケージの作成
|
|
68
|
+
```bash
|
|
69
|
+
pnpx @infodb/lctl makezip <config-name> [オプション]
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**必須引数:**
|
|
73
|
+
- `config-name`: 設定ファイル名(.yaml拡張子は不要)
|
|
74
|
+
|
|
75
|
+
**オプション:**
|
|
76
|
+
- `--verbose`: 詳細なログを出力
|
|
77
|
+
|
|
78
|
+
**機能:**
|
|
79
|
+
- `requirements`セクションがあれば自動的にpip installを実行
|
|
80
|
+
- 既存のvendorフォルダを削除
|
|
81
|
+
- 適切なディレクトリ構造で`<function-name>.zip`を作成
|
|
82
|
+
|
|
83
|
+
**例:**
|
|
84
|
+
```bash
|
|
85
|
+
pnpx @infodb/lctl makezip my-function --verbose
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
### 2. deploy - Lambda関数の完全デプロイ(推奨)
|
|
59
89
|
```bash
|
|
60
90
|
pnpx @infodb/lctl deploy <config-name> [オプション]
|
|
61
91
|
```
|
|
@@ -66,6 +96,11 @@ pnpx @infodb/lctl deploy <config-name> [オプション]
|
|
|
66
96
|
**オプション:**
|
|
67
97
|
- `--verbose`: 詳細なログを出力
|
|
68
98
|
|
|
99
|
+
**動作:**
|
|
100
|
+
1. `makezip`コマンドを自動実行(ZIPパッケージ作成)
|
|
101
|
+
2. `export`コマンドを自動実行(デプロイスクリプト生成)
|
|
102
|
+
3. 生成されたスクリプトを実行(AWS Lambda関数デプロイ)
|
|
103
|
+
|
|
69
104
|
**例:**
|
|
70
105
|
```bash
|
|
71
106
|
# 基本的な使用方法
|
|
@@ -73,12 +108,34 @@ pnpx @infodb/lctl deploy my-function
|
|
|
73
108
|
|
|
74
109
|
# 詳細ログ付き
|
|
75
110
|
pnpx @infodb/lctl deploy my-function --verbose
|
|
111
|
+
```
|
|
76
112
|
|
|
77
|
-
|
|
78
|
-
|
|
113
|
+
### 3. export - デプロイスクリプトの生成
|
|
114
|
+
```bash
|
|
115
|
+
pnpx @infodb/lctl export <config-name> [オプション]
|
|
79
116
|
```
|
|
80
117
|
|
|
81
|
-
|
|
118
|
+
**必須引数:**
|
|
119
|
+
- `config-name`: 設定ファイル名(.yaml拡張子は不要)
|
|
120
|
+
|
|
121
|
+
**オプション:**
|
|
122
|
+
- `--output <file>`: 出力ファイルパス(デフォルト: deploy-{config-name}.sh)
|
|
123
|
+
- `--verbose`: 詳細なログを出力
|
|
124
|
+
|
|
125
|
+
**機能:**
|
|
126
|
+
- `<function-name>.zip`の存在チェックを含むスクリプトを生成
|
|
127
|
+
- CI/CD環境で個別実行するのに適している
|
|
128
|
+
|
|
129
|
+
**例:**
|
|
130
|
+
```bash
|
|
131
|
+
# スクリプト生成
|
|
132
|
+
pnpx @infodb/lctl export my-function
|
|
133
|
+
|
|
134
|
+
# カスタム出力ファイル
|
|
135
|
+
pnpx @infodb/lctl export my-function --output custom-deploy.sh
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### 4. delete - Lambda関数の削除
|
|
82
139
|
```bash
|
|
83
140
|
pnpx @infodb/lctl delete <config-name> [オプション]
|
|
84
141
|
```
|
|
@@ -94,7 +151,7 @@ pnpx @infodb/lctl delete <config-name> [オプション]
|
|
|
94
151
|
pnpx @infodb/lctl delete my-function
|
|
95
152
|
```
|
|
96
153
|
|
|
97
|
-
###
|
|
154
|
+
### 5. info - Lambda関数の詳細情報表示
|
|
98
155
|
```bash
|
|
99
156
|
pnpx @infodb/lctl info <config-name> [オプション]
|
|
100
157
|
```
|
|
@@ -110,7 +167,25 @@ pnpx @infodb/lctl info <config-name> [オプション]
|
|
|
110
167
|
pnpx @infodb/lctl info my-function
|
|
111
168
|
```
|
|
112
169
|
|
|
113
|
-
|
|
170
|
+
## 使用シナリオ
|
|
171
|
+
|
|
172
|
+
### ローカル開発
|
|
173
|
+
```bash
|
|
174
|
+
# 一括デプロイ(最も簡単)
|
|
175
|
+
pnpx @infodb/lctl deploy my-function
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
### CI/CD環境
|
|
179
|
+
```bash
|
|
180
|
+
# 段階的デプロイ(制御しやすい)
|
|
181
|
+
pnpx @infodb/lctl makezip my-function # ZIPパッケージ作成
|
|
182
|
+
pnpx @infodb/lctl export my-function # スクリプト生成
|
|
183
|
+
bash deploy-my-function.sh # デプロイ実行
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### レガシーコマンド(v0.8.0以前との互換性)
|
|
187
|
+
|
|
188
|
+
#### export - デプロイメントスクリプトの出力
|
|
114
189
|
```bash
|
|
115
190
|
pnpx @infodb/lctl export <config-name> [オプション]
|
|
116
191
|
```
|
|
@@ -157,10 +232,15 @@ description: "マイ Lambda 関数"
|
|
|
157
232
|
# デプロイするファイル(functionsディレクトリ内の相対パス)
|
|
158
233
|
files:
|
|
159
234
|
- my_function.py
|
|
160
|
-
- requirements.txt
|
|
161
235
|
- utils.py
|
|
162
236
|
- "lib/**/*.py" # glob パターンも使用可能
|
|
163
237
|
|
|
238
|
+
# Python依存関係(自動インストール)
|
|
239
|
+
requirements:
|
|
240
|
+
- requests>=2.28.0
|
|
241
|
+
- boto3>=1.26.0
|
|
242
|
+
- pandas>=1.5.0
|
|
243
|
+
|
|
164
244
|
# 環境変数
|
|
165
245
|
environment:
|
|
166
246
|
DB_HOST: ${DB_HOST}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"deploy.d.ts","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,aAAa;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,aAAa,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAsC/F"}
|
package/dist/commands/deploy.js
CHANGED
|
@@ -6,35 +6,37 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
exports.deployCommand = deployCommand;
|
|
7
7
|
const chalk_1 = __importDefault(require("chalk"));
|
|
8
8
|
const child_process_1 = require("child_process");
|
|
9
|
-
const config_1 = require("../utils/config");
|
|
10
9
|
const script_generator_1 = require("../utils/script-generator");
|
|
11
10
|
const logger_1 = require("../utils/logger");
|
|
11
|
+
const makezip_1 = require("./makezip");
|
|
12
|
+
const export_1 = require("./export");
|
|
12
13
|
async function deployCommand(functionName, options) {
|
|
13
14
|
const logger = new logger_1.Logger(options.verbose || false);
|
|
14
15
|
try {
|
|
15
16
|
logger.info(`Deploying Lambda function: ${chalk_1.default.cyan(functionName)}`);
|
|
16
|
-
//
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
17
|
+
// Step 1: Create deployment package
|
|
18
|
+
logger.info('Step 1: Creating deployment package...');
|
|
19
|
+
await (0, makezip_1.makeZipCommand)(functionName, { verbose: options.verbose });
|
|
20
|
+
// Step 2: Export deployment script
|
|
21
|
+
logger.info('Step 2: Generating deployment script...');
|
|
22
|
+
const scriptFileName = `deploy-${functionName}.sh`;
|
|
23
|
+
await (0, export_1.exportCommand)(functionName, {
|
|
24
|
+
output: scriptFileName,
|
|
25
|
+
verbose: options.verbose
|
|
26
|
+
});
|
|
27
|
+
// Step 3: Execute the deployment script
|
|
28
|
+
logger.info('Step 3: Executing deployment script...');
|
|
25
29
|
try {
|
|
26
30
|
// Set environment variables for the script
|
|
27
31
|
const env = {
|
|
28
32
|
...process.env,
|
|
29
33
|
};
|
|
30
|
-
|
|
31
|
-
logger.info('Executing deployment script...');
|
|
32
|
-
await executeScript(scriptPath, env, logger);
|
|
33
|
-
// スクリプト内で成功メッセージが出力されるため、ここでは出力しない
|
|
34
|
+
await executeScript(scriptFileName, env, logger);
|
|
34
35
|
}
|
|
35
36
|
finally {
|
|
36
37
|
// Clean up script file
|
|
37
|
-
|
|
38
|
+
const scriptGenerator = new script_generator_1.ScriptGenerator(logger);
|
|
39
|
+
await scriptGenerator.cleanupScript(scriptFileName);
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"deploy.js","sourceRoot":"","sources":["../../src/commands/deploy.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makezip.d.ts","sourceRoot":"","sources":["../../src/commands/makezip.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAsB,cAAc,CAAC,YAAY,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAiDjG"}
|
|
@@ -0,0 +1,187 @@
|
|
|
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
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
38
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
|
+
exports.makeZipCommand = makeZipCommand;
|
|
40
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
41
|
+
const fs = __importStar(require("fs/promises"));
|
|
42
|
+
const path = __importStar(require("path"));
|
|
43
|
+
const child_process_1 = require("child_process");
|
|
44
|
+
const config_1 = require("../utils/config");
|
|
45
|
+
const logger_1 = require("../utils/logger");
|
|
46
|
+
async function makeZipCommand(functionName, options) {
|
|
47
|
+
const logger = new logger_1.Logger(options.verbose || false);
|
|
48
|
+
try {
|
|
49
|
+
logger.info(`Creating deployment package for Lambda function: ${chalk_1.default.cyan(functionName)}`);
|
|
50
|
+
// Load configuration
|
|
51
|
+
const configManager = new config_1.ConfigManager(functionName, logger);
|
|
52
|
+
const config = await configManager.loadConfig({});
|
|
53
|
+
logger.verbose('Configuration loaded:', config);
|
|
54
|
+
const functionsDir = config.functionsDirectory || 'functions';
|
|
55
|
+
const vendorDir = path.join(functionsDir, 'vendor');
|
|
56
|
+
const zipFileName = `${functionName}.zip`;
|
|
57
|
+
// Remove existing vendor directory if it exists
|
|
58
|
+
try {
|
|
59
|
+
await fs.access(vendorDir);
|
|
60
|
+
logger.verbose(`Removing existing vendor directory: ${vendorDir}`);
|
|
61
|
+
await fs.rm(vendorDir, { recursive: true, force: true });
|
|
62
|
+
}
|
|
63
|
+
catch (error) {
|
|
64
|
+
// Directory doesn't exist, continue
|
|
65
|
+
}
|
|
66
|
+
// Remove existing ZIP file if it exists
|
|
67
|
+
try {
|
|
68
|
+
await fs.access(zipFileName);
|
|
69
|
+
logger.verbose(`Removing existing ZIP file: ${zipFileName}`);
|
|
70
|
+
await fs.unlink(zipFileName);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
// File doesn't exist, continue
|
|
74
|
+
}
|
|
75
|
+
// Install Python dependencies if requirements are specified
|
|
76
|
+
if (config.requirements && config.requirements.length > 0) {
|
|
77
|
+
logger.info('Installing Python dependencies...');
|
|
78
|
+
await installPythonDependencies(config.requirements, vendorDir, logger);
|
|
79
|
+
}
|
|
80
|
+
// Create deployment ZIP
|
|
81
|
+
await createDeploymentZip(functionsDir, config, zipFileName, logger);
|
|
82
|
+
logger.success(`✅ Deployment package created successfully: ${chalk_1.default.cyan(zipFileName)}`);
|
|
83
|
+
}
|
|
84
|
+
catch (error) {
|
|
85
|
+
logger.error(`❌ Failed to create deployment package: ${error instanceof Error ? error.message : error}`);
|
|
86
|
+
process.exit(1);
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
async function installPythonDependencies(requirements, vendorDir, logger) {
|
|
90
|
+
// Create vendor directory
|
|
91
|
+
await fs.mkdir(vendorDir, { recursive: true });
|
|
92
|
+
// Install each requirement
|
|
93
|
+
for (const requirement of requirements) {
|
|
94
|
+
logger.verbose(`Installing: ${requirement}`);
|
|
95
|
+
await runCommand('pip', [
|
|
96
|
+
'install',
|
|
97
|
+
'--target', vendorDir,
|
|
98
|
+
'--upgrade',
|
|
99
|
+
requirement
|
|
100
|
+
], logger);
|
|
101
|
+
}
|
|
102
|
+
logger.success('Dependencies installed successfully');
|
|
103
|
+
}
|
|
104
|
+
async function createDeploymentZip(functionsDir, config, zipFileName, logger) {
|
|
105
|
+
logger.info('Creating ZIP package...');
|
|
106
|
+
// Change to functions directory
|
|
107
|
+
const originalCwd = process.cwd();
|
|
108
|
+
process.chdir(functionsDir);
|
|
109
|
+
try {
|
|
110
|
+
// Create a temporary directory to build the final package
|
|
111
|
+
const tempDir = 'temp_package';
|
|
112
|
+
await fs.mkdir(tempDir, { recursive: true });
|
|
113
|
+
try {
|
|
114
|
+
// Copy user files to temp directory
|
|
115
|
+
if (config.files && config.files.length > 0) {
|
|
116
|
+
for (const file of config.files) {
|
|
117
|
+
if (file.includes('*')) {
|
|
118
|
+
// Handle glob patterns with find command
|
|
119
|
+
await runCommand('sh', ['-c', `find . -path "${file}" -type f -exec cp --parents {} ${tempDir}/ \\;`], logger);
|
|
120
|
+
}
|
|
121
|
+
else {
|
|
122
|
+
// Copy regular files/directories
|
|
123
|
+
await runCommand('cp', ['-r', file, tempDir], logger);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
// Copy all files except excludes
|
|
129
|
+
const excludes = config.zip_excludes || ['*.git*', 'node_modules/*', '*.zip', 'dist/*', '.DS_Store'];
|
|
130
|
+
const excludeArgs = excludes.map((exclude) => `--exclude=${exclude}`).join(' ');
|
|
131
|
+
await runCommand('sh', ['-c', `rsync -av ${excludeArgs} --exclude=${tempDir} --exclude=vendor . ${tempDir}/`], logger);
|
|
132
|
+
}
|
|
133
|
+
// Copy vendor dependencies to root level of temp directory (if exists)
|
|
134
|
+
const vendorPath = 'vendor';
|
|
135
|
+
try {
|
|
136
|
+
await fs.access(vendorPath);
|
|
137
|
+
logger.verbose('Copying vendor dependencies to package root...');
|
|
138
|
+
await runCommand('sh', ['-c', `cp -r vendor/* ${tempDir}/`], logger);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
// No vendor directory, continue
|
|
142
|
+
}
|
|
143
|
+
// Create ZIP from temp directory
|
|
144
|
+
process.chdir(tempDir);
|
|
145
|
+
await runCommand('zip', ['-r', `../${zipFileName}`, '.'], logger);
|
|
146
|
+
process.chdir('..');
|
|
147
|
+
// Move ZIP to project root
|
|
148
|
+
await fs.rename(zipFileName, path.join('..', zipFileName));
|
|
149
|
+
// Clean up temp directory
|
|
150
|
+
await fs.rm(tempDir, { recursive: true, force: true });
|
|
151
|
+
}
|
|
152
|
+
catch (error) {
|
|
153
|
+
// Clean up temp directory on error
|
|
154
|
+
try {
|
|
155
|
+
await fs.rm(tempDir, { recursive: true, force: true });
|
|
156
|
+
}
|
|
157
|
+
catch (cleanupError) {
|
|
158
|
+
// Ignore cleanup errors
|
|
159
|
+
}
|
|
160
|
+
throw error;
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
finally {
|
|
164
|
+
// Always return to original directory
|
|
165
|
+
process.chdir(originalCwd);
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
function runCommand(command, args, logger) {
|
|
169
|
+
return new Promise((resolve, reject) => {
|
|
170
|
+
logger.verbose(`Running: ${command} ${args.join(' ')}`);
|
|
171
|
+
const child = (0, child_process_1.spawn)(command, args, {
|
|
172
|
+
stdio: 'pipe'
|
|
173
|
+
});
|
|
174
|
+
child.on('close', (code) => {
|
|
175
|
+
if (code === 0) {
|
|
176
|
+
resolve();
|
|
177
|
+
}
|
|
178
|
+
else {
|
|
179
|
+
reject(new Error(`Command failed with exit code ${code}: ${command} ${args.join(' ')}`));
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
child.on('error', (error) => {
|
|
183
|
+
reject(new Error(`Failed to run command: ${command} ${args.join(' ')}: ${error.message}`));
|
|
184
|
+
});
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
//# sourceMappingURL=makezip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"makezip.js","sourceRoot":"","sources":["../../src/commands/makezip.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -10,11 +10,12 @@ const deploy_1 = require("./commands/deploy");
|
|
|
10
10
|
const delete_1 = require("./commands/delete");
|
|
11
11
|
const info_1 = require("./commands/info");
|
|
12
12
|
const export_1 = require("./commands/export");
|
|
13
|
+
const makezip_1 = require("./commands/makezip");
|
|
13
14
|
const program = new commander_1.Command();
|
|
14
15
|
program
|
|
15
16
|
.name('lctl')
|
|
16
17
|
.description('AWS Lambda Control Tool - Simple CLI for managing Lambda functions')
|
|
17
|
-
.version('0.
|
|
18
|
+
.version('0.9.0');
|
|
18
19
|
// Deploy command
|
|
19
20
|
program
|
|
20
21
|
.command('deploy')
|
|
@@ -36,6 +37,13 @@ program
|
|
|
36
37
|
.argument('<function-name>', 'Configuration file name (without .yaml extension)')
|
|
37
38
|
.option('--verbose', 'Verbose output')
|
|
38
39
|
.action(info_1.infoCommand);
|
|
40
|
+
// MakeZip command
|
|
41
|
+
program
|
|
42
|
+
.command('makezip')
|
|
43
|
+
.description('Create deployment ZIP package')
|
|
44
|
+
.argument('<function-name>', 'Configuration file name (without .yaml extension)')
|
|
45
|
+
.option('--verbose', 'Verbose output')
|
|
46
|
+
.action(makezip_1.makeZipCommand);
|
|
39
47
|
// Export command
|
|
40
48
|
program
|
|
41
49
|
.command('export')
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAkD;AAClD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;AAEA,yCAAoC;AACpC,kDAA0B;AAC1B,8CAAkD;AAClD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,gDAAoD;AAEpD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,MAAM,CAAC;KACZ,WAAW,CAAC,oEAAoE,CAAC;KACjF,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,2CAA2C,CAAC;KACxD,QAAQ,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,wBAAwB,CAAC;KACrC,QAAQ,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,eAAe;AACf,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,kCAAkC,CAAC;KAC/C,QAAQ,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,kBAAW,CAAC,CAAC;AAEvB,kBAAkB;AAClB,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,+BAA+B,CAAC;KAC5C,QAAQ,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,wBAAc,CAAC,CAAC;AAE1B,iBAAiB;AACjB,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,QAAQ,CAAC,iBAAiB,EAAE,mDAAmD,CAAC;KAChF,MAAM,CAAC,iBAAiB,EAAE,yBAAyB,CAAC;KACpD,MAAM,CAAC,WAAW,EAAE,gBAAgB,CAAC;KACrC,MAAM,CAAC,sBAAa,CAAC,CAAC;AAEzB,OAAO,CAAC,KAAK,EAAE,CAAC;AAEhB,0BAA0B;AAC1B,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,KAAK,EAAE,EAAE;IACzC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,EAAE,KAAK,CAAC,CAAC;IACpD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,OAAO,CAAC,EAAE,CAAC,mBAAmB,EAAE,CAAC,KAAK,EAAE,EAAE;IACxC,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,qBAAqB,CAAC,EAAE,KAAK,CAAC,CAAC;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
package/dist/utils/config.d.ts
CHANGED
|
@@ -1 +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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAGH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;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;gBADN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;IAGlB,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;
|
|
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,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,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,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,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,WAAW,CAAC,EAAE,KAAK,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IAGH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IAGxB,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;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;gBADN,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,MAAM;IAGlB,UAAU,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;IA8DhE,OAAO,CAAC,mBAAmB;CA4B5B"}
|
package/dist/utils/config.js
CHANGED
|
@@ -83,6 +83,7 @@ class ConfigManager {
|
|
|
83
83
|
provisioned_concurrency: yamlConfig.provisioned_concurrency,
|
|
84
84
|
ephemeral_storage: yamlConfig.ephemeral_storage,
|
|
85
85
|
files: yamlConfig.files || ['.'],
|
|
86
|
+
requirements: yamlConfig.requirements || [],
|
|
86
87
|
environment: yamlConfig.environment || {},
|
|
87
88
|
layers: yamlConfig.layers || [],
|
|
88
89
|
vpc: yamlConfig.vpc,
|
package/dist/utils/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,gDAAkC;AAClC,2CAA6B;AAC7B,2CAA6B;
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/utils/config.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +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;IAsDxE,OAAO,CAAC,kBAAkB;
|
|
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;IAsDxE,OAAO,CAAC,kBAAkB;IAW1B,OAAO,CAAC,mCAAmC;IAqB3C,OAAO,CAAC,qBAAqB;IAU7B,OAAO,CAAC,gCAAgC;IAOxC,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,uBAAuB;IAO/B,OAAO,CAAC,uCAAuC;IAmD/C,OAAO,CAAC,0BAA0B;IAqClC,OAAO,CAAC,sBAAsB;IA0B9B,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"}
|
|
@@ -18,10 +18,10 @@ set -eu
|
|
|
18
18
|
# Function: ${functionName}
|
|
19
19
|
# Generated at: ${new Date().toISOString()}
|
|
20
20
|
|
|
21
|
-
${this.generateZipSection(config)}${this.generateEnvironmentVariablesSection(config)}${this.generateLayersSection(config)}# Lambda関数の存在を確認
|
|
21
|
+
${this.generateZipSection(functionName, config)}${this.generateEnvironmentVariablesSection(config)}${this.generateLayersSection(config)}# Lambda関数の存在を確認
|
|
22
22
|
if aws lambda get-function --function-name ${functionName} &> /dev/null; then
|
|
23
23
|
echo "Updating existing Lambda function: ${functionName}"
|
|
24
|
-
aws lambda update-function-code --function-name ${functionName} --zip-file fileb
|
|
24
|
+
aws lambda update-function-code --function-name ${functionName} --zip-file fileb://${functionName}.zip | jq .
|
|
25
25
|
|
|
26
26
|
# 関数がActiveになるまで待機
|
|
27
27
|
aws lambda wait function-active --function-name ${functionName}
|
|
@@ -39,7 +39,7 @@ if aws lambda get-function --function-name ${functionName} &> /dev/null; then
|
|
|
39
39
|
else
|
|
40
40
|
echo "Creating new Lambda function: ${functionName}"
|
|
41
41
|
aws lambda create-function --function-name ${functionName} \\
|
|
42
|
-
--zip-file fileb
|
|
42
|
+
--zip-file fileb://${functionName}.zip \\
|
|
43
43
|
--handler ${config.handler} \\
|
|
44
44
|
--runtime ${config.runtime} \\
|
|
45
45
|
--architectures ${config.architecture || 'x86_64'} \\
|
|
@@ -55,41 +55,19 @@ ${this.generatePermissionsSection(functionName, config)}
|
|
|
55
55
|
|
|
56
56
|
${this.generateLogGroupSection(functionName, config)}
|
|
57
57
|
|
|
58
|
-
rm
|
|
58
|
+
rm ${functionName}.zip
|
|
59
59
|
|
|
60
60
|
echo "✅ Lambda function ${functionName} deployed successfully!"
|
|
61
61
|
`;
|
|
62
62
|
return script;
|
|
63
63
|
}
|
|
64
|
-
generateZipSection(config) {
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
section += `
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
section += 'echo "Creating deployment package..."\n';
|
|
72
|
-
section += 'rm -f lambda.zip\n';
|
|
73
|
-
for (const file of config.files) {
|
|
74
|
-
if (file.includes('*')) {
|
|
75
|
-
// Glob pattern - use find for bash compatibility
|
|
76
|
-
section += `find . -path "${file}" -type f | zip -@ lambda.zip\n`;
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
section += `zip -r lambda.zip "${file}"\n`;
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
// Default: zip current directory with excludes from config
|
|
85
|
-
section += 'echo "Creating deployment package from functions directory..."\n';
|
|
86
|
-
const excludes = config.zip_excludes || ['*.git*', 'node_modules/*', '*.zip', 'dist/*', '.DS_Store'];
|
|
87
|
-
const excludeArgs = excludes.map(exclude => `"${exclude}"`).join(' ');
|
|
88
|
-
section += `zip -r lambda.zip . -x ${excludeArgs}\n`;
|
|
89
|
-
}
|
|
90
|
-
// Move ZIP back to project root
|
|
91
|
-
section += `mv lambda.zip ../\n`;
|
|
92
|
-
section += `cd ..\n`;
|
|
64
|
+
generateZipSection(functionName, config) {
|
|
65
|
+
const zipFileName = `${functionName}.zip`;
|
|
66
|
+
let section = '# Check for deployment package\n';
|
|
67
|
+
section += `if [ ! -f "${zipFileName}" ]; then\n`;
|
|
68
|
+
section += ` echo "Error: ${zipFileName} not found. Please run 'makezip' command first."\n`;
|
|
69
|
+
section += ' exit 1\n';
|
|
70
|
+
section += 'fi\n';
|
|
93
71
|
section += '\n';
|
|
94
72
|
return section;
|
|
95
73
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"script-generator.js","sourceRoot":"","sources":["../../src/utils/script-generator.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,gDAAwB;AAIxB,MAAa,eAAe;IAC1B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,oBAAoB,CAAC,YAAoB,EAAE,MAAoB;QAC7D,MAAM,MAAM,GAAG;;;;cAIL,YAAY;kBACR,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;EAExC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"script-generator.js","sourceRoot":"","sources":["../../src/utils/script-generator.ts"],"names":[],"mappings":";;;;;;AAAA,2BAAoC;AACpC,gDAAwB;AAIxB,MAAa,eAAe;IAC1B,YAAoB,MAAc;QAAd,WAAM,GAAN,MAAM,CAAQ;IAAG,CAAC;IAEtC,oBAAoB,CAAC,YAAoB,EAAE,MAAoB;QAC7D,MAAM,MAAM,GAAG;;;;cAIL,YAAY;kBACR,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;EAExC,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC,mCAAmC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC;6CAC1F,YAAY;+CACV,YAAY;sDACL,YAAY,uBAAuB,YAAY;;;sDAG/C,YAAY;;;+DAGH,YAAY;oBACvD,MAAM,CAAC,OAAO;oBACd,MAAM,CAAC,OAAO;iBACjB,MAAM,CAAC,IAAI;oBACR,MAAM,CAAC,OAAO,IAAI,CAAC;wBACf,MAAM,CAAC,MAAM,IAAI,GAAG,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;;;sDAG/G,YAAY;;0CAExB,YAAY;iDACL,YAAY;6BAChC,YAAY;oBACrB,MAAM,CAAC,OAAO;oBACd,MAAM,CAAC,OAAO;0BACR,MAAM,CAAC,YAAY,IAAI,QAAQ;oBACrC,MAAM,CAAC,OAAO,IAAI,CAAC;wBACf,MAAM,CAAC,MAAM,IAAI,GAAG;iBAC3B,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,gCAAgC,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC;;;;EAInJ,IAAI,CAAC,uCAAuC,CAAC,YAAY,EAAE,MAAM,CAAC;;EAElE,IAAI,CAAC,0BAA0B,CAAC,YAAY,EAAE,MAAM,CAAC;;EAErD,IAAI,CAAC,uBAAuB,CAAC,YAAY,EAAE,MAAM,CAAC;;KAE/C,YAAY;;0BAES,YAAY;CACrC,CAAC;QAEE,OAAO,MAAM,CAAC;IAChB,CAAC;IAGO,kBAAkB,CAAC,YAAoB,EAAE,MAAoB;QACnE,MAAM,WAAW,GAAG,GAAG,YAAY,MAAM,CAAC;QAC1C,IAAI,OAAO,GAAG,kCAAkC,CAAC;QACjD,OAAO,IAAI,cAAc,WAAW,aAAa,CAAC;QAClD,OAAO,IAAI,kBAAkB,WAAW,oDAAoD,CAAC;QAC7F,OAAO,IAAI,YAAY,CAAC;QACxB,OAAO,IAAI,MAAM,CAAC;QAClB,OAAO,IAAI,IAAI,CAAC;QAChB,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,mCAAmC,CAAC,MAAoB;QAC9D,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,GAAG,2BAA2B,CAAC;QAC1C,OAAO,IAAI,yBAAyB,CAAC;QAErC,MAAM,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;YACtC,OAAO,IAAI,aAAa,GAAG,IAAI,KAAK,EAAE,CAAC;YACvC,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC/B,OAAO,IAAI,GAAG,CAAC;YACjB,CAAC;YACD,OAAO,IAAI,KAAK,CAAC;QACnB,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,kBAAkB,CAAC;QAC9B,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,qBAAqB,CAAC,MAAoB;QAChD,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,GAAG,YAAY,CAAC;QAC3B,OAAO,IAAI,WAAW,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;QACrD,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,gCAAgC,CAAC,MAAoB;QAC3D,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxE,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,uCAAuC,CAAC;IACjD,CAAC;IAEO,kBAAkB,CAAC,MAAoB;QAC7C,IAAI,CAAC,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACjD,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,+BAA+B,CAAC;IACzC,CAAC;IAEO,uBAAuB,CAAC,MAAoB;QAClD,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,+BAA+B,MAAM,CAAC,WAAW,GAAG,CAAC;IAC9D,CAAC;IAEO,uCAAuC,CAAC,YAAoB,EAAE,MAAoB;QACxF,IAAI,QAAQ,GAAG,EAAE,CAAC;QAElB,uBAAuB;QACvB,IAAI,MAAM,CAAC,oBAAoB,KAAK,SAAS,EAAE,CAAC;YAC9C,QAAQ,IAAI,gCAAgC,CAAC;YAC7C,QAAQ,IAAI,gEAAgE,YAAY,oCAAoC,MAAM,CAAC,oBAAoB,WAAW,CAAC;QACrK,CAAC;QAED,oBAAoB;QACpB,IAAI,MAAM,CAAC,GAAG,EAAE,CAAC;YACf,QAAQ,IAAI,gCAAgC,CAAC;YAC7C,QAAQ,IAAI,4DAA4D,YAAY;kCACxD,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC;;;kDAGrE,YAAY,IAAI,CAAC;QAC/D,CAAC;QAED,oBAAoB;QACpB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,QAAQ,IAAI,6BAA6B,CAAC;YAC1C,QAAQ,IAAI,4DAA4D,YAAY;0CAChD,MAAM,CAAC,iBAAiB,CAAC,UAAU;;;kDAG3B,YAAY,IAAI,CAAC;QAC/D,CAAC;QAED,oBAAoB;QACpB,IAAI,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC7B,QAAQ,IAAI,6BAA6B,CAAC;YAC1C,QAAQ,IAAI,4DAA4D,YAAY;oCACtD,MAAM,CAAC,iBAAiB;;;kDAGV,YAAY,IAAI,CAAC;QAC/D,CAAC;QAED,OAAO;QACP,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,QAAQ,IAAI,gBAAgB,CAAC;YAC7B,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;iBACrC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,IAAI,KAAK,EAAE,CAAC;iBACxC,IAAI,CAAC,GAAG,CAAC,CAAC;YACb,QAAQ,IAAI,kFAAkF,YAAY,+DAA+D,IAAI,WAAW,CAAC;QAC3L,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,0BAA0B,CAAC,YAAoB,EAAE,MAAoB;QAC3E,IAAI,CAAC,MAAM,CAAC,WAAW,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC3D,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,GAAG,uBAAuB,CAAC;QACtC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,KAAK,EAAE,EAAE;YAC/C,MAAM,WAAW,GAAG,UAAU,CAAC,YAAY,IAAI,GAAG,UAAU,CAAC,OAAO,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YAC5F,MAAM,MAAM,GAAG,UAAU,CAAC,MAAM,IAAI,uBAAuB,CAAC;YAE5D,oEAAoE;YACpE,IAAI,SAAiB,CAAC;YACtB,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC;gBACzB,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;YACnC,CAAC;iBAAM,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBAC9B,SAAS,GAAG,IAAI,CAAC,sBAAsB,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;YAC9D,CAAC;iBAAM,CAAC;gBACN,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,+CAA+C,CAAC,CAAC;YAC/F,CAAC;YAED,OAAO,IAAI;0BACS,YAAY;yBACb,WAAW;mBACjB,MAAM;sBACH,SAAS,EAAE,CAAC;YAE5B,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;gBAC1B,OAAO,IAAI;uBACI,UAAU,CAAC,UAAU,EAAE,CAAC;YACzC,CAAC;YAED,OAAO,IAAI,WAAW,CAAC;QACzB,CAAC,CAAC,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,sBAAsB,CAAC,OAAe;QAC5C,MAAM,iBAAiB,GAA2B;YAChD,YAAY,EAAE,0BAA0B;YACxC,QAAQ,EAAE,sBAAsB;YAChC,KAAK,EAAE,mBAAmB;YAC1B,KAAK,EAAE,mBAAmB;YAC1B,IAAI,EAAE,kBAAkB;YACxB,YAAY,EAAE,sBAAsB;YACpC,KAAK,EAAE,mBAAmB;YAC1B,MAAM,EAAE,oBAAoB;YAC5B,sBAAsB,EAAE,oCAAoC;YAC5D,SAAS,EAAE,2BAA2B;YACtC,OAAO,EAAE,yBAAyB;YAClC,KAAK,EAAE,mBAAmB;YAC1B,QAAQ,EAAE,sBAAsB;YAChC,gBAAgB,EAAE,8BAA8B;YAChD,SAAS,EAAE,uBAAuB;YAClC,UAAU,EAAE,wBAAwB;YACpC,YAAY,EAAE,0BAA0B;YACxC,WAAW,EAAE,yBAAyB;YACtC,cAAc,EAAE,4BAA4B;SAC7C,CAAC;QAEF,OAAO,iBAAiB,CAAC,OAAO,CAAC,IAAI,OAAO,CAAC;IAC/C,CAAC;IAEO,uBAAuB,CAAC,YAAoB,EAAE,MAAoB;QACxE,IAAI,OAAO,GAAG,EAAE,CAAC;QAEjB,mEAAmE;QACnE,IAAI,MAAM,CAAC,qBAAqB,KAAK,KAAK,EAAE,CAAC;YAC3C,OAAO,IAAI;;;0CAGyB,YAAY;qDACD,YAAY;4CACrB,YAAY;mCACrB,YAAY;6DACc,YAAY;;;;6DAIZ,YAAY,wBAAwB,MAAM,CAAC,kBAAkB,IAAI,CAAC;CAC9H,CAAC;QACE,CAAC;QAED,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,UAAkB,EAAE,MAAc;QACjD,MAAM,UAAU,GAAG,cAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAC5C,MAAM,aAAE,CAAC,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,wBAAwB,UAAU,EAAE,CAAC,CAAC;QAC1D,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,UAAkB;QACpC,IAAI,CAAC;YACH,MAAM,aAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC5B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,sBAAsB,UAAU,EAAE,CAAC,CAAC;QAC1D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,8BAA8B,UAAU,EAAE,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;CACF;AAhRD,0CAgRC"}
|