@memberjunction/db-auto-doc 2.116.0 → 2.118.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 (251) hide show
  1. package/README.md +652 -165
  2. package/bin/run.js +7 -0
  3. package/dist/api/DBAutoDocAPI.d.ts +252 -0
  4. package/dist/api/DBAutoDocAPI.d.ts.map +1 -0
  5. package/dist/api/DBAutoDocAPI.js +530 -0
  6. package/dist/api/DBAutoDocAPI.js.map +1 -0
  7. package/dist/api/index.d.ts +7 -0
  8. package/dist/api/index.d.ts.map +1 -0
  9. package/dist/api/index.js +10 -0
  10. package/dist/api/index.js.map +1 -0
  11. package/dist/commands/analyze.d.ts +6 -4
  12. package/dist/commands/analyze.d.ts.map +1 -1
  13. package/dist/commands/analyze.js +58 -71
  14. package/dist/commands/analyze.js.map +1 -1
  15. package/dist/commands/export.d.ts +14 -4
  16. package/dist/commands/export.d.ts.map +1 -1
  17. package/dist/commands/export.js +156 -61
  18. package/dist/commands/export.js.map +1 -1
  19. package/dist/commands/init.d.ts +3 -4
  20. package/dist/commands/init.d.ts.map +1 -1
  21. package/dist/commands/init.js +155 -146
  22. package/dist/commands/init.js.map +1 -1
  23. package/dist/commands/reset.d.ts +4 -1
  24. package/dist/commands/reset.d.ts.map +1 -1
  25. package/dist/commands/reset.js +33 -19
  26. package/dist/commands/reset.js.map +1 -1
  27. package/dist/commands/status.d.ts +10 -0
  28. package/dist/commands/status.d.ts.map +1 -0
  29. package/dist/commands/status.js +66 -0
  30. package/dist/commands/status.js.map +1 -0
  31. package/dist/core/AnalysisEngine.d.ts +108 -0
  32. package/dist/core/AnalysisEngine.d.ts.map +1 -0
  33. package/dist/core/AnalysisEngine.js +716 -0
  34. package/dist/core/AnalysisEngine.js.map +1 -0
  35. package/dist/core/AnalysisOrchestrator.d.ts +37 -0
  36. package/dist/core/AnalysisOrchestrator.d.ts.map +1 -0
  37. package/dist/core/AnalysisOrchestrator.js +294 -0
  38. package/dist/core/AnalysisOrchestrator.js.map +1 -0
  39. package/dist/core/BackpropagationEngine.d.ts +32 -0
  40. package/dist/core/BackpropagationEngine.d.ts.map +1 -0
  41. package/dist/core/BackpropagationEngine.js +121 -0
  42. package/dist/core/BackpropagationEngine.js.map +1 -0
  43. package/dist/core/ConvergenceDetector.d.ts +27 -0
  44. package/dist/core/ConvergenceDetector.d.ts.map +1 -0
  45. package/dist/core/ConvergenceDetector.js +92 -0
  46. package/dist/core/ConvergenceDetector.js.map +1 -0
  47. package/dist/core/GuardrailsManager.d.ts +78 -0
  48. package/dist/core/GuardrailsManager.d.ts.map +1 -0
  49. package/dist/core/GuardrailsManager.js +367 -0
  50. package/dist/core/GuardrailsManager.js.map +1 -0
  51. package/dist/core/index.d.ts +7 -0
  52. package/dist/core/index.d.ts.map +1 -0
  53. package/dist/core/index.js +13 -0
  54. package/dist/core/index.js.map +1 -0
  55. package/dist/database/Database.d.ts +56 -0
  56. package/dist/database/Database.d.ts.map +1 -0
  57. package/dist/database/Database.js +172 -0
  58. package/dist/database/Database.js.map +1 -0
  59. package/dist/database/TopologicalSorter.d.ts +25 -0
  60. package/dist/database/TopologicalSorter.d.ts.map +1 -0
  61. package/dist/database/TopologicalSorter.js +150 -0
  62. package/dist/database/TopologicalSorter.js.map +1 -0
  63. package/dist/database/index.d.ts +6 -0
  64. package/dist/database/index.d.ts.map +1 -0
  65. package/dist/database/index.js +14 -0
  66. package/dist/database/index.js.map +1 -0
  67. package/dist/discovery/ColumnStatsCache.d.ts +91 -0
  68. package/dist/discovery/ColumnStatsCache.d.ts.map +1 -0
  69. package/dist/discovery/ColumnStatsCache.js +231 -0
  70. package/dist/discovery/ColumnStatsCache.js.map +1 -0
  71. package/dist/discovery/DiscoveryEngine.d.ts +100 -0
  72. package/dist/discovery/DiscoveryEngine.d.ts.map +1 -0
  73. package/dist/discovery/DiscoveryEngine.js +726 -0
  74. package/dist/discovery/DiscoveryEngine.js.map +1 -0
  75. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts +57 -0
  76. package/dist/discovery/DiscoveryTriggerAnalyzer.d.ts.map +1 -0
  77. package/dist/discovery/DiscoveryTriggerAnalyzer.js +186 -0
  78. package/dist/discovery/DiscoveryTriggerAnalyzer.js.map +1 -0
  79. package/dist/discovery/FKDetector.d.ts +47 -0
  80. package/dist/discovery/FKDetector.d.ts.map +1 -0
  81. package/dist/discovery/FKDetector.js +317 -0
  82. package/dist/discovery/FKDetector.js.map +1 -0
  83. package/dist/discovery/LLMDiscoveryValidator.d.ts +64 -0
  84. package/dist/discovery/LLMDiscoveryValidator.d.ts.map +1 -0
  85. package/dist/discovery/LLMDiscoveryValidator.js +431 -0
  86. package/dist/discovery/LLMDiscoveryValidator.js.map +1 -0
  87. package/dist/discovery/LLMSanityChecker.d.ts +38 -0
  88. package/dist/discovery/LLMSanityChecker.d.ts.map +1 -0
  89. package/dist/discovery/LLMSanityChecker.js +156 -0
  90. package/dist/discovery/LLMSanityChecker.js.map +1 -0
  91. package/dist/discovery/PKDetector.d.ts +62 -0
  92. package/dist/discovery/PKDetector.d.ts.map +1 -0
  93. package/dist/discovery/PKDetector.js +436 -0
  94. package/dist/discovery/PKDetector.js.map +1 -0
  95. package/dist/discovery/index.d.ts +9 -0
  96. package/dist/discovery/index.d.ts.map +1 -0
  97. package/dist/discovery/index.js +25 -0
  98. package/dist/discovery/index.js.map +1 -0
  99. package/dist/drivers/BaseAutoDocDriver.d.ts +132 -0
  100. package/dist/drivers/BaseAutoDocDriver.d.ts.map +1 -0
  101. package/dist/drivers/BaseAutoDocDriver.js +121 -0
  102. package/dist/drivers/BaseAutoDocDriver.js.map +1 -0
  103. package/dist/drivers/MySQLDriver.d.ts +61 -0
  104. package/dist/drivers/MySQLDriver.d.ts.map +1 -0
  105. package/dist/drivers/MySQLDriver.js +668 -0
  106. package/dist/drivers/MySQLDriver.js.map +1 -0
  107. package/dist/drivers/PostgreSQLDriver.d.ts +65 -0
  108. package/dist/drivers/PostgreSQLDriver.d.ts.map +1 -0
  109. package/dist/drivers/PostgreSQLDriver.js +704 -0
  110. package/dist/drivers/PostgreSQLDriver.js.map +1 -0
  111. package/dist/drivers/SQLServerDriver.d.ts +61 -0
  112. package/dist/drivers/SQLServerDriver.d.ts.map +1 -0
  113. package/dist/drivers/SQLServerDriver.js +667 -0
  114. package/dist/drivers/SQLServerDriver.js.map +1 -0
  115. package/dist/generators/CSVGenerator.d.ts +35 -0
  116. package/dist/generators/CSVGenerator.d.ts.map +1 -0
  117. package/dist/generators/CSVGenerator.js +154 -0
  118. package/dist/generators/CSVGenerator.js.map +1 -0
  119. package/dist/generators/HTMLGenerator.d.ts +29 -0
  120. package/dist/generators/HTMLGenerator.d.ts.map +1 -0
  121. package/dist/generators/HTMLGenerator.js +710 -0
  122. package/dist/generators/HTMLGenerator.js.map +1 -0
  123. package/dist/generators/MarkdownGenerator.d.ts +27 -0
  124. package/dist/generators/MarkdownGenerator.d.ts.map +1 -0
  125. package/dist/generators/MarkdownGenerator.js +361 -0
  126. package/dist/generators/MarkdownGenerator.js.map +1 -0
  127. package/dist/generators/MermaidGenerator.d.ts +35 -0
  128. package/dist/generators/MermaidGenerator.d.ts.map +1 -0
  129. package/dist/generators/MermaidGenerator.js +321 -0
  130. package/dist/generators/MermaidGenerator.js.map +1 -0
  131. package/dist/generators/ReportGenerator.d.ts +22 -0
  132. package/dist/generators/ReportGenerator.d.ts.map +1 -0
  133. package/dist/generators/ReportGenerator.js +176 -0
  134. package/dist/generators/ReportGenerator.js.map +1 -0
  135. package/dist/generators/SQLGenerator.d.ts +31 -0
  136. package/dist/generators/SQLGenerator.d.ts.map +1 -0
  137. package/dist/generators/SQLGenerator.js +168 -0
  138. package/dist/generators/SQLGenerator.js.map +1 -0
  139. package/dist/generators/index.d.ts +10 -0
  140. package/dist/generators/index.d.ts.map +1 -0
  141. package/dist/generators/index.js +19 -0
  142. package/dist/generators/index.js.map +1 -0
  143. package/dist/index.d.ts +11 -20
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/index.js +19 -20
  146. package/dist/index.js.map +1 -1
  147. package/dist/prompts/PromptEngine.d.ts +65 -0
  148. package/dist/prompts/PromptEngine.d.ts.map +1 -0
  149. package/dist/prompts/PromptEngine.js +282 -0
  150. package/dist/prompts/PromptEngine.js.map +1 -0
  151. package/dist/prompts/PromptFileLoader.d.ts +21 -0
  152. package/dist/prompts/PromptFileLoader.d.ts.map +1 -0
  153. package/dist/prompts/PromptFileLoader.js +74 -0
  154. package/dist/prompts/PromptFileLoader.js.map +1 -0
  155. package/dist/prompts/index.d.ts +6 -0
  156. package/dist/prompts/index.d.ts.map +1 -0
  157. package/dist/prompts/index.js +11 -0
  158. package/dist/prompts/index.js.map +1 -0
  159. package/dist/state/IterationTracker.d.ts +64 -0
  160. package/dist/state/IterationTracker.d.ts.map +1 -0
  161. package/dist/state/IterationTracker.js +136 -0
  162. package/dist/state/IterationTracker.js.map +1 -0
  163. package/dist/state/StateManager.d.ts +79 -0
  164. package/dist/state/StateManager.d.ts.map +1 -0
  165. package/dist/state/StateManager.js +348 -0
  166. package/dist/state/StateManager.js.map +1 -0
  167. package/dist/state/StateValidator.d.ts +24 -0
  168. package/dist/state/StateValidator.d.ts.map +1 -0
  169. package/dist/state/StateValidator.js +147 -0
  170. package/dist/state/StateValidator.js.map +1 -0
  171. package/dist/state/index.d.ts +7 -0
  172. package/dist/state/index.d.ts.map +1 -0
  173. package/dist/state/index.js +13 -0
  174. package/dist/state/index.js.map +1 -0
  175. package/dist/types/analysis.d.ts +76 -0
  176. package/dist/types/analysis.d.ts.map +1 -0
  177. package/dist/types/analysis.js +6 -0
  178. package/dist/types/analysis.js.map +1 -0
  179. package/dist/types/config.d.ts +132 -0
  180. package/dist/types/config.d.ts.map +1 -0
  181. package/dist/types/config.js +7 -0
  182. package/dist/types/config.js.map +1 -0
  183. package/dist/types/discovery.d.ts +277 -0
  184. package/dist/types/discovery.d.ts.map +1 -0
  185. package/dist/types/discovery.js +7 -0
  186. package/dist/types/discovery.js.map +1 -0
  187. package/dist/types/driver.d.ts +148 -0
  188. package/dist/types/driver.d.ts.map +1 -0
  189. package/dist/types/driver.js +7 -0
  190. package/dist/types/driver.js.map +1 -0
  191. package/dist/types/index.d.ts +8 -0
  192. package/dist/types/index.d.ts.map +1 -0
  193. package/dist/types/index.js +24 -0
  194. package/dist/types/index.js.map +1 -0
  195. package/dist/types/prompts.d.ts +158 -0
  196. package/dist/types/prompts.d.ts.map +1 -0
  197. package/dist/types/prompts.js +6 -0
  198. package/dist/types/prompts.js.map +1 -0
  199. package/dist/types/state.d.ts +278 -0
  200. package/dist/types/state.d.ts.map +1 -0
  201. package/dist/types/state.js +7 -0
  202. package/dist/types/state.js.map +1 -0
  203. package/dist/utils/config-loader.d.ts +29 -0
  204. package/dist/utils/config-loader.d.ts.map +1 -0
  205. package/dist/utils/config-loader.js +163 -0
  206. package/dist/utils/config-loader.js.map +1 -0
  207. package/dist/utils/index.d.ts +5 -0
  208. package/dist/utils/index.d.ts.map +1 -0
  209. package/dist/utils/index.js +9 -0
  210. package/dist/utils/index.js.map +1 -0
  211. package/package.json +24 -3
  212. package/dist/ai/simple-ai-client.d.ts +0 -70
  213. package/dist/ai/simple-ai-client.d.ts.map +0 -1
  214. package/dist/ai/simple-ai-client.js +0 -181
  215. package/dist/ai/simple-ai-client.js.map +0 -1
  216. package/dist/analyzers/analyzer.d.ts +0 -23
  217. package/dist/analyzers/analyzer.d.ts.map +0 -1
  218. package/dist/analyzers/analyzer.js +0 -127
  219. package/dist/analyzers/analyzer.js.map +0 -1
  220. package/dist/cli-old/cli.d.ts +0 -3
  221. package/dist/cli-old/cli.d.ts.map +0 -1
  222. package/dist/cli-old/cli.js +0 -388
  223. package/dist/cli-old/cli.js.map +0 -1
  224. package/dist/commands/review.d.ts +0 -11
  225. package/dist/commands/review.d.ts.map +0 -1
  226. package/dist/commands/review.js +0 -82
  227. package/dist/commands/review.js.map +0 -1
  228. package/dist/database/connection.d.ts +0 -40
  229. package/dist/database/connection.d.ts.map +0 -1
  230. package/dist/database/connection.js +0 -136
  231. package/dist/database/connection.js.map +0 -1
  232. package/dist/database/introspection.d.ts +0 -59
  233. package/dist/database/introspection.d.ts.map +0 -1
  234. package/dist/database/introspection.js +0 -124
  235. package/dist/database/introspection.js.map +0 -1
  236. package/dist/generators/markdown-generator.d.ts +0 -8
  237. package/dist/generators/markdown-generator.d.ts.map +0 -1
  238. package/dist/generators/markdown-generator.js +0 -106
  239. package/dist/generators/markdown-generator.js.map +0 -1
  240. package/dist/generators/sql-generator.d.ts +0 -20
  241. package/dist/generators/sql-generator.d.ts.map +0 -1
  242. package/dist/generators/sql-generator.js +0 -83
  243. package/dist/generators/sql-generator.js.map +0 -1
  244. package/dist/state/state-manager.d.ts +0 -95
  245. package/dist/state/state-manager.d.ts.map +0 -1
  246. package/dist/state/state-manager.js +0 -236
  247. package/dist/state/state-manager.js.map +0 -1
  248. package/dist/types/state-file.d.ts +0 -124
  249. package/dist/types/state-file.d.ts.map +0 -1
  250. package/dist/types/state-file.js +0 -79
  251. package/dist/types/state-file.js.map +0 -1
