specweave 0.8.2 → 0.8.4

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 (93) hide show
  1. package/.claude-plugin/marketplace.json +11 -0
  2. package/dist/adapters/adapter-loader.d.ts +4 -4
  3. package/dist/adapters/adapter-loader.d.ts.map +1 -1
  4. package/dist/adapters/adapter-loader.js +8 -7
  5. package/dist/adapters/adapter-loader.js.map +1 -1
  6. package/dist/cli/commands/init.d.ts.map +1 -1
  7. package/dist/cli/commands/init.js +78 -21
  8. package/dist/cli/commands/init.js.map +1 -1
  9. package/dist/metrics/calculators/change-failure-rate.d.ts +1 -1
  10. package/dist/metrics/calculators/change-failure-rate.d.ts.map +1 -1
  11. package/dist/metrics/calculators/change-failure-rate.js +1 -1
  12. package/dist/metrics/calculators/change-failure-rate.js.map +1 -1
  13. package/dist/metrics/calculators/deployment-frequency.d.ts +1 -1
  14. package/dist/metrics/calculators/deployment-frequency.d.ts.map +1 -1
  15. package/dist/metrics/calculators/deployment-frequency.js +1 -1
  16. package/dist/metrics/calculators/deployment-frequency.js.map +1 -1
  17. package/dist/metrics/calculators/lead-time.d.ts +1 -1
  18. package/dist/metrics/calculators/lead-time.d.ts.map +1 -1
  19. package/dist/metrics/calculators/lead-time.js +2 -2
  20. package/dist/metrics/calculators/lead-time.js.map +1 -1
  21. package/dist/metrics/calculators/mttr.d.ts +1 -1
  22. package/dist/metrics/calculators/mttr.d.ts.map +1 -1
  23. package/dist/metrics/calculators/mttr.js +2 -2
  24. package/dist/metrics/calculators/mttr.js.map +1 -1
  25. package/dist/metrics/dora-calculator.d.ts +2 -2
  26. package/dist/metrics/dora-calculator.d.ts.map +1 -1
  27. package/dist/metrics/dora-calculator.js +5 -5
  28. package/dist/metrics/dora-calculator.js.map +1 -1
  29. package/dist/metrics/github-client.d.ts +1 -1
  30. package/dist/metrics/github-client.d.ts.map +1 -1
  31. package/dist/metrics/utils/tier-classifier.d.ts +1 -1
  32. package/dist/metrics/utils/tier-classifier.d.ts.map +1 -1
  33. package/dist/utils/docs-preview/config-generator.d.ts +46 -0
  34. package/dist/utils/docs-preview/config-generator.d.ts.map +1 -0
  35. package/dist/utils/docs-preview/config-generator.js +377 -0
  36. package/dist/utils/docs-preview/config-generator.js.map +1 -0
  37. package/dist/utils/docs-preview/docusaurus-setup.d.ts +38 -0
  38. package/dist/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
  39. package/dist/utils/docs-preview/docusaurus-setup.js +177 -0
  40. package/dist/utils/docs-preview/docusaurus-setup.js.map +1 -0
  41. package/dist/utils/docs-preview/index.d.ts +11 -0
  42. package/dist/utils/docs-preview/index.d.ts.map +1 -0
  43. package/dist/utils/docs-preview/index.js +17 -0
  44. package/dist/utils/docs-preview/index.js.map +1 -0
  45. package/dist/utils/docs-preview/package-installer.d.ts +42 -0
  46. package/dist/utils/docs-preview/package-installer.d.ts.map +1 -0
  47. package/dist/utils/docs-preview/package-installer.js +182 -0
  48. package/dist/utils/docs-preview/package-installer.js.map +1 -0
  49. package/dist/utils/docs-preview/server-manager.d.ts +30 -0
  50. package/dist/utils/docs-preview/server-manager.d.ts.map +1 -0
  51. package/dist/utils/docs-preview/server-manager.js +207 -0
  52. package/dist/utils/docs-preview/server-manager.js.map +1 -0
  53. package/dist/utils/docs-preview/sidebar-builder.d.ts +31 -0
  54. package/dist/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
  55. package/dist/utils/docs-preview/sidebar-builder.js +202 -0
  56. package/dist/utils/docs-preview/sidebar-builder.js.map +1 -0
  57. package/dist/utils/docs-preview/types.d.ts +60 -0
  58. package/dist/utils/docs-preview/types.d.ts.map +1 -0
  59. package/dist/utils/docs-preview/types.js +5 -0
  60. package/dist/utils/docs-preview/types.js.map +1 -0
  61. package/dist/utils/docs-preview.bak/config-generator.d.ts +46 -0
  62. package/dist/utils/docs-preview.bak/config-generator.d.ts.map +1 -0
  63. package/dist/utils/docs-preview.bak/config-generator.js +377 -0
  64. package/dist/utils/docs-preview.bak/config-generator.js.map +1 -0
  65. package/dist/utils/docs-preview.bak/package-installer.d.ts +42 -0
  66. package/dist/utils/docs-preview.bak/package-installer.d.ts.map +1 -0
  67. package/dist/utils/docs-preview.bak/package-installer.js +182 -0
  68. package/dist/utils/docs-preview.bak/package-installer.js.map +1 -0
  69. package/dist/utils/docs-preview.bak/server-manager.d.ts +30 -0
  70. package/dist/utils/docs-preview.bak/server-manager.d.ts.map +1 -0
  71. package/dist/utils/docs-preview.bak/server-manager.js +207 -0
  72. package/dist/utils/docs-preview.bak/server-manager.js.map +1 -0
  73. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts +31 -0
  74. package/dist/utils/docs-preview.bak/sidebar-builder.d.ts.map +1 -0
  75. package/dist/utils/docs-preview.bak/sidebar-builder.js +202 -0
  76. package/dist/utils/docs-preview.bak/sidebar-builder.js.map +1 -0
  77. package/dist/utils/docs-preview.bak/types.d.ts +60 -0
  78. package/dist/utils/docs-preview.bak/types.d.ts.map +1 -0
  79. package/dist/utils/docs-preview.bak/types.js +5 -0
  80. package/dist/utils/docs-preview.bak/types.js.map +1 -0
  81. package/package.json +2 -1
  82. package/dist/cli/commands/plugin.js +0 -322
  83. package/dist/cli/commands/plugin.js.map +0 -1
  84. package/dist/core/plugin-detector.d.ts +0 -97
  85. package/dist/core/plugin-detector.d.ts.map +0 -1
  86. package/dist/core/plugin-detector.js +0 -374
  87. package/dist/core/plugin-detector.js.map +0 -1
  88. package/dist/core/plugin-manager.d.ts +0 -144
  89. package/dist/core/plugin-manager.d.ts.map +0 -1
  90. package/dist/core/plugin-manager.js +0 -393
  91. package/dist/core/plugin-manager.js.map +0 -1
  92. package/dist/utils/plugin-detection.js +0 -229
  93. package/dist/utils/plugin-detection.js.map +0 -1
