@config-bound/cli 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 (66) hide show
  1. package/.turbo/turbo-build.log +4 -0
  2. package/.turbo/turbo-format$colon$ci.log +6 -0
  3. package/.turbo/turbo-lint$colon$ci.log +4 -0
  4. package/.turbo/turbo-test.log +19 -0
  5. package/CHANGELOG.md +15 -0
  6. package/README.md +66 -0
  7. package/bin/configbound.js +3 -0
  8. package/dist/cli.module.d.ts +3 -0
  9. package/dist/cli.module.d.ts.map +1 -0
  10. package/dist/cli.module.js +29 -0
  11. package/dist/cli.module.js.map +1 -0
  12. package/dist/commands/export.command.d.ts +30 -0
  13. package/dist/commands/export.command.d.ts.map +1 -0
  14. package/dist/commands/export.command.js +226 -0
  15. package/dist/commands/export.command.js.map +1 -0
  16. package/dist/commands/list.command.d.ts +13 -0
  17. package/dist/commands/list.command.d.ts.map +1 -0
  18. package/dist/commands/list.command.js +93 -0
  19. package/dist/commands/list.command.js.map +1 -0
  20. package/dist/main.d.ts +3 -0
  21. package/dist/main.d.ts.map +1 -0
  22. package/dist/main.js +17 -0
  23. package/dist/main.js.map +1 -0
  24. package/dist/services/config-discovery.service.d.ts +15 -0
  25. package/dist/services/config-discovery.service.d.ts.map +1 -0
  26. package/dist/services/config-discovery.service.js +191 -0
  27. package/dist/services/config-discovery.service.js.map +1 -0
  28. package/dist/services/config-discovery.service.spec.d.ts +2 -0
  29. package/dist/services/config-discovery.service.spec.d.ts.map +1 -0
  30. package/dist/services/config-discovery.service.spec.js +137 -0
  31. package/dist/services/config-discovery.service.spec.js.map +1 -0
  32. package/dist/services/config-loader.service.d.ts +13 -0
  33. package/dist/services/config-loader.service.d.ts.map +1 -0
  34. package/dist/services/config-loader.service.js +241 -0
  35. package/dist/services/config-loader.service.js.map +1 -0
  36. package/dist/services/file-writer.service.d.ts +6 -0
  37. package/dist/services/file-writer.service.d.ts.map +1 -0
  38. package/dist/services/file-writer.service.js +38 -0
  39. package/dist/services/file-writer.service.js.map +1 -0
  40. package/dist/services/file-writer.service.spec.d.ts +2 -0
  41. package/dist/services/file-writer.service.spec.d.ts.map +1 -0
  42. package/dist/services/file-writer.service.spec.js +98 -0
  43. package/dist/services/file-writer.service.spec.js.map +1 -0
  44. package/dist/services/schema-export.service.d.ts +14 -0
  45. package/dist/services/schema-export.service.d.ts.map +1 -0
  46. package/dist/services/schema-export.service.js +58 -0
  47. package/dist/services/schema-export.service.js.map +1 -0
  48. package/dist/services/schema-export.service.spec.d.ts +2 -0
  49. package/dist/services/schema-export.service.spec.d.ts.map +1 -0
  50. package/dist/services/schema-export.service.spec.js +69 -0
  51. package/dist/services/schema-export.service.spec.js.map +1 -0
  52. package/eslint.config.mjs +5 -0
  53. package/jest.config.js +39 -0
  54. package/package.json +62 -0
  55. package/src/cli.module.ts +21 -0
  56. package/src/commands/export.command.ts +253 -0
  57. package/src/commands/list.command.ts +108 -0
  58. package/src/main.ts +19 -0
  59. package/src/services/config-discovery.service.spec.ts +209 -0
  60. package/src/services/config-discovery.service.ts +237 -0
  61. package/src/services/config-loader.service.ts +379 -0
  62. package/src/services/file-writer.service.spec.ts +139 -0
  63. package/src/services/file-writer.service.ts +32 -0
  64. package/src/services/schema-export.service.spec.ts +124 -0
  65. package/src/services/schema-export.service.ts +85 -0
  66. package/tsconfig.json +10 -0
