@memberjunction/db-auto-doc 2.117.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,136 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.DatabaseConnection = void 0;
27
- const sql = __importStar(require("mssql"));
28
- const dotenv = __importStar(require("dotenv"));
29
- // Load environment variables
30
- dotenv.config();
31
- /**
32
- * Database connection manager - NO MJ DEPENDENCIES
33
- */
34
- class DatabaseConnection {
35
- constructor(config) {
36
- this.config = {
37
- server: config.server,
38
- database: config.database,
39
- user: config.user,
40
- password: config.password,
41
- port: config.port || 1433,
42
- options: {
43
- encrypt: config.encrypt !== undefined ? config.encrypt : true,
44
- trustServerCertificate: config.trustServerCertificate !== undefined ? config.trustServerCertificate : false,
45
- enableArithAbort: true,
46
- },
47
- pool: {
48
- max: 10,
49
- min: 2,
50
- idleTimeoutMillis: 30000,
51
- },
52
- };
53
- }
54
- /**
55
- * Get connection from environment variables
56
- */
57
- static fromEnv() {
58
- const config = {
59
- server: process.env.DB_SERVER || 'localhost',
60
- database: process.env.DB_DATABASE || 'master',
61
- user: process.env.DB_USER,
62
- password: process.env.DB_PASSWORD,
63
- port: process.env.DB_PORT ? parseInt(process.env.DB_PORT) : 1433,
64
- encrypt: process.env.DB_ENCRYPT === 'true',
65
- trustServerCertificate: process.env.DB_TRUST_SERVER_CERTIFICATE === 'true',
66
- };
67
- return new DatabaseConnection(config);
68
- }
69
- /**
70
- * Get connection pool
71
- */
72
- async getConnection() {
73
- if (this.pool && this.pool.connected) {
74
- return this.pool;
75
- }
76
- this.pool = new sql.ConnectionPool(this.config);
77
- await this.pool.connect();
78
- return this.pool;
79
- }
80
- /**
81
- * Execute query with retry logic
82
- */
83
- async query(queryText, params) {
84
- let lastError;
85
- const maxRetries = 3;
86
- for (let attempt = 1; attempt <= maxRetries; attempt++) {
87
- try {
88
- const pool = await this.getConnection();
89
- const request = pool.request();
90
- if (params) {
91
- for (const [key, value] of Object.entries(params)) {
92
- request.input(key, value);
93
- }
94
- }
95
- const result = await request.query(queryText);
96
- return result.recordset;
97
- }
98
- catch (error) {
99
- lastError = error;
100
- if (lastError.message.includes('Incorrect syntax')) {
101
- throw lastError;
102
- }
103
- if (attempt < maxRetries) {
104
- await this.sleep(Math.pow(2, attempt) * 100);
105
- }
106
- }
107
- }
108
- throw lastError || new Error('Query failed after retries');
109
- }
110
- /**
111
- * Close connection
112
- */
113
- async close() {
114
- if (this.pool) {
115
- await this.pool.close();
116
- this.pool = undefined;
117
- }
118
- }
119
- /**
120
- * Test connection
121
- */
122
- async test() {
123
- try {
124
- await this.query('SELECT 1 as Test');
125
- return true;
126
- }
127
- catch {
128
- return false;
129
- }
130
- }
131
- sleep(ms) {
132
- return new Promise(resolve => setTimeout(resolve, ms));
133
- }
134
- }
135
- exports.DatabaseConnection = DatabaseConnection;
136
- //# sourceMappingURL=connection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connection.js","sourceRoot":"","sources":["../../src/database/connection.ts"],"names":[],"mappings":"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"}
@@ -1,59 +0,0 @@
1
- import { DatabaseConnection } from './connection';
2
- export interface TableInfo {
3
- schema: string;
4
- table: string;
5
- rowCount: number;
6
- }
7
- export interface ColumnInfo {
8
- name: string;
9
- dataType: string;
10
- maxLength?: number;
11
- precision?: number;
12
- scale?: number;
13
- isNullable: boolean;
14
- defaultValue?: string;
15
- isIdentity: boolean;
16
- isComputed: boolean;
17
- isPrimaryKey: boolean;
18
- isForeignKey: boolean;
19
- }
20
- export interface ForeignKeyInfo {
21
- name: string;
22
- column: string;
23
- referencedSchema: string;
24
- referencedTable: string;
25
- referencedColumn: string;
26
- }
27
- export interface ExtendedPropertyInfo {
28
- objectType: 'TABLE' | 'COLUMN';
29
- objectName: string;
30
- value: string;
31
- }
32
- /**
33
- * Database introspection - pure SQL Server, no MJ dependencies
34
- */
35
- export declare class DatabaseIntrospector {
36
- private connection;
37
- constructor(connection: DatabaseConnection);
38
- /**
39
- * Get all tables in database
40
- */
41
- getTables(schemas?: string[], excludeSchemas?: string[]): Promise<TableInfo[]>;
42
- /**
43
- * Get columns for a table
44
- */
45
- getColumns(schema: string, table: string): Promise<ColumnInfo[]>;
46
- /**
47
- * Get foreign keys for a table
48
- */
49
- getForeignKeys(schema: string, table: string): Promise<ForeignKeyInfo[]>;
50
- /**
51
- * Get extended properties (existing descriptions)
52
- */
53
- getExtendedProperties(schema: string, table: string): Promise<ExtendedPropertyInfo[]>;
54
- /**
55
- * Sample data from table
56
- */
57
- sampleData(schema: string, table: string, limit?: number): Promise<Record<string, any>[]>;
58
- }
59
- //# sourceMappingURL=introspection.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspection.d.ts","sourceRoot":"","sources":["../../src/database/introspection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAElD,MAAM,WAAW,SAAS;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,UAAU,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;GAEG;AACH,qBAAa,oBAAoB;IACnB,OAAO,CAAC,UAAU;gBAAV,UAAU,EAAE,kBAAkB;IAElD;;OAEG;IACG,SAAS,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,CAAC,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IA+BpF;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAgCtE;;OAEG;IACG,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAuB9E;;OAEG;IACG,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAkB3F;;OAEG;IACG,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,GAAE,MAAW,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;CAIpG"}
@@ -1,124 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DatabaseIntrospector = void 0;
4
- /**
5
- * Database introspection - pure SQL Server, no MJ dependencies
6
- */
7
- class DatabaseIntrospector {
8
- constructor(connection) {
9
- this.connection = connection;
10
- }
11
- /**
12
- * Get all tables in database
13
- */
14
- async getTables(schemas, excludeSchemas) {
15
- let where = "WHERE t.type = 'U'";
16
- if (schemas && schemas.length > 0) {
17
- const schemaList = schemas.map(s => `'${s.replace(/'/g, "''")}'`).join(',');
18
- where += ` AND s.name IN (${schemaList})`;
19
- }
20
- if (excludeSchemas && excludeSchemas.length > 0) {
21
- const excludeList = excludeSchemas.map(s => `'${s.replace(/'/g, "''")}'`).join(',');
22
- where += ` AND s.name NOT IN (${excludeList})`;
23
- }
24
- where += ` AND s.name NOT IN ('sys', 'INFORMATION_SCHEMA')`;
25
- const query = `
26
- SELECT
27
- s.name AS [schema],
28
- t.name AS [table],
29
- SUM(p.rows) AS rowCount
30
- FROM sys.tables t
31
- INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
32
- LEFT JOIN sys.partitions p ON t.object_id = p.object_id AND p.index_id IN (0, 1)
33
- ${where}
34
- GROUP BY s.name, t.name
35
- ORDER BY s.name, t.name
36
- `;
37
- return await this.connection.query(query);
38
- }
39
- /**
40
- * Get columns for a table
41
- */
42
- async getColumns(schema, table) {
43
- const query = `
44
- SELECT
45
- c.name,
46
- t.name AS dataType,
47
- c.max_length AS maxLength,
48
- c.precision,
49
- c.scale,
50
- c.is_nullable AS isNullable,
51
- OBJECT_DEFINITION(c.default_object_id) AS defaultValue,
52
- c.is_identity AS isIdentity,
53
- c.is_computed AS isComputed,
54
- CASE WHEN pk.column_id IS NOT NULL THEN 1 ELSE 0 END AS isPrimaryKey,
55
- CASE WHEN fk.parent_column_id IS NOT NULL THEN 1 ELSE 0 END AS isForeignKey
56
- FROM sys.columns c
57
- INNER JOIN sys.types t ON c.user_type_id = t.user_type_id
58
- INNER JOIN sys.tables tbl ON c.object_id = tbl.object_id
59
- INNER JOIN sys.schemas s ON tbl.schema_id = s.schema_id
60
- LEFT JOIN (
61
- SELECT ic.object_id, ic.column_id
62
- FROM sys.index_columns ic
63
- INNER JOIN sys.indexes i ON ic.object_id = i.object_id AND ic.index_id = i.index_id
64
- WHERE i.is_primary_key = 1
65
- ) pk ON c.object_id = pk.object_id AND c.column_id = pk.column_id
66
- LEFT JOIN sys.foreign_key_columns fk ON c.object_id = fk.parent_object_id AND c.column_id = fk.parent_column_id
67
- WHERE s.name = @schema AND tbl.name = @table
68
- ORDER BY c.column_id
69
- `;
70
- return await this.connection.query(query, { schema, table });
71
- }
72
- /**
73
- * Get foreign keys for a table
74
- */
75
- async getForeignKeys(schema, table) {
76
- const query = `
77
- SELECT
78
- fk.name,
79
- c1.name AS [column],
80
- s2.name AS referencedSchema,
81
- t2.name AS referencedTable,
82
- c2.name AS referencedColumn
83
- FROM sys.foreign_keys fk
84
- INNER JOIN sys.tables t1 ON fk.parent_object_id = t1.object_id
85
- INNER JOIN sys.schemas s1 ON t1.schema_id = s1.schema_id
86
- INNER JOIN sys.foreign_key_columns fkc ON fk.object_id = fkc.constraint_object_id
87
- INNER JOIN sys.columns c1 ON fkc.parent_object_id = c1.object_id AND fkc.parent_column_id = c1.column_id
88
- INNER JOIN sys.columns c2 ON fkc.referenced_object_id = c2.object_id AND fkc.referenced_column_id = c2.column_id
89
- INNER JOIN sys.tables t2 ON fkc.referenced_object_id = t2.object_id
90
- INNER JOIN sys.schemas s2 ON t2.schema_id = s2.schema_id
91
- WHERE s1.name = @schema AND t1.name = @table
92
- ORDER BY fk.name
93
- `;
94
- return await this.connection.query(query, { schema, table });
95
- }
96
- /**
97
- * Get extended properties (existing descriptions)
98
- */
99
- async getExtendedProperties(schema, table) {
100
- const query = `
101
- SELECT
102
- CASE WHEN ep.minor_id = 0 THEN 'TABLE' ELSE 'COLUMN' END AS objectType,
103
- COALESCE(c.name, t.name) AS objectName,
104
- CAST(ep.value AS NVARCHAR(MAX)) AS value
105
- FROM sys.extended_properties ep
106
- INNER JOIN sys.tables t ON ep.major_id = t.object_id
107
- INNER JOIN sys.schemas s ON t.schema_id = s.schema_id
108
- LEFT JOIN sys.columns c ON ep.major_id = c.object_id AND ep.minor_id = c.column_id
109
- WHERE s.name = @schema
110
- AND t.name = @table
111
- AND ep.name = 'MS_Description'
112
- `;
113
- return await this.connection.query(query, { schema, table });
114
- }
115
- /**
116
- * Sample data from table
117
- */
118
- async sampleData(schema, table, limit = 10) {
119
- const query = `SELECT TOP ${limit} * FROM [${schema}].[${table}]`;
120
- return await this.connection.query(query);
121
- }
122
- }
123
- exports.DatabaseIntrospector = DatabaseIntrospector;
124
- //# sourceMappingURL=introspection.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"introspection.js","sourceRoot":"","sources":["../../src/database/introspection.ts"],"names":[],"mappings":";;;AAoCA;;GAEG;AACH,MAAa,oBAAoB;IAC/B,YAAoB,UAA8B;QAA9B,eAAU,GAAV,UAAU,CAAoB;IAAG,CAAC;IAEtD;;OAEG;IACH,KAAK,CAAC,SAAS,CAAC,OAAkB,EAAE,cAAyB;QAC3D,IAAI,KAAK,GAAG,oBAAoB,CAAC;QAEjC,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAClC,MAAM,UAAU,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5E,KAAK,IAAI,mBAAmB,UAAU,GAAG,CAAC;QAC5C,CAAC;QAED,IAAI,cAAc,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChD,MAAM,WAAW,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACpF,KAAK,IAAI,uBAAuB,WAAW,GAAG,CAAC;QACjD,CAAC;QAED,KAAK,IAAI,kDAAkD,CAAC;QAE5D,MAAM,KAAK,GAAG;;;;;;;;QAQV,KAAK;;;KAGR,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAY,KAAK,CAAC,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa;QAC5C,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;KA0Bb,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAa,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC3E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,cAAc,CAAC,MAAc,EAAE,KAAa;QAChD,MAAM,KAAK,GAAG;;;;;;;;;;;;;;;;;KAiBb,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAiB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,qBAAqB,CAAC,MAAc,EAAE,KAAa;QACvD,MAAM,KAAK,GAAG;;;;;;;;;;;;KAYb,CAAC;QAEF,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAuB,KAAK,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC;IACrF,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,UAAU,CAAC,MAAc,EAAE,KAAa,EAAE,QAAgB,EAAE;QAChE,MAAM,KAAK,GAAG,cAAc,KAAK,YAAY,MAAM,MAAM,KAAK,GAAG,CAAC;QAClE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IAC5C,CAAC;CACF;AA9HD,oDA8HC"}
@@ -1,8 +0,0 @@
1
- import { StateFile } from '../types/state-file';
2
- /**
3
- * Generate Markdown documentation
4
- */
5
- export declare class MarkdownGenerator {
6
- generate(state: StateFile): string;
7
- }
8
- //# sourceMappingURL=markdown-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-generator.d.ts","sourceRoot":"","sources":["../../src/generators/markdown-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,MAAM;CA8HnC"}
@@ -1,106 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MarkdownGenerator = void 0;
4
- /**
5
- * Generate Markdown documentation
6
- */
7
- class MarkdownGenerator {
8
- generate(state) {
9
- const lines = [];
10
- lines.push(`# Database Documentation: ${state.database.database}`);
11
- lines.push('');
12
- lines.push(`**Server**: ${state.database.server}`);
13
- lines.push(`**Generated**: ${new Date().toISOString()}`);
14
- lines.push('');
15
- if (state.seedContext) {
16
- lines.push('## Overview');
17
- if (state.seedContext.overallPurpose) {
18
- lines.push(state.seedContext.overallPurpose);
19
- }
20
- if (state.seedContext.businessDomains) {
21
- lines.push('');
22
- lines.push('**Business Domains**: ' + state.seedContext.businessDomains.join(', '));
23
- }
24
- lines.push('');
25
- }
26
- lines.push('## Schemas');
27
- lines.push('');
28
- for (const [schemaName, schema] of Object.entries(state.schemas)) {
29
- lines.push(`### ${schemaName}`);
30
- lines.push('');
31
- if (schema.description) {
32
- lines.push(schema.description);
33
- lines.push('');
34
- }
35
- if (schema.businessDomain) {
36
- lines.push(`**Domain**: ${schema.businessDomain}`);
37
- lines.push('');
38
- }
39
- lines.push('#### Tables');
40
- lines.push('');
41
- for (const [tableName, table] of Object.entries(schema.tables)) {
42
- lines.push(`##### ${tableName}`);
43
- lines.push('');
44
- if (table.finalDescription) {
45
- lines.push(table.finalDescription);
46
- lines.push('');
47
- }
48
- if (table.aiGenerated?.businessDomain) {
49
- lines.push(`**Domain**: ${table.aiGenerated.businessDomain}`);
50
- lines.push('');
51
- }
52
- if (table.userNotes) {
53
- lines.push(`**Notes**: ${table.userNotes}`);
54
- lines.push('');
55
- }
56
- // Columns table
57
- const hasColumns = Object.keys(table.columns).length > 0;
58
- if (hasColumns) {
59
- lines.push('**Columns**:');
60
- lines.push('');
61
- lines.push('| Column | Description |');
62
- lines.push('|--------|-------------|');
63
- for (const [columnName, column] of Object.entries(table.columns)) {
64
- const desc = column.finalDescription || '';
65
- lines.push(`| ${columnName} | ${desc} |`);
66
- }
67
- lines.push('');
68
- }
69
- // Relationships
70
- if (table.aiGenerated?.relationships && table.aiGenerated.relationships.length > 0) {
71
- lines.push('**Relationships**:');
72
- lines.push('');
73
- for (const rel of table.aiGenerated.relationships) {
74
- lines.push(`- ${rel.type === 'parent' ? '→' : '←'} ${rel.table}: ${rel.description}`);
75
- }
76
- lines.push('');
77
- }
78
- }
79
- }
80
- // Statistics
81
- lines.push('---');
82
- lines.push('');
83
- lines.push('## Statistics');
84
- lines.push('');
85
- const totalSchemas = Object.keys(state.schemas).length;
86
- const totalTables = Object.values(state.schemas).reduce((sum, s) => sum + Object.keys(s.tables).length, 0);
87
- const totalColumns = Object.values(state.schemas).reduce((sum, s) => sum + Object.values(s.tables).reduce((s2, t) => s2 + Object.keys(t.columns).length, 0), 0);
88
- lines.push(`- **Schemas**: ${totalSchemas}`);
89
- lines.push(`- **Tables**: ${totalTables}`);
90
- lines.push(`- **Columns**: ${totalColumns}`);
91
- if (state.runHistory.length > 0) {
92
- const lastRun = state.runHistory[state.runHistory.length - 1];
93
- lines.push('');
94
- lines.push(`**Last Run**: ${lastRun.timestamp}`);
95
- if (lastRun.tokensUsed) {
96
- lines.push(`**Tokens Used**: ${lastRun.tokensUsed.toLocaleString()}`);
97
- }
98
- }
99
- lines.push('');
100
- lines.push('---');
101
- lines.push('*Generated by SQL Server Documentation Generator*');
102
- return lines.join('\n');
103
- }
104
- }
105
- exports.MarkdownGenerator = MarkdownGenerator;
106
- //# sourceMappingURL=markdown-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown-generator.js","sourceRoot":"","sources":["../../src/generators/markdown-generator.ts"],"names":[],"mappings":"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"}
@@ -1,20 +0,0 @@
1
- import { StateFile } from '../types/state-file';
2
- export interface SQLGeneratorOptions {
3
- approvedOnly?: boolean;
4
- confidenceThreshold?: number;
5
- }
6
- /**
7
- * Generate SQL scripts with sp_addextendedproperty statements
8
- */
9
- export declare class SQLGenerator {
10
- generate(state: StateFile, options?: SQLGeneratorOptions): string;
11
- /**
12
- * Generate sp_addextendedproperty for table
13
- */
14
- private generateTableProperty;
15
- /**
16
- * Generate sp_addextendedproperty for column
17
- */
18
- private generateColumnProperty;
19
- }
20
- //# sourceMappingURL=sql-generator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-generator.d.ts","sourceRoot":"","sources":["../../src/generators/sql-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,MAAM,WAAW,mBAAmB;IAClC,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,QAAQ,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,GAAE,mBAAwB,GAAG,MAAM;IA4DrE;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAY7B;;OAEG;IACH,OAAO,CAAC,sBAAsB;CAgB/B"}
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SQLGenerator = void 0;
4
- /**
5
- * Generate SQL scripts with sp_addextendedproperty statements
6
- */
7
- class SQLGenerator {
8
- generate(state, options = {}) {
9
- const lines = [];
10
- lines.push('-- Generated by SQL Server Documentation Generator');
11
- lines.push(`-- Database: ${state.database.server}.${state.database.database}`);
12
- lines.push(`-- Generated: ${new Date().toISOString()}`);
13
- lines.push('');
14
- lines.push('BEGIN TRANSACTION;');
15
- lines.push('');
16
- let count = 0;
17
- for (const [schemaName, schema] of Object.entries(state.schemas)) {
18
- for (const [tableName, table] of Object.entries(schema.tables)) {
19
- // Skip if not approved (when approvedOnly is true)
20
- if (options.approvedOnly && !table.userApproved) {
21
- continue;
22
- }
23
- // Skip if confidence too low
24
- if (options.confidenceThreshold && table.aiGenerated) {
25
- if (table.aiGenerated.confidence < options.confidenceThreshold) {
26
- continue;
27
- }
28
- }
29
- // Table description
30
- if (table.finalDescription) {
31
- lines.push(this.generateTableProperty(schemaName, tableName, table.finalDescription));
32
- count++;
33
- }
34
- // Column descriptions
35
- for (const [columnName, column] of Object.entries(table.columns)) {
36
- // Skip if confidence too low
37
- if (options.confidenceThreshold && column.aiGenerated) {
38
- if (column.aiGenerated.confidence < options.confidenceThreshold) {
39
- continue;
40
- }
41
- }
42
- if (column.finalDescription) {
43
- lines.push(this.generateColumnProperty(schemaName, tableName, columnName, column.finalDescription));
44
- count++;
45
- }
46
- }
47
- lines.push('');
48
- }
49
- }
50
- lines.push('COMMIT TRANSACTION;');
51
- lines.push('');
52
- lines.push(`-- Total properties: ${count}`);
53
- return lines.join('\n');
54
- }
55
- /**
56
- * Generate sp_addextendedproperty for table
57
- */
58
- generateTableProperty(schema, table, description) {
59
- const escapedDesc = description.replace(/'/g, "''");
60
- return `
61
- -- ${schema}.${table}
62
- EXEC sp_addextendedproperty
63
- @name = N'MS_Description',
64
- @value = N'${escapedDesc}',
65
- @level0type = N'SCHEMA', @level0name = N'${schema}',
66
- @level1type = N'TABLE', @level1name = N'${table}';`;
67
- }
68
- /**
69
- * Generate sp_addextendedproperty for column
70
- */
71
- generateColumnProperty(schema, table, column, description) {
72
- const escapedDesc = description.replace(/'/g, "''");
73
- return `
74
- EXEC sp_addextendedproperty
75
- @name = N'MS_Description',
76
- @value = N'${escapedDesc}',
77
- @level0type = N'SCHEMA', @level0name = N'${schema}',
78
- @level1type = N'TABLE', @level1name = N'${table}',
79
- @level2type = N'COLUMN', @level2name = N'${column}';`;
80
- }
81
- }
82
- exports.SQLGenerator = SQLGenerator;
83
- //# sourceMappingURL=sql-generator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sql-generator.js","sourceRoot":"","sources":["../../src/generators/sql-generator.ts"],"names":[],"mappings":"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"}