specweave 1.0.264 → 1.0.266
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.md +27 -31
- package/bin/specweave.js +39 -10
- package/dist/dashboard/assets/index-ChpKRRZZ.js +11 -0
- package/dist/dashboard/assets/index-Xlk5xDzZ.css +1 -0
- package/dist/dashboard/index.html +2 -2
- package/dist/src/cli/commands/docs.d.ts +4 -0
- package/dist/src/cli/commands/docs.d.ts.map +1 -1
- package/dist/src/cli/commands/docs.js +83 -59
- package/dist/src/cli/commands/docs.js.map +1 -1
- package/dist/src/core/living-docs/content-distributor.js +1 -1
- package/dist/src/core/living-docs/content-distributor.js.map +1 -1
- package/dist/src/core/living-docs/scaffolding/template-engine.js +1 -1
- package/dist/src/core/living-docs/scaffolding/template-engine.js.map +1 -1
- package/dist/src/core/living-docs/sync-helpers/generators.js +1 -1
- package/dist/src/core/living-docs/sync-helpers/generators.js.map +1 -1
- package/dist/src/core/llm/consent.d.ts +33 -0
- package/dist/src/core/llm/consent.d.ts.map +1 -0
- package/dist/src/core/llm/consent.js +96 -0
- package/dist/src/core/llm/consent.js.map +1 -0
- package/dist/src/core/llm/index.d.ts +2 -0
- package/dist/src/core/llm/index.d.ts.map +1 -1
- package/dist/src/core/llm/index.js +2 -0
- package/dist/src/core/llm/index.js.map +1 -1
- package/dist/src/core/llm/provider-factory.d.ts +2 -0
- package/dist/src/core/llm/provider-factory.d.ts.map +1 -1
- package/dist/src/core/llm/provider-factory.js +9 -0
- package/dist/src/core/llm/provider-factory.js.map +1 -1
- package/dist/src/core/llm/types.d.ts +17 -0
- package/dist/src/core/llm/types.d.ts.map +1 -1
- package/dist/src/core/llm/types.js.map +1 -1
- package/dist/src/core/skills/skill-judge.d.ts +2 -0
- package/dist/src/core/skills/skill-judge.d.ts.map +1 -1
- package/dist/src/core/skills/skill-judge.js +15 -2
- package/dist/src/core/skills/skill-judge.js.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.d.ts.map +1 -1
- package/dist/src/dashboard/server/dashboard-server.js +28 -5
- package/dist/src/dashboard/server/dashboard-server.js.map +1 -1
- package/dist/src/dashboard/server/data/claude-log-parser.d.ts +14 -10
- package/dist/src/dashboard/server/data/claude-log-parser.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/claude-log-parser.js +83 -15
- package/dist/src/dashboard/server/data/claude-log-parser.js.map +1 -1
- package/dist/src/dashboard/server/data/cost-aggregator.d.ts +9 -1
- package/dist/src/dashboard/server/data/cost-aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/cost-aggregator.js +10 -2
- package/dist/src/dashboard/server/data/cost-aggregator.js.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.d.ts.map +1 -1
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js +1 -0
- package/dist/src/dashboard/server/data/dashboard-data-aggregator.js.map +1 -1
- package/dist/src/dashboard/types.d.ts +19 -1
- package/dist/src/dashboard/types.d.ts.map +1 -1
- package/dist/src/importers/import-coordinator.js +8 -8
- package/dist/src/importers/import-coordinator.js.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.d.ts +2 -2
- package/dist/src/utils/docs-preview/config-generator.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/config-generator.js +223 -69
- package/dist/src/utils/docs-preview/config-generator.js.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts +7 -6
- package/dist/src/utils/docs-preview/docusaurus-setup.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/docusaurus-setup.js +121 -59
- package/dist/src/utils/docs-preview/docusaurus-setup.js.map +1 -1
- package/dist/src/utils/docs-preview/index.d.ts +3 -1
- package/dist/src/utils/docs-preview/index.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/index.js +2 -1
- package/dist/src/utils/docs-preview/index.js.map +1 -1
- package/dist/src/utils/docs-preview/project-detector.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/project-detector.js +26 -7
- package/dist/src/utils/docs-preview/project-detector.js.map +1 -1
- package/dist/src/utils/docs-preview/server-manager.d.ts +4 -0
- package/dist/src/utils/docs-preview/server-manager.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/server-manager.js +102 -7
- package/dist/src/utils/docs-preview/server-manager.js.map +1 -1
- package/dist/src/utils/docs-preview/types.d.ts +12 -0
- package/dist/src/utils/docs-preview/types.d.ts.map +1 -1
- package/dist/src/utils/docs-preview/types.js +15 -1
- package/dist/src/utils/docs-preview/types.js.map +1 -1
- package/package.json +1 -6
- package/plugins/specweave/skills/done/SKILL.md +5 -4
- package/plugins/specweave/skills/judge-llm/SKILL.md +18 -0
- package/plugins/specweave-docs/skills/preview/SKILL.md +13 -9
- package/dist/dashboard/assets/index-Cv1XUAKk.css +0 -1
- package/dist/dashboard/assets/index-DHOztQSu.js +0 -11
|
@@ -9,9 +9,9 @@ import { buildSidebar, countDocuments, countCategories } from './sidebar-builder
|
|
|
9
9
|
import { writeDocusaurusConfig, writePackageJSON, writeCustomCSS, writeIndexPage, writeIndexModuleCSS, generateLogoSVG, generateFaviconSVG } from './config-generator.js';
|
|
10
10
|
import { startDevServer, findAvailablePort } from './server-manager.js';
|
|
11
11
|
import { detectProjectMetadata } from './project-detector.js';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
const
|
|
12
|
+
import { SCOPE_PORTS, SCOPE_SITE_DIRS, SCOPE_DOC_DIRS } from './types.js';
|
|
13
|
+
/** Upper bound for port scanning when default port is busy */
|
|
14
|
+
const PORT_RANGE_END = 3030;
|
|
15
15
|
/** Primary theme color used for logo/favicon generation */
|
|
16
16
|
const PRIMARY_COLOR = '#4f46e5';
|
|
17
17
|
/**
|
|
@@ -84,54 +84,108 @@ module.exports = sidebars;
|
|
|
84
84
|
`;
|
|
85
85
|
await fs.writeFile(sidebarPath, autogeneratedSidebar, 'utf-8');
|
|
86
86
|
console.log(' \u2705 Sidebar generated\n');
|
|
87
|
-
// Step 9:
|
|
88
|
-
console.log('8.
|
|
87
|
+
// Step 9: Generate _category_.json for each doc category (prevents 404s)
|
|
88
|
+
console.log('8. Generating category index pages...');
|
|
89
89
|
const categories = config.projectMetadata?.categories || [];
|
|
90
|
-
|
|
90
|
+
let categoryCount = 0;
|
|
91
|
+
for (const cat of categories) {
|
|
92
|
+
const catDir = path.join(docsPath, cat.id);
|
|
93
|
+
if (await fs.pathExists(catDir)) {
|
|
94
|
+
const categoryJson = JSON.stringify({
|
|
95
|
+
label: cat.label,
|
|
96
|
+
position: categories.indexOf(cat) + 1,
|
|
97
|
+
link: {
|
|
98
|
+
type: 'generated-index',
|
|
99
|
+
title: cat.label,
|
|
100
|
+
description: cat.description,
|
|
101
|
+
},
|
|
102
|
+
}, null, 2);
|
|
103
|
+
await fs.writeFile(path.join(catDir, '_category_.json'), categoryJson, 'utf-8');
|
|
104
|
+
categoryCount++;
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
console.log(` \u2705 Generated ${categoryCount} category index pages\n`);
|
|
108
|
+
// Step 10: Create landing page
|
|
109
|
+
console.log('9. Creating landing page...');
|
|
110
|
+
await writeIndexPage(targetDir, config.title, config.tagline, categories, config.projectMetadata?.name);
|
|
91
111
|
await writeIndexModuleCSS(targetDir);
|
|
92
112
|
console.log(' \u2705 Landing page created\n');
|
|
93
|
-
// Step
|
|
94
|
-
console.log('
|
|
113
|
+
// Step 11: Create custom CSS
|
|
114
|
+
console.log('10. Creating custom theme...');
|
|
95
115
|
await writeCustomCSS(targetDir, config.theme || 'default');
|
|
96
116
|
console.log(' \u2705 Theme configured\n');
|
|
97
|
-
// Step
|
|
98
|
-
console.log('
|
|
117
|
+
// Step 12: Generate static assets (logo + favicon)
|
|
118
|
+
console.log('11. Generating project assets...');
|
|
99
119
|
const staticImgDir = path.join(targetDir, 'static', 'img');
|
|
100
120
|
await fs.ensureDir(staticImgDir);
|
|
101
121
|
const metadata = config.projectMetadata;
|
|
102
122
|
if (metadata) {
|
|
103
|
-
|
|
104
|
-
await fs.
|
|
123
|
+
// Use custom logo if available, otherwise generate from initials
|
|
124
|
+
if (metadata.logoPath && await fs.pathExists(metadata.logoPath)) {
|
|
125
|
+
await fs.copyFile(metadata.logoPath, path.join(staticImgDir, 'logo.svg'));
|
|
126
|
+
}
|
|
127
|
+
else {
|
|
128
|
+
const logoSvg = generateLogoSVG(metadata.initials, PRIMARY_COLOR);
|
|
129
|
+
await fs.writeFile(path.join(staticImgDir, 'logo.svg'), logoSvg, 'utf-8');
|
|
130
|
+
}
|
|
105
131
|
const faviconSvg = generateFaviconSVG(metadata.initials, PRIMARY_COLOR);
|
|
106
132
|
await fs.writeFile(path.join(staticImgDir, 'favicon.svg'), faviconSvg, 'utf-8');
|
|
107
133
|
}
|
|
108
134
|
console.log(' \u2705 Assets generated\n');
|
|
135
|
+
// Step 13: Copy increment specs for link resolution in Docusaurus
|
|
136
|
+
console.log('12. Copying increment specs for link resolution...');
|
|
137
|
+
const incrementsSource = path.join(projectRoot, '.specweave', 'increments');
|
|
138
|
+
const incrementsStaticDest = path.join(targetDir, 'static', 'increments');
|
|
139
|
+
if (await fs.pathExists(incrementsSource)) {
|
|
140
|
+
let copiedCount = 0;
|
|
141
|
+
const incrementDirs = await fs.readdir(incrementsSource, { withFileTypes: true });
|
|
142
|
+
for (const dir of incrementDirs) {
|
|
143
|
+
if (!dir.isDirectory() || dir.name.startsWith('_'))
|
|
144
|
+
continue;
|
|
145
|
+
const specFile = path.join(incrementsSource, dir.name, 'spec.md');
|
|
146
|
+
if (await fs.pathExists(specFile)) {
|
|
147
|
+
const destDir = path.join(incrementsStaticDest, dir.name);
|
|
148
|
+
await fs.ensureDir(destDir);
|
|
149
|
+
await fs.copyFile(specFile, path.join(destDir, 'spec.md'));
|
|
150
|
+
copiedCount++;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
console.log(` \u2705 Copied ${copiedCount} increment spec(s)\n`);
|
|
154
|
+
}
|
|
155
|
+
else {
|
|
156
|
+
console.log(' \u2705 No increments to copy\n');
|
|
157
|
+
}
|
|
109
158
|
console.log('\u2705 Setup complete!\n');
|
|
110
159
|
}
|
|
111
160
|
/**
|
|
112
161
|
* Quick setup with defaults — detects project metadata automatically
|
|
113
162
|
*/
|
|
114
|
-
export async function quickSetup(projectRoot) {
|
|
115
|
-
const targetDir = path.join(projectRoot, '.specweave',
|
|
116
|
-
const docsPath = path.join(projectRoot, '.specweave', 'docs',
|
|
163
|
+
export async function quickSetup(projectRoot, scope = 'internal') {
|
|
164
|
+
const targetDir = path.join(projectRoot, '.specweave', SCOPE_SITE_DIRS[scope]);
|
|
165
|
+
const docsPath = path.join(projectRoot, '.specweave', 'docs', SCOPE_DOC_DIRS[scope]);
|
|
117
166
|
// Check if docs exist
|
|
118
167
|
if (!await fs.pathExists(docsPath)) {
|
|
119
|
-
throw new Error(
|
|
120
|
-
'
|
|
121
|
-
|
|
168
|
+
throw new Error(scope === 'public'
|
|
169
|
+
? 'No public documentation found.\n' +
|
|
170
|
+
'Create public docs in .specweave/docs/public/'
|
|
171
|
+
: 'No documentation found.\n' +
|
|
172
|
+
'Create documentation by completing your first increment:\n' +
|
|
173
|
+
' /sw:increment "your feature"');
|
|
122
174
|
}
|
|
123
175
|
// Detect project metadata
|
|
124
176
|
const metadata = await detectProjectMetadata(projectRoot, docsPath);
|
|
177
|
+
const titleSuffix = scope === 'internal' ? ' (Internal)' : '';
|
|
125
178
|
const config = {
|
|
126
|
-
title: `${metadata.name} Documentation`,
|
|
179
|
+
title: `${metadata.name} Documentation${titleSuffix}`,
|
|
127
180
|
tagline: metadata.description,
|
|
128
181
|
url: 'http://localhost',
|
|
129
182
|
baseUrl: '/',
|
|
130
|
-
docsPath:
|
|
131
|
-
port:
|
|
183
|
+
docsPath: `../docs/${SCOPE_DOC_DIRS[scope]}`,
|
|
184
|
+
port: SCOPE_PORTS[scope],
|
|
132
185
|
theme: 'default',
|
|
133
|
-
excludeFolders: ['legacy', 'node_modules'],
|
|
134
|
-
projectMetadata: metadata
|
|
186
|
+
excludeFolders: ['legacy', 'node_modules', '_archive'],
|
|
187
|
+
projectMetadata: metadata,
|
|
188
|
+
scope
|
|
135
189
|
};
|
|
136
190
|
await setupDocusaurus({
|
|
137
191
|
projectRoot,
|
|
@@ -144,35 +198,43 @@ export async function quickSetup(projectRoot) {
|
|
|
144
198
|
* Launch preview (setup if needed, then start server)
|
|
145
199
|
*/
|
|
146
200
|
export async function launchPreview(projectRoot, options = {}) {
|
|
147
|
-
const
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
//
|
|
152
|
-
if (
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
baseUrl: '/',
|
|
160
|
-
docsPath: '../docs/internal',
|
|
161
|
-
port: DEFAULT_PORT_START,
|
|
162
|
-
theme: 'default',
|
|
163
|
-
excludeFolders: ['legacy', 'node_modules'],
|
|
164
|
-
projectMetadata: metadata
|
|
165
|
-
};
|
|
166
|
-
await setupDocusaurus({
|
|
167
|
-
projectRoot,
|
|
168
|
-
targetDir,
|
|
169
|
-
docsPath: path.join(projectRoot, '.specweave', 'docs', 'internal'),
|
|
170
|
-
config,
|
|
171
|
-
force: true
|
|
172
|
-
});
|
|
201
|
+
const scope = options.scope || 'internal';
|
|
202
|
+
const targetDir = path.join(projectRoot, '.specweave', SCOPE_SITE_DIRS[scope]);
|
|
203
|
+
const docsPath = path.join(projectRoot, '.specweave', 'docs', SCOPE_DOC_DIRS[scope]);
|
|
204
|
+
const defaultPort = SCOPE_PORTS[scope];
|
|
205
|
+
// Check if docs exist
|
|
206
|
+
if (!await fs.pathExists(docsPath)) {
|
|
207
|
+
throw new Error(scope === 'public'
|
|
208
|
+
? 'No public documentation found.\n' +
|
|
209
|
+
'Create public docs in .specweave/docs/public/'
|
|
210
|
+
: 'No documentation found.\n' +
|
|
211
|
+
'Create documentation by completing your first increment:\n' +
|
|
212
|
+
' /sw:increment "your feature"');
|
|
173
213
|
}
|
|
174
|
-
//
|
|
175
|
-
const
|
|
214
|
+
// Detect project metadata and run setup once (force flag passed through)
|
|
215
|
+
const metadata = await detectProjectMetadata(projectRoot, docsPath);
|
|
216
|
+
const titleSuffix = scope === 'internal' ? ' (Internal)' : '';
|
|
217
|
+
const config = {
|
|
218
|
+
title: `${metadata.name} Documentation${titleSuffix}`,
|
|
219
|
+
tagline: metadata.description,
|
|
220
|
+
url: 'http://localhost',
|
|
221
|
+
baseUrl: '/',
|
|
222
|
+
docsPath: `../docs/${SCOPE_DOC_DIRS[scope]}`,
|
|
223
|
+
port: defaultPort,
|
|
224
|
+
theme: 'default',
|
|
225
|
+
excludeFolders: ['legacy', 'node_modules', '_archive'],
|
|
226
|
+
projectMetadata: metadata,
|
|
227
|
+
scope
|
|
228
|
+
};
|
|
229
|
+
await setupDocusaurus({
|
|
230
|
+
projectRoot,
|
|
231
|
+
targetDir,
|
|
232
|
+
docsPath,
|
|
233
|
+
config,
|
|
234
|
+
force: options.force
|
|
235
|
+
});
|
|
236
|
+
// Find available port
|
|
237
|
+
const port = options.port || await findAvailablePort(defaultPort, PORT_RANGE_END);
|
|
176
238
|
console.log(`Starting server on port ${port}...`);
|
|
177
239
|
// Start dev server
|
|
178
240
|
const server = await startDevServer(targetDir, {
|
|
@@ -187,8 +249,8 @@ export async function launchPreview(projectRoot, options = {}) {
|
|
|
187
249
|
/**
|
|
188
250
|
* Build static site
|
|
189
251
|
*/
|
|
190
|
-
export async function buildStaticSite(projectRoot) {
|
|
191
|
-
const targetDir = path.join(projectRoot, '.specweave',
|
|
252
|
+
export async function buildStaticSite(projectRoot, scope = 'internal') {
|
|
253
|
+
const targetDir = path.join(projectRoot, '.specweave', SCOPE_SITE_DIRS[scope]);
|
|
192
254
|
// Check if installed
|
|
193
255
|
if (!await isDocusaurusInstalled(targetDir)) {
|
|
194
256
|
throw new Error('Docusaurus not installed.\n' +
|
|
@@ -221,20 +283,20 @@ export async function buildStaticSite(projectRoot) {
|
|
|
221
283
|
/**
|
|
222
284
|
* Check if setup is needed
|
|
223
285
|
*/
|
|
224
|
-
export async function isSetupNeeded(projectRoot) {
|
|
225
|
-
const targetDir = path.join(projectRoot, '.specweave',
|
|
286
|
+
export async function isSetupNeeded(projectRoot, scope = 'internal') {
|
|
287
|
+
const targetDir = path.join(projectRoot, '.specweave', SCOPE_SITE_DIRS[scope]);
|
|
226
288
|
return !(await isDocusaurusInstalled(targetDir));
|
|
227
289
|
}
|
|
228
290
|
/**
|
|
229
291
|
* Get docs site path
|
|
230
292
|
*/
|
|
231
|
-
export function getDocsSitePath(projectRoot) {
|
|
232
|
-
return path.join(projectRoot, '.specweave',
|
|
293
|
+
export function getDocsSitePath(projectRoot, scope = 'internal') {
|
|
294
|
+
return path.join(projectRoot, '.specweave', SCOPE_SITE_DIRS[scope]);
|
|
233
295
|
}
|
|
234
296
|
/**
|
|
235
297
|
* Get docs path
|
|
236
298
|
*/
|
|
237
|
-
export function getDocsPath(projectRoot) {
|
|
238
|
-
return path.join(projectRoot, '.specweave', 'docs',
|
|
299
|
+
export function getDocsPath(projectRoot, scope = 'internal') {
|
|
300
|
+
return path.join(projectRoot, '.specweave', 'docs', SCOPE_DOC_DIRS[scope]);
|
|
239
301
|
}
|
|
240
302
|
//# sourceMappingURL=docusaurus-setup.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"docusaurus-setup.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/docusaurus-setup.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"docusaurus-setup.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/docusaurus-setup.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACpG,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACrF,OAAO,EACL,qBAAqB,EAAE,gBAAgB,EAAE,cAAc,EACvD,cAAc,EAAE,mBAAmB,EACnC,eAAe,EAAE,kBAAkB,EACpC,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxE,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAA2D,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEnI,8DAA8D;AAC9D,MAAM,cAAc,GAAG,IAAI,CAAC;AAE5B,2DAA2D;AAC3D,MAAM,aAAa,GAAG,SAAS,CAAC;AAEhC;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAqB;IACzD,MAAM,EAAE,WAAW,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,OAAO,CAAC;IAE5E,OAAO,CAAC,GAAG,CAAC,iDAAiD,CAAC,CAAC;IAE/D,gCAAgC;IAChC,OAAO,CAAC,GAAG,CAAC,gCAAgC,CAAC,CAAC;IAC9C,MAAM,WAAW,GAAG,MAAM,gBAAgB,EAAE,CAAC;IAC7C,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CACb,gCAAgC,WAAW,CAAC,OAAO,KAAK;YACtD,2CAA2C,CAC9C,CAAC;IACJ,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,qBAAqB,WAAW,CAAC,OAAO,IAAI,CAAC,CAAC;IAE1D,uEAAuE;IACvE,MAAM,iBAAiB,GAAG,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC;IAEjE,IAAI,CAAC,KAAK,IAAI,iBAAiB,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IACrD,CAAC;SAAM,CAAC;QACN,kCAAkC;QAClC,OAAO,CAAC,GAAG,CAAC,oCAAoC,CAAC,CAAC;QAClD,MAAM,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAE7C,gCAAgC;QAChC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QAC7C,MAAM,gBAAgB,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;QAEhD,sCAAsC;QACtC,OAAO,CAAC,GAAG,CAAC,yDAAyD,CAAC,CAAC;QACvE,MAAM,iBAAiB,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,qEAAqE;IACrE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,qBAAqB,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;IAEnD,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,sCAAsC,CAAC,CAAC;IACpD,MAAM,OAAO,GAAG,MAAM,YAAY,CAAC;QACjC,QAAQ;QACR,cAAc,EAAE,MAAM,CAAC,cAAc,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;QAC/E,QAAQ,EAAE,CAAC;KACZ,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;IACzC,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,mBAAmB,QAAQ,iBAAiB,QAAQ,eAAe,CAAC,CAAC;IAEjF,sCAAsC;IACtC,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IACxD,MAAM,oBAAoB,GAAG;;gBAEf,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;;;;;;;;;;;;;;;CAevC,CAAC;IACA,MAAM,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,oBAAoB,EAAE,OAAO,CAAC,CAAC;IAC/D,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;IAE7C,yEAAyE;IACzE,OAAO,CAAC,GAAG,CAAC,uCAAuC,CAAC,CAAC;IACrD,MAAM,UAAU,GAAG,MAAM,CAAC,eAAe,EAAE,UAAU,IAAI,EAAE,CAAC;IAC5D,IAAI,aAAa,GAAG,CAAC,CAAC;IACtB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE,CAAC;QAC7B,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YAChC,MAAM,YAAY,GAAG,IAAI,CAAC,SAAS,CAAC;gBAClC,KAAK,EAAE,GAAG,CAAC,KAAK;gBAChB,QAAQ,EAAE,UAAU,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC;gBACrC,IAAI,EAAE;oBACJ,IAAI,EAAE,iBAAiB;oBACvB,KAAK,EAAE,GAAG,CAAC,KAAK;oBAChB,WAAW,EAAE,GAAG,CAAC,WAAW;iBAC7B;aACF,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;YACZ,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;YAChF,aAAa,EAAE,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,uBAAuB,aAAa,yBAAyB,CAAC,CAAC;IAE3E,+BAA+B;IAC/B,OAAO,CAAC,GAAG,CAAC,6BAA6B,CAAC,CAAC;IAC3C,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,EAAE,MAAM,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;IACxG,MAAM,mBAAmB,CAAC,SAAS,CAAC,CAAC;IACrC,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAEhD,6BAA6B;IAC7B,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAC5C,MAAM,cAAc,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,IAAI,SAAS,CAAC,CAAC;IAC3D,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,mDAAmD;IACnD,OAAO,CAAC,GAAG,CAAC,kCAAkC,CAAC,CAAC;IAChD,MAAM,YAAY,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;IAC3D,MAAM,EAAE,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC;IAEjC,MAAM,QAAQ,GAAG,MAAM,CAAC,eAAe,CAAC;IACxC,IAAI,QAAQ,EAAE,CAAC;QACb,iEAAiE;QACjE,IAAI,QAAQ,CAAC,QAAQ,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;YAChE,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC,CAAC;QAC5E,CAAC;aAAM,CAAC;YACN,MAAM,OAAO,GAAG,eAAe,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YAClE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAC5E,CAAC;QAED,MAAM,UAAU,GAAG,kBAAkB,CAAC,QAAQ,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;QACxE,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,aAAa,CAAC,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAClF,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;IAE5C,kEAAkE;IAClE,OAAO,CAAC,GAAG,CAAC,oDAAoD,CAAC,CAAC;IAClE,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC;IAC5E,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE1E,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;QAC1C,IAAI,WAAW,GAAG,CAAC,CAAC;QACpB,MAAM,aAAa,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QAElF,KAAK,MAAM,GAAG,IAAI,aAAa,EAAE,CAAC;YAChC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;gBAAE,SAAS;YAC7D,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;YAClE,IAAI,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAClC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;gBAC1D,MAAM,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;gBAC5B,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC3D,WAAW,EAAE,CAAC;YAChB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,oBAAoB,WAAW,sBAAsB,CAAC,CAAC;IACrE,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,mCAAmC,CAAC,CAAC;IACnD,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,WAAmB,EAAE,QAAkB,UAAU;IAChF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IAErF,sBAAsB;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,kCAAkC;gBAClC,+CAA+C;YACjD,CAAC,CAAC,2BAA2B;gBAC3B,4DAA4D;gBAC5D,gCAAgC,CACrC,CAAC;IACJ,CAAC;IAED,0BAA0B;IAC1B,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAE9D,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,iBAAiB,WAAW,EAAE;QACrD,OAAO,EAAE,QAAQ,CAAC,WAAW;QAC7B,GAAG,EAAE,kBAAkB;QACvB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,WAAW,cAAc,CAAC,KAAK,CAAC,EAAE;QAC5C,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC;QACxB,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;QACtD,eAAe,EAAE,QAAQ;QACzB,KAAK;KACN,CAAC;IAEF,MAAM,eAAe,CAAC;QACpB,WAAW;QACX,SAAS;QACT,QAAQ;QACR,MAAM;KACP,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CACjC,WAAmB,EACnB,UAAuF,EAAE;IAEzF,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,UAAU,CAAC;IAC1C,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;IACrF,MAAM,WAAW,GAAG,WAAW,CAAC,KAAK,CAAC,CAAC;IAEvC,sBAAsB;IACtB,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CACb,KAAK,KAAK,QAAQ;YAChB,CAAC,CAAC,kCAAkC;gBAClC,+CAA+C;YACjD,CAAC,CAAC,2BAA2B;gBAC3B,4DAA4D;gBAC5D,gCAAgC,CACrC,CAAC;IACJ,CAAC;IAED,yEAAyE;IACzE,MAAM,QAAQ,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IACpE,MAAM,WAAW,GAAG,KAAK,KAAK,UAAU,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAC9D,MAAM,MAAM,GAAqB;QAC/B,KAAK,EAAE,GAAG,QAAQ,CAAC,IAAI,iBAAiB,WAAW,EAAE;QACrD,OAAO,EAAE,QAAQ,CAAC,WAAW;QAC7B,GAAG,EAAE,kBAAkB;QACvB,OAAO,EAAE,GAAG;QACZ,QAAQ,EAAE,WAAW,cAAc,CAAC,KAAK,CAAC,EAAE;QAC5C,IAAI,EAAE,WAAW;QACjB,KAAK,EAAE,SAAS;QAChB,cAAc,EAAE,CAAC,QAAQ,EAAE,cAAc,EAAE,UAAU,CAAC;QACtD,eAAe,EAAE,QAAQ;QACzB,KAAK;KACN,CAAC;IAEF,MAAM,eAAe,CAAC;QACpB,WAAW;QACX,SAAS;QACT,QAAQ;QACR,MAAM;QACN,KAAK,EAAE,OAAO,CAAC,KAAK;KACrB,CAAC,CAAC;IAEH,sBAAsB;IACtB,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,MAAM,iBAAiB,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,2BAA2B,IAAI,KAAK,CAAC,CAAC;IAElD,mBAAmB;IACnB,MAAM,MAAM,GAAG,MAAM,cAAc,CAAC,SAAS,EAAE;QAC7C,IAAI;QACJ,WAAW,EAAE,OAAO,CAAC,WAAW,KAAK,KAAK;KAC3C,CAAC,CAAC;IAEH,OAAO,CAAC,GAAG,CAAC,2CAA2C,MAAM,CAAC,GAAG,EAAE,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,oEAAoE,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,6CAA6C,CAAC,CAAC;IAE3D,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,WAAmB,EAAE,QAAkB,UAAU;IACrF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAE/E,qBAAqB;IACrB,IAAI,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,MAAM,IAAI,KAAK,CACb,6BAA6B;YAC3B,8CAA8C,CACjD,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,mDAAmD,CAAC,CAAC;IAEjE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,MAAM,CAAC,eAAe,CAAC,CAAC;IAEhD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,MAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE;YAClD,GAAG,EAAE,SAAS;YACd,KAAK,EAAE,SAAS;YAChB,KAAK,EAAE,IAAI;SACZ,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE;YAChC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;gBACf,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;gBAChD,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC,CAAC;gBACxC,OAAO,CAAC,GAAG,CAAC,qBAAqB,SAAS,IAAI,CAAC,CAAC;gBAChD,OAAO,EAAE,CAAC;YACZ,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,IAAI,EAAE,CAAC,CAAC,CAAC;YACtD,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,EAAE,EAAE;YACjC,MAAM,CAAC,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/D,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,WAAmB,EAAE,QAAkB,UAAU;IACnF,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/E,OAAO,CAAC,CAAC,MAAM,qBAAqB,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,WAAmB,EAAE,QAAkB,UAAU;IAC/E,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;AACtE,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,WAAmB,EAAE,QAAkB,UAAU;IAC3E,OAAO,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC;AAC7E,CAAC"}
|
|
@@ -3,6 +3,8 @@ export { buildSidebar, writeSidebar, generateSidebarsJS, countDocuments, countCa
|
|
|
3
3
|
export { generateDocusaurusConfig, writeDocusaurusConfig, generatePackageJSON, writePackageJSON, generateCustomCSS, writeCustomCSS, generateIndexPage, writeIndexPage, generateIndexModuleCSS, writeIndexModuleCSS, generateLogoSVG, generateFaviconSVG } from './config-generator.js';
|
|
4
4
|
export { detectProjectMetadata, detectDocCategories } from './project-detector.js';
|
|
5
5
|
export { checkNodeVersion, checkNpmInstalled, installPackages, installDocusaurus, isDocusaurusInstalled, cleanNpmCache, getPackageVersion, estimateInstallSize, estimateInstallTime } from './package-installer.js';
|
|
6
|
-
export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, isDocusaurusRunning, getServerUrl } from './server-manager.js';
|
|
6
|
+
export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, killProcessOnPort, isDocusaurusRunning, getServerUrl } from './server-manager.js';
|
|
7
|
+
export type { DocScope } from './types.js';
|
|
8
|
+
export { SCOPE_PORTS, SCOPE_SITE_DIRS, SCOPE_DOC_DIRS } from './types.js';
|
|
7
9
|
export * from './types.js';
|
|
8
10
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1E,cAAc,YAAY,CAAC"}
|
|
@@ -3,6 +3,7 @@ export { buildSidebar, writeSidebar, generateSidebarsJS, countDocuments, countCa
|
|
|
3
3
|
export { generateDocusaurusConfig, writeDocusaurusConfig, generatePackageJSON, writePackageJSON, generateCustomCSS, writeCustomCSS, generateIndexPage, writeIndexPage, generateIndexModuleCSS, writeIndexModuleCSS, generateLogoSVG, generateFaviconSVG } from './config-generator.js';
|
|
4
4
|
export { detectProjectMetadata, detectDocCategories } from './project-detector.js';
|
|
5
5
|
export { checkNodeVersion, checkNpmInstalled, installPackages, installDocusaurus, isDocusaurusInstalled, cleanNpmCache, getPackageVersion, estimateInstallSize, estimateInstallTime } from './package-installer.js';
|
|
6
|
-
export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, isDocusaurusRunning, getServerUrl } from './server-manager.js';
|
|
6
|
+
export { findAvailablePort, startDevServer, openBrowserUrl, killAllDocusaurusProcesses, killProcessOnPort, isDocusaurusRunning, getServerUrl } from './server-manager.js';
|
|
7
|
+
export { SCOPE_PORTS, SCOPE_SITE_DIRS, SCOPE_DOC_DIRS } from './types.js';
|
|
7
8
|
export * from './types.js';
|
|
8
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,aAAa,EACb,eAAe,EACf,WAAW,EACZ,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,eAAe,EAChB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACrB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,sBAAsB,EACtB,mBAAmB,EACnB,eAAe,EACf,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACpB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,gBAAgB,EAChB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,qBAAqB,EACrB,aAAa,EACb,iBAAiB,EACjB,mBAAmB,EACnB,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACb,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,WAAW,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC1E,cAAc,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../../../src/utils/docs-preview/project-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2B1D;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,
|
|
1
|
+
{"version":3,"file":"project-detector.d.ts","sourceRoot":"","sources":["../../../../src/utils/docs-preview/project-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2B1D;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,eAAe,CAAC,CAO1B;AAgDD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CA8ClF"}
|
|
@@ -37,7 +37,8 @@ export async function detectProjectMetadata(projectRoot, docsPath) {
|
|
|
37
37
|
const { name, description, source } = await detectNameAndDescription(projectRoot);
|
|
38
38
|
const initials = extractInitials(name);
|
|
39
39
|
const categories = await detectDocCategories(docsPath);
|
|
40
|
-
|
|
40
|
+
const logoPath = await detectCustomLogo(projectRoot);
|
|
41
|
+
return { name, description, initials, categories, source, logoPath: logoPath ?? undefined };
|
|
41
42
|
}
|
|
42
43
|
/**
|
|
43
44
|
* Detect project name and description from config.json, package.json, or directory
|
|
@@ -53,7 +54,7 @@ async function detectNameAndDescription(projectRoot) {
|
|
|
53
54
|
if (configName && typeof configName === 'string') {
|
|
54
55
|
const description = raw.project?.description
|
|
55
56
|
|| raw.research?.vision?.rawVision
|
|
56
|
-
||
|
|
57
|
+
|| 'Project Documentation';
|
|
57
58
|
return { name: configName, description: truncateDescription(description), source: 'config' };
|
|
58
59
|
}
|
|
59
60
|
}
|
|
@@ -68,7 +69,7 @@ async function detectNameAndDescription(projectRoot) {
|
|
|
68
69
|
const pkg = JSON.parse(await fs.readFile(packagePath, 'utf-8'));
|
|
69
70
|
if (pkg.name && typeof pkg.name === 'string') {
|
|
70
71
|
const name = formatPackageName(pkg.name);
|
|
71
|
-
const description = pkg.description ||
|
|
72
|
+
const description = pkg.description || 'Project Documentation';
|
|
72
73
|
return { name, description: truncateDescription(description), source: 'package' };
|
|
73
74
|
}
|
|
74
75
|
}
|
|
@@ -76,10 +77,10 @@ async function detectNameAndDescription(projectRoot) {
|
|
|
76
77
|
// Package parse error, fall through
|
|
77
78
|
}
|
|
78
79
|
}
|
|
79
|
-
// Source 3: directory name
|
|
80
|
-
const dirName = path.basename(projectRoot);
|
|
80
|
+
// Source 3: directory name (resolve first so "." becomes actual dir name)
|
|
81
|
+
const dirName = path.basename(path.resolve(projectRoot));
|
|
81
82
|
const name = formatDirectoryName(dirName);
|
|
82
|
-
return { name, description:
|
|
83
|
+
return { name, description: 'Project Documentation', source: 'directory' };
|
|
83
84
|
}
|
|
84
85
|
/**
|
|
85
86
|
* Detect actual doc categories from the docs folder
|
|
@@ -181,7 +182,7 @@ function formatDirectoryName(name) {
|
|
|
181
182
|
return name
|
|
182
183
|
.replace(/[-_]/g, ' ')
|
|
183
184
|
.split(' ')
|
|
184
|
-
.map(word => word.charAt(0).toUpperCase() + word.slice(1))
|
|
185
|
+
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
185
186
|
.join(' ');
|
|
186
187
|
}
|
|
187
188
|
/**
|
|
@@ -202,6 +203,24 @@ function formatLabel(folderName) {
|
|
|
202
203
|
.map(word => word.charAt(0).toUpperCase() + word.slice(1).toLowerCase())
|
|
203
204
|
.join(' ');
|
|
204
205
|
}
|
|
206
|
+
/**
|
|
207
|
+
* Detect a custom logo file in the project
|
|
208
|
+
* Checks common locations in priority order
|
|
209
|
+
*/
|
|
210
|
+
async function detectCustomLogo(projectRoot) {
|
|
211
|
+
const candidates = [
|
|
212
|
+
path.join(projectRoot, '.specweave', 'logo.svg'),
|
|
213
|
+
path.join(projectRoot, '.specweave', 'logo.png'),
|
|
214
|
+
path.join(projectRoot, 'logo.svg'),
|
|
215
|
+
path.join(projectRoot, 'logo.png'),
|
|
216
|
+
];
|
|
217
|
+
for (const candidate of candidates) {
|
|
218
|
+
if (await fs.pathExists(candidate)) {
|
|
219
|
+
return candidate;
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
return null;
|
|
223
|
+
}
|
|
205
224
|
/**
|
|
206
225
|
* Truncate long descriptions for tagline use
|
|
207
226
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/project-detector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,IAAI,MAAM,MAAM,CAAC;AAC7B,OAAO,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAG/C;;GAEG;AACH,MAAM,aAAa,GAA0D;IAC3E,QAAQ,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,WAAW,EAAE;IAClF,KAAK,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,IAAI,EAAE,WAAW,EAAE;IACpF,cAAc,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7F,YAAY,EAAE,EAAE,WAAW,EAAE,sCAAsC,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAChG,QAAQ,EAAE,EAAE,WAAW,EAAE,wCAAwC,EAAE,IAAI,EAAE,WAAW,EAAE;IACtF,UAAU,EAAE,EAAE,WAAW,EAAE,yCAAyC,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAChG,UAAU,EAAE,EAAE,WAAW,EAAE,oCAAoC,EAAE,IAAI,EAAE,mBAAmB,EAAE;IAC5F,MAAM,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,WAAW,EAAE;IACzE,OAAO,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,WAAW,EAAE;IAC5E,QAAQ,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,WAAW,EAAE;IAC7E,eAAe,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,WAAW,EAAE;IACxF,KAAK,EAAE,EAAE,WAAW,EAAE,0BAA0B,EAAE,IAAI,EAAE,WAAW,EAAE;IACrE,YAAY,EAAE,EAAE,WAAW,EAAE,iCAAiC,EAAE,IAAI,EAAE,WAAW,EAAE;IACnF,GAAG,EAAE,EAAE,WAAW,EAAE,6BAA6B,EAAE,IAAI,EAAE,WAAW,EAAE;IACtE,OAAO,EAAE,EAAE,WAAW,EAAE,kCAAkC,EAAE,IAAI,EAAE,UAAU,EAAE;IAC9E,QAAQ,EAAE,EAAE,WAAW,EAAE,mCAAmC,EAAE,IAAI,EAAE,WAAW,EAAE;IACjF,MAAM,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,IAAI,EAAE,WAAW,EAAE;IAC1E,cAAc,EAAE,EAAE,WAAW,EAAE,+BAA+B,EAAE,IAAI,EAAE,kBAAkB,EAAE;IAC1F,QAAQ,EAAE,EAAE,WAAW,EAAE,uBAAuB,EAAE,IAAI,EAAE,WAAW,EAAE;CACtE,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,QAAgB;IAEhB,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,wBAAwB,CAAC,WAAW,CAAC,CAAC;IAClF,MAAM,QAAQ,GAAG,eAAe,CAAC,IAAI,CAAC,CAAC;IACvC,MAAM,UAAU,GAAG,MAAM,mBAAmB,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"project-detector.js","sourceRoot":"","sources":["../../../../src/utils/docs-preview/project-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,10 @@ export declare function openBrowserUrl(url: string): Promise<void>;
|
|
|
19
19
|
* Kill all Docusaurus processes (SAFE - uses execFileNoThrow)
|
|
20
20
|
*/
|
|
21
21
|
export declare function killAllDocusaurusProcesses(): Promise<number>;
|
|
22
|
+
/**
|
|
23
|
+
* Kill process occupying a specific port
|
|
24
|
+
*/
|
|
25
|
+
export declare function killProcessOnPort(port: number): Promise<boolean>;
|
|
22
26
|
/**
|
|
23
27
|
* Check if Docusaurus server is running
|
|
24
28
|
*/
|
|
@@ -1 +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;AAE1D;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,GAAE,MAAa,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzG;AAsBD;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,
|
|
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;AAE1D;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,SAAS,GAAE,MAAa,EAAE,OAAO,GAAE,MAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAQzG;AAsBD;;GAEG;AACH,wBAAsB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC,CAwEtG;AA8GD;;GAEG;AACH,wBAAsB,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAO/D;AAED;;GAEG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,MAAM,CAAC,CAwDlE;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAgCtE;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"}
|
|
@@ -42,35 +42,94 @@ export async function startDevServer(targetDir, options) {
|
|
|
42
42
|
throw new Error(`Port ${port} is already in use`);
|
|
43
43
|
}
|
|
44
44
|
// Start Docusaurus dev server
|
|
45
|
-
const
|
|
45
|
+
const childProc = spawn('npm', ['run', 'start', '--', '--port', port.toString(), '--host', host], {
|
|
46
46
|
cwd: targetDir,
|
|
47
47
|
stdio: ['ignore', 'pipe', 'pipe'],
|
|
48
48
|
shell: true
|
|
49
49
|
});
|
|
50
|
+
// Collect stderr for diagnostics on failure (capped to prevent unbounded growth)
|
|
51
|
+
const STDERR_MAX = 8192;
|
|
52
|
+
let stderrOutput = '';
|
|
53
|
+
childProc.stderr?.on('data', (data) => {
|
|
54
|
+
if (stderrOutput.length < STDERR_MAX) {
|
|
55
|
+
stderrOutput += data.toString();
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
// Forward key stdout lines so users see Docusaurus compilation progress
|
|
59
|
+
// Filter out verbose warnings (broken links, deprecations) to keep output clean
|
|
60
|
+
childProc.stdout?.on('data', (data) => {
|
|
61
|
+
const lines = data.toString().split('\n');
|
|
62
|
+
for (const raw of lines) {
|
|
63
|
+
const line = raw.trim();
|
|
64
|
+
if (!line)
|
|
65
|
+
continue;
|
|
66
|
+
// Only show progress-relevant lines, skip verbose warnings
|
|
67
|
+
if (line.includes('[WARNING]'))
|
|
68
|
+
continue;
|
|
69
|
+
console.log(` ${line}`);
|
|
70
|
+
}
|
|
71
|
+
});
|
|
72
|
+
// Track whether the process has exited
|
|
73
|
+
let processExited = false;
|
|
74
|
+
let exitCode = null;
|
|
75
|
+
childProc.on('exit', (code) => {
|
|
76
|
+
processExited = true;
|
|
77
|
+
exitCode = code;
|
|
78
|
+
});
|
|
50
79
|
const url = `http://${host}:${port}`;
|
|
51
|
-
// Wait for server to be ready
|
|
52
|
-
//
|
|
53
|
-
await waitForServer(url,
|
|
80
|
+
// Wait for server to be ready (fail fast if process crashes)
|
|
81
|
+
// 180s timeout for very large doc sites on slow machines; crash detection makes this a soft ceiling
|
|
82
|
+
await waitForServer(url, 180000, () => {
|
|
83
|
+
if (processExited) {
|
|
84
|
+
const errorSnippet = extractErrorFromOutput(stderrOutput);
|
|
85
|
+
throw new Error(`Docusaurus process exited with code ${exitCode} before server was ready.` +
|
|
86
|
+
(errorSnippet ? `\n\nError details:\n${errorSnippet}` : '\n\nRun manually for full output: cd .specweave/docs-site-internal && npx docusaurus start'));
|
|
87
|
+
}
|
|
88
|
+
});
|
|
54
89
|
// Open browser if requested
|
|
55
90
|
if (openBrowser) {
|
|
56
91
|
await openBrowserUrl(url);
|
|
57
92
|
}
|
|
58
93
|
return {
|
|
59
|
-
pid:
|
|
94
|
+
pid: childProc.pid,
|
|
60
95
|
port,
|
|
61
96
|
url,
|
|
62
97
|
stop: async () => {
|
|
63
|
-
await stopServer(
|
|
98
|
+
await stopServer(childProc);
|
|
64
99
|
}
|
|
65
100
|
};
|
|
66
101
|
}
|
|
102
|
+
/**
|
|
103
|
+
* Extract meaningful error message from Docusaurus stderr output
|
|
104
|
+
*/
|
|
105
|
+
function extractErrorFromOutput(output) {
|
|
106
|
+
if (!output)
|
|
107
|
+
return '';
|
|
108
|
+
// Look for [ERROR] lines which Docusaurus uses for fatal errors
|
|
109
|
+
const errorLines = output.split('\n').filter(line => line.includes('[ERROR]') || line.includes('Error:') || line.includes('YAMLException'));
|
|
110
|
+
if (errorLines.length > 0) {
|
|
111
|
+
return errorLines.slice(0, 5).join('\n');
|
|
112
|
+
}
|
|
113
|
+
// Return last meaningful lines if no specific error pattern found
|
|
114
|
+
const lines = output.trim().split('\n').filter(l => l.trim());
|
|
115
|
+
return lines.slice(-5).join('\n');
|
|
116
|
+
}
|
|
67
117
|
/**
|
|
68
118
|
* Wait for server to be ready
|
|
119
|
+
* @param checkProcessAlive - Optional callback that throws if the server process has crashed
|
|
69
120
|
*/
|
|
70
|
-
function waitForServer(url, timeout) {
|
|
121
|
+
function waitForServer(url, timeout, checkProcessAlive) {
|
|
71
122
|
return new Promise((resolve, reject) => {
|
|
72
123
|
const startTime = Date.now();
|
|
73
124
|
const check = async () => {
|
|
125
|
+
// Check if process crashed before making HTTP request
|
|
126
|
+
try {
|
|
127
|
+
checkProcessAlive?.();
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
reject(err);
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
74
133
|
try {
|
|
75
134
|
const http = await import('http');
|
|
76
135
|
const urlObj = new URL(url);
|
|
@@ -198,6 +257,42 @@ export async function killAllDocusaurusProcesses() {
|
|
|
198
257
|
return 0;
|
|
199
258
|
}
|
|
200
259
|
}
|
|
260
|
+
/**
|
|
261
|
+
* Kill process occupying a specific port
|
|
262
|
+
*/
|
|
263
|
+
export async function killProcessOnPort(port) {
|
|
264
|
+
const platform = process.platform;
|
|
265
|
+
try {
|
|
266
|
+
if (platform === 'win32') {
|
|
267
|
+
const result = await execFileNoThrow('netstat', ['-ano']);
|
|
268
|
+
if (!result.success)
|
|
269
|
+
return false;
|
|
270
|
+
const lines = result.stdout.split('\n')
|
|
271
|
+
.filter(line => line.includes(`:${port}`) && line.includes('LISTENING'));
|
|
272
|
+
for (const line of lines) {
|
|
273
|
+
const parts = line.trim().split(/\s+/);
|
|
274
|
+
const pid = parts[parts.length - 1];
|
|
275
|
+
if (pid && /^\d+$/.test(pid)) {
|
|
276
|
+
await execFileNoThrow('taskkill', ['/F', '/PID', pid]);
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
return lines.length > 0;
|
|
280
|
+
}
|
|
281
|
+
else {
|
|
282
|
+
const result = await execFileNoThrow('lsof', ['-ti', `:${port}`]);
|
|
283
|
+
if (!result.success || !result.stdout.trim())
|
|
284
|
+
return false;
|
|
285
|
+
const pids = result.stdout.trim().split('\n').filter(p => p.trim());
|
|
286
|
+
for (const pid of pids) {
|
|
287
|
+
await execFileNoThrow('kill', ['-9', pid.trim()]);
|
|
288
|
+
}
|
|
289
|
+
return pids.length > 0;
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
catch {
|
|
293
|
+
return false;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
201
296
|
/**
|
|
202
297
|
* Check if Docusaurus server is running
|
|
203
298
|
*/
|