@@ -0,0 +1,4 @@
1
+
2
+ > @config-bound/cli@0.1.0 build
3
+ > tsc
4
+
@@ -0,0 +1,6 @@
1
+
2
+ > @config-bound/cli@0.1.0 format:ci
3
+ > prettier --check --config ../../.config/.prettierrc --ignore-path ../../.config/.prettierignore src/**/*.ts
4
+
5
+ Checking formatting...
6
+ All matched files use Prettier code style!
@@ -0,0 +1,4 @@
1
+
2
+ > @config-bound/cli@0.1.0 lint:ci
3
+ > eslint src/**/*.ts
4
+
@@ -0,0 +1,19 @@
1
+
2
+ > @config-bound/cli@0.1.0 test
3
+ > NODE_OPTIONS='--experimental-vm-modules' jest
4
+
5
+ (node:2957) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
6
+ (Use `node --trace-warnings ...` to show where the warning was created)
7
+ PASS src/services/file-writer.service.spec.ts
8
+ (node:2959) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
9
+ (Use `node --trace-warnings ...` to show where the warning was created)
10
+ PASS src/services/schema-export.service.spec.ts
11
+ (node:2956) ExperimentalWarning: VM Modules is an experimental feature and might change at any time
12
+ (Use `node --trace-warnings ...` to show where the warning was created)
13
+ PASS src/services/config-discovery.service.spec.ts (17.134 s)
14
+
15
+ Test Suites: 3 passed, 3 total
16
+ Tests: 27 passed, 27 total
17
+ Snapshots: 0 total
18
+ Time: 18.949 s
19
+ Ran all test suites.
package/CHANGELOG.md ADDED
@@ -0,0 +1,15 @@
1
+ # @config-bound/cli
2
+
3
+ ## 0.1.0
4
+
5
+ ### Minor Changes
6
+
7
+ - 3c2cf21: Add a CLI to export and interact with configuration schemas
8
+
9
+ ### Patch Changes
10
+
11
+ - Updated dependencies [de1dc3b]
12
+ - Updated dependencies [3c2cf21]
13
+ - Updated dependencies [dca5c72]
14
+ - @config-bound/config-bound@0.1.0
15
+ - @config-bound/schema-export@0.1.0
package/README.md ADDED
@@ -0,0 +1,66 @@
1
+ # @config-bound/cli
2
+
3
+ CLI tool for ConfigBound schema export and management.
4
+
5
+ ## Installation
6
+
7
+ ```bash
8
+ npm install -g @config-bound/cli
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ### List discovered configs
14
+
15
+ ```bash
16
+ configbound list [path]
17
+ ```
18
+
19
+ Discovers all ConfigBound configurations in your project.
20
+
21
+ **Options:**
22
+
23
+ - `[path]` - Directory to search (default: current directory)
24
+ - `--recursive, -r` - Search subdirectories
25
+
26
+ **Example:**
27
+
28
+ ```bash
29
+ npx configbound list ./src
30
+ npx configbound list --recursive
31
+ ```
32
+
33
+ ### Export schema
34
+
35
+ ```bash
36
+ npx configbound export [options]
37
+ ```
38
+
39
+ Exports ConfigBound schema in various formats.
40
+
41
+ **Smart Discovery:**
42
+
43
+ - If no `--config` is specified, automatically discovers configs in your project
44
+ - Auto-selects if only one config is found
45
+ - Prompts for selection if multiple configs exist
46
+ - Works with any file structure - finds `ConfigBound.createConfig()` calls anywhere
47
+
48
+ ## Development
49
+
50
+ ```bash
51
+ # Install dependencies
52
+ npm install
53
+
54
+ # Build
55
+ npm run build
56
+
57
+ # Run in dev mode
58
+ npm run dev -- list
59
+
60
+ # Run tests
61
+ npm test
62
+ ```
63
+
64
+ ## License
65
+
66
+ MIT
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+
3
+ import('../dist/main.js');
@@ -0,0 +1,3 @@
1
+ export declare class CliModule {
2
+ }
3
+ //# sourceMappingURL=cli.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.module.d.ts","sourceRoot":"","sources":["../src/cli.module.ts"],"names":[],"mappings":"AAQA,qBAUa,SAAS;CAAG"}
@@ -0,0 +1,29 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ import { Module } from '@nestjs/common';
8
+ import { ListCommand } from './commands/list.command.js';
9
+ import { ExportCommand } from './commands/export.command.js';
10
+ import { ConfigDiscoveryService } from './services/config-discovery.service.js';
11
+ import { ConfigLoaderService } from './services/config-loader.service.js';
12
+ import { SchemaExportService } from './services/schema-export.service.js';
13
+ import { FileWriterService } from './services/file-writer.service.js';
14
+ let CliModule = class CliModule {
15
+ };
16
+ CliModule = __decorate([
17
+ Module({
18
+ providers: [
19
+ ListCommand,
20
+ ExportCommand,
21
+ ConfigDiscoveryService,
22
+ ConfigLoaderService,
23
+ SchemaExportService,
24
+ FileWriterService
25
+ ]
26
+ })
27
+ ], CliModule);
28
+ export { CliModule };
29
+ //# sourceMappingURL=cli.module.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.module.js","sourceRoot":"","sources":["../src/cli.module.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,mBAAmB,EAAE,MAAM,qCAAqC,CAAC;AAC1E,OAAO,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAY/D,IAAM,SAAS,GAAf,MAAM,SAAS;CAAG,CAAA;AAAZ,SAAS;IAVrB,MAAM,CAAC;QACN,SAAS,EAAE;YACT,WAAW;YACX,aAAa;YACb,sBAAsB;YACtB,mBAAmB;YACnB,mBAAmB;YACnB,iBAAiB;SAClB;KACF,CAAC;GACW,SAAS,CAAG"}
@@ -0,0 +1,30 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ import { ConfigLoaderService } from '../services/config-loader.service.js';
3
+ import { ConfigDiscoveryService } from '../services/config-discovery.service.js';
4
+ import { SchemaExportService, type ExportFormat } from '../services/schema-export.service.js';
5
+ import { FileWriterService } from '../services/file-writer.service.js';
6
+ interface ExportCommandOptions {
7
+ config?: string;
8
+ format: ExportFormat;
9
+ output?: string;
10
+ includeOmitted?: boolean;
11
+ pretty?: boolean;
12
+ name?: string;
13
+ }
14
+ export declare class ExportCommand extends CommandRunner {
15
+ private readonly loaderService;
16
+ private readonly discoveryService;
17
+ private readonly exportService;
18
+ private readonly writerService;
19
+ constructor(loaderService: ConfigLoaderService, discoveryService: ConfigDiscoveryService, exportService: SchemaExportService, writerService: FileWriterService);
20
+ run(_passedParams: string[], options?: ExportCommandOptions): Promise<void>;
21
+ private discoverAndSelect;
22
+ parseConfig(val: string): string;
23
+ parseFormat(val: string): ExportFormat;
24
+ parseOutput(val: string): string;
25
+ parseIncludeOmitted(): boolean;
26
+ parsePretty(val: string): boolean;
27
+ parseName(val: string): string;
28
+ }
29
+ export {};
30
+ //# sourceMappingURL=export.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.command.d.ts","sourceRoot":"","sources":["../../src/commands/export.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAC3E,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AACjF,OAAO,EACL,mBAAmB,EACnB,KAAK,YAAY,EAClB,MAAM,sCAAsC,CAAC;AAC9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AAIvE,UAAU,oBAAoB;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,qBAIa,aAAc,SAAQ,aAAa;IAE5C,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,aAAa;gBAHb,aAAa,EAAE,mBAAmB,EAClC,gBAAgB,EAAE,sBAAsB,EACxC,aAAa,EAAE,mBAAmB,EAClC,aAAa,EAAE,iBAAiB;IAK7C,GAAG,CACP,aAAa,EAAE,MAAM,EAAE,EACvB,OAAO,CAAC,EAAE,oBAAoB,GAC7B,OAAO,CAAC,IAAI,CAAC;YAgEF,iBAAiB;IAoG/B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAShC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,YAAY;IActC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;IAQhC,mBAAmB,IAAI,OAAO;IAS9B,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQjC,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM;CAG/B"}
@@ -0,0 +1,226 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Command, CommandRunner, Option } from 'nest-commander';
11
+ import { ConfigLoaderService } from '../services/config-loader.service.js';
12
+ import { ConfigDiscoveryService } from '../services/config-discovery.service.js';
13
+ import { SchemaExportService } from '../services/schema-export.service.js';
14
+ import { FileWriterService } from '../services/file-writer.service.js';
15
+ import chalk from 'chalk';
16
+ import * as readline from 'readline';
17
+ let ExportCommand = class ExportCommand extends CommandRunner {
18
+ loaderService;
19
+ discoveryService;
20
+ exportService;
21
+ writerService;
22
+ constructor(loaderService, discoveryService, exportService, writerService) {
23
+ super();
24
+ this.loaderService = loaderService;
25
+ this.discoveryService = discoveryService;
26
+ this.exportService = exportService;
27
+ this.writerService = writerService;
28
+ }
29
+ async run(_passedParams, options) {
30
+ try {
31
+ let configPath;
32
+ let exportName;
33
+ if (!options?.config) {
34
+ const discovered = await this.discoverAndSelect();
35
+ if (!discovered) {
36
+ console.log(chalk.yellow('Export cancelled.'));
37
+ return;
38
+ }
39
+ configPath = discovered.filePath;
40
+ exportName =
41
+ discovered.exportName === 'default'
42
+ ? undefined
43
+ : discovered.exportName;
44
+ }
45
+ else {
46
+ configPath = options.config;
47
+ exportName = options.name;
48
+ }
49
+ const format = options?.format || 'json';
50
+ const includeOmitted = options?.includeOmitted || false;
51
+ const pretty = options?.pretty !== false;
52
+ const output = options?.output;
53
+ console.log(chalk.blue('Loading configuration...'));
54
+ const config = await this.loaderService.loadConfig(configPath, exportName);
55
+ console.log(chalk.green(`Loaded config: ${chalk.bold(config.name)}`));
56
+ const exportedSchema = this.exportService.exportToString(config.name, config.sections, config.instance, {
57
+ format,
58
+ includeOmitted,
59
+ pretty
60
+ });
61
+ if (output) {
62
+ this.writerService.writeToFile(output, exportedSchema);
63
+ console.log(chalk.green(`Schema exported to: ${output}`));
64
+ }
65
+ else {
66
+ console.log(chalk.blue('\nExported schema:\n'));
67
+ this.writerService.writeToStdout(exportedSchema);
68
+ }
69
+ }
70
+ catch (error) {
71
+ if (error instanceof Error) {
72
+ console.error(chalk.red(`Error: ${error.message}`));
73
+ }
74
+ else {
75
+ console.error(chalk.red(`Error: ${String(error)}`));
76
+ }
77
+ process.exit(1);
78
+ }
79
+ }
80
+ async discoverAndSelect() {
81
+ const startTime = Date.now();
82
+ console.log(chalk.blue('Searching for ConfigBound configurations...'));
83
+ const configs = await this.discoveryService.discoverConfigs(process.cwd(), true);
84
+ const elapsed = ((Date.now() - startTime) / 1000).toFixed(2);
85
+ console.log(chalk.gray(`Search completed in ${elapsed}s`));
86
+ if (configs.length === 0) {
87
+ console.log(chalk.yellow('\nNo ConfigBound configurations found in project.'));
88
+ console.log(chalk.gray('Tip: Use --config <path> to specify a config file explicitly.'));
89
+ return null;
90
+ }
91
+ if (configs.length === 1) {
92
+ const selected = configs[0];
93
+ const exportType = selected.isDefault ? 'default' : 'named';
94
+ const relativePath = selected.filePath.replace(process.cwd() + '/', '');
95
+ console.log(chalk.green(`\nFound 1 configuration - auto-selected: ${chalk.bold(selected.configName || 'unnamed')} (${exportType} export: ${selected.exportName})`));
96
+ console.log(chalk.gray(` from ${relativePath}\n`));
97
+ return {
98
+ filePath: selected.filePath,
99
+ exportName: selected.exportName
100
+ };
101
+ }
102
+ console.log(chalk.green(`\nFound ${configs.length} configurations:\n`));
103
+ configs.forEach((config, index) => {
104
+ const exportType = config.isDefault ? '(default)' : '(named)';
105
+ const configNamePart = config.configName
106
+ ? chalk.bold(config.configName)
107
+ : chalk.gray('unnamed');
108
+ const relativePath = config.filePath.replace(process.cwd() + '/', '');
109
+ console.log(`${chalk.cyan((index + 1).toString().padStart(2))}. ${configNamePart} ${chalk.gray(exportType + ' - ' + config.exportName)}`);
110
+ console.log(` ${chalk.gray(relativePath)}`);
111
+ });
112
+ const rl = readline.createInterface({
113
+ input: process.stdin,
114
+ output: process.stdout
115
+ });
116
+ const answer = await new Promise((resolve) => {
117
+ rl.question(chalk.yellow(`\nSelect configuration (1-${configs.length}) or Ctrl+C to cancel: `), (answer) => {
118
+ rl.close();
119
+ resolve(answer);
120
+ });
121
+ });
122
+ const selectedIndex = parseInt(answer, 10) - 1;
123
+ if (isNaN(selectedIndex) ||
124
+ selectedIndex < 0 ||
125
+ selectedIndex >= configs.length) {
126
+ console.log(chalk.red('Invalid selection.'));
127
+ return null;
128
+ }
129
+ const selected = configs[selectedIndex];
130
+ console.log();
131
+ return {
132
+ filePath: selected.filePath,
133
+ exportName: selected.exportName
134
+ };
135
+ }
136
+ parseConfig(val) {
137
+ return val;
138
+ }
139
+ parseFormat(val) {
140
+ const validFormats = ['json', 'yaml', 'env'];
141
+ if (!validFormats.includes(val)) {
142
+ throw new Error(`Invalid format: ${val}. Valid formats: ${validFormats.join(', ')}`);
143
+ }
144
+ return val;
145
+ }
146
+ parseOutput(val) {
147
+ return val;
148
+ }
149
+ parseIncludeOmitted() {
150
+ return true;
151
+ }
152
+ parsePretty(val) {
153
+ return val !== 'false';
154
+ }
155
+ parseName(val) {
156
+ return val;
157
+ }
158
+ };
159
+ __decorate([
160
+ Option({
161
+ flags: '-c, --config <path>',
162
+ description: 'Path to config file'
163
+ }),
164
+ __metadata("design:type", Function),
165
+ __metadata("design:paramtypes", [String]),
166
+ __metadata("design:returntype", String)
167
+ ], ExportCommand.prototype, "parseConfig", null);
168
+ __decorate([
169
+ Option({
170
+ flags: '-f, --format <format>',
171
+ description: 'Output format: json, yaml, env (default: json)',
172
+ defaultValue: 'json'
173
+ }),
174
+ __metadata("design:type", Function),
175
+ __metadata("design:paramtypes", [String]),
176
+ __metadata("design:returntype", String)
177
+ ], ExportCommand.prototype, "parseFormat", null);
178
+ __decorate([
179
+ Option({
180
+ flags: '-o, --output <path>',
181
+ description: 'Output file path (default: stdout)'
182
+ }),
183
+ __metadata("design:type", Function),
184
+ __metadata("design:paramtypes", [String]),
185
+ __metadata("design:returntype", String)
186
+ ], ExportCommand.prototype, "parseOutput", null);
187
+ __decorate([
188
+ Option({
189
+ flags: '--include-omitted',
190
+ description: 'Include elements marked with omitFromSchema: true'
191
+ }),
192
+ __metadata("design:type", Function),
193
+ __metadata("design:paramtypes", []),
194
+ __metadata("design:returntype", Boolean)
195
+ ], ExportCommand.prototype, "parseIncludeOmitted", null);
196
+ __decorate([
197
+ Option({
198
+ flags: '--pretty [boolean]',
199
+ description: 'Pretty-print JSON output (default: true)',
200
+ defaultValue: true
201
+ }),
202
+ __metadata("design:type", Function),
203
+ __metadata("design:paramtypes", [String]),
204
+ __metadata("design:returntype", Boolean)
205
+ ], ExportCommand.prototype, "parsePretty", null);
206
+ __decorate([
207
+ Option({
208
+ flags: '--name <name>',
209
+ description: 'Export named variable when file has multiple exports'
210
+ }),
211
+ __metadata("design:type", Function),
212
+ __metadata("design:paramtypes", [String]),
213
+ __metadata("design:returntype", String)
214
+ ], ExportCommand.prototype, "parseName", null);
215
+ ExportCommand = __decorate([
216
+ Command({
217
+ name: 'export',
218
+ description: 'Export ConfigBound schema in various formats'
219
+ }),
220
+ __metadata("design:paramtypes", [ConfigLoaderService,
221
+ ConfigDiscoveryService,
222
+ SchemaExportService,
223
+ FileWriterService])
224
+ ], ExportCommand);
225
+ export { ExportCommand };
226
+ //# sourceMappingURL=export.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"export.command.js","sourceRoot":"","sources":["../../src/commands/export.command.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import { CommandRunner } from 'nest-commander';
2
+ import { ConfigDiscoveryService } from '../services/config-discovery.service.js';
3
+ interface ListCommandOptions {
4
+ recursive?: boolean;
5
+ }
6
+ export declare class ListCommand extends CommandRunner {
7
+ private readonly discoveryService;
8
+ constructor(discoveryService: ConfigDiscoveryService);
9
+ run(passedParams: string[], options?: ListCommandOptions): Promise<void>;
10
+ parseRecursive(val: string): boolean;
11
+ }
12
+ export {};
13
+ //# sourceMappingURL=list.command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.command.d.ts","sourceRoot":"","sources":["../../src/commands/list.command.ts"],"names":[],"mappings":"AAAA,OAAO,EAAW,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAC;AAIjF,UAAU,kBAAkB;IAC1B,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,qBAQa,WAAY,SAAQ,aAAa;IAChC,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBAAhB,gBAAgB,EAAE,sBAAsB;IAI/D,GAAG,CACP,YAAY,EAAE,MAAM,EAAE,EACtB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,IAAI,CAAC;IA+EhB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;CAGrC"}
@@ -0,0 +1,93 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { Command, CommandRunner, Option } from 'nest-commander';
11
+ import { ConfigDiscoveryService } from '../services/config-discovery.service.js';
12
+ import chalk from 'chalk';
13
+ import * as path from 'path';
14
+ let ListCommand = class ListCommand extends CommandRunner {
15
+ discoveryService;
16
+ constructor(discoveryService) {
17
+ super();
18
+ this.discoveryService = discoveryService;
19
+ }
20
+ async run(passedParams, options) {
21
+ const searchPath = passedParams[0] || process.cwd();
22
+ const recursive = options?.recursive !== false;
23
+ try {
24
+ console.log(chalk.blue(`Searching for ConfigBound configurations in: ${searchPath}`));
25
+ console.log(chalk.gray(`Recursive: ${recursive ? 'yes' : 'no'}`));
26
+ console.log();
27
+ const configs = await this.discoveryService.discoverConfigs(searchPath, recursive);
28
+ if (configs.length === 0) {
29
+ console.log(chalk.yellow('No ConfigBound configurations found.'));
30
+ return;
31
+ }
32
+ console.log(chalk.green(`Found ${configs.length} ConfigBound configuration${configs.length === 1 ? '' : 's'}:`));
33
+ console.log();
34
+ const groupedByFile = configs.reduce((acc, config) => {
35
+ if (!acc[config.filePath]) {
36
+ acc[config.filePath] = [];
37
+ }
38
+ acc[config.filePath].push(config);
39
+ return acc;
40
+ }, {});
41
+ for (const [filePath, fileConfigs] of Object.entries(groupedByFile)) {
42
+ const relativePath = path.relative(process.cwd(), filePath);
43
+ console.log(chalk.cyan(`📄 ${relativePath}`));
44
+ for (const config of fileConfigs) {
45
+ const exportType = config.isDefault
46
+ ? chalk.gray('(default)')
47
+ : chalk.gray('(named)');
48
+ const configNamePart = config.configName
49
+ ? chalk.magenta(` - ${config.configName}`)
50
+ : '';
51
+ const linePart = chalk.gray(`:${config.lineNumber}`);
52
+ console.log(` ${chalk.white(config.exportName)} ${exportType}${configNamePart}${linePart}`);
53
+ }
54
+ console.log();
55
+ }
56
+ console.log(chalk.gray('Tip: Use `configbound export --config <file> --name <export>` to export a specific configuration.'));
57
+ }
58
+ catch (error) {
59
+ if (error instanceof Error) {
60
+ console.error(chalk.red(`Error: ${error.message}`));
61
+ }
62
+ else {
63
+ console.error(chalk.red(`Error: ${String(error)}`));
64
+ }
65
+ process.exit(1);
66
+ }
67
+ }
68
+ parseRecursive(val) {
69
+ return val !== 'false';
70
+ }
71
+ };
72
+ __decorate([
73
+ Option({
74
+ flags: '-r, --recursive [boolean]',
75
+ description: 'Search subdirectories (default: true)'
76
+ }),
77
+ __metadata("design:type", Function),
78
+ __metadata("design:paramtypes", [String]),
79
+ __metadata("design:returntype", Boolean)
80
+ ], ListCommand.prototype, "parseRecursive", null);
81
+ ListCommand = __decorate([
82
+ Command({
83
+ name: 'list',
84
+ description: 'List all discovered ConfigBound configurations',
85
+ arguments: '[path]',
86
+ argsDescription: {
87
+ path: 'Directory to search (default: current directory)'
88
+ }
89
+ }),
90
+ __metadata("design:paramtypes", [ConfigDiscoveryService])
91
+ ], ListCommand);
92
+ export { ListCommand };
93
+ //# sourceMappingURL=list.command.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"list.command.js","sourceRoot":"","sources":["../../src/commands/list.command.ts"],"names":[],"mappings":"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"}
package/dist/main.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.d.ts","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":""}
package/dist/main.js ADDED
@@ -0,0 +1,17 @@
1
+ #!/usr/bin/env node
2
+ import { CommandFactory } from 'nest-commander';
3
+ import { CliModule } from './cli.module.js';
4
+ async function bootstrap() {
5
+ await CommandFactory.run(CliModule, {
6
+ logger: false,
7
+ errorHandler: (err) => {
8
+ if (err && typeof err === 'object' && 'code' in err && err.code === 'commander.help') {
9
+ process.exit(0);
10
+ }
11
+ console.error('Unexpected error:', err);
12
+ process.exit(1);
13
+ }
14
+ });
15
+ }
16
+ bootstrap();
17
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,KAAK,UAAU,SAAS;IACtB,MAAM,cAAc,CAAC,GAAG,CAAC,SAAS,EAAE;QAClC,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,CAAC,GAAG,EAAE,EAAE;YACpB,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,KAAK,gBAAgB,EAAE,CAAC;gBACrF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAClB,CAAC;YACD,OAAO,CAAC,KAAK,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YACxC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAED,SAAS,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export interface DiscoveredConfig {
2
+ filePath: string;
3
+ exportName: string;
4
+ isDefault: boolean;
5
+ configName?: string;
6
+ lineNumber: number;
7
+ }
8
+ export declare class ConfigDiscoveryService {
9
+ discoverConfigs(searchPath: string, recursive?: boolean): Promise<DiscoveredConfig[]>;
10
+ private extractConfigsFromFile;
11
+ private isConfigBoundCreateConfig;
12
+ private extractConfigName;
13
+ private findTypeScriptFiles;
14
+ }
15
+ //# sourceMappingURL=config-discovery.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-discovery.service.d.ts","sourceRoot":"","sources":["../../src/services/config-discovery.service.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBACa,sBAAsB;IAC3B,eAAe,CACnB,UAAU,EAAE,MAAM,EAClB,SAAS,GAAE,OAAc,GACxB,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAsC9B,OAAO,CAAC,sBAAsB;IA4D9B,OAAO,CAAC,yBAAyB;IA6BjC,OAAO,CAAC,iBAAiB;IA2BzB,OAAO,CAAC,mBAAmB;CA+D5B"}