@@ -0,0 +1,177 @@
1
+ /**
2
+ * Main orchestrator for Docusaurus setup
3
+ * Coordinates all setup steps: install, config, sidebar, server launch
4
+ */
5
+ import * as path from 'path';
6
+ import * as fs from 'fs-extra';
7
+ import { checkNodeVersion, installDocusaurus, isDocusaurusInstalled } from './package-installer.js';
8
+ import { buildSidebar, writeSidebar, countDocuments, countCategories } from './sidebar-builder.js';
9
+ import { writeDocusaurusConfig, writePackageJSON, writeCustomCSS, writeIndexPage, writeIndexModuleCSS } from './config-generator.js';
10
+ import { startDevServer, findAvailablePort } from './server-manager.js';
11
+ /**
12
+ * Full Docusaurus setup workflow
13
+ */
14
+ export async function setupDocusaurus(options) {
15
+ const { projectRoot, targetDir, docsPath, config, force = false } = options;
16
+ console.log('📦 Setting up Docusaurus documentation preview...\n');
17
+ // Step 1: Check Node.js version
18
+ console.log('1. Checking Node.js version...');
19
+ const nodeVersion = await checkNodeVersion();
20
+ if (!nodeVersion.compatible) {
21
+ throw new Error(`Node.js 18+ required (found: ${nodeVersion.version})\n` +
22
+ 'Install Node.js from: https://nodejs.org/');
23
+ }
24
+ console.log(` ✅ Node.js ${nodeVersion.version}\n`);
25
+ // Step 2: Check if already installed
26
+ if (!force && await isDocusaurusInstalled(targetDir)) {
27
+ console.log('✅ Docusaurus already installed (use --force to reinstall)\n');
28
+ return;
29
+ }
30
+ // Step 3: Create target directory
31
+ console.log('2. Creating docs-site directory...');
32
+ await fs.ensureDir(targetDir);
33
+ console.log(' ✅ Directory created\n');
34
+ // Step 4: Generate package.json
35
+ console.log('3. Generating package.json...');
36
+ await writePackageJSON(targetDir, config.title);
37
+ console.log(' ✅ package.json created\n');
38
+ // Step 5: Install Docusaurus packages
39
+ console.log('4. Installing packages (this may take 30-60 seconds)...');
40
+ await installDocusaurus(targetDir);
41
+ console.log(' ✅ Installation complete\n');
42
+ // Step 6: Generate docusaurus.config.js
43
+ console.log('5. Generating docusaurus.config.js...');
44
+ await writeDocusaurusConfig(targetDir, config);
45
+ console.log(' ✅ Configuration generated\n');
46
+ // Step 7: Scan docs and generate sidebar
47
+ console.log('6. Scanning documentation folders...');
48
+ const sidebar = await buildSidebar({
49
+ docsPath,
50
+ excludeFolders: config.excludeFolders || ['legacy', 'node_modules'],
51
+ maxDepth: 5
52
+ });
53
+ const docCount = countDocuments(sidebar);
54
+ const catCount = countCategories(sidebar);
55
+ console.log(` ✅ Found ${docCount} documents in ${catCount} categories\n`);
56
+ // Step 8: Write sidebar
57
+ console.log('7. Generating sidebars.js...');
58
+ const sidebarPath = path.join(targetDir, 'sidebars.js');
59
+ await writeSidebar(sidebarPath, sidebar);
60
+ console.log(' ✅ Sidebar generated\n');
61
+ // Step 9: Create landing page
62
+ console.log('8. Creating landing page...');
63
+ await writeIndexPage(targetDir, config.title, config.tagline);
64
+ await writeIndexModuleCSS(targetDir);
65
+ console.log(' ✅ Landing page created\n');
66
+ // Step 10: Create custom CSS
67
+ console.log('9. Creating custom theme...');
68
+ await writeCustomCSS(targetDir, config.theme || 'default');
69
+ console.log(' ✅ Theme configured\n');
70
+ console.log('✅ Setup complete!\n');
71
+ }
72
+ /**
73
+ * Quick setup with defaults
74
+ */
75
+ export async function quickSetup(projectRoot) {
76
+ const targetDir = path.join(projectRoot, '.specweave', 'docs-site');
77
+ const docsPath = path.join(projectRoot, '.specweave', 'docs', 'internal');
78
+ // Check if docs exist
79
+ if (!await fs.pathExists(docsPath)) {
80
+ throw new Error('No documentation found.\n' +
81
+ 'Create documentation by completing your first increment:\n' +
82
+ ' /specweave:increment "your feature"');
83
+ }
84
+ const config = {
85
+ title: 'SpecWeave Documentation',
86
+ tagline: 'Spec-Driven Development Framework',
87
+ url: 'http://localhost',
88
+ baseUrl: '/',
89
+ docsPath: '../docs/internal',
90
+ port: 3000,
91
+ theme: 'default',
92
+ excludeFolders: ['legacy', 'node_modules']
93
+ };
94
+ await setupDocusaurus({
95
+ projectRoot,
96
+ targetDir,
97
+ docsPath,
98
+ config
99
+ });
100
+ }
101
+ /**
102
+ * Launch preview (setup if needed, then start server)
103
+ */
104
+ export async function launchPreview(projectRoot, options = {}) {
105
+ const targetDir = path.join(projectRoot, '.specweave', 'docs-site');
106
+ const docsPath = path.join(projectRoot, '.specweave', 'docs', 'internal');
107
+ // Setup if not installed or force flag
108
+ if (options.force || !await isDocusaurusInstalled(targetDir)) {
109
+ await quickSetup(projectRoot);
110
+ }
111
+ // Find available port
112
+ const port = options.port || await findAvailablePort(3000, 3010);
113
+ console.log(`Starting server on port ${port}...`);
114
+ // Start dev server
115
+ const server = await startDevServer(targetDir, {
116
+ port,
117
+ openBrowser: options.openBrowser !== false
118
+ });
119
+ console.log(`\n🌐 Documentation available at: ${server.url}`);
120
+ console.log('🔄 Hot reload enabled - edit docs and see changes instantly');
121
+ console.log('💡 Press Ctrl+C to stop the server\n');
122
+ return server;
123
+ }
124
+ /**
125
+ * Build static site
126
+ */
127
+ export async function buildStaticSite(projectRoot) {
128
+ const targetDir = path.join(projectRoot, '.specweave', 'docs-site');
129
+ // Check if installed
130
+ if (!await isDocusaurusInstalled(targetDir)) {
131
+ throw new Error('Docusaurus not installed.\n' +
132
+ 'Run: /specweave:docs preview (this will install it)');
133
+ }
134
+ console.log('📦 Building static documentation site...\n');
135
+ const { spawn } = await import('child_process');
136
+ return new Promise((resolve, reject) => {
137
+ const buildProcess = spawn('npm', ['run', 'build'], {
138
+ cwd: targetDir,
139
+ stdio: 'inherit',
140
+ shell: true
141
+ });
142
+ buildProcess.on('close', (code) => {
143
+ if (code === 0) {
144
+ const buildPath = path.join(targetDir, 'build');
145
+ console.log('\n✅ Build complete!');
146
+ console.log(`📁 Output: ${buildPath}\n`);
147
+ resolve();
148
+ }
149
+ else {
150
+ reject(new Error(`Build failed with code ${code}`));
151
+ }
152
+ });
153
+ buildProcess.on('error', (error) => {
154
+ reject(new Error(`Failed to start build: ${error.message}`));
155
+ });
156
+ });
157
+ }
158
+ /**
159
+ * Check if setup is needed
160
+ */
161
+ export async function isSetupNeeded(projectRoot) {
162
+ const targetDir = path.join(projectRoot, '.specweave', 'docs-site');
163
+ return !(await isDocusaurusInstalled(targetDir));
164
+ }
165
+ /**
166
+ * Get docs site path
167
+ */
168
+ export function getDocsSitePath(projectRoot) {
169
+ return path.join(projectRoot, '.specweave', 'docs-site');
170
+ }
171
+ /**
172
+ * Get docs path
173
+ */
174
+ export function getDocsPath(projectRoot) {
175
+ return path.join(projectRoot, '.specweave', 'docs', 'internal');
176
+ }
177
+ //# sourceMappingURL=docusaurus-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"docusaurus-setup.js","sourceRoot":"","sources":["../../../src/utils/docs-preview/docusaurus-setup.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Documentation preview utilities
3
+ * Main exports for Docusaurus setup and management
4
+ */
5
+ export { setupDocusaurus, quickSetup, launchPreview, buildStaticSite, isSetupNeeded, getDocsSitePath, getDocsPath } from './docusaurus-setup.js';
6
+ export { buildSidebar, writeSidebar, generateSidebarsJS, countDocuments, countCategories } from './sidebar-builder.js';
7
+ export { generateDocusaurusConfig, writeDocusaurusConfig, generatePackageJSON, writePackageJSON, generateCustomCSS, writeCustomCSS, generateIndexPage, writeIndexPage, generateIndexModuleCSS, writeIndexModuleCSS } from './config-generator.js';
8
+ export { checkNodeVersion, checkNpmInstalled, installPackages, installDocusaurus, isDocusaurusInstalled, cleanNpmCache, getPackageVersion, estimateInstallSize, estimateInstallTime } from './package-installer.js';
9
+ export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, isDocusaurusRunning, getServerUrl } from './server-manager.js';
10
+ export * from './types.js';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,17 @@
1
+ /**
2
+ * Documentation preview utilities
3
+ * Main exports for Docusaurus setup and management
4
+ */
5
+ // Main orchestrator
6
+ export { setupDocusaurus, quickSetup, launchPreview, buildStaticSite, isSetupNeeded, getDocsSitePath, getDocsPath } from './docusaurus-setup.js';
7
+ // Sidebar builder
8
+ export { buildSidebar, writeSidebar, generateSidebarsJS, countDocuments, countCategories } from './sidebar-builder.js';
9
+ // Config generator
10
+ export { generateDocusaurusConfig, writeDocusaurusConfig, generatePackageJSON, writePackageJSON, generateCustomCSS, writeCustomCSS, generateIndexPage, writeIndexPage, generateIndexModuleCSS, writeIndexModuleCSS } from './config-generator.js';
11
+ // Package installer
12
+ export { checkNodeVersion, checkNpmInstalled, installPackages, installDocusaurus, isDocusaurusInstalled, cleanNpmCache, getPackageVersion, estimateInstallSize, estimateInstallTime } from './package-installer.js';
13
+ // Server manager
14
+ export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, isDocusaurusRunning, getServerUrl } from './server-manager.js';
15
+ // Types
16
+ export * from './types.js';
17
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAoB;AACpB,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,kBAAkB;AAClB,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,mBAAmB;AACnB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,oBAAoB;AACpB,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,iBAAiB;AACjB,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,QAAQ;AACR,cAAc,YAAY,CAAC"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * Package installer for Docusaurus dependencies
3
+ * Handles npm install with progress tracking
4
+ */
5
+ import { InstallOptions, NodeVersion } from './types.js';
6
+ /**
7
+ * Check Node.js version
8
+ */
9
+ export declare function checkNodeVersion(): Promise<NodeVersion>;
10
+ /**
11
+ * Check if npm is installed
12
+ */
13
+ export declare function checkNpmInstalled(): Promise<boolean>;
14
+ /**
15
+ * Install npm packages
16
+ */
17
+ export declare function installPackages(options: InstallOptions): Promise<void>;
18
+ /**
19
+ * Install Docusaurus packages
20
+ */
21
+ export declare function installDocusaurus(targetDir: string): Promise<void>;
22
+ /**
23
+ * Check if Docusaurus is installed
24
+ */
25
+ export declare function isDocusaurusInstalled(targetDir: string): Promise<boolean>;
26
+ /**
27
+ * Clean npm cache
28
+ */
29
+ export declare function cleanNpmCache(): Promise<void>;
30
+ /**
31
+ * Get installed npm package version
32
+ */
33
+ export declare function getPackageVersion(targetDir: string, packageName: string): Promise<string | null>;
34
+ /**
35
+ * Estimate install size (rough estimate)
36
+ */
37
+ export declare function estimateInstallSize(): string;
38
+ /**
39
+ * Estimate install time (rough estimate)
40
+ */
41
+ export declare function estimateInstallTime(): string;
42
+ //# sourceMappingURL=package-installer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.d.ts","sourceRoot":"","sources":["../../../src/utils/docs-preview/package-installer.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGzD;;GAEG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAqB7D;AAED;;GAEG;AACH,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,OAAO,CAAC,CAO1D;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAkD5E;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CA8BxE;AAED;;GAEG;AACH,wBAAsB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAyB/E;AAED;;GAEG;AACH,wBAAsB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC,CAEnD;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAatG;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAG5C"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Package installer for Docusaurus dependencies
3
+ * Handles npm install with progress tracking
4
+ */
5
+ import * as path from 'path';
6
+ import * as fs from 'fs-extra';
7
+ import { spawn } from 'child_process';
8
+ import { execFileNoThrow } from '../execFileNoThrow.js';
9
+ /**
10
+ * Check Node.js version
11
+ */
12
+ export async function checkNodeVersion() {
13
+ try {
14
+ const result = await execFileNoThrow('node', ['--version']);
15
+ if (result.status !== 0) {
16
+ throw new Error('Node.js not found');
17
+ }
18
+ const versionString = result.stdout.trim().replace('v', '');
19
+ const [major, minor, patch] = versionString.split('.').map(Number);
20
+ return {
21
+ version: versionString,
22
+ major,
23
+ minor,
24
+ patch,
25
+ compatible: major >= 18
26
+ };
27
+ }
28
+ catch (error) {
29
+ throw new Error('Node.js not found. Please install Node.js 18+ from https://nodejs.org/');
30
+ }
31
+ }
32
+ /**
33
+ * Check if npm is installed
34
+ */
35
+ export async function checkNpmInstalled() {
36
+ try {
37
+ const result = await execFileNoThrow('npm', ['--version']);
38
+ return result.status === 0;
39
+ }
40
+ catch {
41
+ return false;
42
+ }
43
+ }
44
+ /**
45
+ * Install npm packages
46
+ */
47
+ export async function installPackages(options) {
48
+ const { targetDir, packages, dev = false } = options;
49
+ // Ensure target directory exists
50
+ await fs.ensureDir(targetDir);
51
+ // Build npm install command
52
+ const args = ['install'];
53
+ if (dev) {
54
+ args.push('--save-dev');
55
+ }
56
+ args.push(...packages);
57
+ // Spawn npm install process
58
+ return new Promise((resolve, reject) => {
59
+ const npmProcess = spawn('npm', args, {
60
+ cwd: targetDir,
61
+ stdio: ['ignore', 'pipe', 'pipe'],
62
+ shell: true
63
+ });
64
+ let stdout = '';
65
+ let stderr = '';
66
+ npmProcess.stdout.on('data', (data) => {
67
+ stdout += data.toString();
68
+ // Show progress to console
69
+ process.stdout.write('.');
70
+ });
71
+ npmProcess.stderr.on('data', (data) => {
72
+ stderr += data.toString();
73
+ });
74
+ npmProcess.on('close', (code) => {
75
+ if (code === 0) {
76
+ console.log(' ✅');
77
+ resolve();
78
+ }
79
+ else {
80
+ console.log(' ❌');
81
+ reject(new Error(`npm install failed with code ${code}\n${stderr}`));
82
+ }
83
+ });
84
+ npmProcess.on('error', (error) => {
85
+ reject(new Error(`Failed to start npm install: ${error.message}`));
86
+ });
87
+ });
88
+ }
89
+ /**
90
+ * Install Docusaurus packages
91
+ */
92
+ export async function installDocusaurus(targetDir) {
93
+ const packages = [
94
+ '@docusaurus/core@^3.0.0',
95
+ '@docusaurus/preset-classic@^3.0.0',
96
+ '@docusaurus/theme-mermaid@^3.0.0',
97
+ '@mdx-js/react@^3.0.0',
98
+ 'clsx@^2.0.0',
99
+ 'prism-react-renderer@^2.1.0',
100
+ 'react@^18.0.0',
101
+ 'react-dom@^18.0.0'
102
+ ];
103
+ const devPackages = [
104
+ '@docusaurus/module-type-aliases@^3.0.0',
105
+ '@docusaurus/types@^3.0.0'
106
+ ];
107
+ console.log(' Installing Docusaurus packages...');
108
+ await installPackages({
109
+ targetDir,
110
+ packages,
111
+ dev: false
112
+ });
113
+ console.log(' Installing dev dependencies...');
114
+ await installPackages({
115
+ targetDir,
116
+ packages: devPackages,
117
+ dev: true
118
+ });
119
+ }
120
+ /**
121
+ * Check if Docusaurus is installed
122
+ */
123
+ export async function isDocusaurusInstalled(targetDir) {
124
+ try {
125
+ const packageJsonPath = path.join(targetDir, 'package.json');
126
+ const nodeModulesPath = path.join(targetDir, 'node_modules');
127
+ // Check if package.json exists
128
+ if (!await fs.pathExists(packageJsonPath)) {
129
+ return false;
130
+ }
131
+ // Check if node_modules exists
132
+ if (!await fs.pathExists(nodeModulesPath)) {
133
+ return false;
134
+ }
135
+ // Check if @docusaurus/core is installed
136
+ const docusaurusCorePath = path.join(nodeModulesPath, '@docusaurus', 'core');
137
+ if (!await fs.pathExists(docusaurusCorePath)) {
138
+ return false;
139
+ }
140
+ return true;
141
+ }
142
+ catch {
143
+ return false;
144
+ }
145
+ }
146
+ /**
147
+ * Clean npm cache
148
+ */
149
+ export async function cleanNpmCache() {
150
+ await execFileNoThrow('npm', ['cache', 'clean', '--force']);
151
+ }
152
+ /**
153
+ * Get installed npm package version
154
+ */
155
+ export async function getPackageVersion(targetDir, packageName) {
156
+ try {
157
+ const packageJsonPath = path.join(targetDir, 'node_modules', packageName, 'package.json');
158
+ if (!await fs.pathExists(packageJsonPath)) {
159
+ return null;
160
+ }
161
+ const packageJson = await fs.readJSON(packageJsonPath);
162
+ return packageJson.version || null;
163
+ }
164
+ catch {
165
+ return null;
166
+ }
167
+ }
168
+ /**
169
+ * Estimate install size (rough estimate)
170
+ */
171
+ export function estimateInstallSize() {
172
+ // Docusaurus + React + dependencies ≈ 150-200 MB
173
+ return '~150 MB';
174
+ }
175
+ /**
176
+ * Estimate install time (rough estimate)
177
+ */
178
+ export function estimateInstallTime() {
179
+ // Typically 20-40 seconds depending on network and CPU
180
+ return '~30 seconds';
181
+ }
182
+ //# sourceMappingURL=package-installer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"package-installer.js","sourceRoot":"","sources":["../../../src/utils/docs-preview/package-installer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Server manager for Docusaurus dev server
3
+ * Handles port finding, server start/stop, browser opening
4
+ */
5
+ import { ServerOptions, ServerProcess } from './types.js';
6
+ /**
7
+ * Find an available port in the given range
8
+ */
9
+ export declare function findAvailablePort(startPort?: number, endPort?: number): Promise<number>;
10
+ /**
11
+ * Start Docusaurus dev server
12
+ */
13
+ export declare function startDevServer(targetDir: string, options: ServerOptions): Promise<ServerProcess>;
14
+ /**
15
+ * Open URL in default browser
16
+ */
17
+ export declare function openBrowserUrl(url: string): Promise<void>;
18
+ /**
19
+ * Kill all Docusaurus processes (SAFE - uses execFileNoThrow)
20
+ */
21
+ export declare function killAllDocusaurusProcesses(): Promise<number>;
22
+ /**
23
+ * Check if Docusaurus server is running
24
+ */
25
+ export declare function isDocusaurusRunning(port: number): Promise<boolean>;
26
+ /**
27
+ * Get server URL
28
+ */
29
+ export declare function getServerUrl(port: number, host?: string): string;
30
+ //# sourceMappingURL=server-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/docs-preview/server-manager.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAG1D;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,GAAE,MAAa,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzG;AAsBD;;GAEG;AACH,wBAAsB,cAAc,CAClC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,aAAa,GACrB,OAAO,CAAC,aAAa,CAAC,CAiCxB;AA8ED;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAG/D;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAwDlE;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAExE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,GAAE,MAAoB,GAAG,MAAM,CAE7E"}