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.
- package/.claude-plugin/marketplace.json +11 -0
- package/dist/adapters/adapter-loader.d.ts +4 -4
- package/dist/adapters/adapter-loader.d.ts.map +1 -1
- package/dist/adapters/adapter-loader.js +8 -7
- package/dist/adapters/adapter-loader.js.map +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +78 -21
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/metrics/calculators/change-failure-rate.d.ts +1 -1
- package/dist/metrics/calculators/change-failure-rate.d.ts.map +1 -1
- package/dist/metrics/calculators/change-failure-rate.js +1 -1
- package/dist/metrics/calculators/change-failure-rate.js.map +1 -1
- package/dist/metrics/calculators/deployment-frequency.d.ts +1 -1
- package/dist/metrics/calculators/deployment-frequency.d.ts.map +1 -1
- package/dist/metrics/calculators/deployment-frequency.js +1 -1
- package/dist/metrics/calculators/deployment-frequency.js.map +1 -1
- package/dist/metrics/calculators/lead-time.d.ts +1 -1
- package/dist/metrics/calculators/lead-time.d.ts.map +1 -1
- package/dist/metrics/calculators/lead-time.js +2 -2
- package/dist/metrics/calculators/lead-time.js.map +1 -1
- package/dist/metrics/calculators/mttr.d.ts +1 -1
- package/dist/metrics/calculators/mttr.d.ts.map +1 -1
- package/dist/metrics/calculators/mttr.js +2 -2
- package/dist/metrics/calculators/mttr.js.map +1 -1
- package/dist/metrics/dora-calculator.d.ts +2 -2
- package/dist/metrics/dora-calculator.d.ts.map +1 -1
- package/dist/metrics/dora-calculator.js +5 -5
- package/dist/metrics/dora-calculator.js.map +1 -1
- package/dist/metrics/github-client.d.ts +1 -1
- package/dist/metrics/github-client.d.ts.map +1 -1
- package/dist/metrics/utils/tier-classifier.d.ts +1 -1
- package/dist/metrics/utils/tier-classifier.d.ts.map +1 -1
- package/dist/utils/docs-preview/config-generator.d.ts +46 -0
- package/dist/utils/docs-preview/config-generator.d.ts.map +1 -0
- package/dist/utils/docs-preview/config-generator.js +377 -0
- package/dist/utils/docs-preview/config-generator.js.map +1 -0
- package/dist/utils/docs-preview/docusaurus-setup.d.ts +38 -0
- package/dist/utils/docs-preview/docusaurus-setup.d.ts.map +1 -0
- package/dist/utils/docs-preview/docusaurus-setup.js +177 -0
- package/dist/utils/docs-preview/docusaurus-setup.js.map +1 -0
- package/dist/utils/docs-preview/index.d.ts +11 -0
- package/dist/utils/docs-preview/index.d.ts.map +1 -0
- package/dist/utils/docs-preview/index.js +17 -0
- package/dist/utils/docs-preview/index.js.map +1 -0
- package/dist/utils/docs-preview/package-installer.d.ts +42 -0
- package/dist/utils/docs-preview/package-installer.d.ts.map +1 -0
- package/dist/utils/docs-preview/package-installer.js +182 -0
- package/dist/utils/docs-preview/package-installer.js.map +1 -0
- package/dist/utils/docs-preview/server-manager.d.ts +30 -0
- package/dist/utils/docs-preview/server-manager.d.ts.map +1 -0
- package/dist/utils/docs-preview/server-manager.js +207 -0
- package/dist/utils/docs-preview/server-manager.js.map +1 -0
- package/dist/utils/docs-preview/sidebar-builder.d.ts +31 -0
- package/dist/utils/docs-preview/sidebar-builder.d.ts.map +1 -0
- package/dist/utils/docs-preview/sidebar-builder.js +202 -0
- package/dist/utils/docs-preview/sidebar-builder.js.map +1 -0
- package/dist/utils/docs-preview/types.d.ts +60 -0
- package/dist/utils/docs-preview/types.d.ts.map +1 -0
- package/dist/utils/docs-preview/types.js +5 -0
- package/dist/utils/docs-preview/types.js.map +1 -0
- package/dist/utils/docs-preview.bak/config-generator.d.ts +46 -0
- package/dist/utils/docs-preview.bak/config-generator.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/config-generator.js +377 -0
- package/dist/utils/docs-preview.bak/config-generator.js.map +1 -0
- package/dist/utils/docs-preview.bak/package-installer.d.ts +42 -0
- package/dist/utils/docs-preview.bak/package-installer.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/package-installer.js +182 -0
- package/dist/utils/docs-preview.bak/package-installer.js.map +1 -0
- package/dist/utils/docs-preview.bak/server-manager.d.ts +30 -0
- package/dist/utils/docs-preview.bak/server-manager.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/server-manager.js +207 -0
- package/dist/utils/docs-preview.bak/server-manager.js.map +1 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.d.ts +31 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.js +202 -0
- package/dist/utils/docs-preview.bak/sidebar-builder.js.map +1 -0
- package/dist/utils/docs-preview.bak/types.d.ts +60 -0
- package/dist/utils/docs-preview.bak/types.d.ts.map +1 -0
- package/dist/utils/docs-preview.bak/types.js +5 -0
- package/dist/utils/docs-preview.bak/types.js.map +1 -0
- package/package.json +2 -1
- package/dist/cli/commands/plugin.js +0 -322
- package/dist/cli/commands/plugin.js.map +0 -1
- package/dist/core/plugin-detector.d.ts +0 -97
- package/dist/core/plugin-detector.d.ts.map +0 -1
- package/dist/core/plugin-detector.js +0 -374
- package/dist/core/plugin-detector.js.map +0 -1
- package/dist/core/plugin-manager.d.ts +0 -144
- package/dist/core/plugin-manager.d.ts.map +0 -1
- package/dist/core/plugin-manager.js +0 -393
- package/dist/core/plugin-manager.js.map +0 -1
- package/dist/utils/plugin-detection.js +0 -229
- 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"}
|