@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.
Files changed (84) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +211 -0
  3. package/dist/commands/apps/link.d.ts +26 -0
  4. package/dist/commands/apps/link.d.ts.map +1 -0
  5. package/dist/commands/apps/link.js +49 -0
  6. package/dist/commands/apps/link.js.map +1 -0
  7. package/dist/commands/apps/list.d.ts +25 -0
  8. package/dist/commands/apps/list.d.ts.map +1 -0
  9. package/dist/commands/apps/list.js +46 -0
  10. package/dist/commands/apps/list.js.map +1 -0
  11. package/dist/commands/auth/login.d.ts +29 -0
  12. package/dist/commands/auth/login.d.ts.map +1 -0
  13. package/dist/commands/auth/login.js +51 -0
  14. package/dist/commands/auth/login.js.map +1 -0
  15. package/dist/commands/auth/logout.d.ts +26 -0
  16. package/dist/commands/auth/logout.d.ts.map +1 -0
  17. package/dist/commands/auth/logout.js +49 -0
  18. package/dist/commands/auth/logout.js.map +1 -0
  19. package/dist/commands/auth/refresh.d.ts +27 -0
  20. package/dist/commands/auth/refresh.d.ts.map +1 -0
  21. package/dist/commands/auth/refresh.js +47 -0
  22. package/dist/commands/auth/refresh.js.map +1 -0
  23. package/dist/commands/auth/whoami.d.ts +28 -0
  24. package/dist/commands/auth/whoami.d.ts.map +1 -0
  25. package/dist/commands/auth/whoami.js +48 -0
  26. package/dist/commands/auth/whoami.js.map +1 -0
  27. package/dist/commands/clean.d.ts +25 -0
  28. package/dist/commands/clean.d.ts.map +1 -0
  29. package/dist/commands/clean.js +345 -0
  30. package/dist/commands/clean.js.map +1 -0
  31. package/dist/commands/config/show.d.ts +25 -0
  32. package/dist/commands/config/show.d.ts.map +1 -0
  33. package/dist/commands/config/show.js +49 -0
  34. package/dist/commands/config/show.js.map +1 -0
  35. package/dist/commands/configure.d.ts +26 -0
  36. package/dist/commands/configure.d.ts.map +1 -0
  37. package/dist/commands/configure.js +53 -0
  38. package/dist/commands/configure.js.map +1 -0
  39. package/dist/commands/doctor.d.ts +2 -0
  40. package/dist/commands/doctor.d.ts.map +1 -0
  41. package/dist/commands/doctor.js +96 -0
  42. package/dist/commands/doctor.js.map +1 -0
  43. package/dist/commands/generate.d.ts +11 -0
  44. package/dist/commands/generate.d.ts.map +1 -0
  45. package/dist/commands/generate.js +395 -0
  46. package/dist/commands/generate.js.map +1 -0
  47. package/dist/commands/init.d.ts +8 -0
  48. package/dist/commands/init.d.ts.map +1 -0
  49. package/dist/commands/init.js +302 -0
  50. package/dist/commands/init.js.map +1 -0
  51. package/dist/commands/validate.d.ts +2 -0
  52. package/dist/commands/validate.d.ts.map +1 -0
  53. package/dist/commands/validate.js +58 -0
  54. package/dist/commands/validate.js.map +1 -0
  55. package/dist/config/types.d.ts +138 -0
  56. package/dist/config/types.d.ts.map +1 -0
  57. package/dist/config/types.js +48 -0
  58. package/dist/config/types.js.map +1 -0
  59. package/dist/index.d.ts +3 -0
  60. package/dist/index.d.ts.map +1 -0
  61. package/dist/index.js +114 -0
  62. package/dist/index.js.map +1 -0
  63. package/dist/planned-commands.d.ts +51 -0
  64. package/dist/planned-commands.d.ts.map +1 -0
  65. package/dist/planned-commands.js +199 -0
  66. package/dist/planned-commands.js.map +1 -0
  67. package/dist/services/os-cache-paths.d.ts +15 -0
  68. package/dist/services/os-cache-paths.d.ts.map +1 -0
  69. package/dist/services/os-cache-paths.js +57 -0
  70. package/dist/services/os-cache-paths.js.map +1 -0
  71. package/dist/services/snapshot-discovery.d.ts +111 -0
  72. package/dist/services/snapshot-discovery.d.ts.map +1 -0
  73. package/dist/services/snapshot-discovery.js +249 -0
  74. package/dist/services/snapshot-discovery.js.map +1 -0
  75. package/dist/types/index.d.ts +8 -0
  76. package/dist/types/index.d.ts.map +1 -0
  77. package/dist/types/index.js +9 -0
  78. package/dist/types/index.js.map +1 -0
  79. package/dist/types/snapshot-payload.d.ts +205 -0
  80. package/dist/types/snapshot-payload.d.ts.map +1 -0
  81. package/dist/types/snapshot-payload.js +9 -0
  82. package/dist/types/snapshot-payload.js.map +1 -0
  83. package/package.json +65 -0
  84. 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,2 @@
1
+ export declare function validateCommand(schemaFile: string): Promise<void>;
2
+ //# sourceMappingURL=validate.d.ts.map
@@ -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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}