@@ -1,388 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
4
- if (k2 === undefined) k2 = k;
5
- var desc = Object.getOwnPropertyDescriptor(m, k);
6
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
7
- desc = { enumerable: true, get: function() { return m[k]; } };
8
- }
9
- Object.defineProperty(o, k2, desc);
10
- }) : (function(o, m, k, k2) {
11
- if (k2 === undefined) k2 = k;
12
- o[k2] = m[k];
13
- }));
14
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
15
- Object.defineProperty(o, "default", { enumerable: true, value: v });
16
- }) : function(o, v) {
17
- o["default"] = v;
18
- });
19
- var __importStar = (this && this.__importStar) || function (mod) {
20
- if (mod && mod.__esModule) return mod;
21
- var result = {};
22
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
23
- __setModuleDefault(result, mod);
24
- return result;
25
- };
26
- var __importDefault = (this && this.__importDefault) || function (mod) {
27
- return (mod && mod.__esModule) ? mod : { "default": mod };
28
- };
29
- Object.defineProperty(exports, "__esModule", { value: true });
30
- const commander_1 = require("commander");
31
- const inquirer_1 = __importDefault(require("inquirer"));
32
- const chalk_1 = __importDefault(require("chalk"));
33
- const ora_1 = __importDefault(require("ora"));
34
- const fs = __importStar(require("fs/promises"));
35
- const path = __importStar(require("path"));
36
- const dotenv = __importStar(require("dotenv"));
37
- const connection_1 = require("../database/connection");
38
- const state_manager_1 = require("../state/state-manager");
39
- const simple_ai_client_1 = require("../ai/simple-ai-client");
40
- const analyzer_1 = require("../analyzers/analyzer");
41
- const sql_generator_1 = require("../generators/sql-generator");
42
- const markdown_generator_1 = require("../generators/markdown-generator");
43
- dotenv.config();
44
- const program = new commander_1.Command();
45
- program
46
- .name('sqlserver-doc')
47
- .description('AI-powered SQL Server database documentation generator')
48
- .version('1.0.0');
49
- /**
50
- * INIT command - initialize new project
51
- */
52
- program
53
- .command('init')
54
- .description('Initialize new documentation project')
55
- .option('--interactive', 'Interactive setup', true)
56
- .action(async (options) => {
57
- console.log(chalk_1.default.blue.bold('\nšŸš€ SQL Server Documentation Generator\n'));
58
- try {
59
- let server;
60
- let database;
61
- let user;
62
- let password;
63
- if (options.interactive) {
64
- const answers = await inquirer_1.default.prompt([
65
- {
66
- type: 'input',
67
- name: 'server',
68
- message: 'Database server:',
69
- default: 'localhost',
70
- },
71
- {
72
- type: 'input',
73
- name: 'database',
74
- message: 'Database name:',
75
- validate: (input) => (input ? true : 'Database name required'),
76
- },
77
- {
78
- type: 'input',
79
- name: 'user',
80
- message: 'Username:',
81
- default: 'sa',
82
- },
83
- {
84
- type: 'password',
85
- name: 'password',
86
- message: 'Password:',
87
- mask: '*',
88
- },
89
- ]);
90
- server = answers.server;
91
- database = answers.database;
92
- user = answers.user;
93
- password = answers.password;
94
- }
95
- else {
96
- server = process.env.DB_SERVER || 'localhost';
97
- database = process.env.DB_DATABASE || '';
98
- user = process.env.DB_USER || 'sa';
99
- password = process.env.DB_PASSWORD || '';
100
- }
101
- // Test connection
102
- const spinner = (0, ora_1.default)('Testing database connection...').start();
103
- const connection = new connection_1.DatabaseConnection({
104
- server,
105
- database,
106
- user,
107
- password,
108
- encrypt: true,
109
- trustServerCertificate: true,
110
- });
111
- const connected = await connection.test();
112
- if (!connected) {
113
- spinner.fail('Connection failed');
114
- process.exit(1);
115
- }
116
- spinner.succeed('Connection successful');
117
- // Create .env file
118
- const envPath = path.join(process.cwd(), '.env');
119
- const envContent = `
120
- # Database Connection
121
- DB_SERVER=${server}
122
- DB_DATABASE=${database}
123
- DB_USER=${user}
124
- DB_PASSWORD=${password}
125
- DB_ENCRYPT=true
126
- DB_TRUST_SERVER_CERTIFICATE=true
127
-
128
- # AI Configuration
129
- AI_PROVIDER=openai
130
- AI_MODEL=gpt-4
131
- AI_API_KEY=your-api-key-here
132
- `.trim();
133
- await fs.writeFile(envPath, envContent);
134
- console.log(chalk_1.default.green('āœ“ Created .env file'));
135
- // Create state file
136
- const stateManager = new state_manager_1.StateManager();
137
- await stateManager.reset(server, database);
138
- console.log(chalk_1.default.green('āœ“ Created db-doc-state.json'));
139
- // Ask seed questions
140
- if (options.interactive) {
141
- const seedAnswers = await inquirer_1.default.prompt([
142
- {
143
- type: 'confirm',
144
- name: 'addSeed',
145
- message: 'Would you like to provide seed context?',
146
- default: true,
147
- },
148
- ]);
149
- if (seedAnswers.addSeed) {
150
- const contextAnswers = await inquirer_1.default.prompt([
151
- {
152
- type: 'input',
153
- name: 'purpose',
154
- message: 'Overall database purpose:',
155
- },
156
- {
157
- type: 'input',
158
- name: 'domains',
159
- message: 'Business domains (comma-separated):',
160
- },
161
- ]);
162
- const state = stateManager.getState();
163
- state.seedContext = {
164
- overallPurpose: contextAnswers.purpose,
165
- businessDomains: contextAnswers.domains.split(',').map((d) => d.trim()),
166
- };
167
- await stateManager.save();
168
- console.log(chalk_1.default.green('āœ“ Saved seed context'));
169
- }
170
- }
171
- console.log(chalk_1.default.green.bold('\nāœ… Initialization complete!\n'));
172
- console.log('Next steps:');
173
- console.log(' 1. Edit .env and add your AI API key');
174
- console.log(' 2. Run: sqlserver-doc analyze --interactive');
175
- await connection.close();
176
- }
177
- catch (error) {
178
- console.error(chalk_1.default.red('Error:'), error);
179
- process.exit(1);
180
- }
181
- });
182
- /**
183
- * ANALYZE command - analyze database
184
- */
185
- program
186
- .command('analyze')
187
- .description('Analyze database and generate documentation')
188
- .option('--interactive', 'Interactive mode')
189
- .option('--incremental', 'Only process new tables')
190
- .option('--schemas <schemas>', 'Comma-separated schema list')
191
- .option('--batch', 'Non-interactive batch mode')
192
- .action(async (options) => {
193
- console.log(chalk_1.default.blue.bold('\nšŸ“Š Analyzing Database\n'));
194
- try {
195
- // Load environment
196
- dotenv.config();
197
- // Check API key
198
- if (!process.env.AI_API_KEY || process.env.AI_API_KEY === 'your-api-key-here') {
199
- console.error(chalk_1.default.red('Error: AI_API_KEY not set in .env file'));
200
- process.exit(1);
201
- }
202
- const connection = connection_1.DatabaseConnection.fromEnv();
203
- const stateManager = new state_manager_1.StateManager();
204
- // Load or create state
205
- const connected = await connection.test();
206
- if (!connected) {
207
- console.error(chalk_1.default.red('Error: Cannot connect to database'));
208
- process.exit(1);
209
- }
210
- const state = await stateManager.load(process.env.DB_SERVER || 'localhost', process.env.DB_DATABASE || 'master');
211
- const aiClient = new simple_ai_client_1.SimpleAIClient();
212
- const analyzer = new analyzer_1.DatabaseAnalyzer(connection, stateManager, aiClient);
213
- const schemas = options.schemas ? options.schemas.split(',') : undefined;
214
- await analyzer.analyze({
215
- schemas,
216
- incremental: options.incremental,
217
- interactive: options.interactive,
218
- });
219
- await connection.close();
220
- console.log(chalk_1.default.green('\nāœ… Analysis complete!'));
221
- console.log('\nNext steps:');
222
- console.log(' - Review: sqlserver-doc review');
223
- console.log(' - Export: sqlserver-doc export --format=sql');
224
- }
225
- catch (error) {
226
- console.error(chalk_1.default.red('Error:'), error);
227
- process.exit(1);
228
- }
229
- });
230
- /**
231
- * REVIEW command - review generated documentation
232
- */
233
- program
234
- .command('review')
235
- .description('Review and approve AI-generated documentation')
236
- .option('--schema <schema>', 'Review specific schema')
237
- .option('--unapproved-only', 'Only show unapproved items')
238
- .action(async (options) => {
239
- console.log(chalk_1.default.blue.bold('\nšŸ“ Review Documentation\n'));
240
- try {
241
- const stateManager = new state_manager_1.StateManager();
242
- const state = await stateManager.load();
243
- const unapproved = stateManager.getUnapprovedTables(options.schema);
244
- if (unapproved.length === 0) {
245
- console.log(chalk_1.default.green('āœ… All tables approved!'));
246
- return;
247
- }
248
- console.log(`Found ${unapproved.length} unapproved tables\n`);
249
- for (const { schema, table } of unapproved) {
250
- const schemaState = state.schemas[schema];
251
- const tableState = schemaState.tables[table];
252
- console.log(chalk_1.default.cyan.bold(`\n${schema}.${table}`));
253
- console.log('─'.repeat(50));
254
- if (tableState.aiGenerated) {
255
- console.log(chalk_1.default.white('Description:'));
256
- console.log(tableState.aiGenerated.description);
257
- console.log('');
258
- console.log(chalk_1.default.gray(`Confidence: ${(tableState.aiGenerated.confidence * 100).toFixed(0)}%`));
259
- }
260
- const answer = await inquirer_1.default.prompt([
261
- {
262
- type: 'list',
263
- name: 'action',
264
- message: 'Action:',
265
- choices: [
266
- { name: 'Approve', value: 'approve' },
267
- { name: 'Add notes', value: 'notes' },
268
- { name: 'Skip', value: 'skip' },
269
- { name: 'Exit review', value: 'exit' },
270
- ],
271
- },
272
- ]);
273
- if (answer.action === 'exit') {
274
- break;
275
- }
276
- if (answer.action === 'approve') {
277
- stateManager.approveTable(schema, table);
278
- console.log(chalk_1.default.green('āœ“ Approved'));
279
- }
280
- if (answer.action === 'notes') {
281
- const notesAnswer = await inquirer_1.default.prompt([
282
- {
283
- type: 'input',
284
- name: 'notes',
285
- message: 'Enter notes:',
286
- },
287
- ]);
288
- stateManager.addTableNotes(schema, table, notesAnswer.notes);
289
- console.log(chalk_1.default.green('āœ“ Notes added'));
290
- }
291
- }
292
- await stateManager.save();
293
- console.log(chalk_1.default.green('\nāœ… Review complete!'));
294
- }
295
- catch (error) {
296
- console.error(chalk_1.default.red('Error:'), error);
297
- process.exit(1);
298
- }
299
- });
300
- /**
301
- * EXPORT command - generate output files
302
- */
303
- program
304
- .command('export')
305
- .description('Generate output files')
306
- .option('--format <format>', 'sql|markdown|all', 'all')
307
- .option('--output <path>', 'Output directory', './docs')
308
- .option('--approved-only', 'Only export approved items')
309
- .option('--execute', 'Execute SQL script')
310
- .action(async (options) => {
311
- console.log(chalk_1.default.blue.bold('\nšŸ“¤ Exporting Documentation\n'));
312
- try {
313
- const stateManager = new state_manager_1.StateManager();
314
- const state = await stateManager.load();
315
- const outputDir = options.output;
316
- await fs.mkdir(outputDir, { recursive: true });
317
- if (options.format === 'sql' || options.format === 'all') {
318
- const sqlGen = new sql_generator_1.SQLGenerator();
319
- const sql = sqlGen.generate(state, {
320
- approvedOnly: options.approvedOnly,
321
- });
322
- const sqlPath = path.join(outputDir, 'extended-properties.sql');
323
- await fs.writeFile(sqlPath, sql);
324
- console.log(chalk_1.default.green(`āœ“ Generated SQL: ${sqlPath}`));
325
- if (options.execute) {
326
- const answer = await inquirer_1.default.prompt([
327
- {
328
- type: 'confirm',
329
- name: 'confirm',
330
- message: chalk_1.default.yellow('Execute SQL script? This will modify your database.'),
331
- default: false,
332
- },
333
- ]);
334
- if (answer.confirm) {
335
- const connection = connection_1.DatabaseConnection.fromEnv();
336
- const spinner = (0, ora_1.default)('Executing SQL...').start();
337
- try {
338
- await connection.query(sql);
339
- spinner.succeed('SQL executed successfully');
340
- }
341
- catch (error) {
342
- spinner.fail('SQL execution failed');
343
- throw error;
344
- }
345
- await connection.close();
346
- }
347
- }
348
- }
349
- if (options.format === 'markdown' || options.format === 'all') {
350
- const mdGen = new markdown_generator_1.MarkdownGenerator();
351
- const markdown = mdGen.generate(state);
352
- const mdPath = path.join(outputDir, 'database-documentation.md');
353
- await fs.writeFile(mdPath, markdown);
354
- console.log(chalk_1.default.green(`āœ“ Generated Markdown: ${mdPath}`));
355
- }
356
- console.log(chalk_1.default.green('\nāœ… Export complete!'));
357
- }
358
- catch (error) {
359
- console.error(chalk_1.default.red('Error:'), error);
360
- process.exit(1);
361
- }
362
- });
363
- /**
364
- * RESET command
365
- */
366
- program
367
- .command('reset')
368
- .description('Reset state file')
369
- .option('--all', 'Reset entire state file')
370
- .action(async (options) => {
371
- if (options.all) {
372
- const answer = await inquirer_1.default.prompt([
373
- {
374
- type: 'confirm',
375
- name: 'confirm',
376
- message: chalk_1.default.yellow('Reset entire state file? This cannot be undone.'),
377
- default: false,
378
- },
379
- ]);
380
- if (answer.confirm) {
381
- const stateManager = new state_manager_1.StateManager();
382
- await stateManager.reset(process.env.DB_SERVER || 'localhost', process.env.DB_DATABASE || 'master');
383
- console.log(chalk_1.default.green('āœ… State file reset'));
384
- }
385
- }
386
- });
387
- program.parse();
388
- //# sourceMappingURL=cli.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/cli-old/cli.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- import { Command } from '@oclif/core';
2
- export default class Review extends Command {
3
- static description: string;
4
- static examples: string[];
5
- static flags: {
6
- schema: import("@oclif/core/lib/interfaces").OptionFlag<string | undefined, import("@oclif/core/lib/interfaces").CustomOptions>;
7
- 'unapproved-only': import("@oclif/core/lib/interfaces").BooleanFlag<boolean>;
8
- };
9
- run(): Promise<void>;
10
- }
11
- //# sourceMappingURL=review.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.d.ts","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAS,MAAM,aAAa,CAAC;AAK7C,MAAM,CAAC,OAAO,OAAO,MAAO,SAAQ,OAAO;IACzC,MAAM,CAAC,WAAW,SAAmD;IAErE,MAAM,CAAC,QAAQ,WAIb;IAEF,MAAM,CAAC,KAAK;;;MAQV;IAEI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;CAmE3B"}
@@ -1,82 +0,0 @@
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
- const core_1 = require("@oclif/core");
7
- const prompts_1 = require("@inquirer/prompts");
8
- const chalk_1 = __importDefault(require("chalk"));
9
- const state_manager_1 = require("../state/state-manager");
10
- class Review extends core_1.Command {
11
- async run() {
12
- const { flags } = await this.parse(Review);
13
- this.log(chalk_1.default.blue.bold('\nšŸ“ Review Documentation\n'));
14
- try {
15
- const stateManager = new state_manager_1.StateManager();
16
- const state = await stateManager.load();
17
- const unapproved = stateManager.getUnapprovedTables(flags.schema);
18
- if (unapproved.length === 0) {
19
- this.log(chalk_1.default.green('āœ… All tables approved!'));
20
- return;
21
- }
22
- this.log(`Found ${unapproved.length} unapproved tables\n`);
23
- for (const { schema, table } of unapproved) {
24
- const schemaState = state.schemas[schema];
25
- const tableState = schemaState.tables[table];
26
- this.log(chalk_1.default.cyan.bold(`\n${schema}.${table}`));
27
- this.log('─'.repeat(50));
28
- if (tableState.aiGenerated) {
29
- this.log(chalk_1.default.white('Description:'));
30
- this.log(tableState.aiGenerated.description);
31
- this.log('');
32
- this.log(chalk_1.default.gray(`Confidence: ${(tableState.aiGenerated.confidence * 100).toFixed(0)}%`));
33
- }
34
- const action = await (0, prompts_1.select)({
35
- message: 'Action:',
36
- choices: [
37
- { name: 'Approve', value: 'approve' },
38
- { name: 'Add notes', value: 'notes' },
39
- { name: 'Skip', value: 'skip' },
40
- { name: 'Exit review', value: 'exit' },
41
- ],
42
- });
43
- if (action === 'exit') {
44
- break;
45
- }
46
- if (action === 'approve') {
47
- stateManager.approveTable(schema, table);
48
- this.log(chalk_1.default.green('āœ“ Approved'));
49
- }
50
- if (action === 'notes') {
51
- const notes = await (0, prompts_1.input)({
52
- message: 'Enter notes:',
53
- });
54
- stateManager.addTableNotes(schema, table, notes);
55
- this.log(chalk_1.default.green('āœ“ Notes added'));
56
- }
57
- }
58
- await stateManager.save();
59
- this.log(chalk_1.default.green('\nāœ… Review complete!'));
60
- }
61
- catch (error) {
62
- this.error(error.message);
63
- }
64
- }
65
- }
66
- Review.description = 'Review and approve AI-generated documentation';
67
- Review.examples = [
68
- '<%= config.bin %> <%= command.id %>',
69
- '<%= config.bin %> <%= command.id %> --schema dbo',
70
- '<%= config.bin %> <%= command.id %> --unapproved-only',
71
- ];
72
- Review.flags = {
73
- schema: core_1.Flags.string({
74
- description: 'Review specific schema',
75
- }),
76
- 'unapproved-only': core_1.Flags.boolean({
77
- description: 'Only show unapproved items',
78
- default: false,
79
- }),
80
- };
81
- exports.default = Review;
82
- //# sourceMappingURL=review.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"review.js","sourceRoot":"","sources":["../../src/commands/review.ts"],"names":[],"mappings":";;;;;AAAA,sCAA6C;AAC7C,+CAAkD;AAClD,kDAA0B;AAC1B,0DAAsD;AAEtD,MAAqB,MAAO,SAAQ,cAAO;IAmBzC,KAAK,CAAC,GAAG;QACP,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QAE3C,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,6BAA6B,CAAC,CAAC,CAAC;QAEzD,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,IAAI,4BAAY,EAAE,CAAC;YACxC,MAAM,KAAK,GAAG,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAExC,MAAM,UAAU,GAAG,YAAY,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAElE,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC5B,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,wBAAwB,CAAC,CAAC,CAAC;gBAChD,OAAO;YACT,CAAC;YAED,IAAI,CAAC,GAAG,CAAC,SAAS,UAAU,CAAC,MAAM,sBAAsB,CAAC,CAAC;YAE3D,KAAK,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,UAAU,EAAE,CAAC;gBAC3C,MAAM,WAAW,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;gBAC1C,MAAM,UAAU,GAAG,WAAW,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;gBAE7C,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,KAAK,EAAE,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;gBAEzB,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC;oBACtC,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;oBAC7C,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;oBACb,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,WAAW,CAAC,UAAU,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;gBAC/F,CAAC;gBAED,MAAM,MAAM,GAAG,MAAM,IAAA,gBAAM,EAAC;oBAC1B,OAAO,EAAE,SAAS;oBAClB,OAAO,EAAE;wBACP,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,EAAE;wBACrC,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,OAAO,EAAE;wBACrC,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;wBAC/B,EAAE,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,EAAE;qBACvC;iBACF,CAAC,CAAC;gBAEH,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;oBACtB,MAAM;gBACR,CAAC;gBAED,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;oBACzB,YAAY,CAAC,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;oBACzC,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;gBACtC,CAAC;gBAED,IAAI,MAAM,KAAK,OAAO,EAAE,CAAC;oBACvB,MAAM,KAAK,GAAG,MAAM,IAAA,eAAK,EAAC;wBACxB,OAAO,EAAE,cAAc;qBACxB,CAAC,CAAC;oBAEH,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;oBACjD,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,MAAM,YAAY,CAAC,IAAI,EAAE,CAAC;YAC1B,IAAI,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAC,CAAC;QAChD,CAAC;QAAC,OAAO,KAAU,EAAE,CAAC;YACpB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;;AApFM,kBAAW,GAAG,+CAA+C,CAAC;AAE9D,eAAQ,GAAG;IAChB,qCAAqC;IACrC,kDAAkD;IAClD,uDAAuD;CACxD,CAAC;AAEK,YAAK,GAAG;IACb,MAAM,EAAE,YAAK,CAAC,MAAM,CAAC;QACnB,WAAW,EAAE,wBAAwB;KACtC,CAAC;IACF,iBAAiB,EAAE,YAAK,CAAC,OAAO,CAAC;QAC/B,WAAW,EAAE,4BAA4B;QACzC,OAAO,EAAE,KAAK;KACf,CAAC;CACH,CAAC;kBAjBiB,MAAM"}
@@ -1,40 +0,0 @@
1
- import * as sql from 'mssql';
2
- export interface ConnectionConfig {
3
- server: string;
4
- database: string;
5
- user?: string;
6
- password?: string;
7
- port?: number;
8
- encrypt?: boolean;
9
- trustServerCertificate?: boolean;
10
- }
11
- /**
12
- * Database connection manager - NO MJ DEPENDENCIES
13
- */
14
- export declare class DatabaseConnection {
15
- private pool?;
16
- private config;
17
- constructor(config: ConnectionConfig);
18
- /**
19
- * Get connection from environment variables
20
- */
21
- static fromEnv(): DatabaseConnection;
22
- /**
23
- * Get connection pool
24
- */
25
- getConnection(): Promise<sql.ConnectionPool>;
26
- /**
27
- * Execute query with retry logic
28
- */
29
- query<T = any>(queryText: string, params?: Record<string, any>): Promise<T[]>;
30
- /**
31
- * Close connection
32
- */
33
- close(): Promise<void>;
34
- /**
35
- * Test connection
36
- */
37
- test(): Promise<boolean>;
38
- private sleep;
39
- }
40
- //# sourceMappingURL=connection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.d.ts","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,GAAG,MAAM,OAAO,CAAC;AAM7B,MAAM,WAAW,gBAAgB;IAC/B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,sBAAsB,CAAC,EAAE,OAAO,CAAC;CAClC;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,IAAI,CAAC,CAAqB;IAClC,OAAO,CAAC,MAAM,CAAa;gBAEf,MAAM,EAAE,gBAAgB;IAoBpC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,kBAAkB;IAcpC;;OAEG;IACG,aAAa,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;IAUlD;;OAEG;IACG,KAAK,CAAC,CAAC,GAAG,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,EAAE,CAAC;IAiCnF;;OAEG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAO5B;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAS9B,OAAO,CAAC,KAAK;CAGd"}