docgen-ai 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 (90) hide show
  1. package/README.md +101 -0
  2. package/dist/ai/reasoner.d.ts +47 -0
  3. package/dist/ai/reasoner.d.ts.map +1 -0
  4. package/dist/ai/reasoner.js +235 -0
  5. package/dist/ai/reasoner.js.map +1 -0
  6. package/dist/cli/commands.d.ts +20 -0
  7. package/dist/cli/commands.d.ts.map +1 -0
  8. package/dist/cli/commands.js +344 -0
  9. package/dist/cli/commands.js.map +1 -0
  10. package/dist/config/loader.d.ts +11 -0
  11. package/dist/config/loader.d.ts.map +1 -0
  12. package/dist/config/loader.js +141 -0
  13. package/dist/config/loader.js.map +1 -0
  14. package/dist/core/analyzers/project.d.ts +8 -0
  15. package/dist/core/analyzers/project.d.ts.map +1 -0
  16. package/dist/core/analyzers/project.js +303 -0
  17. package/dist/core/analyzers/project.js.map +1 -0
  18. package/dist/core/cache/file-cache.d.ts +26 -0
  19. package/dist/core/cache/file-cache.d.ts.map +1 -0
  20. package/dist/core/cache/file-cache.js +110 -0
  21. package/dist/core/cache/file-cache.js.map +1 -0
  22. package/dist/core/generators/api.d.ts +11 -0
  23. package/dist/core/generators/api.d.ts.map +1 -0
  24. package/dist/core/generators/api.js +105 -0
  25. package/dist/core/generators/api.js.map +1 -0
  26. package/dist/core/generators/architecture.d.ts +17 -0
  27. package/dist/core/generators/architecture.d.ts.map +1 -0
  28. package/dist/core/generators/architecture.js +180 -0
  29. package/dist/core/generators/architecture.js.map +1 -0
  30. package/dist/core/generators/functions.d.ts +11 -0
  31. package/dist/core/generators/functions.d.ts.map +1 -0
  32. package/dist/core/generators/functions.js +151 -0
  33. package/dist/core/generators/functions.js.map +1 -0
  34. package/dist/core/generators/integrations.d.ts +8 -0
  35. package/dist/core/generators/integrations.d.ts.map +1 -0
  36. package/dist/core/generators/integrations.js +53 -0
  37. package/dist/core/generators/integrations.js.map +1 -0
  38. package/dist/core/generators/modules.d.ts +11 -0
  39. package/dist/core/generators/modules.d.ts.map +1 -0
  40. package/dist/core/generators/modules.js +148 -0
  41. package/dist/core/generators/modules.js.map +1 -0
  42. package/dist/core/generators/readme.d.ts +25 -0
  43. package/dist/core/generators/readme.d.ts.map +1 -0
  44. package/dist/core/generators/readme.js +193 -0
  45. package/dist/core/generators/readme.js.map +1 -0
  46. package/dist/core/generators/registry.d.ts +26 -0
  47. package/dist/core/generators/registry.d.ts.map +1 -0
  48. package/dist/core/generators/registry.js +90 -0
  49. package/dist/core/generators/registry.js.map +1 -0
  50. package/dist/core/generators/setup.d.ts +8 -0
  51. package/dist/core/generators/setup.d.ts.map +1 -0
  52. package/dist/core/generators/setup.js +73 -0
  53. package/dist/core/generators/setup.js.map +1 -0
  54. package/dist/core/parsers/javascript.d.ts +12 -0
  55. package/dist/core/parsers/javascript.d.ts.map +1 -0
  56. package/dist/core/parsers/javascript.js +389 -0
  57. package/dist/core/parsers/javascript.js.map +1 -0
  58. package/dist/core/parsers/python-regex.d.ts +11 -0
  59. package/dist/core/parsers/python-regex.d.ts.map +1 -0
  60. package/dist/core/parsers/python-regex.js +337 -0
  61. package/dist/core/parsers/python-regex.js.map +1 -0
  62. package/dist/core/parsers/python.d.ts +37 -0
  63. package/dist/core/parsers/python.d.ts.map +1 -0
  64. package/dist/core/parsers/python.js +584 -0
  65. package/dist/core/parsers/python.js.map +1 -0
  66. package/dist/core/parsers/registry.d.ts +15 -0
  67. package/dist/core/parsers/registry.d.ts.map +1 -0
  68. package/dist/core/parsers/registry.js +56 -0
  69. package/dist/core/parsers/registry.js.map +1 -0
  70. package/dist/core/pipeline.d.ts +18 -0
  71. package/dist/core/pipeline.d.ts.map +1 -0
  72. package/dist/core/pipeline.js +96 -0
  73. package/dist/core/pipeline.js.map +1 -0
  74. package/dist/index.d.ts +21 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +49 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/types/definitions.d.ts +220 -0
  79. package/dist/types/definitions.d.ts.map +1 -0
  80. package/dist/types/definitions.js +10 -0
  81. package/dist/types/definitions.js.map +1 -0
  82. package/dist/utils/helpers.d.ts +22 -0
  83. package/dist/utils/helpers.d.ts.map +1 -0
  84. package/dist/utils/helpers.js +176 -0
  85. package/dist/utils/helpers.js.map +1 -0
  86. package/dist/utils/logger.d.ts +28 -0
  87. package/dist/utils/logger.d.ts.map +1 -0
  88. package/dist/utils/logger.js +109 -0
  89. package/dist/utils/logger.js.map +1 -0
  90. package/package.json +88 -0
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ /**
3
+ * Parser Registry — routes files to the correct language parser.
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.parsePythonFileAsync = exports.parsePythonFile = exports.parseJavaScriptFile = void 0;
7
+ exports.parseFile = parseFile;
8
+ exports.canParse = canParse;
9
+ exports.getSupportedLanguages = getSupportedLanguages;
10
+ exports.warmup = warmup;
11
+ const javascript_1 = require("./javascript");
12
+ const python_1 = require("./python");
13
+ const helpers_1 = require("../../utils/helpers");
14
+ const logger_1 = require("../../utils/logger");
15
+ const log = logger_1.logger.child('Parser');
16
+ const PARSERS = {
17
+ javascript: javascript_1.parseJavaScriptFile,
18
+ typescript: javascript_1.parseJavaScriptFile,
19
+ python: python_1.parsePythonFile,
20
+ };
21
+ function parseFile(filePath, rootDir) {
22
+ const language = (0, helpers_1.detectLanguage)(filePath);
23
+ const parser = PARSERS[language];
24
+ if (!parser) {
25
+ log.debug(`No parser for: ${language}`, { filePath });
26
+ return null;
27
+ }
28
+ try {
29
+ return parser(filePath, (0, helpers_1.readFileContent)(filePath), rootDir);
30
+ }
31
+ catch (err) {
32
+ log.error(`Parse failed: ${filePath}`, { error: err.message });
33
+ return null;
34
+ }
35
+ }
36
+ function canParse(filePath) {
37
+ return (0, helpers_1.detectLanguage)(filePath) in PARSERS;
38
+ }
39
+ function getSupportedLanguages() {
40
+ return Object.keys(PARSERS);
41
+ }
42
+ var javascript_2 = require("./javascript");
43
+ Object.defineProperty(exports, "parseJavaScriptFile", { enumerable: true, get: function () { return javascript_2.parseJavaScriptFile; } });
44
+ var python_2 = require("./python");
45
+ Object.defineProperty(exports, "parsePythonFile", { enumerable: true, get: function () { return python_2.parsePythonFile; } });
46
+ Object.defineProperty(exports, "parsePythonFileAsync", { enumerable: true, get: function () { return python_2.parsePythonFileAsync; } });
47
+ /**
48
+ * Pre-initialize tree-sitter for Python (call once at startup).
49
+ * After this, parsePythonFile uses tree-sitter synchronously.
50
+ */
51
+ async function warmup() {
52
+ const { parsePythonFileAsync } = require('./python');
53
+ // Parse a trivial file to trigger WASM loading
54
+ await parsePythonFileAsync('/dev/null', 'pass\n', '/');
55
+ }
56
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/core/parsers/registry.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAgBH,8BAUC;AAED,4BAEC;AAED,sDAEC;AASD,wBAIC;AA5CD,6CAAmD;AACnD,qCAA2C;AAC3C,iDAAsE;AACtE,+CAA4C;AAE5C,MAAM,GAAG,GAAG,eAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAEnC,MAAM,OAAO,GAAyF;IACpG,UAAU,EAAE,gCAAmB;IAC/B,UAAU,EAAE,gCAAmB;IAC/B,MAAM,EAAE,wBAAe;CACxB,CAAC;AAEF,SAAgB,SAAS,CAAC,QAAgB,EAAE,OAAe;IACzD,MAAM,QAAQ,GAAG,IAAA,wBAAc,EAAC,QAAQ,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IACjC,IAAI,CAAC,MAAM,EAAE,CAAC;QAAC,GAAG,CAAC,KAAK,CAAC,kBAAkB,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,CAAC;QAAC,OAAO,IAAI,CAAC;IAAC,CAAC;IACpF,IAAI,CAAC;QACH,OAAO,MAAM,CAAC,QAAQ,EAAE,IAAA,yBAAe,EAAC,QAAQ,CAAC,EAAE,OAAO,CAAC,CAAC;IAC9D,CAAC;IAAC,OAAO,GAAQ,EAAE,CAAC;QAClB,GAAG,CAAC,KAAK,CAAC,iBAAiB,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;QAC/D,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,QAAQ,CAAC,QAAgB;IACvC,OAAO,IAAA,wBAAc,EAAC,QAAQ,CAAC,IAAI,OAAO,CAAC;AAC7C,CAAC;AAED,SAAgB,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC;AAED,2CAAmD;AAA1C,iHAAA,mBAAmB,OAAA;AAC5B,mCAAiE;AAAxD,yGAAA,eAAe,OAAA;AAAE,8GAAA,oBAAoB,OAAA;AAE9C;;;GAGG;AACI,KAAK,UAAU,MAAM;IAC1B,MAAM,EAAE,oBAAoB,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;IACrD,+CAA+C;IAC/C,MAAM,oBAAoB,CAAC,WAAW,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC;AACzD,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * ============================================================================
3
+ * DOCUMENTATION PIPELINE — Master Orchestrator
4
+ * ============================================================================
5
+ *
6
+ * Config → Analyze → Generate → Write → Report
7
+ */
8
+ import { DocgenConfig, ProjectAnalysis, GeneratedDoc } from '../types/definitions';
9
+ export interface PipelineResult {
10
+ analysis: ProjectAnalysis;
11
+ generatedDocs: GeneratedDoc[];
12
+ outputDir: string;
13
+ duration: number;
14
+ errors: string[];
15
+ }
16
+ export declare function runPipeline(config: DocgenConfig): Promise<PipelineResult>;
17
+ export declare function runAnalysisOnly(config: DocgenConfig): Promise<ProjectAnalysis>;
18
+ //# sourceMappingURL=pipeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAIH,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQnF,MAAM,WAAW,cAAc;IAC7B,QAAQ,EAAE,eAAe,CAAC;IAC1B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC,CA+C/E;AAED,wBAAsB,eAAe,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,eAAe,CAAC,CAEpF"}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+ /**
3
+ * ============================================================================
4
+ * DOCUMENTATION PIPELINE — Master Orchestrator
5
+ * ============================================================================
6
+ *
7
+ * Config → Analyze → Generate → Write → Report
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.runPipeline = runPipeline;
44
+ exports.runAnalysisOnly = runAnalysisOnly;
45
+ const fs = __importStar(require("fs"));
46
+ const path = __importStar(require("path"));
47
+ const project_1 = require("./analyzers/project");
48
+ const registry_1 = require("./generators/registry");
49
+ const logger_1 = require("../utils/logger");
50
+ const helpers_1 = require("../utils/helpers");
51
+ const log = logger_1.logger.child('Pipeline');
52
+ async function runPipeline(config) {
53
+ const startTime = Date.now();
54
+ const errors = [];
55
+ log.info('══════════════════════════════════════════════');
56
+ log.info(' DOCGEN — Documentation Generation Pipeline');
57
+ log.info('══════════════════════════════════════════════');
58
+ log.info(`Project: ${config.projectRoot}`);
59
+ log.info(`Output: ${config.outputDir}`);
60
+ log.info(`AI: ${config.ai.enabled ? config.ai.provider + '/' + config.ai.model : 'disabled'}`);
61
+ // Stage 1: Analyze
62
+ log.info('📂 Stage 1/3: Analyzing codebase...');
63
+ const analysis = await (0, project_1.analyzeProject)(config);
64
+ log.info(`✓ ${analysis.files.length} files, ${analysis.modules.length} modules, ${analysis.apiEndpoints.length} endpoints`);
65
+ // Stage 2: Generate
66
+ log.info('📝 Stage 2/3: Generating documentation...');
67
+ const generatedDocs = await (0, registry_1.runGenerators)(analysis, config);
68
+ log.info(`✓ ${generatedDocs.length} doc files generated`);
69
+ // Stage 3: Write
70
+ log.info('💾 Stage 3/3: Writing files...');
71
+ const outputDir = path.resolve(config.projectRoot, config.outputDir);
72
+ for (const doc of generatedDocs) {
73
+ try {
74
+ const finalPath = doc.filePath === 'README.md'
75
+ ? path.join(config.projectRoot, 'README.md')
76
+ : doc.filePath.startsWith('docs/')
77
+ ? path.join(config.projectRoot, doc.filePath)
78
+ : path.join(outputDir, doc.filePath);
79
+ (0, helpers_1.ensureDir)(path.dirname(finalPath));
80
+ fs.writeFileSync(finalPath, doc.content, 'utf-8');
81
+ log.info(` ✓ ${doc.filePath}`);
82
+ }
83
+ catch (err) {
84
+ errors.push(`Failed to write ${doc.filePath}: ${err.message}`);
85
+ log.error(` ✗ ${doc.filePath}: ${err.message}`);
86
+ }
87
+ }
88
+ const duration = Date.now() - startTime;
89
+ log.info('');
90
+ log.info(`✅ Done in ${(duration / 1000).toFixed(1)}s — ${generatedDocs.length} docs written to ${outputDir}`);
91
+ return { analysis, generatedDocs, outputDir, duration, errors };
92
+ }
93
+ async function runAnalysisOnly(config) {
94
+ return (0, project_1.analyzeProject)(config);
95
+ }
96
+ //# sourceMappingURL=pipeline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/core/pipeline.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * ============================================================================
3
+ * DOCGEN — Public API
4
+ * ============================================================================
5
+ *
6
+ * This is the programmatic API. Use this when integrating docgen
7
+ * into other tools, build scripts, or CI pipelines.
8
+ *
9
+ * USAGE:
10
+ * import { analyzeProject, runPipeline, loadConfig } from '@docgen/core';
11
+ * const config = loadConfig('./my-project');
12
+ * const result = await runPipeline(config);
13
+ */
14
+ export { loadConfig, generateConfigFile, DEFAULT_CONFIG } from './config/loader';
15
+ export { runPipeline, runAnalysisOnly } from './core/pipeline';
16
+ export { analyzeProject } from './core/analyzers/project';
17
+ export { runGenerators } from './core/generators/registry';
18
+ export { parseFile, canParse, getSupportedLanguages } from './core/parsers/registry';
19
+ export { AnalysisCache } from './core/cache/file-cache';
20
+ export * from './types/definitions';
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjF,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AACrF,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,cAAc,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,49 @@
1
+ "use strict";
2
+ /**
3
+ * ============================================================================
4
+ * DOCGEN — Public API
5
+ * ============================================================================
6
+ *
7
+ * This is the programmatic API. Use this when integrating docgen
8
+ * into other tools, build scripts, or CI pipelines.
9
+ *
10
+ * USAGE:
11
+ * import { analyzeProject, runPipeline, loadConfig } from '@docgen/core';
12
+ * const config = loadConfig('./my-project');
13
+ * const result = await runPipeline(config);
14
+ */
15
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
16
+ if (k2 === undefined) k2 = k;
17
+ var desc = Object.getOwnPropertyDescriptor(m, k);
18
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
19
+ desc = { enumerable: true, get: function() { return m[k]; } };
20
+ }
21
+ Object.defineProperty(o, k2, desc);
22
+ }) : (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ o[k2] = m[k];
25
+ }));
26
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
27
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
28
+ };
29
+ Object.defineProperty(exports, "__esModule", { value: true });
30
+ exports.AnalysisCache = exports.getSupportedLanguages = exports.canParse = exports.parseFile = exports.runGenerators = exports.analyzeProject = exports.runAnalysisOnly = exports.runPipeline = exports.DEFAULT_CONFIG = exports.generateConfigFile = exports.loadConfig = void 0;
31
+ var loader_1 = require("./config/loader");
32
+ Object.defineProperty(exports, "loadConfig", { enumerable: true, get: function () { return loader_1.loadConfig; } });
33
+ Object.defineProperty(exports, "generateConfigFile", { enumerable: true, get: function () { return loader_1.generateConfigFile; } });
34
+ Object.defineProperty(exports, "DEFAULT_CONFIG", { enumerable: true, get: function () { return loader_1.DEFAULT_CONFIG; } });
35
+ var pipeline_1 = require("./core/pipeline");
36
+ Object.defineProperty(exports, "runPipeline", { enumerable: true, get: function () { return pipeline_1.runPipeline; } });
37
+ Object.defineProperty(exports, "runAnalysisOnly", { enumerable: true, get: function () { return pipeline_1.runAnalysisOnly; } });
38
+ var project_1 = require("./core/analyzers/project");
39
+ Object.defineProperty(exports, "analyzeProject", { enumerable: true, get: function () { return project_1.analyzeProject; } });
40
+ var registry_1 = require("./core/generators/registry");
41
+ Object.defineProperty(exports, "runGenerators", { enumerable: true, get: function () { return registry_1.runGenerators; } });
42
+ var registry_2 = require("./core/parsers/registry");
43
+ Object.defineProperty(exports, "parseFile", { enumerable: true, get: function () { return registry_2.parseFile; } });
44
+ Object.defineProperty(exports, "canParse", { enumerable: true, get: function () { return registry_2.canParse; } });
45
+ Object.defineProperty(exports, "getSupportedLanguages", { enumerable: true, get: function () { return registry_2.getSupportedLanguages; } });
46
+ var file_cache_1 = require("./core/cache/file-cache");
47
+ Object.defineProperty(exports, "AnalysisCache", { enumerable: true, get: function () { return file_cache_1.AnalysisCache; } });
48
+ __exportStar(require("./types/definitions"), exports);
49
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;GAYG;;;;;;;;;;;;;;;;;AAEH,0CAAiF;AAAxE,oGAAA,UAAU,OAAA;AAAE,4GAAA,kBAAkB,OAAA;AAAE,wGAAA,cAAc,OAAA;AACvD,4CAA+D;AAAtD,uGAAA,WAAW,OAAA;AAAE,2GAAA,eAAe,OAAA;AACrC,oDAA0D;AAAjD,yGAAA,cAAc,OAAA;AACvB,uDAA2D;AAAlD,yGAAA,aAAa,OAAA;AACtB,oDAAqF;AAA5E,qGAAA,SAAS,OAAA;AAAE,oGAAA,QAAQ,OAAA;AAAE,iHAAA,qBAAqB,OAAA;AACnD,sDAAwD;AAA/C,2GAAA,aAAa,OAAA;AACtB,sDAAoC"}
@@ -0,0 +1,220 @@
1
+ /**
2
+ * ============================================================================
3
+ * DOCGEN — CORE TYPE DEFINITIONS
4
+ * ============================================================================
5
+ * Every module speaks this language. Analyzers produce these types,
6
+ * generators consume them. This decouples all components.
7
+ */
8
+ export type SupportedLanguage = 'javascript' | 'typescript' | 'python' | 'java' | 'go' | 'rust';
9
+ export type SupportedFramework = 'express' | 'nestjs' | 'nextjs' | 'fastapi' | 'flask' | 'django' | 'react' | 'vue' | 'angular' | 'generic';
10
+ export interface AnalyzedFile {
11
+ filePath: string;
12
+ relativePath: string;
13
+ language: SupportedLanguage;
14
+ lineCount: number;
15
+ contentHash: string;
16
+ functions: FunctionInfo[];
17
+ classes: ClassInfo[];
18
+ imports: ImportInfo[];
19
+ exports: ExportInfo[];
20
+ apiEndpoints: APIEndpoint[];
21
+ comments: CommentInfo[];
22
+ parseErrors: ParseError[];
23
+ }
24
+ export interface FunctionInfo {
25
+ name: string;
26
+ className?: string;
27
+ params: ParameterInfo[];
28
+ returnType?: string;
29
+ isExported: boolean;
30
+ isAsync: boolean;
31
+ startLine: number;
32
+ endLine: number;
33
+ complexity: number;
34
+ existingDoc?: string;
35
+ body?: string;
36
+ decorators: string[];
37
+ }
38
+ export interface ParameterInfo {
39
+ name: string;
40
+ type?: string;
41
+ defaultValue?: string;
42
+ isOptional: boolean;
43
+ description?: string;
44
+ }
45
+ export interface ClassInfo {
46
+ name: string;
47
+ superClass?: string;
48
+ implements: string[];
49
+ methods: FunctionInfo[];
50
+ properties: PropertyInfo[];
51
+ isExported: boolean;
52
+ startLine: number;
53
+ endLine: number;
54
+ existingDoc?: string;
55
+ decorators: string[];
56
+ }
57
+ export interface PropertyInfo {
58
+ name: string;
59
+ type?: string;
60
+ isStatic: boolean;
61
+ isPrivate: boolean;
62
+ defaultValue?: string;
63
+ }
64
+ export interface ImportInfo {
65
+ source: string;
66
+ specifiers: string[];
67
+ isRelative: boolean;
68
+ defaultImport?: string;
69
+ }
70
+ export interface ExportInfo {
71
+ name: string;
72
+ type: 'function' | 'class' | 'variable' | 'type' | 'default' | 'namespace';
73
+ isDefault: boolean;
74
+ }
75
+ export interface APIEndpoint {
76
+ method: string;
77
+ path: string;
78
+ handler: string;
79
+ middleware: string[];
80
+ requestSchema?: SchemaInfo;
81
+ responseSchema?: SchemaInfo;
82
+ requiresAuth: boolean;
83
+ filePath: string;
84
+ line: number;
85
+ }
86
+ export interface SchemaInfo {
87
+ type: string;
88
+ properties?: Record<string, {
89
+ type: string;
90
+ required?: boolean;
91
+ description?: string;
92
+ }>;
93
+ example?: unknown;
94
+ }
95
+ export interface CommentInfo {
96
+ type: 'line' | 'block' | 'jsdoc' | 'docstring';
97
+ text: string;
98
+ line: number;
99
+ associatedEntity?: string;
100
+ }
101
+ export interface ModuleInfo {
102
+ name: string;
103
+ path: string;
104
+ description?: string;
105
+ files: AnalyzedFile[];
106
+ dependencies: string[];
107
+ dependents: string[];
108
+ publicAPI: ExportInfo[];
109
+ totalLines: number;
110
+ role?: 'api' | 'service' | 'model' | 'utility' | 'config' | 'test' | 'ui' | 'middleware';
111
+ }
112
+ export interface ProjectAnalysis {
113
+ name: string;
114
+ rootPath: string;
115
+ version?: string;
116
+ description?: string;
117
+ languages: LanguageStats[];
118
+ frameworks: FrameworkDetection[];
119
+ files: AnalyzedFile[];
120
+ modules: ModuleInfo[];
121
+ dependencyGraph: DependencyEdge[];
122
+ externalDependencies: ExternalDependency[];
123
+ apiEndpoints: APIEndpoint[];
124
+ configFiles: ConfigFile[];
125
+ envVariables: EnvVariable[];
126
+ analyzedAt: Date;
127
+ analysisDuration: number;
128
+ errors: ParseError[];
129
+ }
130
+ export interface LanguageStats {
131
+ language: string;
132
+ fileCount: number;
133
+ lineCount: number;
134
+ percentage: number;
135
+ }
136
+ export interface FrameworkDetection {
137
+ framework: string;
138
+ confidence: number;
139
+ evidence: string[];
140
+ }
141
+ export interface DependencyEdge {
142
+ from: string;
143
+ to: string;
144
+ type: 'import' | 'extends' | 'implements' | 'uses' | 'calls';
145
+ symbols: string[];
146
+ }
147
+ export interface ExternalDependency {
148
+ name: string;
149
+ version?: string;
150
+ category: string;
151
+ isDev: boolean;
152
+ }
153
+ export interface ConfigFile {
154
+ path: string;
155
+ type: string;
156
+ description?: string;
157
+ }
158
+ export interface EnvVariable {
159
+ name: string;
160
+ usedIn: string[];
161
+ hasDefault: boolean;
162
+ isRequired: boolean;
163
+ description?: string;
164
+ }
165
+ export interface ParseError {
166
+ filePath: string;
167
+ line?: number;
168
+ message: string;
169
+ severity: 'warning' | 'error';
170
+ }
171
+ export interface DocgenConfig {
172
+ projectRoot: string;
173
+ outputDir: string;
174
+ include: string[];
175
+ exclude: string[];
176
+ generators: GeneratorName[];
177
+ ai: AIConfig;
178
+ cache: CacheConfig;
179
+ logLevel: 'debug' | 'info' | 'warn' | 'error';
180
+ insertInlineDoc: boolean;
181
+ overwriteExistingDocs: boolean;
182
+ concurrency: number;
183
+ }
184
+ export type GeneratorName = 'readme' | 'architecture' | 'modules' | 'api' | 'functions' | 'integrations' | 'setup' | 'all';
185
+ export interface AIConfig {
186
+ enabled: boolean;
187
+ provider: string;
188
+ apiKey?: string;
189
+ model: string;
190
+ maxTokens: number;
191
+ temperature: number;
192
+ }
193
+ export interface CacheConfig {
194
+ enabled: boolean;
195
+ directory: string;
196
+ ttl: number;
197
+ }
198
+ export interface GeneratedDoc {
199
+ filePath: string;
200
+ content: string;
201
+ generator: GeneratorName;
202
+ generatedAt: Date;
203
+ inputHash: string;
204
+ }
205
+ export interface DocgenPlugin {
206
+ name: string;
207
+ version: string;
208
+ init?(config: DocgenConfig): Promise<void>;
209
+ analyzers?: PluginAnalyzer[];
210
+ generators?: PluginGenerator[];
211
+ }
212
+ export interface PluginAnalyzer {
213
+ extensions: string[];
214
+ analyze(filePath: string, content: string): Promise<AnalyzedFile>;
215
+ }
216
+ export interface PluginGenerator {
217
+ name: string;
218
+ generate(analysis: ProjectAnalysis, config: DocgenConfig): Promise<GeneratedDoc[]>;
219
+ }
220
+ //# sourceMappingURL=definitions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.d.ts","sourceRoot":"","sources":["../../src/types/definitions.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ "use strict";
2
+ /**
3
+ * ============================================================================
4
+ * DOCGEN — CORE TYPE DEFINITIONS
5
+ * ============================================================================
6
+ * Every module speaks this language. Analyzers produce these types,
7
+ * generators consume them. This decouples all components.
8
+ */
9
+ Object.defineProperty(exports, "__esModule", { value: true });
10
+ //# sourceMappingURL=definitions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/types/definitions.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * ============================================================================
3
+ * UTILITY HELPERS — Shared pure functions across the platform
4
+ * ============================================================================
5
+ */
6
+ export declare function findFiles(rootDir: string, includePatterns: string[], excludePatterns: string[]): string[];
7
+ export declare function hashContent(content: string): string;
8
+ export declare function hashFile(filePath: string): string;
9
+ export declare function detectLanguage(filePath: string): string;
10
+ export declare function readFileContent(filePath: string): string;
11
+ export declare function fileExists(filePath: string): boolean;
12
+ export declare function ensureDir(dirPath: string): void;
13
+ export declare function inferModuleName(relativePath: string, depth?: number): string;
14
+ export declare function countLines(content: string): number;
15
+ export declare function truncate(text: string, maxLength: number): string;
16
+ export declare function detectFrameworks(rootDir: string): Array<{
17
+ framework: string;
18
+ confidence: number;
19
+ evidence: string[];
20
+ }>;
21
+ export declare function parsePackageJson(rootDir: string): Record<string, any> | null;
22
+ //# sourceMappingURL=helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../../src/utils/helpers.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,wBAAgB,SAAS,CACvB,OAAO,EAAE,MAAM,EACf,eAAe,EAAE,MAAM,EAAE,EACzB,eAAe,EAAE,MAAM,EAAE,GACxB,MAAM,EAAE,CAyBV;AAID,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED,wBAAgB,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEjD;AAUD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEvD;AAID,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAExD;AAED,wBAAgB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAE/C;AAID,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAM/E;AAID,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAElD;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAGhE;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAiCtH;AAID,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAI5E"}