@chaim-tools/chaim 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.
- package/LICENSE +201 -0
- package/README.md +211 -0
- package/dist/commands/apps/link.d.ts +26 -0
- package/dist/commands/apps/link.d.ts.map +1 -0
- package/dist/commands/apps/link.js +49 -0
- package/dist/commands/apps/link.js.map +1 -0
- package/dist/commands/apps/list.d.ts +25 -0
- package/dist/commands/apps/list.d.ts.map +1 -0
- package/dist/commands/apps/list.js +46 -0
- package/dist/commands/apps/list.js.map +1 -0
- package/dist/commands/auth/login.d.ts +29 -0
- package/dist/commands/auth/login.d.ts.map +1 -0
- package/dist/commands/auth/login.js +51 -0
- package/dist/commands/auth/login.js.map +1 -0
- package/dist/commands/auth/logout.d.ts +26 -0
- package/dist/commands/auth/logout.d.ts.map +1 -0
- package/dist/commands/auth/logout.js +49 -0
- package/dist/commands/auth/logout.js.map +1 -0
- package/dist/commands/auth/refresh.d.ts +27 -0
- package/dist/commands/auth/refresh.d.ts.map +1 -0
- package/dist/commands/auth/refresh.js +47 -0
- package/dist/commands/auth/refresh.js.map +1 -0
- package/dist/commands/auth/whoami.d.ts +28 -0
- package/dist/commands/auth/whoami.d.ts.map +1 -0
- package/dist/commands/auth/whoami.js +48 -0
- package/dist/commands/auth/whoami.js.map +1 -0
- package/dist/commands/clean.d.ts +25 -0
- package/dist/commands/clean.d.ts.map +1 -0
- package/dist/commands/clean.js +345 -0
- package/dist/commands/clean.js.map +1 -0
- package/dist/commands/config/show.d.ts +25 -0
- package/dist/commands/config/show.d.ts.map +1 -0
- package/dist/commands/config/show.js +49 -0
- package/dist/commands/config/show.js.map +1 -0
- package/dist/commands/configure.d.ts +26 -0
- package/dist/commands/configure.d.ts.map +1 -0
- package/dist/commands/configure.js +53 -0
- package/dist/commands/configure.js.map +1 -0
- package/dist/commands/doctor.d.ts +2 -0
- package/dist/commands/doctor.d.ts.map +1 -0
- package/dist/commands/doctor.js +96 -0
- package/dist/commands/doctor.js.map +1 -0
- package/dist/commands/generate.d.ts +11 -0
- package/dist/commands/generate.d.ts.map +1 -0
- package/dist/commands/generate.js +395 -0
- package/dist/commands/generate.js.map +1 -0
- package/dist/commands/init.d.ts +8 -0
- package/dist/commands/init.d.ts.map +1 -0
- package/dist/commands/init.js +302 -0
- package/dist/commands/init.js.map +1 -0
- package/dist/commands/validate.d.ts +2 -0
- package/dist/commands/validate.d.ts.map +1 -0
- package/dist/commands/validate.js +58 -0
- package/dist/commands/validate.js.map +1 -0
- package/dist/config/types.d.ts +138 -0
- package/dist/config/types.d.ts.map +1 -0
- package/dist/config/types.js +48 -0
- package/dist/config/types.js.map +1 -0
- package/dist/index.d.ts +3 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +114 -0
- package/dist/index.js.map +1 -0
- package/dist/planned-commands.d.ts +51 -0
- package/dist/planned-commands.d.ts.map +1 -0
- package/dist/planned-commands.js +199 -0
- package/dist/planned-commands.js.map +1 -0
- package/dist/services/os-cache-paths.d.ts +15 -0
- package/dist/services/os-cache-paths.d.ts.map +1 -0
- package/dist/services/os-cache-paths.js +57 -0
- package/dist/services/os-cache-paths.js.map +1 -0
- package/dist/services/snapshot-discovery.d.ts +111 -0
- package/dist/services/snapshot-discovery.d.ts.map +1 -0
- package/dist/services/snapshot-discovery.js +249 -0
- package/dist/services/snapshot-discovery.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +9 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/snapshot-payload.d.ts +205 -0
- package/dist/types/snapshot-payload.d.ts.map +1 -0
- package/dist/types/snapshot-payload.js +9 -0
- package/dist/types/snapshot-payload.js.map +1 -0
- package/package.json +65 -0
- package/shared/scripts/setup.sh +47 -0
|
@@ -0,0 +1,302 @@
|
|
|
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.initCommand = void 0;
|
|
7
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
8
|
+
const ora_1 = __importDefault(require("ora"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
async function initCommand(options) {
|
|
11
|
+
try {
|
|
12
|
+
console.log(chalk_1.default.blue('🔧 Chaim CLI Prerequisites Setup'));
|
|
13
|
+
console.log(chalk_1.default.blue('================================'));
|
|
14
|
+
console.log('');
|
|
15
|
+
// Run prerequisite checks
|
|
16
|
+
await checkPrerequisites(options);
|
|
17
|
+
// Install dependencies if requested
|
|
18
|
+
if (options.install && !options.verifyOnly) {
|
|
19
|
+
await installDependencies(options);
|
|
20
|
+
}
|
|
21
|
+
// Bootstrap CDK if needed (optional)
|
|
22
|
+
if (!options.verifyOnly) {
|
|
23
|
+
try {
|
|
24
|
+
await bootstrapCdk(options.region);
|
|
25
|
+
}
|
|
26
|
+
catch (error) {
|
|
27
|
+
console.log(chalk_1.default.yellow('⚠️ CDK bootstrap skipped (will be done when needed)'));
|
|
28
|
+
console.log(chalk_1.default.blue(' You can bootstrap CDK later with: cdk bootstrap'));
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
console.log('');
|
|
32
|
+
console.log(chalk_1.default.green('🎉 Prerequisites setup complete!'));
|
|
33
|
+
console.log('');
|
|
34
|
+
console.log(chalk_1.default.blue('Next steps:'));
|
|
35
|
+
console.log(chalk_1.default.blue('1. Create your first schema: chaim validate schemas/your-schema.bprint'));
|
|
36
|
+
console.log(chalk_1.default.blue('2. Deploy infrastructure: cdk deploy YourStack'));
|
|
37
|
+
console.log(chalk_1.default.blue('3. Generate SDK: chaim generate --stack YourStack --package com.example'));
|
|
38
|
+
console.log('');
|
|
39
|
+
}
|
|
40
|
+
catch (error) {
|
|
41
|
+
console.error(chalk_1.default.red('✗ Setup failed:'), error instanceof Error ? error.message : error);
|
|
42
|
+
if (error instanceof Error && error.stack) {
|
|
43
|
+
console.error(error.stack);
|
|
44
|
+
}
|
|
45
|
+
process.exit(1);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.initCommand = initCommand;
|
|
49
|
+
async function checkPrerequisites(_options) {
|
|
50
|
+
const spinner = (0, ora_1.default)('Checking prerequisites...').start();
|
|
51
|
+
try {
|
|
52
|
+
// Check Node.js version
|
|
53
|
+
await checkNodeVersion();
|
|
54
|
+
// Check Java installation
|
|
55
|
+
await checkJava();
|
|
56
|
+
// Check AWS CLI
|
|
57
|
+
await checkAwsCli();
|
|
58
|
+
// Check CDK CLI
|
|
59
|
+
await checkCdkCli();
|
|
60
|
+
spinner.succeed('Prerequisites check completed');
|
|
61
|
+
}
|
|
62
|
+
catch (error) {
|
|
63
|
+
spinner.fail('Prerequisites check failed');
|
|
64
|
+
throw error;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
async function checkNodeVersion() {
|
|
68
|
+
return new Promise((resolve, reject) => {
|
|
69
|
+
const nodeVersion = process.version;
|
|
70
|
+
const majorVersion = parseInt(nodeVersion.slice(1).split('.')[0]);
|
|
71
|
+
if (majorVersion >= 18) {
|
|
72
|
+
console.log(chalk_1.default.green('✓ Node.js'), nodeVersion, chalk_1.default.green('(required: v18+)'));
|
|
73
|
+
resolve();
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
console.log(chalk_1.default.red('✗ Node.js'), nodeVersion, chalk_1.default.red('(required: v18+)'));
|
|
77
|
+
reject(new Error(`Node.js version ${nodeVersion} is not supported. Please install Node.js v18 or higher.`));
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async function checkJava() {
|
|
82
|
+
return new Promise((resolve, reject) => {
|
|
83
|
+
const javaProcess = (0, child_process_1.spawn)('java', ['-version'], {
|
|
84
|
+
stdio: 'pipe'
|
|
85
|
+
});
|
|
86
|
+
// let stderr = '';
|
|
87
|
+
javaProcess.stderr.on('data', (_data) => {
|
|
88
|
+
// stderr += data.toString();
|
|
89
|
+
});
|
|
90
|
+
javaProcess.on('close', (code) => {
|
|
91
|
+
if (code === 0) {
|
|
92
|
+
const versionMatch = 'Java available'.match(/version "([^"]+)"/);
|
|
93
|
+
if (versionMatch) {
|
|
94
|
+
const version = versionMatch[1];
|
|
95
|
+
const majorVersion = parseInt(version.split('.')[0]);
|
|
96
|
+
if (majorVersion >= 11) {
|
|
97
|
+
console.log(chalk_1.default.green('✓ Java'), version, chalk_1.default.green('(required: 11+)'));
|
|
98
|
+
resolve();
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
console.log(chalk_1.default.red('✗ Java'), version, chalk_1.default.red('(required: 11+)'));
|
|
102
|
+
reject(new Error(`Java version ${version} is not supported. Please install Java 11 or higher.`));
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
console.log(chalk_1.default.green('✓ Java available'));
|
|
107
|
+
resolve();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
console.log(chalk_1.default.red('✗ Java not available'));
|
|
112
|
+
reject(new Error('Java is not installed. Please install Java 11 or higher.'));
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
javaProcess.on('error', (error) => {
|
|
116
|
+
console.log(chalk_1.default.red('✗ Java not available:'), error.message);
|
|
117
|
+
reject(new Error('Java is not installed. Please install Java 11 or higher.'));
|
|
118
|
+
});
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
async function checkAwsCli() {
|
|
122
|
+
return new Promise((resolve, reject) => {
|
|
123
|
+
const awsProcess = (0, child_process_1.spawn)('aws', ['sts', 'get-caller-identity'], {
|
|
124
|
+
stdio: 'pipe'
|
|
125
|
+
});
|
|
126
|
+
// let stdout = '';
|
|
127
|
+
// let stderr = '';
|
|
128
|
+
awsProcess.stdout.on('data', (_data) => {
|
|
129
|
+
// stdout += data.toString();
|
|
130
|
+
});
|
|
131
|
+
awsProcess.stderr.on('data', (_data) => {
|
|
132
|
+
// stderr += data.toString();
|
|
133
|
+
});
|
|
134
|
+
awsProcess.on('close', (code) => {
|
|
135
|
+
if (code === 0) {
|
|
136
|
+
try {
|
|
137
|
+
const identity = { Account: 'configured' }; // JSON.parse(stdout);
|
|
138
|
+
console.log(chalk_1.default.green('✓ AWS CLI available'));
|
|
139
|
+
console.log(chalk_1.default.green('✓ AWS credentials configured (Account:'), identity.Account + ')');
|
|
140
|
+
resolve();
|
|
141
|
+
}
|
|
142
|
+
catch (error) {
|
|
143
|
+
console.log(chalk_1.default.green('✓ AWS CLI available'));
|
|
144
|
+
resolve();
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
console.log(chalk_1.default.red('✗ AWS credentials not configured'));
|
|
149
|
+
reject(new Error('AWS credentials not configured. Please run \'aws configure\'.'));
|
|
150
|
+
}
|
|
151
|
+
});
|
|
152
|
+
awsProcess.on('error', (error) => {
|
|
153
|
+
console.log(chalk_1.default.red('✗ AWS CLI not available:'), error.message);
|
|
154
|
+
reject(new Error('AWS CLI is not installed. Please install AWS CLI.'));
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
}
|
|
158
|
+
async function checkCdkCli() {
|
|
159
|
+
return new Promise((resolve, reject) => {
|
|
160
|
+
const cdkProcess = (0, child_process_1.spawn)('cdk', ['--version'], {
|
|
161
|
+
stdio: 'pipe'
|
|
162
|
+
});
|
|
163
|
+
// let stdout = '';
|
|
164
|
+
// let stderr = '';
|
|
165
|
+
cdkProcess.stdout.on('data', (_data) => {
|
|
166
|
+
// stdout += data.toString();
|
|
167
|
+
});
|
|
168
|
+
cdkProcess.stderr.on('data', (_data) => {
|
|
169
|
+
// stderr += data.toString();
|
|
170
|
+
});
|
|
171
|
+
cdkProcess.on('close', (code) => {
|
|
172
|
+
if (code === 0) {
|
|
173
|
+
const version = 'available'; // stdout.trim();
|
|
174
|
+
console.log(chalk_1.default.green('✓ CDK CLI'), version);
|
|
175
|
+
resolve();
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
console.log(chalk_1.default.red('✗ CDK CLI not available'));
|
|
179
|
+
reject(new Error('CDK CLI is not installed. Please install AWS CDK CLI.'));
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
cdkProcess.on('error', (error) => {
|
|
183
|
+
console.log(chalk_1.default.red('✗ CDK CLI not available:'), error.message);
|
|
184
|
+
reject(new Error('CDK CLI is not installed. Please install AWS CDK CLI.'));
|
|
185
|
+
});
|
|
186
|
+
});
|
|
187
|
+
}
|
|
188
|
+
async function installDependencies(_options) {
|
|
189
|
+
const spinner = (0, ora_1.default)('Installing dependencies...').start();
|
|
190
|
+
try {
|
|
191
|
+
// Install CDK CLI if missing
|
|
192
|
+
await installCdkCli();
|
|
193
|
+
// Install chaim-cli dependencies
|
|
194
|
+
await installChaimDependencies();
|
|
195
|
+
spinner.succeed('Dependencies installed successfully');
|
|
196
|
+
}
|
|
197
|
+
catch (error) {
|
|
198
|
+
spinner.fail('Failed to install dependencies');
|
|
199
|
+
throw error;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
async function installCdkCli() {
|
|
203
|
+
return new Promise((resolve, reject) => {
|
|
204
|
+
console.log(chalk_1.default.blue('📦 Installing CDK CLI...'));
|
|
205
|
+
const npmProcess = (0, child_process_1.spawn)('npm', ['install', '-g', 'aws-cdk'], {
|
|
206
|
+
stdio: 'pipe'
|
|
207
|
+
});
|
|
208
|
+
// let stdout = '';
|
|
209
|
+
// let stderr = '';
|
|
210
|
+
npmProcess.stdout.on('data', (_data) => {
|
|
211
|
+
// stdout += data.toString();
|
|
212
|
+
});
|
|
213
|
+
npmProcess.stderr.on('data', (_data) => {
|
|
214
|
+
// stderr += data.toString();
|
|
215
|
+
});
|
|
216
|
+
npmProcess.on('close', (code) => {
|
|
217
|
+
if (code === 0) {
|
|
218
|
+
console.log(chalk_1.default.green('✓ CDK CLI installed successfully'));
|
|
219
|
+
resolve();
|
|
220
|
+
}
|
|
221
|
+
else {
|
|
222
|
+
console.log(chalk_1.default.red('✗ Failed to install CDK CLI'));
|
|
223
|
+
reject(new Error('Failed to install CDK CLI. Please install manually: npm install -g aws-cdk'));
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
npmProcess.on('error', (error) => {
|
|
227
|
+
console.log(chalk_1.default.red('✗ Failed to install CDK CLI:'), error.message);
|
|
228
|
+
reject(new Error('Failed to install CDK CLI. Please install manually: npm install -g aws-cdk'));
|
|
229
|
+
});
|
|
230
|
+
});
|
|
231
|
+
}
|
|
232
|
+
async function installChaimDependencies() {
|
|
233
|
+
return new Promise((resolve, reject) => {
|
|
234
|
+
console.log(chalk_1.default.blue('📦 Installing chaim-cli dependencies...'));
|
|
235
|
+
const npmProcess = (0, child_process_1.spawn)('npm', ['install'], {
|
|
236
|
+
stdio: 'pipe',
|
|
237
|
+
cwd: process.cwd()
|
|
238
|
+
});
|
|
239
|
+
// let stdout = '';
|
|
240
|
+
// let stderr = '';
|
|
241
|
+
npmProcess.stdout.on('data', (_data) => {
|
|
242
|
+
// stdout += data.toString();
|
|
243
|
+
});
|
|
244
|
+
npmProcess.stderr.on('data', (_data) => {
|
|
245
|
+
// stderr += data.toString();
|
|
246
|
+
});
|
|
247
|
+
npmProcess.on('close', (code) => {
|
|
248
|
+
if (code === 0) {
|
|
249
|
+
console.log(chalk_1.default.green('✓ chaim-cli dependencies installed successfully'));
|
|
250
|
+
resolve();
|
|
251
|
+
}
|
|
252
|
+
else {
|
|
253
|
+
console.log(chalk_1.default.red('✗ Failed to install chaim-cli dependencies'));
|
|
254
|
+
reject(new Error('Failed to install chaim-cli dependencies. Please run: npm install'));
|
|
255
|
+
}
|
|
256
|
+
});
|
|
257
|
+
npmProcess.on('error', (error) => {
|
|
258
|
+
console.log(chalk_1.default.red('✗ Failed to install chaim-cli dependencies:'), error.message);
|
|
259
|
+
reject(new Error('Failed to install chaim-cli dependencies. Please run: npm install'));
|
|
260
|
+
});
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
async function bootstrapCdk(region) {
|
|
264
|
+
const targetRegion = region || 'us-east-1';
|
|
265
|
+
const spinner = (0, ora_1.default)(`Bootstrapping CDK in ${targetRegion}...`).start();
|
|
266
|
+
try {
|
|
267
|
+
return new Promise((resolve, reject) => {
|
|
268
|
+
const cdkProcess = (0, child_process_1.spawn)('cdk', ['bootstrap', `--region=${targetRegion}`], {
|
|
269
|
+
stdio: 'pipe'
|
|
270
|
+
});
|
|
271
|
+
// let stdout = '';
|
|
272
|
+
// let stderr = '';
|
|
273
|
+
cdkProcess.stdout.on('data', (_data) => {
|
|
274
|
+
// stdout += data.toString();
|
|
275
|
+
});
|
|
276
|
+
cdkProcess.stderr.on('data', (_data) => {
|
|
277
|
+
// stderr += data.toString();
|
|
278
|
+
});
|
|
279
|
+
cdkProcess.on('close', (code) => {
|
|
280
|
+
if (code === 0) {
|
|
281
|
+
spinner.succeed(`CDK bootstrapped in ${targetRegion}`);
|
|
282
|
+
resolve();
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
// CDK bootstrap might fail if already bootstrapped, which is OK
|
|
286
|
+
// For now, treat any non-zero exit as "already bootstrapped"
|
|
287
|
+
spinner.succeed(`CDK already bootstrapped in ${targetRegion}`);
|
|
288
|
+
resolve();
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
cdkProcess.on('error', (error) => {
|
|
292
|
+
spinner.fail(`Failed to bootstrap CDK in ${targetRegion}`);
|
|
293
|
+
reject(new Error(`Failed to bootstrap CDK: ${error.message}`));
|
|
294
|
+
});
|
|
295
|
+
});
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
spinner.fail(`Failed to bootstrap CDK in ${targetRegion}`);
|
|
299
|
+
throw error;
|
|
300
|
+
}
|
|
301
|
+
}
|
|
302
|
+
//# sourceMappingURL=init.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.d.ts","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":"AAKA,wBAAsB,eAAe,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAyBvE"}
|
|
@@ -0,0 +1,58 @@
|
|
|
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 (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.validateCommand = void 0;
|
|
30
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
31
|
+
const chaim_bprint_spec_1 = require("@chaim-tools/chaim-bprint-spec");
|
|
32
|
+
const fs = __importStar(require("fs"));
|
|
33
|
+
const path = __importStar(require("path"));
|
|
34
|
+
async function validateCommand(schemaFile) {
|
|
35
|
+
try {
|
|
36
|
+
console.log(chalk_1.default.blue('🔍 Validating schema:'), schemaFile);
|
|
37
|
+
// Check if file exists
|
|
38
|
+
if (!fs.existsSync(schemaFile)) {
|
|
39
|
+
console.error(chalk_1.default.red(`Error: Schema file not found: ${schemaFile}`));
|
|
40
|
+
process.exit(1);
|
|
41
|
+
}
|
|
42
|
+
// Load and validate schema
|
|
43
|
+
const schemaContent = fs.readFileSync(path.resolve(schemaFile), 'utf-8');
|
|
44
|
+
const schema = JSON.parse(schemaContent);
|
|
45
|
+
const validatedSchema = (0, chaim_bprint_spec_1.validateSchema)(schema);
|
|
46
|
+
console.log(chalk_1.default.green('✓ Schema is valid'));
|
|
47
|
+
console.log(chalk_1.default.green(' Entity:'), validatedSchema.entityName);
|
|
48
|
+
console.log(chalk_1.default.green(' Partition Key:'), validatedSchema.primaryKey.partitionKey);
|
|
49
|
+
console.log(chalk_1.default.green(' Version:'), validatedSchema.schemaVersion);
|
|
50
|
+
console.log(chalk_1.default.green(' Fields:'), validatedSchema.fields.length);
|
|
51
|
+
}
|
|
52
|
+
catch (error) {
|
|
53
|
+
console.error(chalk_1.default.red('✗ Schema validation failed:'), error instanceof Error ? error.message : error);
|
|
54
|
+
process.exit(1);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
exports.validateCommand = validateCommand;
|
|
58
|
+
//# sourceMappingURL=validate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate.js","sourceRoot":"","sources":["../../src/commands/validate.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0B;AAC1B,sEAAgE;AAChE,uCAAyB;AACzB,2CAA6B;AAEtB,KAAK,UAAU,eAAe,CAAC,UAAkB;IACtD,IAAI;QACF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,uBAAuB,CAAC,EAAE,UAAU,CAAC,CAAC;QAE7D,uBAAuB;QACvB,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE;YAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,iCAAiC,UAAU,EAAE,CAAC,CAAC,CAAC;YACxE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SACjB;QAED,2BAA2B;QAC3B,MAAM,aAAa,GAAG,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC,CAAC;QACzE,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;QACzC,MAAM,eAAe,GAAG,IAAA,kCAAc,EAAC,MAAM,CAAC,CAAC;QAE/C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC,CAAC;QAC9C,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,CAAC;QAClE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,EAAE,eAAe,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACtF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,EAAE,eAAe,CAAC,aAAa,CAAC,CAAC;QACtE,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAEtE;IAAC,OAAO,KAAK,EAAE;QACd,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,6BAA6B,CAAC,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QACxG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;AACH,CAAC;AAzBD,0CAyBC"}
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Configuration Type Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines the configuration file structures for the Chaim CLI.
|
|
5
|
+
* Configuration is loaded from two sources:
|
|
6
|
+
*
|
|
7
|
+
* 1. Global config: ~/.chaim/config.json
|
|
8
|
+
* - User-wide defaults that apply to all projects
|
|
9
|
+
*
|
|
10
|
+
* 2. Repo config: ./chaim.json (in project root)
|
|
11
|
+
* - Project-specific overrides
|
|
12
|
+
*
|
|
13
|
+
* Resolution order: Repo config values override global config values.
|
|
14
|
+
*
|
|
15
|
+
* NOTE: File I/O is not implemented yet. This module only defines types.
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Supported languages for code generation.
|
|
19
|
+
* Extend this union type when adding new language support.
|
|
20
|
+
*/
|
|
21
|
+
export type SupportedLanguage = 'java';
|
|
22
|
+
/**
|
|
23
|
+
* List of currently supported languages for code generation.
|
|
24
|
+
*/
|
|
25
|
+
export declare const SUPPORTED_LANGUAGES: SupportedLanguage[];
|
|
26
|
+
/**
|
|
27
|
+
* Default language for code generation when not specified.
|
|
28
|
+
*/
|
|
29
|
+
export declare const DEFAULT_LANGUAGE: SupportedLanguage;
|
|
30
|
+
/**
|
|
31
|
+
* Authentication profile stored in global config
|
|
32
|
+
*/
|
|
33
|
+
export interface AuthProfile {
|
|
34
|
+
/** Profile name (e.g., "default", "work", "personal") */
|
|
35
|
+
name: string;
|
|
36
|
+
/** User identifier (email or ID) */
|
|
37
|
+
userId?: string;
|
|
38
|
+
/** Organization context */
|
|
39
|
+
orgId?: string;
|
|
40
|
+
/** Token expiry timestamp (ISO 8601) */
|
|
41
|
+
tokenExpiry?: string;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Global configuration stored at ~/.chaim/config.json
|
|
45
|
+
*
|
|
46
|
+
* Contains user-wide defaults and authentication profiles.
|
|
47
|
+
*/
|
|
48
|
+
export interface GlobalChaimConfig {
|
|
49
|
+
/** Schema version for config file format */
|
|
50
|
+
configVersion?: string;
|
|
51
|
+
/** Active authentication profile name */
|
|
52
|
+
activeProfile?: string;
|
|
53
|
+
/** List of authentication profiles (metadata only, tokens stored securely) */
|
|
54
|
+
profiles?: AuthProfile[];
|
|
55
|
+
/** Default AWS region */
|
|
56
|
+
defaultRegion?: string;
|
|
57
|
+
/** Default Java package name for code generation */
|
|
58
|
+
defaultJavaPackage?: string;
|
|
59
|
+
/** Default output directory for generated code */
|
|
60
|
+
defaultOutput?: string;
|
|
61
|
+
/** Default language for code generation (java, typescript, python) */
|
|
62
|
+
defaultLanguage?: SupportedLanguage;
|
|
63
|
+
/** Telemetry opt-out flag */
|
|
64
|
+
telemetryOptOut?: boolean;
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Repository/project configuration stored at ./chaim.json
|
|
68
|
+
*
|
|
69
|
+
* Contains project-specific settings that override global defaults.
|
|
70
|
+
*/
|
|
71
|
+
export interface RepoChaimConfig {
|
|
72
|
+
/** Schema version for config file format */
|
|
73
|
+
configVersion?: string;
|
|
74
|
+
/** Linked Chaim application ID */
|
|
75
|
+
appId?: string;
|
|
76
|
+
/** Environment name (e.g., "dev", "staging", "prod") */
|
|
77
|
+
environment?: string;
|
|
78
|
+
/** AWS region for this project */
|
|
79
|
+
region?: string;
|
|
80
|
+
/** CloudFormation stack name */
|
|
81
|
+
stackName?: string;
|
|
82
|
+
/** Java package name for code generation */
|
|
83
|
+
javaPackage?: string;
|
|
84
|
+
/** Output directory for generated code */
|
|
85
|
+
output?: string;
|
|
86
|
+
/** Language for code generation (overrides global default) */
|
|
87
|
+
language?: SupportedLanguage;
|
|
88
|
+
/** Specific tables to include (if not all) */
|
|
89
|
+
tables?: string[];
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Resolved configuration after merging global and repo configs
|
|
93
|
+
*
|
|
94
|
+
* This represents the effective configuration used by CLI commands.
|
|
95
|
+
* Values are resolved with repo config taking precedence over global.
|
|
96
|
+
*/
|
|
97
|
+
export interface ResolvedChaimConfig {
|
|
98
|
+
/** Path to global config file (if loaded) */
|
|
99
|
+
globalConfigPath?: string;
|
|
100
|
+
/** Path to repo config file (if loaded) */
|
|
101
|
+
repoConfigPath?: string;
|
|
102
|
+
/** Active profile name */
|
|
103
|
+
activeProfile?: string;
|
|
104
|
+
/** Whether user is currently authenticated */
|
|
105
|
+
isAuthenticated: boolean;
|
|
106
|
+
/** Linked Chaim application ID */
|
|
107
|
+
appId?: string;
|
|
108
|
+
/** Environment name */
|
|
109
|
+
environment?: string;
|
|
110
|
+
/** AWS region */
|
|
111
|
+
region: string;
|
|
112
|
+
/** CloudFormation stack name */
|
|
113
|
+
stackName?: string;
|
|
114
|
+
/** Language for code generation */
|
|
115
|
+
language: SupportedLanguage;
|
|
116
|
+
/** Java package name */
|
|
117
|
+
javaPackage?: string;
|
|
118
|
+
/** Output directory */
|
|
119
|
+
output: string;
|
|
120
|
+
/** Specific tables to include */
|
|
121
|
+
tables?: string[];
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Default values for resolved configuration
|
|
125
|
+
*/
|
|
126
|
+
export declare const CONFIG_DEFAULTS: Partial<ResolvedChaimConfig>;
|
|
127
|
+
/**
|
|
128
|
+
* Well-known file paths for configuration
|
|
129
|
+
*/
|
|
130
|
+
export declare const CONFIG_PATHS: {
|
|
131
|
+
/** Global config directory */
|
|
132
|
+
readonly globalDir: "~/.chaim";
|
|
133
|
+
/** Global config file */
|
|
134
|
+
readonly globalFile: "~/.chaim/config.json";
|
|
135
|
+
/** Repo config file (relative to project root) */
|
|
136
|
+
readonly repoFile: "./chaim.json";
|
|
137
|
+
};
|
|
138
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH;;;GAGG;AACH,MAAM,MAAM,iBAAiB,GAAG,MAAM,CAAC;AAEvC;;GAEG;AACH,eAAO,MAAM,mBAAmB,EAAE,iBAAiB,EAAa,CAAC;AAEjE;;GAEG;AACH,eAAO,MAAM,gBAAgB,EAAE,iBAA0B,CAAC;AAE1D;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;CAGtB;AAED;;;;GAIG;AACH,MAAM,WAAW,iBAAiB;IAChC,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,yCAAyC;IACzC,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,8EAA8E;IAC9E,QAAQ,CAAC,EAAE,WAAW,EAAE,CAAC;IAEzB,yBAAyB;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,oDAAoD;IACpD,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,kDAAkD;IAClD,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,sEAAsE;IACtE,eAAe,CAAC,EAAE,iBAAiB,CAAC;IAEpC,6BAA6B;IAC7B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,MAAM,WAAW,eAAe;IAC9B,4CAA4C;IAC5C,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,wDAAwD;IACxD,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,kCAAkC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,4CAA4C;IAC5C,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,8DAA8D;IAC9D,QAAQ,CAAC,EAAE,iBAAiB,CAAC;IAE7B,8CAA8C;IAC9C,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;;;;GAKG;AACH,MAAM,WAAW,mBAAmB;IAElC,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2CAA2C;IAC3C,cAAc,CAAC,EAAE,MAAM,CAAC;IAGxB,0BAA0B;IAC1B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,8CAA8C;IAC9C,eAAe,EAAE,OAAO,CAAC;IAGzB,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,uBAAuB;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;IAGrB,iBAAiB;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IAGnB,mCAAmC;IACnC,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,wBAAwB;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uBAAuB;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,OAAO,CAAC,mBAAmB,CAKxD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY;IACvB,8BAA8B;;IAE9B,yBAAyB;;IAEzB,kDAAkD;;CAE1C,CAAC"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Configuration Type Definitions
|
|
4
|
+
*
|
|
5
|
+
* This module defines the configuration file structures for the Chaim CLI.
|
|
6
|
+
* Configuration is loaded from two sources:
|
|
7
|
+
*
|
|
8
|
+
* 1. Global config: ~/.chaim/config.json
|
|
9
|
+
* - User-wide defaults that apply to all projects
|
|
10
|
+
*
|
|
11
|
+
* 2. Repo config: ./chaim.json (in project root)
|
|
12
|
+
* - Project-specific overrides
|
|
13
|
+
*
|
|
14
|
+
* Resolution order: Repo config values override global config values.
|
|
15
|
+
*
|
|
16
|
+
* NOTE: File I/O is not implemented yet. This module only defines types.
|
|
17
|
+
*/
|
|
18
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
|
+
exports.CONFIG_PATHS = exports.CONFIG_DEFAULTS = exports.DEFAULT_LANGUAGE = exports.SUPPORTED_LANGUAGES = void 0;
|
|
20
|
+
/**
|
|
21
|
+
* List of currently supported languages for code generation.
|
|
22
|
+
*/
|
|
23
|
+
exports.SUPPORTED_LANGUAGES = ['java'];
|
|
24
|
+
/**
|
|
25
|
+
* Default language for code generation when not specified.
|
|
26
|
+
*/
|
|
27
|
+
exports.DEFAULT_LANGUAGE = 'java';
|
|
28
|
+
/**
|
|
29
|
+
* Default values for resolved configuration
|
|
30
|
+
*/
|
|
31
|
+
exports.CONFIG_DEFAULTS = {
|
|
32
|
+
region: 'us-east-1',
|
|
33
|
+
output: './src/main/java',
|
|
34
|
+
language: exports.DEFAULT_LANGUAGE,
|
|
35
|
+
isAuthenticated: false,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Well-known file paths for configuration
|
|
39
|
+
*/
|
|
40
|
+
exports.CONFIG_PATHS = {
|
|
41
|
+
/** Global config directory */
|
|
42
|
+
globalDir: '~/.chaim',
|
|
43
|
+
/** Global config file */
|
|
44
|
+
globalFile: '~/.chaim/config.json',
|
|
45
|
+
/** Repo config file (relative to project root) */
|
|
46
|
+
repoFile: './chaim.json',
|
|
47
|
+
};
|
|
48
|
+
//# sourceMappingURL=types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/config/types.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAQH;;GAEG;AACU,QAAA,mBAAmB,GAAwB,CAAC,MAAM,CAAC,CAAC;AAEjE;;GAEG;AACU,QAAA,gBAAgB,GAAsB,MAAM,CAAC;AA6H1D;;GAEG;AACU,QAAA,eAAe,GAAiC;IAC3D,MAAM,EAAE,WAAW;IACnB,MAAM,EAAE,iBAAiB;IACzB,QAAQ,EAAE,wBAAgB;IAC1B,eAAe,EAAE,KAAK;CACvB,CAAC;AAEF;;GAEG;AACU,QAAA,YAAY,GAAG;IAC1B,8BAA8B;IAC9B,SAAS,EAAE,UAAU;IACrB,yBAAyB;IACzB,UAAU,EAAE,sBAAsB;IAClC,kDAAkD;IAClD,QAAQ,EAAE,cAAc;CAChB,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
|