@mdfriday/foundry 26.2.7 → 26.2.8
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/dist/index.js +1 -1
- package/dist/worker/pool-manager.js +387 -388
- package/dist/worker/worker-node.js +387 -388
- package/package.json +1 -1
|
@@ -47,13 +47,12 @@ function New3(level = "info" /* INFO */) {
|
|
|
47
47
|
function NewWithConfig(config2) {
|
|
48
48
|
return new Logger(config2);
|
|
49
49
|
}
|
|
50
|
-
var util,
|
|
50
|
+
var util, Logger;
|
|
51
51
|
var init_logger = __esm({
|
|
52
52
|
"pkg/log/logger.ts"() {
|
|
53
53
|
"use strict";
|
|
54
54
|
util = __toESM2(require("util"));
|
|
55
55
|
init_types();
|
|
56
|
-
console2 = __toESM2(require("console"));
|
|
57
56
|
Logger = class _Logger {
|
|
58
57
|
config;
|
|
59
58
|
fields;
|
|
@@ -117,7 +116,7 @@ var init_logger = __esm({
|
|
|
117
116
|
entry.caller = caller;
|
|
118
117
|
}
|
|
119
118
|
const output = this.config.jsonFormat ? JSON.stringify(entry) : this.formatPlainText(entry);
|
|
120
|
-
|
|
119
|
+
console.log(output);
|
|
121
120
|
if (level === "error" /* ERROR */ || level === "fatal" /* FATAL */) {
|
|
122
121
|
process.stderr.write(output + "\n");
|
|
123
122
|
} else {
|
|
@@ -321,12 +320,12 @@ function clearPageFilter() {
|
|
|
321
320
|
function shouldProcessPage(language2, pagePath) {
|
|
322
321
|
return pageFilter.shouldProcess(language2, pagePath);
|
|
323
322
|
}
|
|
324
|
-
var
|
|
323
|
+
var log, PageFilterManager, pageFilter;
|
|
325
324
|
var init_page_filter = __esm({
|
|
326
325
|
"pkg/page-filter/index.ts"() {
|
|
327
326
|
"use strict";
|
|
328
327
|
init_log();
|
|
329
|
-
|
|
328
|
+
log = getDomainLogger("pkg", { component: "page-filter" });
|
|
330
329
|
PageFilterManager = class {
|
|
331
330
|
filterSet = null;
|
|
332
331
|
currentLanguage = null;
|
|
@@ -340,7 +339,7 @@ var init_page_filter = __esm({
|
|
|
340
339
|
const key3 = `${task.language}:${task.pagePath}`;
|
|
341
340
|
this.filterSet.add(key3);
|
|
342
341
|
}
|
|
343
|
-
|
|
342
|
+
log.debug(`Page filter set: ${tasks2.length} tasks`);
|
|
344
343
|
}
|
|
345
344
|
/**
|
|
346
345
|
* 设置当前处理的语言
|
|
@@ -354,7 +353,7 @@ var init_page_filter = __esm({
|
|
|
354
353
|
clearFilter() {
|
|
355
354
|
this.filterSet = null;
|
|
356
355
|
this.currentLanguage = null;
|
|
357
|
-
|
|
356
|
+
log.debug("Page filter cleared");
|
|
358
357
|
}
|
|
359
358
|
/**
|
|
360
359
|
* 检查是否应该处理此页面 (O(1) 查找)
|
|
@@ -2668,7 +2667,7 @@ function newHttpClient(fs3, timeout, headers, customClient) {
|
|
|
2668
2667
|
}
|
|
2669
2668
|
return new NodeHttpClient(fs3, timeout, headers);
|
|
2670
2669
|
}
|
|
2671
|
-
var path6, http, https,
|
|
2670
|
+
var path6, http, https, log2, NodeHttpClient;
|
|
2672
2671
|
var init_httpclient = __esm({
|
|
2673
2672
|
"internal/domain/module/vo/httpclient.ts"() {
|
|
2674
2673
|
"use strict";
|
|
@@ -2677,7 +2676,7 @@ var init_httpclient = __esm({
|
|
|
2677
2676
|
http = __toESM2(require("http"));
|
|
2678
2677
|
https = __toESM2(require("https"));
|
|
2679
2678
|
init_log();
|
|
2680
|
-
|
|
2679
|
+
log2 = getDomainLogger("module", { component: "httpclient" });
|
|
2681
2680
|
NodeHttpClient = class {
|
|
2682
2681
|
constructor(fs3, timeout = 3e4, headers = {}) {
|
|
2683
2682
|
this.fs = fs3;
|
|
@@ -2746,7 +2745,7 @@ var init_httpclient = __esm({
|
|
|
2746
2745
|
options.onProgress(progress);
|
|
2747
2746
|
lastLoggedPercentage = percentage;
|
|
2748
2747
|
} catch (progressError) {
|
|
2749
|
-
|
|
2748
|
+
log2.error(`Progress callback error: ${progressError}`);
|
|
2750
2749
|
}
|
|
2751
2750
|
lastProgressTime = now;
|
|
2752
2751
|
}
|
|
@@ -2768,7 +2767,7 @@ var init_httpclient = __esm({
|
|
|
2768
2767
|
try {
|
|
2769
2768
|
options.onProgress(progress);
|
|
2770
2769
|
} catch (progressError) {
|
|
2771
|
-
|
|
2770
|
+
log2.warn(`Progress callback error: ${progressError}`);
|
|
2772
2771
|
}
|
|
2773
2772
|
}
|
|
2774
2773
|
resolve5();
|
|
@@ -2778,7 +2777,7 @@ var init_httpclient = __esm({
|
|
|
2778
2777
|
}
|
|
2779
2778
|
});
|
|
2780
2779
|
response.on("error", (error) => {
|
|
2781
|
-
|
|
2780
|
+
log2.error(`Response error: ${error.message}`);
|
|
2782
2781
|
reject(new ModuleError(`Download failed: ${error.message}`, "DOWNLOAD_FAILED"));
|
|
2783
2782
|
});
|
|
2784
2783
|
} catch (error) {
|
|
@@ -2787,12 +2786,12 @@ var init_httpclient = __esm({
|
|
|
2787
2786
|
}
|
|
2788
2787
|
});
|
|
2789
2788
|
request.on("error", (error) => {
|
|
2790
|
-
|
|
2789
|
+
log2.error(`Request error:`, error);
|
|
2791
2790
|
reject(new ModuleError(`Request failed: ${error.message}`, "REQUEST_FAILED"));
|
|
2792
2791
|
});
|
|
2793
2792
|
request.on("timeout", () => {
|
|
2794
2793
|
request.destroy();
|
|
2795
|
-
|
|
2794
|
+
log2.error(`Request timeout for ${downloadUrl}`);
|
|
2796
2795
|
reject(new ModuleError("Request timeout", "TIMEOUT"));
|
|
2797
2796
|
});
|
|
2798
2797
|
request.end();
|
|
@@ -12731,7 +12730,7 @@ function newZipExtractor(fs3, environment = "node") {
|
|
|
12731
12730
|
throw new Error(`Unsupported environment: ${environment}`);
|
|
12732
12731
|
}
|
|
12733
12732
|
}
|
|
12734
|
-
var import_jszip, path7,
|
|
12733
|
+
var import_jszip, path7, log3, JsZipExtractor, WebZipExtractor;
|
|
12735
12734
|
var init_zipextractor = __esm({
|
|
12736
12735
|
"internal/domain/module/vo/zipextractor.ts"() {
|
|
12737
12736
|
"use strict";
|
|
@@ -12739,7 +12738,7 @@ var init_zipextractor = __esm({
|
|
|
12739
12738
|
init_log();
|
|
12740
12739
|
import_jszip = __toESM2(require_lib3());
|
|
12741
12740
|
path7 = __toESM2(require("path"));
|
|
12742
|
-
|
|
12741
|
+
log3 = getDomainLogger("module", { component: "zipextractor" });
|
|
12743
12742
|
JsZipExtractor = class {
|
|
12744
12743
|
constructor(fs3) {
|
|
12745
12744
|
this.fs = fs3;
|
|
@@ -12758,7 +12757,7 @@ var init_zipextractor = __esm({
|
|
|
12758
12757
|
await this.extractZipData(result.buffer, targetDir);
|
|
12759
12758
|
} catch (error) {
|
|
12760
12759
|
const message = error instanceof Error ? error.message : String(error);
|
|
12761
|
-
|
|
12760
|
+
log3.error(`ZIP extraction failed for ${zipPath}: ${message}`);
|
|
12762
12761
|
throw new ModuleError(`ZIP extraction failed: ${message}`, "EXTRACTION_FAILED");
|
|
12763
12762
|
}
|
|
12764
12763
|
}
|
|
@@ -12804,7 +12803,7 @@ var init_zipextractor = __esm({
|
|
|
12804
12803
|
await Promise.all(promises);
|
|
12805
12804
|
} catch (error) {
|
|
12806
12805
|
const message = error instanceof Error ? error.message : String(error);
|
|
12807
|
-
|
|
12806
|
+
log3.error(`Failed to extract ZIP data: ${message}`);
|
|
12808
12807
|
throw new ModuleError(`Failed to extract ZIP data: ${message}`, "EXTRACTION_FAILED");
|
|
12809
12808
|
}
|
|
12810
12809
|
}
|
|
@@ -12872,14 +12871,14 @@ var init_zipextractor = __esm({
|
|
|
12872
12871
|
function newModuleCache(fs3, cacheDir) {
|
|
12873
12872
|
return new FsModuleCache(fs3, cacheDir);
|
|
12874
12873
|
}
|
|
12875
|
-
var path8,
|
|
12874
|
+
var path8, log4, FsModuleCache;
|
|
12876
12875
|
var init_cache = __esm({
|
|
12877
12876
|
"internal/domain/module/vo/cache.ts"() {
|
|
12878
12877
|
"use strict";
|
|
12879
12878
|
init_type2();
|
|
12880
12879
|
init_log();
|
|
12881
12880
|
path8 = __toESM2(require("path"));
|
|
12882
|
-
|
|
12881
|
+
log4 = getDomainLogger("module", { component: "cache" });
|
|
12883
12882
|
FsModuleCache = class {
|
|
12884
12883
|
constructor(fs3, cacheDir = "./module/cache") {
|
|
12885
12884
|
this.fs = fs3;
|
|
@@ -12901,11 +12900,11 @@ var init_cache = __esm({
|
|
|
12901
12900
|
return JSON.parse(content);
|
|
12902
12901
|
} catch (error) {
|
|
12903
12902
|
if (error.message?.includes("ENOENT") || error.message?.includes("no such file")) {
|
|
12904
|
-
|
|
12903
|
+
log4.error(`Cache miss: ${modulePath}`, error);
|
|
12905
12904
|
return null;
|
|
12906
12905
|
}
|
|
12907
12906
|
const message = error instanceof Error ? error.message : String(error);
|
|
12908
|
-
|
|
12907
|
+
log4.error(`Cache read error for ${modulePath}: ${message}`);
|
|
12909
12908
|
throw new ModuleError(`Failed to read cache: ${message}`, "CACHE_READ_FAILED");
|
|
12910
12909
|
}
|
|
12911
12910
|
}
|
|
@@ -12924,7 +12923,7 @@ var init_cache = __esm({
|
|
|
12924
12923
|
await file.close();
|
|
12925
12924
|
} catch (error) {
|
|
12926
12925
|
const message = error instanceof Error ? error.message : String(error);
|
|
12927
|
-
|
|
12926
|
+
log4.error(`Cache write error for ${modulePath}: ${message}`);
|
|
12928
12927
|
throw new ModuleError(`Failed to write cache: ${message}`, "CACHE_WRITE_FAILED");
|
|
12929
12928
|
}
|
|
12930
12929
|
}
|
|
@@ -12950,7 +12949,7 @@ var init_cache = __esm({
|
|
|
12950
12949
|
} catch (error) {
|
|
12951
12950
|
if (!error.message?.includes("ENOENT") && !error.message?.includes("no such file")) {
|
|
12952
12951
|
const message = error instanceof Error ? error.message : String(error);
|
|
12953
|
-
|
|
12952
|
+
log4.error(`Cache delete error for ${modulePath}: ${message}`);
|
|
12954
12953
|
throw new ModuleError(`Failed to delete cache: ${message}`, "CACHE_DELETE_FAILED");
|
|
12955
12954
|
}
|
|
12956
12955
|
}
|
|
@@ -12964,7 +12963,7 @@ var init_cache = __esm({
|
|
|
12964
12963
|
} catch (error) {
|
|
12965
12964
|
if (!error.message?.includes("ENOENT") && !error.message?.includes("no such file")) {
|
|
12966
12965
|
const message = error instanceof Error ? error.message : String(error);
|
|
12967
|
-
|
|
12966
|
+
log4.error(`Cache clear error: ${message}`);
|
|
12968
12967
|
throw new ModuleError(`Failed to clear cache: ${message}`, "CACHE_CLEAR_FAILED");
|
|
12969
12968
|
}
|
|
12970
12969
|
}
|
|
@@ -14170,7 +14169,7 @@ var init_dist = __esm({
|
|
|
14170
14169
|
function newModules(info, httpClient, zipExtractor, moduleCache) {
|
|
14171
14170
|
return new Modules(info, httpClient, zipExtractor, moduleCache);
|
|
14172
14171
|
}
|
|
14173
|
-
var path11,
|
|
14172
|
+
var path11, log5, Modules;
|
|
14174
14173
|
var init_module4 = __esm({
|
|
14175
14174
|
"internal/domain/module/entity/module.ts"() {
|
|
14176
14175
|
"use strict";
|
|
@@ -14181,7 +14180,7 @@ var init_module4 = __esm({
|
|
|
14181
14180
|
init_log();
|
|
14182
14181
|
init_dist();
|
|
14183
14182
|
path11 = __toESM2(require("path"));
|
|
14184
|
-
|
|
14183
|
+
log5 = getDomainLogger("module", { component: "modules" });
|
|
14185
14184
|
Modules = class {
|
|
14186
14185
|
constructor(info, httpClient, zipExtractor, moduleCache) {
|
|
14187
14186
|
this.info = info;
|
|
@@ -14222,7 +14221,7 @@ var init_module4 = __esm({
|
|
|
14222
14221
|
async load(onProgress) {
|
|
14223
14222
|
const importPaths = this.info.importPaths();
|
|
14224
14223
|
if (importPaths.length === 0) {
|
|
14225
|
-
|
|
14224
|
+
log5.warn("No import paths configured - no modules will be downloaded");
|
|
14226
14225
|
return;
|
|
14227
14226
|
}
|
|
14228
14227
|
for (let i = 0; i < importPaths.length; i++) {
|
|
@@ -14240,7 +14239,7 @@ var init_module4 = __esm({
|
|
|
14240
14239
|
});
|
|
14241
14240
|
});
|
|
14242
14241
|
} else {
|
|
14243
|
-
|
|
14242
|
+
log5.info(`Module already downloaded: ${resolvedImportPath}`);
|
|
14244
14243
|
}
|
|
14245
14244
|
}
|
|
14246
14245
|
}
|
|
@@ -14257,7 +14256,7 @@ var init_module4 = __esm({
|
|
|
14257
14256
|
const cleanUrl = url.toString();
|
|
14258
14257
|
return { cleanUrl, version };
|
|
14259
14258
|
} catch (error) {
|
|
14260
|
-
|
|
14259
|
+
log5.warn(`Failed to parse import path ${importPath}:`, error);
|
|
14261
14260
|
return { cleanUrl: importPath, version: "latest" };
|
|
14262
14261
|
}
|
|
14263
14262
|
}
|
|
@@ -14275,7 +14274,7 @@ var init_module4 = __esm({
|
|
|
14275
14274
|
}
|
|
14276
14275
|
return "https://gohugo.net/themes.json";
|
|
14277
14276
|
} catch (error) {
|
|
14278
|
-
|
|
14277
|
+
log5.warn(`Failed to parse import path ${importPath}, using default theme registry`);
|
|
14279
14278
|
return "https://gohugo.net/themes.json";
|
|
14280
14279
|
}
|
|
14281
14280
|
}
|
|
@@ -14291,7 +14290,7 @@ var init_module4 = __esm({
|
|
|
14291
14290
|
}
|
|
14292
14291
|
try {
|
|
14293
14292
|
const themeRegistryUrl = this.getThemeRegistryUrl(importPath);
|
|
14294
|
-
|
|
14293
|
+
log5.info(`Fetching latest theme versions from ${themeRegistryUrl}...`);
|
|
14295
14294
|
let themes = this.themesCache.get(themeRegistryUrl);
|
|
14296
14295
|
if (!themes) {
|
|
14297
14296
|
const response = await this.httpClient.get(themeRegistryUrl);
|
|
@@ -14302,13 +14301,13 @@ var init_module4 = __esm({
|
|
|
14302
14301
|
}
|
|
14303
14302
|
const resolvedPath = themes.resolveLatestVersion(importPath);
|
|
14304
14303
|
if (resolvedPath !== importPath) {
|
|
14305
|
-
|
|
14304
|
+
log5.info(`Resolved latest version: ${importPath} -> ${resolvedPath}`);
|
|
14306
14305
|
} else {
|
|
14307
|
-
|
|
14306
|
+
log5.warn(`Could not resolve latest version for ${importPath}, using original path`);
|
|
14308
14307
|
}
|
|
14309
14308
|
return resolvedPath;
|
|
14310
14309
|
} catch (error) {
|
|
14311
|
-
|
|
14310
|
+
log5.error(`Failed to resolve latest version for ${importPath}:`, error);
|
|
14312
14311
|
return importPath;
|
|
14313
14312
|
}
|
|
14314
14313
|
}
|
|
@@ -14327,12 +14326,12 @@ var init_module4 = __esm({
|
|
|
14327
14326
|
if (cachedMetadata && cachedMetadata.downloadStatus === "completed" /* COMPLETED */ && this.isCacheValidForVersion(cachedMetadata.version, effectiveVersion)) {
|
|
14328
14327
|
const module2 = await this.createModuleFromCache(moduleImport, cachedMetadata);
|
|
14329
14328
|
if (await module2.exists()) {
|
|
14330
|
-
|
|
14329
|
+
log5.info(`Using cached module ${moduleImport.path} version ${cachedMetadata.version}`);
|
|
14331
14330
|
return module2;
|
|
14332
14331
|
}
|
|
14333
14332
|
}
|
|
14334
14333
|
if (cachedMetadata && cachedMetadata.downloadStatus === "completed" /* COMPLETED */ && !this.isCacheValidForVersion(cachedMetadata.version, effectiveVersion)) {
|
|
14335
|
-
|
|
14334
|
+
log5.info(`Cache version mismatch for ${moduleImport.path}: cached=${cachedMetadata.version}, requested=${effectiveVersion || "latest"}`);
|
|
14336
14335
|
}
|
|
14337
14336
|
const moduleDir = this.getModuleDir(moduleImport.path);
|
|
14338
14337
|
const zipPath = path11.join(moduleDir, "module.zip");
|
|
@@ -14404,10 +14403,10 @@ var init_module4 = __esm({
|
|
|
14404
14403
|
const themeImportPaths = await this.parseThemeToml(module2);
|
|
14405
14404
|
for (const themeImportPath of themeImportPaths) {
|
|
14406
14405
|
if (this.downloadedModules.has(themeImportPath)) {
|
|
14407
|
-
|
|
14406
|
+
log5.info(`Module ${themeImportPath} already downloaded, skipping`);
|
|
14408
14407
|
continue;
|
|
14409
14408
|
}
|
|
14410
|
-
|
|
14409
|
+
log5.info(`Recursively downloading module dependency: ${themeImportPath}`);
|
|
14411
14410
|
const originalImportPath = themeImportPath;
|
|
14412
14411
|
const { cleanUrl: cleanUrl2, version: version2 } = this.parseVersionFromImportPath(originalImportPath);
|
|
14413
14412
|
let resolvedImportPath = originalImportPath;
|
|
@@ -14420,7 +14419,7 @@ var init_module4 = __esm({
|
|
|
14420
14419
|
}
|
|
14421
14420
|
} catch (error) {
|
|
14422
14421
|
const message = error instanceof Error ? error.message : String(error);
|
|
14423
|
-
|
|
14422
|
+
log5.warn(`Failed to process recursive imports for module ${importPath}: ${message}`);
|
|
14424
14423
|
}
|
|
14425
14424
|
} catch (error) {
|
|
14426
14425
|
const message = error instanceof Error ? error.message : String(error);
|
|
@@ -14576,18 +14575,18 @@ var init_module4 = __esm({
|
|
|
14576
14575
|
}
|
|
14577
14576
|
} catch (error) {
|
|
14578
14577
|
const message = error instanceof Error ? error.message : String(error);
|
|
14579
|
-
|
|
14578
|
+
log5.warn(`Failed to read theme.toml for module ${module2.path()}: ${message}`);
|
|
14580
14579
|
return [];
|
|
14581
14580
|
}
|
|
14582
14581
|
const tomlData = parse2(tomlContent);
|
|
14583
14582
|
if (tomlData.module?.imports) {
|
|
14584
|
-
|
|
14583
|
+
log5.info(`Found ${tomlData.module.imports.length} module imports in ${module2.path()}/theme.toml`);
|
|
14585
14584
|
return tomlData.module.imports.map((imp) => imp.path);
|
|
14586
14585
|
}
|
|
14587
14586
|
return [];
|
|
14588
14587
|
} catch (error) {
|
|
14589
14588
|
const message = error instanceof Error ? error.message : String(error);
|
|
14590
|
-
|
|
14589
|
+
log5.warn(`Failed to parse theme.toml for module ${module2.path()}: ${message}`);
|
|
14591
14590
|
return [];
|
|
14592
14591
|
}
|
|
14593
14592
|
}
|
|
@@ -14607,7 +14606,7 @@ async function createModules(info) {
|
|
|
14607
14606
|
return modules;
|
|
14608
14607
|
} catch (error) {
|
|
14609
14608
|
const message = error instanceof Error ? error.message : String(error);
|
|
14610
|
-
|
|
14609
|
+
log6.error(`Failed to create modules: ${message}`);
|
|
14611
14610
|
throw new ModuleError(`Failed to create modules: ${message}`, "FACTORY_FAILED");
|
|
14612
14611
|
}
|
|
14613
14612
|
}
|
|
@@ -14622,11 +14621,11 @@ async function createModulesWithProgress(info, onProgress) {
|
|
|
14622
14621
|
return modules;
|
|
14623
14622
|
} catch (error) {
|
|
14624
14623
|
const message = error instanceof Error ? error.message : String(error);
|
|
14625
|
-
|
|
14624
|
+
log6.error(`Failed to create modules: ${message}`);
|
|
14626
14625
|
throw new ModuleError(`Failed to create modules: ${message}`, "FACTORY_FAILED");
|
|
14627
14626
|
}
|
|
14628
14627
|
}
|
|
14629
|
-
var
|
|
14628
|
+
var log6;
|
|
14630
14629
|
var init_module5 = __esm({
|
|
14631
14630
|
"internal/domain/module/factory/module.ts"() {
|
|
14632
14631
|
"use strict";
|
|
@@ -14636,7 +14635,7 @@ var init_module5 = __esm({
|
|
|
14636
14635
|
init_zipextractor();
|
|
14637
14636
|
init_cache();
|
|
14638
14637
|
init_log();
|
|
14639
|
-
|
|
14638
|
+
log6 = getDomainLogger("module", { component: "factory" });
|
|
14640
14639
|
}
|
|
14641
14640
|
});
|
|
14642
14641
|
|
|
@@ -14724,12 +14723,12 @@ var init_originfs = __esm({
|
|
|
14724
14723
|
function newFileMeta(filename, openFunc) {
|
|
14725
14724
|
return new FileMeta(filename, openFunc);
|
|
14726
14725
|
}
|
|
14727
|
-
var
|
|
14726
|
+
var log7, FileMeta;
|
|
14728
14727
|
var init_filemeta = __esm({
|
|
14729
14728
|
"internal/domain/fs/vo/filemeta.ts"() {
|
|
14730
14729
|
"use strict";
|
|
14731
14730
|
init_log();
|
|
14732
|
-
|
|
14731
|
+
log7 = getDomainLogger("fs", { component: "filemeta" });
|
|
14733
14732
|
FileMeta = class {
|
|
14734
14733
|
filename;
|
|
14735
14734
|
componentRoot;
|
|
@@ -15156,7 +15155,7 @@ var init_dir2 = __esm({
|
|
|
15156
15155
|
function newBaseFs(fs3, roots) {
|
|
15157
15156
|
return new BaseFs(fs3, roots);
|
|
15158
15157
|
}
|
|
15159
|
-
var path13,
|
|
15158
|
+
var path13, log8, BaseFs;
|
|
15160
15159
|
var init_basefs = __esm({
|
|
15161
15160
|
"internal/domain/fs/entity/basefs.ts"() {
|
|
15162
15161
|
"use strict";
|
|
@@ -15166,7 +15165,7 @@ var init_basefs = __esm({
|
|
|
15166
15165
|
init_dir2();
|
|
15167
15166
|
path13 = __toESM2(require("path"));
|
|
15168
15167
|
init_log();
|
|
15169
|
-
|
|
15168
|
+
log8 = getDomainLogger("fs", { component: "basefs" });
|
|
15170
15169
|
BaseFs = class {
|
|
15171
15170
|
fs;
|
|
15172
15171
|
// osFs
|
|
@@ -15327,7 +15326,7 @@ var init_basefs = __esm({
|
|
|
15327
15326
|
function newWalkway(fs3, cb) {
|
|
15328
15327
|
return new Walkway(fs3, cb);
|
|
15329
15328
|
}
|
|
15330
|
-
var path14,
|
|
15329
|
+
var path14, log9, Walkway;
|
|
15331
15330
|
var init_walkway = __esm({
|
|
15332
15331
|
"internal/domain/fs/vo/walkway.ts"() {
|
|
15333
15332
|
"use strict";
|
|
@@ -15336,7 +15335,7 @@ var init_walkway = __esm({
|
|
|
15336
15335
|
init_fileinfo();
|
|
15337
15336
|
init_filemeta();
|
|
15338
15337
|
init_log();
|
|
15339
|
-
|
|
15338
|
+
log9 = getDomainLogger("fs", { component: "walkway" });
|
|
15340
15339
|
Walkway = class {
|
|
15341
15340
|
fs;
|
|
15342
15341
|
root;
|
|
@@ -15378,7 +15377,7 @@ var init_walkway = __esm({
|
|
|
15378
15377
|
*/
|
|
15379
15378
|
checkErr(filename, err) {
|
|
15380
15379
|
if (this.isNotExistError(err) && !this.cfg.failOnNotExist) {
|
|
15381
|
-
|
|
15380
|
+
log9.warn(`File "${filename}" not found, skipping.`);
|
|
15382
15381
|
return true;
|
|
15383
15382
|
}
|
|
15384
15383
|
return false;
|
|
@@ -15483,12 +15482,12 @@ var init_walkway = __esm({
|
|
|
15483
15482
|
});
|
|
15484
15483
|
|
|
15485
15484
|
// internal/domain/fs/vo/static-copier.ts
|
|
15486
|
-
var
|
|
15485
|
+
var log10, StaticCopier;
|
|
15487
15486
|
var init_static_copier = __esm({
|
|
15488
15487
|
"internal/domain/fs/vo/static-copier.ts"() {
|
|
15489
15488
|
"use strict";
|
|
15490
15489
|
init_log();
|
|
15491
|
-
|
|
15490
|
+
log10 = getDomainLogger("fs", { component: "static-copier" });
|
|
15492
15491
|
StaticCopier = class {
|
|
15493
15492
|
fromFss;
|
|
15494
15493
|
toFs;
|
|
@@ -15498,11 +15497,11 @@ var init_static_copier = __esm({
|
|
|
15498
15497
|
}
|
|
15499
15498
|
async copy() {
|
|
15500
15499
|
if (!this.fromFss || this.fromFss.length === 0) {
|
|
15501
|
-
|
|
15500
|
+
log10.error("No static filesystems found");
|
|
15502
15501
|
return;
|
|
15503
15502
|
}
|
|
15504
15503
|
if (!this.toFs) {
|
|
15505
|
-
|
|
15504
|
+
log10.error("No publish filesystem found");
|
|
15506
15505
|
return;
|
|
15507
15506
|
}
|
|
15508
15507
|
await this.doWithPublishDirs(this.toFs, async (publishDir) => {
|
|
@@ -15518,7 +15517,7 @@ var init_static_copier = __esm({
|
|
|
15518
15517
|
try {
|
|
15519
15518
|
await fn("/");
|
|
15520
15519
|
} catch (error) {
|
|
15521
|
-
|
|
15520
|
+
log10.error("Error in doWithPublishDirs:", error);
|
|
15522
15521
|
throw error;
|
|
15523
15522
|
}
|
|
15524
15523
|
}
|
|
@@ -15530,7 +15529,7 @@ var init_static_copier = __esm({
|
|
|
15530
15529
|
try {
|
|
15531
15530
|
return await this.walkSourceFiles(sourceFs, targetDir);
|
|
15532
15531
|
} catch (error) {
|
|
15533
|
-
|
|
15532
|
+
log10.error(`Error copying static files to ${targetDir}:`, error);
|
|
15534
15533
|
throw error;
|
|
15535
15534
|
}
|
|
15536
15535
|
}
|
|
@@ -15547,7 +15546,7 @@ var init_static_copier = __esm({
|
|
|
15547
15546
|
}
|
|
15548
15547
|
});
|
|
15549
15548
|
} catch (error) {
|
|
15550
|
-
|
|
15549
|
+
log10.error("Error walking source files:", error);
|
|
15551
15550
|
throw error;
|
|
15552
15551
|
}
|
|
15553
15552
|
return fileCount;
|
|
@@ -15576,7 +15575,7 @@ var init_static_copier = __esm({
|
|
|
15576
15575
|
}
|
|
15577
15576
|
}
|
|
15578
15577
|
} catch (error) {
|
|
15579
|
-
|
|
15578
|
+
log10.error(`Could not read directory ${basePath}:`, error);
|
|
15580
15579
|
}
|
|
15581
15580
|
}
|
|
15582
15581
|
/**
|
|
@@ -15599,20 +15598,20 @@ var init_static_copier = __esm({
|
|
|
15599
15598
|
targetFile = await targetFs.create(targetPath);
|
|
15600
15599
|
await targetFile.write(buffer);
|
|
15601
15600
|
} catch (error) {
|
|
15602
|
-
|
|
15601
|
+
log10.warn(`Failed to copy static file ${sourcePath}:`, error);
|
|
15603
15602
|
} finally {
|
|
15604
15603
|
if (targetFile) {
|
|
15605
15604
|
try {
|
|
15606
15605
|
await targetFile.close();
|
|
15607
15606
|
} catch (closeError) {
|
|
15608
|
-
|
|
15607
|
+
log10.warn(`Failed to close target file: ${closeError}`);
|
|
15609
15608
|
}
|
|
15610
15609
|
}
|
|
15611
15610
|
if (sourceFile) {
|
|
15612
15611
|
try {
|
|
15613
15612
|
await sourceFile.close();
|
|
15614
15613
|
} catch (closeError) {
|
|
15615
|
-
|
|
15614
|
+
log10.warn(`Failed to close source file: ${closeError}`);
|
|
15616
15615
|
}
|
|
15617
15616
|
}
|
|
15618
15617
|
}
|
|
@@ -15649,7 +15648,7 @@ async function collectFileMetaInfos(paths, fss) {
|
|
|
15649
15648
|
if (found2)
|
|
15650
15649
|
break;
|
|
15651
15650
|
} catch (error) {
|
|
15652
|
-
|
|
15651
|
+
log11.error(`Failed to create FileMetaInfo for ${path29} with fs=${fs3}:`, error);
|
|
15653
15652
|
}
|
|
15654
15653
|
}
|
|
15655
15654
|
}
|
|
@@ -15665,14 +15664,14 @@ async function createFileMetaInfo(filePath, fs3) {
|
|
|
15665
15664
|
throw new Error(`Failed to stat file ${filePath}: ${error.message}`);
|
|
15666
15665
|
}
|
|
15667
15666
|
}
|
|
15668
|
-
var
|
|
15667
|
+
var log11;
|
|
15669
15668
|
var init_incremental_file_collector = __esm({
|
|
15670
15669
|
"internal/domain/fs/vo/incremental-file-collector.ts"() {
|
|
15671
15670
|
"use strict";
|
|
15672
15671
|
init_fileinfo();
|
|
15673
15672
|
init_filemeta();
|
|
15674
15673
|
init_log();
|
|
15675
|
-
|
|
15674
|
+
log11 = getDomainLogger("fs", { component: "incremental-file-collector" });
|
|
15676
15675
|
}
|
|
15677
15676
|
});
|
|
15678
15677
|
|
|
@@ -16136,7 +16135,7 @@ function createOverlayFs(opts) {
|
|
|
16136
16135
|
const options = new OverlayOptions(opts);
|
|
16137
16136
|
return new OverlayFs(options);
|
|
16138
16137
|
}
|
|
16139
|
-
var
|
|
16138
|
+
var log12, OverlayFs;
|
|
16140
16139
|
var init_overlayfs = __esm({
|
|
16141
16140
|
"internal/domain/fs/entity/overlayfs.ts"() {
|
|
16142
16141
|
"use strict";
|
|
@@ -16144,7 +16143,7 @@ var init_overlayfs = __esm({
|
|
|
16144
16143
|
init_overlayoptions();
|
|
16145
16144
|
init_overlaydir();
|
|
16146
16145
|
init_log();
|
|
16147
|
-
|
|
16146
|
+
log12 = getDomainLogger("fs", { component: "overlayfs" });
|
|
16148
16147
|
OverlayFs = class _OverlayFs {
|
|
16149
16148
|
fss;
|
|
16150
16149
|
mergeDirs;
|
|
@@ -16625,7 +16624,7 @@ var init_overlayfs_factory = __esm({
|
|
|
16625
16624
|
function newFilesystemsCollector(sourceProject) {
|
|
16626
16625
|
return new FilesystemsCollector(sourceProject);
|
|
16627
16626
|
}
|
|
16628
|
-
var path15,
|
|
16627
|
+
var path15, log13, RootMapping, FilesystemsCollector;
|
|
16629
16628
|
var init_filesystemscollector = __esm({
|
|
16630
16629
|
"internal/domain/fs/vo/filesystemscollector.ts"() {
|
|
16631
16630
|
"use strict";
|
|
@@ -16633,7 +16632,7 @@ var init_filesystemscollector = __esm({
|
|
|
16633
16632
|
init_basefs();
|
|
16634
16633
|
path15 = __toESM2(require("path"));
|
|
16635
16634
|
init_log();
|
|
16636
|
-
|
|
16635
|
+
log13 = getDomainLogger("fs", { component: "filesystemscollector" });
|
|
16637
16636
|
RootMapping = class {
|
|
16638
16637
|
from;
|
|
16639
16638
|
// Target path
|
|
@@ -16775,14 +16774,14 @@ var init_filesystemscollector = __esm({
|
|
|
16775
16774
|
function newOsFs() {
|
|
16776
16775
|
return new OsFs();
|
|
16777
16776
|
}
|
|
16778
|
-
var fs2, path16,
|
|
16777
|
+
var fs2, path16, log14, OsFileInfo, OsFile, OsFs;
|
|
16779
16778
|
var init_osfs = __esm({
|
|
16780
16779
|
"internal/domain/fs/vo/osfs.ts"() {
|
|
16781
16780
|
"use strict";
|
|
16782
16781
|
fs2 = __toESM2(require("fs/promises"));
|
|
16783
16782
|
path16 = __toESM2(require("path"));
|
|
16784
16783
|
init_log();
|
|
16785
|
-
|
|
16784
|
+
log14 = getDomainLogger("fs", { component: "osfs" });
|
|
16786
16785
|
OsFileInfo = class {
|
|
16787
16786
|
constructor(stats, _name) {
|
|
16788
16787
|
this.stats = stats;
|
|
@@ -16825,7 +16824,7 @@ var init_osfs = __esm({
|
|
|
16825
16824
|
try {
|
|
16826
16825
|
await this.handle.close();
|
|
16827
16826
|
} catch (error) {
|
|
16828
|
-
|
|
16827
|
+
log14.error(`\u274C Error closing file handle for ${this.filePath}:`, error);
|
|
16829
16828
|
throw error;
|
|
16830
16829
|
}
|
|
16831
16830
|
this.handle = null;
|
|
@@ -18919,7 +18918,7 @@ var init_pageparser = __esm({
|
|
|
18919
18918
|
function parseBytes2(input, config2 = {}) {
|
|
18920
18919
|
const [items, err] = ParseBytes(input, config2);
|
|
18921
18920
|
if (err) {
|
|
18922
|
-
|
|
18921
|
+
log15.error("Error parsing bytes:", err);
|
|
18923
18922
|
throw err;
|
|
18924
18923
|
}
|
|
18925
18924
|
return items;
|
|
@@ -18954,13 +18953,13 @@ function posFromInput(filename, input, offset) {
|
|
|
18954
18953
|
function stringToBytes(str2) {
|
|
18955
18954
|
return new TextEncoder().encode(str2);
|
|
18956
18955
|
}
|
|
18957
|
-
var
|
|
18956
|
+
var log15;
|
|
18958
18957
|
var init_pageparser2 = __esm({
|
|
18959
18958
|
"internal/domain/markdown/vo/pageparser.ts"() {
|
|
18960
18959
|
"use strict";
|
|
18961
18960
|
init_log();
|
|
18962
18961
|
init_pageparser();
|
|
18963
|
-
|
|
18962
|
+
log15 = getDomainLogger("markdown", { component: "pageparser" });
|
|
18964
18963
|
}
|
|
18965
18964
|
});
|
|
18966
18965
|
|
|
@@ -18968,7 +18967,7 @@ var init_pageparser2 = __esm({
|
|
|
18968
18967
|
function createSourceParseInfo(source, handlers) {
|
|
18969
18968
|
return new SourceParseInfo(source, handlers);
|
|
18970
18969
|
}
|
|
18971
|
-
var
|
|
18970
|
+
var log16, SourceParseInfo;
|
|
18972
18971
|
var init_parseinfo = __esm({
|
|
18973
18972
|
"internal/domain/markdown/vo/parseinfo.ts"() {
|
|
18974
18973
|
"use strict";
|
|
@@ -18976,7 +18975,7 @@ var init_parseinfo = __esm({
|
|
|
18976
18975
|
init_item();
|
|
18977
18976
|
init_pagelexer();
|
|
18978
18977
|
init_log();
|
|
18979
|
-
|
|
18978
|
+
log16 = getDomainLogger("markdown", { component: "parseinfo" });
|
|
18980
18979
|
SourceParseInfo = class {
|
|
18981
18980
|
source;
|
|
18982
18981
|
posMainContent = -1;
|
|
@@ -19029,7 +19028,7 @@ var init_parseinfo = __esm({
|
|
|
19029
19028
|
const it = iter.Next();
|
|
19030
19029
|
try {
|
|
19031
19030
|
if (it.Type === 7 /* TypeIgnore */) {
|
|
19032
|
-
|
|
19031
|
+
log16.info(`Ignoring item at position ${it.Pos()}: ${it.ValStr(this.source)}`);
|
|
19033
19032
|
} else if (it.IsFrontMatter()) {
|
|
19034
19033
|
await this.handlers.frontMatterHandler()(it);
|
|
19035
19034
|
const next2 = iter.Peek();
|
|
@@ -19045,7 +19044,7 @@ var init_parseinfo = __esm({
|
|
|
19045
19044
|
} else if (it.IsEOF()) {
|
|
19046
19045
|
break;
|
|
19047
19046
|
} else if (it.IsError()) {
|
|
19048
|
-
|
|
19047
|
+
log16.error(`Error parsing item at position ${it.Pos()}: ${it.Err}`);
|
|
19049
19048
|
throw this.createError(it.Err || new Error("Unknown parsing error"), it);
|
|
19050
19049
|
} else {
|
|
19051
19050
|
await this.handlers.bytesHandler()(it);
|
|
@@ -19104,12 +19103,12 @@ function indexNonWhiteSpace2(source, char2) {
|
|
|
19104
19103
|
function isSpace3(b) {
|
|
19105
19104
|
return b === 32 || b === 9 || b === 13 || b === 10;
|
|
19106
19105
|
}
|
|
19107
|
-
var
|
|
19106
|
+
var log17, ShortcodeImpl, ShortcodeParser, TOC_SHORTCODE_PLACEHOLDER, SHORTCODE_PLACEHOLDER_PREFIX;
|
|
19108
19107
|
var init_shortcode = __esm({
|
|
19109
19108
|
"internal/domain/markdown/vo/shortcode.ts"() {
|
|
19110
19109
|
"use strict";
|
|
19111
19110
|
init_log();
|
|
19112
|
-
|
|
19111
|
+
log17 = getDomainLogger("markdown", { component: "vo/shortcode" });
|
|
19113
19112
|
ShortcodeImpl = class {
|
|
19114
19113
|
name;
|
|
19115
19114
|
params;
|
|
@@ -19274,7 +19273,7 @@ var init_shortcode = __esm({
|
|
|
19274
19273
|
}
|
|
19275
19274
|
} else if (currItem.IsShortcodeParam()) {
|
|
19276
19275
|
if (!pt.IsValueNext()) {
|
|
19277
|
-
|
|
19276
|
+
log17.warn(`${errorPrefix}: shortcode "${sc.name}" has a parameter without a value`);
|
|
19278
19277
|
continue;
|
|
19279
19278
|
}
|
|
19280
19279
|
if (pt.Peek().IsShortcodeParamVal()) {
|
|
@@ -19417,13 +19416,13 @@ var init_type6 = __esm({
|
|
|
19417
19416
|
});
|
|
19418
19417
|
|
|
19419
19418
|
// internal/domain/markdown/vo/content.ts
|
|
19420
|
-
var
|
|
19419
|
+
var log18, INTERNAL_SUMMARY_DIVIDER_BASE, INTERNAL_SUMMARY_DIVIDER_PRE, Content;
|
|
19421
19420
|
var init_content = __esm({
|
|
19422
19421
|
"internal/domain/markdown/vo/content.ts"() {
|
|
19423
19422
|
"use strict";
|
|
19424
19423
|
init_type6();
|
|
19425
19424
|
init_log();
|
|
19426
|
-
|
|
19425
|
+
log18 = getDomainLogger("markdown", { component: "content" });
|
|
19427
19426
|
INTERNAL_SUMMARY_DIVIDER_BASE = "HUGOMORE42";
|
|
19428
19427
|
INTERNAL_SUMMARY_DIVIDER_PRE = new TextEncoder().encode(`
|
|
19429
19428
|
|
|
@@ -22470,7 +22469,7 @@ var init_parserresult = __esm({
|
|
|
22470
22469
|
});
|
|
22471
22470
|
|
|
22472
22471
|
// internal/domain/markdown/entity/markdown.ts
|
|
22473
|
-
var
|
|
22472
|
+
var log19, MarkdownImpl;
|
|
22474
22473
|
var init_markdown3 = __esm({
|
|
22475
22474
|
"internal/domain/markdown/entity/markdown.ts"() {
|
|
22476
22475
|
"use strict";
|
|
@@ -22483,7 +22482,7 @@ var init_markdown3 = __esm({
|
|
|
22483
22482
|
init_shortcode();
|
|
22484
22483
|
init_content();
|
|
22485
22484
|
init_log();
|
|
22486
|
-
|
|
22485
|
+
log19 = getDomainLogger("markdown", { component: "MarkdownImpl" });
|
|
22487
22486
|
MarkdownImpl = class {
|
|
22488
22487
|
constructor(renderer, highlighter) {
|
|
22489
22488
|
this.renderer = renderer;
|
|
@@ -22559,7 +22558,7 @@ var init_markdown3 = __esm({
|
|
|
22559
22558
|
if (parseResult.frontMatter) {
|
|
22560
22559
|
parseResult.frontMatter.params = fm;
|
|
22561
22560
|
}
|
|
22562
|
-
|
|
22561
|
+
log19.debug(`Merged tags: YAML [${existingTags.join(", ")}] + inline [${inlineTags.join(", ")}] = [${allTags.join(", ")}]`);
|
|
22563
22562
|
}
|
|
22564
22563
|
}
|
|
22565
22564
|
const summary = parseResult.content.getDividedSummary(htmlContent);
|
|
@@ -31100,14 +31099,14 @@ var init_paths = __esm({
|
|
|
31100
31099
|
});
|
|
31101
31100
|
|
|
31102
31101
|
// internal/domain/content/entity/translator.ts
|
|
31103
|
-
var
|
|
31102
|
+
var log20, Translator;
|
|
31104
31103
|
var init_translator = __esm({
|
|
31105
31104
|
"internal/domain/content/entity/translator.ts"() {
|
|
31106
31105
|
"use strict";
|
|
31107
31106
|
init_log();
|
|
31108
31107
|
init_js_yaml();
|
|
31109
31108
|
init_paths();
|
|
31110
|
-
|
|
31109
|
+
log20 = getDomainLogger("content", { component: "translator" });
|
|
31111
31110
|
Translator = class {
|
|
31112
31111
|
contentLanguage;
|
|
31113
31112
|
translateFuncs = /* @__PURE__ */ new Map();
|
|
@@ -31129,7 +31128,7 @@ var init_translator = __esm({
|
|
|
31129
31128
|
return result;
|
|
31130
31129
|
}
|
|
31131
31130
|
}
|
|
31132
|
-
|
|
31131
|
+
log20.info(`Translation func for language ${lang2} not found, use default.`);
|
|
31133
31132
|
const defaultTranslateFunc = this.translateFuncs.get(this.contentLanguage.toLowerCase());
|
|
31134
31133
|
if (defaultTranslateFunc) {
|
|
31135
31134
|
const result = defaultTranslateFunc(translationID);
|
|
@@ -31137,7 +31136,7 @@ var init_translator = __esm({
|
|
|
31137
31136
|
return result;
|
|
31138
31137
|
}
|
|
31139
31138
|
}
|
|
31140
|
-
|
|
31139
|
+
log20.info("i18n not initialized; if you need string translations, check that you have a bundle in /i18n that matches the site language or the default language.");
|
|
31141
31140
|
return `[i18n] ${translationID}`;
|
|
31142
31141
|
}
|
|
31143
31142
|
/**
|
|
@@ -31166,17 +31165,17 @@ var init_translator = __esm({
|
|
|
31166
31165
|
if (translation) {
|
|
31167
31166
|
return translation;
|
|
31168
31167
|
}
|
|
31169
|
-
|
|
31168
|
+
log20.warn(`i18n|MISSING_TRANSLATION|${langKey}|${translationID}`);
|
|
31170
31169
|
return "";
|
|
31171
31170
|
};
|
|
31172
31171
|
this.translateFuncs.set(langKey, translateFunc);
|
|
31173
|
-
|
|
31172
|
+
log20.info(`\u2705 Loaded i18n translations for language: ${langKey} (${translations.length} items)`);
|
|
31174
31173
|
} catch (error) {
|
|
31175
|
-
|
|
31174
|
+
log20.error(`\u274C Failed to load i18n file ${path29}:`, error);
|
|
31176
31175
|
}
|
|
31177
31176
|
}
|
|
31178
31177
|
}, {});
|
|
31179
|
-
|
|
31178
|
+
log20.info(`\u{1F30D} Translation setup complete. Loaded ${this.translateFuncs.size} languages: [${Array.from(this.translateFuncs.keys()).join(", ")}]`);
|
|
31180
31179
|
} catch (error) {
|
|
31181
31180
|
throw error;
|
|
31182
31181
|
}
|
|
@@ -31195,14 +31194,14 @@ var init_translator = __esm({
|
|
|
31195
31194
|
const cleanContent = content.charCodeAt(0) === 65279 ? content.slice(1) : content;
|
|
31196
31195
|
return cleanContent;
|
|
31197
31196
|
} catch (error) {
|
|
31198
|
-
|
|
31197
|
+
log20.error("\u274C Failed to read i18n file:", error);
|
|
31199
31198
|
throw error;
|
|
31200
31199
|
} finally {
|
|
31201
31200
|
if (file) {
|
|
31202
31201
|
try {
|
|
31203
31202
|
await file.close();
|
|
31204
31203
|
} catch (closeError) {
|
|
31205
|
-
|
|
31204
|
+
log20.warn(`Failed to close i18n file: ${closeError}`);
|
|
31206
31205
|
}
|
|
31207
31206
|
}
|
|
31208
31207
|
}
|
|
@@ -31214,7 +31213,7 @@ var init_translator = __esm({
|
|
|
31214
31213
|
try {
|
|
31215
31214
|
const parsed = load(content);
|
|
31216
31215
|
if (!Array.isArray(parsed)) {
|
|
31217
|
-
|
|
31216
|
+
log20.warn("i18n YAML content is not an array");
|
|
31218
31217
|
return [];
|
|
31219
31218
|
}
|
|
31220
31219
|
return parsed.filter((item) => item && typeof item === "object" && item.id && item.translation).map((item) => ({
|
|
@@ -31222,7 +31221,7 @@ var init_translator = __esm({
|
|
|
31222
31221
|
translation: String(item.translation)
|
|
31223
31222
|
}));
|
|
31224
31223
|
} catch (error) {
|
|
31225
|
-
|
|
31224
|
+
log20.error("\u274C Failed to parse i18n YAML content:", error);
|
|
31226
31225
|
return [];
|
|
31227
31226
|
}
|
|
31228
31227
|
}
|
|
@@ -31248,7 +31247,7 @@ async function createTranslator(services) {
|
|
|
31248
31247
|
try {
|
|
31249
31248
|
await translator.setupTranslateFuncs(services);
|
|
31250
31249
|
} catch (error) {
|
|
31251
|
-
|
|
31250
|
+
log21.warn("Failed to setup translator, continuing without i18n support:", error);
|
|
31252
31251
|
}
|
|
31253
31252
|
return translator;
|
|
31254
31253
|
}
|
|
@@ -31285,7 +31284,7 @@ async function createContent(services) {
|
|
|
31285
31284
|
pageBuilder.contentHub = contentHub;
|
|
31286
31285
|
return contentHub;
|
|
31287
31286
|
}
|
|
31288
|
-
var
|
|
31287
|
+
var log21;
|
|
31289
31288
|
var init_hub = __esm({
|
|
31290
31289
|
"internal/domain/content/factory/hub.ts"() {
|
|
31291
31290
|
"use strict";
|
|
@@ -31293,7 +31292,7 @@ var init_hub = __esm({
|
|
|
31293
31292
|
init_markdown5();
|
|
31294
31293
|
init_translator();
|
|
31295
31294
|
init_log();
|
|
31296
|
-
|
|
31295
|
+
log21 = getDomainLogger("content", { component: "content" });
|
|
31297
31296
|
}
|
|
31298
31297
|
});
|
|
31299
31298
|
|
|
@@ -31321,12 +31320,12 @@ var init_kind = __esm({
|
|
|
31321
31320
|
});
|
|
31322
31321
|
|
|
31323
31322
|
// internal/domain/content/vo/identity.ts
|
|
31324
|
-
var
|
|
31323
|
+
var log22, Identity;
|
|
31325
31324
|
var init_identity = __esm({
|
|
31326
31325
|
"internal/domain/content/vo/identity.ts"() {
|
|
31327
31326
|
"use strict";
|
|
31328
31327
|
init_log();
|
|
31329
|
-
|
|
31328
|
+
log22 = getDomainLogger("content", { component: "identity" });
|
|
31330
31329
|
Identity = class {
|
|
31331
31330
|
id;
|
|
31332
31331
|
lang;
|
|
@@ -31378,7 +31377,7 @@ function isContentExt(ext) {
|
|
|
31378
31377
|
function newFileInfo2(fi) {
|
|
31379
31378
|
return FileInfo7.newFileInfo(fi);
|
|
31380
31379
|
}
|
|
31381
|
-
var crypto, path17,
|
|
31380
|
+
var crypto, path17, log23, contentFileExtensions, contentFileExtensionsSet, FileInfo7;
|
|
31382
31381
|
var init_fileinfo2 = __esm({
|
|
31383
31382
|
"internal/domain/content/vo/fileinfo.ts"() {
|
|
31384
31383
|
"use strict";
|
|
@@ -31386,7 +31385,7 @@ var init_fileinfo2 = __esm({
|
|
|
31386
31385
|
crypto = __toESM2(require("crypto"));
|
|
31387
31386
|
path17 = __toESM2(require("path"));
|
|
31388
31387
|
init_log();
|
|
31389
|
-
|
|
31388
|
+
log23 = getDomainLogger("content", { component: "FileInfo" });
|
|
31390
31389
|
contentFileExtensions = [
|
|
31391
31390
|
".md"
|
|
31392
31391
|
];
|
|
@@ -33615,14 +33614,14 @@ function posFromInput2(filename, input, offset) {
|
|
|
33615
33614
|
function newPageSource(file) {
|
|
33616
33615
|
return new Source(file);
|
|
33617
33616
|
}
|
|
33618
|
-
var pageIDCounter,
|
|
33617
|
+
var pageIDCounter, log24, Source;
|
|
33619
33618
|
var init_pagesource = __esm({
|
|
33620
33619
|
"internal/domain/content/entity/pagesource.ts"() {
|
|
33621
33620
|
"use strict";
|
|
33622
33621
|
init_log();
|
|
33623
33622
|
init_identity();
|
|
33624
33623
|
pageIDCounter = 0;
|
|
33625
|
-
|
|
33624
|
+
log24 = getDomainLogger("content", { component: "pagesource" });
|
|
33626
33625
|
Source = class {
|
|
33627
33626
|
id;
|
|
33628
33627
|
identity;
|
|
@@ -33754,11 +33753,11 @@ var init_pagesource = __esm({
|
|
|
33754
33753
|
*/
|
|
33755
33754
|
async content() {
|
|
33756
33755
|
try {
|
|
33757
|
-
|
|
33756
|
+
log24.error(`Reading content not implemented from: ${this.file.filename()}`);
|
|
33758
33757
|
return new Uint8Array(0);
|
|
33759
33758
|
} catch (error) {
|
|
33760
33759
|
const errorMsg = `failed to read content source for "${this.file.filename()}": ${error}`;
|
|
33761
|
-
|
|
33760
|
+
log24.error(errorMsg);
|
|
33762
33761
|
throw new Error(errorMsg);
|
|
33763
33762
|
}
|
|
33764
33763
|
}
|
|
@@ -33779,7 +33778,7 @@ function addLeadingSlash(path29) {
|
|
|
33779
33778
|
}
|
|
33780
33779
|
return path29;
|
|
33781
33780
|
}
|
|
33782
|
-
var
|
|
33781
|
+
var log25, ambiguousContentNode, ContentTreeReverseIndexMap, ContentTreeReverseIndex, pagePredicates, PageMapQueryPagesBelowPathImpl, PageMapQueryPagesInSectionImpl, PageMap;
|
|
33783
33782
|
var init_pagemap = __esm({
|
|
33784
33783
|
"internal/domain/content/entity/pagemap.ts"() {
|
|
33785
33784
|
"use strict";
|
|
@@ -33789,7 +33788,7 @@ var init_pagemap = __esm({
|
|
|
33789
33788
|
init_doctree();
|
|
33790
33789
|
init_sort();
|
|
33791
33790
|
init_log();
|
|
33792
|
-
|
|
33791
|
+
log25 = getDomainLogger("content", { component: "pagemap" });
|
|
33793
33792
|
ambiguousContentNode = new PageTreesNode();
|
|
33794
33793
|
ContentTreeReverseIndexMap = class {
|
|
33795
33794
|
initOnce = false;
|
|
@@ -33892,7 +33891,7 @@ var init_pagemap = __esm({
|
|
|
33892
33891
|
try {
|
|
33893
33892
|
await walker.walk();
|
|
33894
33893
|
} catch (err) {
|
|
33895
|
-
|
|
33894
|
+
log25.error(`setupReverseIndex error: ${err}`);
|
|
33896
33895
|
}
|
|
33897
33896
|
});
|
|
33898
33897
|
}
|
|
@@ -34047,7 +34046,7 @@ var init_pagemap = __esm({
|
|
|
34047
34046
|
try {
|
|
34048
34047
|
await rw.walk();
|
|
34049
34048
|
} catch (err) {
|
|
34050
|
-
|
|
34049
|
+
log25.error(`forEachResourceInPage error: ${err}`);
|
|
34051
34050
|
}
|
|
34052
34051
|
}
|
|
34053
34052
|
/**
|
|
@@ -34101,7 +34100,7 @@ var init_pagemap = __esm({
|
|
|
34101
34100
|
sortByWeight(pages);
|
|
34102
34101
|
return Promise.resolve(pages);
|
|
34103
34102
|
} catch (err) {
|
|
34104
|
-
|
|
34103
|
+
log25.error(`getPagesInSection error: ${err}`);
|
|
34105
34104
|
}
|
|
34106
34105
|
return Promise.resolve(pas);
|
|
34107
34106
|
});
|
|
@@ -34137,7 +34136,7 @@ var init_pagemap = __esm({
|
|
|
34137
34136
|
sortByDefault(pages);
|
|
34138
34137
|
return pages;
|
|
34139
34138
|
} catch (err) {
|
|
34140
|
-
|
|
34139
|
+
log25.error(`getPagesWithTerm error: ${err}`);
|
|
34141
34140
|
}
|
|
34142
34141
|
return pas;
|
|
34143
34142
|
});
|
|
@@ -34165,7 +34164,7 @@ var init_pagemap = __esm({
|
|
|
34165
34164
|
sortByDefault(pages);
|
|
34166
34165
|
return pages;
|
|
34167
34166
|
} catch (err) {
|
|
34168
|
-
|
|
34167
|
+
log25.error(`getTermsForPageInTaxonomy error: ${err}`);
|
|
34169
34168
|
}
|
|
34170
34169
|
return pas;
|
|
34171
34170
|
});
|
|
@@ -34205,7 +34204,7 @@ var init_pagemap = __esm({
|
|
|
34205
34204
|
sortByDefault(pages);
|
|
34206
34205
|
return pages;
|
|
34207
34206
|
} catch (err) {
|
|
34208
|
-
|
|
34207
|
+
log25.error(`getSections error: ${err}`);
|
|
34209
34208
|
}
|
|
34210
34209
|
return pagesList;
|
|
34211
34210
|
}
|
|
@@ -34224,13 +34223,13 @@ var init_pagemap = __esm({
|
|
|
34224
34223
|
});
|
|
34225
34224
|
|
|
34226
34225
|
// internal/domain/content/entity/pagecollector.ts
|
|
34227
|
-
var
|
|
34226
|
+
var log26, PagesCollector;
|
|
34228
34227
|
var init_pagecollector = __esm({
|
|
34229
34228
|
"internal/domain/content/entity/pagecollector.ts"() {
|
|
34230
34229
|
"use strict";
|
|
34231
34230
|
init_content3();
|
|
34232
34231
|
init_log();
|
|
34233
|
-
|
|
34232
|
+
log26 = getDomainLogger("content", { component: "pagecollector" });
|
|
34234
34233
|
PagesCollector = class {
|
|
34235
34234
|
m;
|
|
34236
34235
|
fs;
|
|
@@ -34250,7 +34249,7 @@ var init_pagecollector = __esm({
|
|
|
34250
34249
|
await this.collectDir(cfs, dirPath, root2);
|
|
34251
34250
|
}
|
|
34252
34251
|
} catch (error) {
|
|
34253
|
-
|
|
34252
|
+
log26.error(`Failed to collect directory: ${error}, continuing...`);
|
|
34254
34253
|
}
|
|
34255
34254
|
}
|
|
34256
34255
|
/**
|
|
@@ -34262,7 +34261,7 @@ var init_pagecollector = __esm({
|
|
|
34262
34261
|
hookPre: async (dir2, path30, readdir2) => {
|
|
34263
34262
|
const fullPath = path30;
|
|
34264
34263
|
if (this.processedPaths.has(fullPath)) {
|
|
34265
|
-
|
|
34264
|
+
log26.warn("Path already processed!", {
|
|
34266
34265
|
path: fullPath,
|
|
34267
34266
|
dirName: dir2.name(),
|
|
34268
34267
|
dirIsDir: dir2.isDir(),
|
|
@@ -34290,7 +34289,7 @@ var init_pagecollector = __esm({
|
|
|
34290
34289
|
info: root2
|
|
34291
34290
|
});
|
|
34292
34291
|
} catch (error) {
|
|
34293
|
-
|
|
34292
|
+
log26.error(`Failed to collect directory: ${error}`, {
|
|
34294
34293
|
path: path29,
|
|
34295
34294
|
rootName: root2.name(),
|
|
34296
34295
|
rootIsDir: root2.isDir(),
|
|
@@ -34339,7 +34338,7 @@ var init_entity2 = __esm({
|
|
|
34339
34338
|
});
|
|
34340
34339
|
|
|
34341
34340
|
// internal/domain/content/entity/content.ts
|
|
34342
|
-
var
|
|
34341
|
+
var log27, Content2;
|
|
34343
34342
|
var init_content2 = __esm({
|
|
34344
34343
|
"internal/domain/content/entity/content.ts"() {
|
|
34345
34344
|
"use strict";
|
|
@@ -34348,7 +34347,7 @@ var init_content2 = __esm({
|
|
|
34348
34347
|
init_fileinfo2();
|
|
34349
34348
|
init_log();
|
|
34350
34349
|
init_paths();
|
|
34351
|
-
|
|
34350
|
+
log27 = getDomainLogger("content", { component: "content" });
|
|
34352
34351
|
Content2 = class {
|
|
34353
34352
|
fs;
|
|
34354
34353
|
converter;
|
|
@@ -34386,7 +34385,7 @@ var init_content2 = __esm({
|
|
|
34386
34385
|
}
|
|
34387
34386
|
async collectPages() {
|
|
34388
34387
|
if (this.pageCollected) {
|
|
34389
|
-
|
|
34388
|
+
log27.info("Pages have already been collected, skipping.");
|
|
34390
34389
|
return;
|
|
34391
34390
|
}
|
|
34392
34391
|
try {
|
|
@@ -34485,7 +34484,7 @@ var init_content2 = __esm({
|
|
|
34485
34484
|
try {
|
|
34486
34485
|
await w.walk();
|
|
34487
34486
|
} catch (error) {
|
|
34488
|
-
|
|
34487
|
+
log27.error(`WalkPages failed for langIndex ${langIndex}:`, error);
|
|
34489
34488
|
throw error;
|
|
34490
34489
|
}
|
|
34491
34490
|
}
|
|
@@ -34530,7 +34529,7 @@ var init_content2 = __esm({
|
|
|
34530
34529
|
page: () => sp,
|
|
34531
34530
|
owner: () => t
|
|
34532
34531
|
}).catch((err) => {
|
|
34533
|
-
|
|
34532
|
+
log27.error("Error in taxonomy walker:", err);
|
|
34534
34533
|
});
|
|
34535
34534
|
return [false, null];
|
|
34536
34535
|
}
|
|
@@ -34567,7 +34566,7 @@ var init_content2 = __esm({
|
|
|
34567
34566
|
}
|
|
34568
34567
|
return null;
|
|
34569
34568
|
} catch (error) {
|
|
34570
|
-
|
|
34569
|
+
log27.error(`\u274C Content.getPageFromPath error for path "${path29}":`, error);
|
|
34571
34570
|
return null;
|
|
34572
34571
|
}
|
|
34573
34572
|
}
|
|
@@ -34583,7 +34582,7 @@ var init_content2 = __esm({
|
|
|
34583
34582
|
}
|
|
34584
34583
|
return null;
|
|
34585
34584
|
} catch (error) {
|
|
34586
|
-
|
|
34585
|
+
log27.error(`\u274C Content.getPageFromPath error for path "${file.path()}":`, error);
|
|
34587
34586
|
return null;
|
|
34588
34587
|
}
|
|
34589
34588
|
}
|
|
@@ -34593,7 +34592,7 @@ var init_content2 = __esm({
|
|
|
34593
34592
|
try {
|
|
34594
34593
|
await this.addOrUpdateFile(fileMetaInfo, affectedPageKeys);
|
|
34595
34594
|
} catch (error) {
|
|
34596
|
-
|
|
34595
|
+
log27.error(`Failed to process file change for ${filePath}:`, error);
|
|
34597
34596
|
}
|
|
34598
34597
|
}
|
|
34599
34598
|
return affectedPageKeys;
|
|
@@ -34617,7 +34616,7 @@ var init_content2 = __esm({
|
|
|
34617
34616
|
page.pageIdentity().markStale();
|
|
34618
34617
|
}
|
|
34619
34618
|
} catch (error) {
|
|
34620
|
-
|
|
34619
|
+
log27.error(`Failed to add/update file in PageMap: ${fileMetaInfo.fileName()}`, error);
|
|
34621
34620
|
throw error;
|
|
34622
34621
|
}
|
|
34623
34622
|
}
|
|
@@ -34629,7 +34628,7 @@ var init_content2 = __esm({
|
|
|
34629
34628
|
*/
|
|
34630
34629
|
translate(lang2, translationID) {
|
|
34631
34630
|
if (!this.translator) {
|
|
34632
|
-
|
|
34631
|
+
log27.warn("Translator not initialized, returning fallback translation");
|
|
34633
34632
|
return `[i18n] ${translationID}`;
|
|
34634
34633
|
}
|
|
34635
34634
|
return this.translator.translate(lang2, translationID);
|
|
@@ -34763,7 +34762,7 @@ var init_pagecontent = __esm({
|
|
|
34763
34762
|
});
|
|
34764
34763
|
|
|
34765
34764
|
// internal/domain/content/entity/section.ts
|
|
34766
|
-
var
|
|
34765
|
+
var log28, PAGE_HOME_BASE, Section;
|
|
34767
34766
|
var init_section = __esm({
|
|
34768
34767
|
"internal/domain/content/entity/section.ts"() {
|
|
34769
34768
|
"use strict";
|
|
@@ -34773,7 +34772,7 @@ var init_section = __esm({
|
|
|
34773
34772
|
init_kind();
|
|
34774
34773
|
init_doctree();
|
|
34775
34774
|
init_log();
|
|
34776
|
-
|
|
34775
|
+
log28 = getDomainLogger("content", { component: "section" });
|
|
34777
34776
|
PAGE_HOME_BASE = "/";
|
|
34778
34777
|
Section = class {
|
|
34779
34778
|
home;
|
|
@@ -34848,7 +34847,7 @@ var init_section = __esm({
|
|
|
34848
34847
|
try {
|
|
34849
34848
|
await walker.walk();
|
|
34850
34849
|
} catch (error) {
|
|
34851
|
-
|
|
34850
|
+
log28.error("Error walking pages:", error);
|
|
34852
34851
|
throw error;
|
|
34853
34852
|
}
|
|
34854
34853
|
if (!this.home) {
|
|
@@ -35037,12 +35036,12 @@ var init_pageoutput = __esm({
|
|
|
35037
35036
|
});
|
|
35038
35037
|
|
|
35039
35038
|
// internal/domain/content/entity/paginator.ts
|
|
35040
|
-
var
|
|
35039
|
+
var log29, PaginatorImpl, PagerImpl, PaginatorManagerImpl;
|
|
35041
35040
|
var init_paginator = __esm({
|
|
35042
35041
|
"internal/domain/content/entity/paginator.ts"() {
|
|
35043
35042
|
"use strict";
|
|
35044
35043
|
init_log();
|
|
35045
|
-
|
|
35044
|
+
log29 = getDomainLogger("content", { component: "paginator" });
|
|
35046
35045
|
PaginatorImpl = class {
|
|
35047
35046
|
paginatedElements;
|
|
35048
35047
|
_pagers;
|
|
@@ -35411,7 +35410,7 @@ var init_paths2 = __esm({
|
|
|
35411
35410
|
});
|
|
35412
35411
|
|
|
35413
35412
|
// internal/domain/content/entity/page.ts
|
|
35414
|
-
var import_path10,
|
|
35413
|
+
var import_path10, log30, PageImpl, TaxonomyPageImpl, TermPageImpl;
|
|
35415
35414
|
var init_page = __esm({
|
|
35416
35415
|
"internal/domain/content/entity/page.ts"() {
|
|
35417
35416
|
"use strict";
|
|
@@ -35425,7 +35424,7 @@ var init_page = __esm({
|
|
|
35425
35424
|
init_sort();
|
|
35426
35425
|
import_path10 = __toESM2(require("path"));
|
|
35427
35426
|
init_log();
|
|
35428
|
-
|
|
35427
|
+
log30 = getDomainLogger("content", { component: "page" });
|
|
35429
35428
|
PageImpl = class {
|
|
35430
35429
|
source;
|
|
35431
35430
|
content;
|
|
@@ -36496,13 +36495,13 @@ function newPartialTemplateNamespace() {
|
|
|
36496
36495
|
function newShortcodeTemplateNamespace() {
|
|
36497
36496
|
return new ShortcodeTemplateNamespace();
|
|
36498
36497
|
}
|
|
36499
|
-
var
|
|
36498
|
+
var log31, BaseNamespace, RegularTemplateNamespace, PartialTemplateNamespace, ShortcodeTemplateNamespace;
|
|
36500
36499
|
var init_namespace = __esm({
|
|
36501
36500
|
"internal/domain/template/vo/namespace.ts"() {
|
|
36502
36501
|
"use strict";
|
|
36503
36502
|
init_type8();
|
|
36504
36503
|
init_log();
|
|
36505
|
-
|
|
36504
|
+
log31 = getDomainLogger("template", { component: "namespace" });
|
|
36506
36505
|
BaseNamespace = class {
|
|
36507
36506
|
templates = /* @__PURE__ */ new Map();
|
|
36508
36507
|
mutex = /* @__PURE__ */ new Set();
|
|
@@ -39417,12 +39416,12 @@ var require_dist = __commonJS({
|
|
|
39417
39416
|
});
|
|
39418
39417
|
|
|
39419
39418
|
// pkg/cahce/cache.ts
|
|
39420
|
-
var
|
|
39419
|
+
var log32, ConcurrentCache, globalBuildCache;
|
|
39421
39420
|
var init_cache2 = __esm({
|
|
39422
39421
|
"pkg/cahce/cache.ts"() {
|
|
39423
39422
|
"use strict";
|
|
39424
39423
|
init_log();
|
|
39425
|
-
|
|
39424
|
+
log32 = getDomainLogger("content", { component: "cache" });
|
|
39426
39425
|
ConcurrentCache = class {
|
|
39427
39426
|
cache = /* @__PURE__ */ new Map();
|
|
39428
39427
|
pendingPromises = /* @__PURE__ */ new Map();
|
|
@@ -39518,7 +39517,7 @@ var init_cache2 = __esm({
|
|
|
39518
39517
|
}
|
|
39519
39518
|
} catch (error) {
|
|
39520
39519
|
this.pendingPromises.delete(key3);
|
|
39521
|
-
|
|
39520
|
+
log32.error(`Failed to create value for key ${String(key3)} : ${error}`);
|
|
39522
39521
|
throw error;
|
|
39523
39522
|
}
|
|
39524
39523
|
}
|
|
@@ -39569,7 +39568,7 @@ var init_cache2 = __esm({
|
|
|
39569
39568
|
function newParser(funcMap = /* @__PURE__ */ new Map()) {
|
|
39570
39569
|
return new Parser(funcMap);
|
|
39571
39570
|
}
|
|
39572
|
-
var import_text_template, import_text_template2,
|
|
39571
|
+
var import_text_template, import_text_template2, log33, Parser;
|
|
39573
39572
|
var init_parser = __esm({
|
|
39574
39573
|
"internal/domain/template/entity/parser.ts"() {
|
|
39575
39574
|
"use strict";
|
|
@@ -39579,7 +39578,7 @@ var init_parser = __esm({
|
|
|
39579
39578
|
init_info();
|
|
39580
39579
|
init_log();
|
|
39581
39580
|
init_cache2();
|
|
39582
|
-
|
|
39581
|
+
log33 = getDomainLogger("template", { component: "parser" });
|
|
39583
39582
|
Parser = class {
|
|
39584
39583
|
prototypeText;
|
|
39585
39584
|
prototypeTextClone;
|
|
@@ -39673,7 +39672,7 @@ var init_parser = __esm({
|
|
|
39673
39672
|
return [ts, true, null];
|
|
39674
39673
|
} catch (error) {
|
|
39675
39674
|
const templateError = error instanceof TemplateError ? error : new TemplateError(`Parse overlap failed: ${error.message}`, "PARSE_OVERLAP_FAILED");
|
|
39676
|
-
|
|
39675
|
+
log33.error(`Failed to parse template overlap for key: ${cacheKey}: ${templateError.message}`);
|
|
39677
39676
|
return [null, false, templateError];
|
|
39678
39677
|
}
|
|
39679
39678
|
});
|
|
@@ -39710,12 +39709,12 @@ var init_parser = __esm({
|
|
|
39710
39709
|
if (state.template.Tree) {
|
|
39711
39710
|
const [, addErr] = overlayTmpl.AddParseTree(name, state.template.Tree);
|
|
39712
39711
|
if (addErr) {
|
|
39713
|
-
|
|
39712
|
+
log33.error(`AddParseTree failed: ${addErr.message} with name ${name}`);
|
|
39714
39713
|
throw new TemplateError(`AddParseTree failed: ${addErr.message}`, "ADD_PARSE_TREE_FAILED");
|
|
39715
39714
|
}
|
|
39716
39715
|
}
|
|
39717
39716
|
} catch (error) {
|
|
39718
|
-
|
|
39717
|
+
log33.error(`Error adding dependency ${name} to template ${overlay.name}:`, error);
|
|
39719
39718
|
throw new TemplateError(`Failed to add dependency ${name}: ${error.message}`, "DEPENDENCY_ADD_FAILED");
|
|
39720
39719
|
}
|
|
39721
39720
|
}
|
|
@@ -39807,7 +39806,7 @@ var init_parser = __esm({
|
|
|
39807
39806
|
}
|
|
39808
39807
|
}
|
|
39809
39808
|
} catch (error) {
|
|
39810
|
-
|
|
39809
|
+
log33.error(`Error getting dependencies for template ${tmpl.Name()}:`, error);
|
|
39811
39810
|
}
|
|
39812
39811
|
return resultMap;
|
|
39813
39812
|
}
|
|
@@ -40051,7 +40050,7 @@ var init_lookup = __esm({
|
|
|
40051
40050
|
function newTemplateEngine(executor, lookup, parser, templateNamespace, partialNamespace, shortcodeNamespace, fs3) {
|
|
40052
40051
|
return new TemplateEngine(executor, lookup, parser, templateNamespace, partialNamespace, shortcodeNamespace, fs3);
|
|
40053
40052
|
}
|
|
40054
|
-
var
|
|
40053
|
+
var log34, TemplateEngine;
|
|
40055
40054
|
var init_template = __esm({
|
|
40056
40055
|
"internal/domain/template/entity/template.ts"() {
|
|
40057
40056
|
"use strict";
|
|
@@ -40060,7 +40059,7 @@ var init_template = __esm({
|
|
|
40060
40059
|
init_info();
|
|
40061
40060
|
init_log();
|
|
40062
40061
|
init_paths();
|
|
40063
|
-
|
|
40062
|
+
log34 = getDomainLogger("template", { component: "template-engine" });
|
|
40064
40063
|
TemplateEngine = class {
|
|
40065
40064
|
executor;
|
|
40066
40065
|
lookup;
|
|
@@ -40166,7 +40165,7 @@ var init_template = __esm({
|
|
|
40166
40165
|
return [tmpl, name, true, null];
|
|
40167
40166
|
}
|
|
40168
40167
|
} catch (error) {
|
|
40169
|
-
|
|
40168
|
+
log34.error("Error finding template:", error);
|
|
40170
40169
|
}
|
|
40171
40170
|
}
|
|
40172
40171
|
return [null, null, false, null];
|
|
@@ -40206,7 +40205,7 @@ var init_template = __esm({
|
|
|
40206
40205
|
try {
|
|
40207
40206
|
await this.addTemplateFileInfo(normalizedName, fi);
|
|
40208
40207
|
} catch (error) {
|
|
40209
|
-
|
|
40208
|
+
log34.error("Error adding template:", new TemplateError(`Failed to add template ${normalizedName}: ${error.message}`, "LOAD_TEMPLATE_FAILED"));
|
|
40210
40209
|
}
|
|
40211
40210
|
};
|
|
40212
40211
|
try {
|
|
@@ -40414,17 +40413,17 @@ function updateEngineDependentFunctions(engine) {
|
|
|
40414
40413
|
try {
|
|
40415
40414
|
func.updateEngine(engine);
|
|
40416
40415
|
} catch (error) {
|
|
40417
|
-
|
|
40416
|
+
log35.error(`\u274C Failed to update function ${func.getFunctionName()}:`, error);
|
|
40418
40417
|
}
|
|
40419
40418
|
}
|
|
40420
40419
|
}
|
|
40421
|
-
var crypto2,
|
|
40420
|
+
var crypto2, log35, engineDependentFunctions, PartialFunction, DefaultTemplateRegistry;
|
|
40422
40421
|
var init_registry = __esm({
|
|
40423
40422
|
"internal/domain/template/vo/registry.ts"() {
|
|
40424
40423
|
"use strict";
|
|
40425
40424
|
init_log();
|
|
40426
40425
|
crypto2 = __toESM2(require("crypto"));
|
|
40427
|
-
|
|
40426
|
+
log35 = getDomainLogger("template", { component: "registry" });
|
|
40428
40427
|
engineDependentFunctions = [];
|
|
40429
40428
|
PartialFunction = class {
|
|
40430
40429
|
engine = null;
|
|
@@ -40436,14 +40435,14 @@ var init_registry = __esm({
|
|
|
40436
40435
|
}
|
|
40437
40436
|
execute = async (name, context) => {
|
|
40438
40437
|
if (!this.engine) {
|
|
40439
|
-
|
|
40438
|
+
log35.error(`Partial function called but engine not set: ${name}`);
|
|
40440
40439
|
return `<!-- Partial function called but engine not ready: ${name} -->`;
|
|
40441
40440
|
}
|
|
40442
40441
|
try {
|
|
40443
40442
|
const templateName = name.startsWith("partials/") ? name : `partials/${name}`;
|
|
40444
40443
|
return await this.executePartial(templateName, context);
|
|
40445
40444
|
} catch (error) {
|
|
40446
|
-
|
|
40445
|
+
log35.error(`Partial execution failed for "${name}":`, error);
|
|
40447
40446
|
return `<!-- Partial execution failed: ${name} - ${error.message} -->`;
|
|
40448
40447
|
}
|
|
40449
40448
|
};
|
|
@@ -40457,21 +40456,21 @@ var init_registry = __esm({
|
|
|
40457
40456
|
try {
|
|
40458
40457
|
const [templateObj, found2, err] = await this.engine.getPartial(templateName);
|
|
40459
40458
|
if (err) {
|
|
40460
|
-
|
|
40459
|
+
log35.error(`Error getting partial template:`, err);
|
|
40461
40460
|
return `<!-- Error getting partial template: ${templateName} - ${err.message} -->`;
|
|
40462
40461
|
}
|
|
40463
40462
|
if (!found2 || !templateObj) {
|
|
40464
|
-
|
|
40463
|
+
log35.warn(`Template not found: ${templateName}`);
|
|
40465
40464
|
return `<!-- Template not found: ${templateName} -->`;
|
|
40466
40465
|
}
|
|
40467
40466
|
const [result, execErr] = await templateObj.Execute(context);
|
|
40468
40467
|
if (execErr) {
|
|
40469
|
-
|
|
40468
|
+
log35.error(`Template execution error:`, execErr);
|
|
40470
40469
|
return `<!-- Template execution error: ${templateName} - ${execErr.message} -->`;
|
|
40471
40470
|
}
|
|
40472
40471
|
return result;
|
|
40473
40472
|
} catch (error) {
|
|
40474
|
-
|
|
40473
|
+
log35.error(`Sync partial execution failed:`, error);
|
|
40475
40474
|
return `<!-- Partial sync execution failed: ${templateName} - ${error.message} -->`;
|
|
40476
40475
|
}
|
|
40477
40476
|
}
|
|
@@ -40822,11 +40821,11 @@ var init_registry = __esm({
|
|
|
40822
40821
|
});
|
|
40823
40822
|
funcMap.set("split", (str2, sep3) => {
|
|
40824
40823
|
if (str2 === null || str2 === void 0) {
|
|
40825
|
-
|
|
40824
|
+
log35.warn("split function: first argument is null or undefined");
|
|
40826
40825
|
return [];
|
|
40827
40826
|
}
|
|
40828
40827
|
if (typeof str2 !== "string") {
|
|
40829
|
-
|
|
40828
|
+
log35.warn("split function: first argument must be a string, got:", typeof str2, "value:", str2);
|
|
40830
40829
|
if (Array.isArray(str2)) {
|
|
40831
40830
|
return str2;
|
|
40832
40831
|
}
|
|
@@ -40837,11 +40836,11 @@ var init_registry = __esm({
|
|
|
40837
40836
|
});
|
|
40838
40837
|
funcMap.set("splitRegex", (str2, regexPattern) => {
|
|
40839
40838
|
if (str2 === null || str2 === void 0) {
|
|
40840
|
-
|
|
40839
|
+
log35.warn("splitRegex function: first argument is null or undefined");
|
|
40841
40840
|
return [];
|
|
40842
40841
|
}
|
|
40843
40842
|
if (typeof str2 !== "string") {
|
|
40844
|
-
|
|
40843
|
+
log35.warn("splitRegex function: first argument must be a string, got:", typeof str2, "value:", str2);
|
|
40845
40844
|
if (Array.isArray(str2)) {
|
|
40846
40845
|
return str2;
|
|
40847
40846
|
}
|
|
@@ -40850,7 +40849,7 @@ var init_registry = __esm({
|
|
|
40850
40849
|
const regex2 = new RegExp(regexPattern);
|
|
40851
40850
|
return stringValue.split(regex2);
|
|
40852
40851
|
} catch (error) {
|
|
40853
|
-
|
|
40852
|
+
log35.warn("splitRegex function: invalid regex pattern:", regexPattern, "error:", error);
|
|
40854
40853
|
return [stringValue];
|
|
40855
40854
|
}
|
|
40856
40855
|
}
|
|
@@ -40858,7 +40857,7 @@ var init_registry = __esm({
|
|
|
40858
40857
|
const regex2 = new RegExp(regexPattern);
|
|
40859
40858
|
return str2.split(regex2);
|
|
40860
40859
|
} catch (error) {
|
|
40861
|
-
|
|
40860
|
+
log35.warn("splitRegex function: invalid regex pattern:", regexPattern, "error:", error);
|
|
40862
40861
|
return [str2];
|
|
40863
40862
|
}
|
|
40864
40863
|
});
|
|
@@ -41643,7 +41642,7 @@ var init_registry = __esm({
|
|
|
41643
41642
|
try {
|
|
41644
41643
|
return this.doIndex(item, indices);
|
|
41645
41644
|
} catch (error) {
|
|
41646
|
-
|
|
41645
|
+
log35.error(`Index of type ${typeof item} with args [${indices.join(", ")}] failed:`, error);
|
|
41647
41646
|
return null;
|
|
41648
41647
|
}
|
|
41649
41648
|
});
|
|
@@ -42221,7 +42220,7 @@ var init_registry = __esm({
|
|
|
42221
42220
|
for (let i = 0; i < args.length; i++) {
|
|
42222
42221
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42223
42222
|
}
|
|
42224
|
-
|
|
42223
|
+
log35.error("Template Error:", message);
|
|
42225
42224
|
return "";
|
|
42226
42225
|
});
|
|
42227
42226
|
funcMap.set("warnf", (format3, ...args) => {
|
|
@@ -42229,7 +42228,7 @@ var init_registry = __esm({
|
|
|
42229
42228
|
for (let i = 0; i < args.length; i++) {
|
|
42230
42229
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42231
42230
|
}
|
|
42232
|
-
|
|
42231
|
+
log35.warn("Template Warning:", message);
|
|
42233
42232
|
return "";
|
|
42234
42233
|
});
|
|
42235
42234
|
funcMap.set("fmt", () => ({
|
|
@@ -42256,7 +42255,7 @@ var init_registry = __esm({
|
|
|
42256
42255
|
for (let i = 0; i < args.length; i++) {
|
|
42257
42256
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42258
42257
|
}
|
|
42259
|
-
|
|
42258
|
+
log35.error("Template Error:", message);
|
|
42260
42259
|
return "";
|
|
42261
42260
|
},
|
|
42262
42261
|
// Erroridf formats args according to a format specifier and logs an ERROR with ID
|
|
@@ -42266,7 +42265,7 @@ var init_registry = __esm({
|
|
|
42266
42265
|
for (let i = 0; i < args.length; i++) {
|
|
42267
42266
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42268
42267
|
}
|
|
42269
|
-
|
|
42268
|
+
log35.error("Template Error:", message);
|
|
42270
42269
|
return "";
|
|
42271
42270
|
},
|
|
42272
42271
|
// Warnf formats args according to a format specifier and logs a WARNING
|
|
@@ -42276,7 +42275,7 @@ var init_registry = __esm({
|
|
|
42276
42275
|
for (let i = 0; i < args.length; i++) {
|
|
42277
42276
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42278
42277
|
}
|
|
42279
|
-
|
|
42278
|
+
log35.error("Template Warning:", message);
|
|
42280
42279
|
return "";
|
|
42281
42280
|
},
|
|
42282
42281
|
// Warnidf formats args according to a format specifier and logs a WARNING with ID
|
|
@@ -42286,7 +42285,7 @@ var init_registry = __esm({
|
|
|
42286
42285
|
for (let i = 0; i < args.length; i++) {
|
|
42287
42286
|
message = message.replace(/%[sd%]/, String(args[i]));
|
|
42288
42287
|
}
|
|
42289
|
-
|
|
42288
|
+
log35.error("Template Warning:", message);
|
|
42290
42289
|
return "";
|
|
42291
42290
|
}
|
|
42292
42291
|
}));
|
|
@@ -42934,7 +42933,7 @@ var init_template3 = __esm({
|
|
|
42934
42933
|
});
|
|
42935
42934
|
|
|
42936
42935
|
// internal/domain/content/entity/pagebuilder.ts
|
|
42937
|
-
var
|
|
42936
|
+
var log36, PageBuilder;
|
|
42938
42937
|
var init_pagebuilder = __esm({
|
|
42939
42938
|
"internal/domain/content/entity/pagebuilder.ts"() {
|
|
42940
42939
|
"use strict";
|
|
@@ -42950,7 +42949,7 @@ var init_pagebuilder = __esm({
|
|
|
42950
42949
|
init_paginator();
|
|
42951
42950
|
init_shortcode2();
|
|
42952
42951
|
init_template3();
|
|
42953
|
-
|
|
42952
|
+
log36 = getDomainLogger("content", { component: "pagebuilder" });
|
|
42954
42953
|
PageBuilder = class {
|
|
42955
42954
|
urlSvc;
|
|
42956
42955
|
langSvc;
|
|
@@ -43197,7 +43196,7 @@ var init_pagebuilder = __esm({
|
|
|
43197
43196
|
};
|
|
43198
43197
|
return;
|
|
43199
43198
|
}
|
|
43200
|
-
|
|
43199
|
+
log36.info(`Lazy rendering not enabled, rendering immediately for page: ${p2.path()}`);
|
|
43201
43200
|
const contentResult = await this.renderableDocument?.render({
|
|
43202
43201
|
maxSummaryLength: 300,
|
|
43203
43202
|
// Default summary length
|
|
@@ -43317,24 +43316,24 @@ var init_pagebuilder = __esm({
|
|
|
43317
43316
|
createShortcodeRenderer(p2) {
|
|
43318
43317
|
return async (shortcode) => {
|
|
43319
43318
|
if (!this.templateSvc) {
|
|
43320
|
-
|
|
43319
|
+
log36.warn(`Template service not available for shortcode: ${shortcode.name}`);
|
|
43321
43320
|
return "";
|
|
43322
43321
|
}
|
|
43323
43322
|
try {
|
|
43324
43323
|
if (!shortcode.name) {
|
|
43325
|
-
|
|
43324
|
+
log36.warn("Shortcode missing name");
|
|
43326
43325
|
return "";
|
|
43327
43326
|
}
|
|
43328
43327
|
return await this.doRenderShortcode(shortcode, null, 0, p2);
|
|
43329
43328
|
} catch (error) {
|
|
43330
|
-
|
|
43329
|
+
log36.error(`Error rendering shortcode "${shortcode.name}":`, error);
|
|
43331
43330
|
return "";
|
|
43332
43331
|
}
|
|
43333
43332
|
};
|
|
43334
43333
|
}
|
|
43335
43334
|
async doRenderShortcode(sc, parent, level, page) {
|
|
43336
43335
|
if (sc.inline) {
|
|
43337
|
-
|
|
43336
|
+
log36.warn("Inline shortcodes are not supported yet.");
|
|
43338
43337
|
return "";
|
|
43339
43338
|
}
|
|
43340
43339
|
let data = new ShortcodeWithPage(
|
|
@@ -43363,7 +43362,7 @@ var init_pagebuilder = __esm({
|
|
|
43363
43362
|
);
|
|
43364
43363
|
inner += nestedResult;
|
|
43365
43364
|
} else {
|
|
43366
|
-
|
|
43365
|
+
log36.error(
|
|
43367
43366
|
`Illegal state on shortcode rendering of "${sc.name}". Illegal type in inner data: ${typeof innerData}`
|
|
43368
43367
|
);
|
|
43369
43368
|
return "";
|
|
@@ -43437,7 +43436,7 @@ var init_pagebuilder = __esm({
|
|
|
43437
43436
|
}
|
|
43438
43437
|
return resStr;
|
|
43439
43438
|
} catch (error) {
|
|
43440
|
-
|
|
43439
|
+
log36.error(`Error rendering shortcode markdown:`, error);
|
|
43441
43440
|
return "";
|
|
43442
43441
|
}
|
|
43443
43442
|
}
|
|
@@ -43654,7 +43653,7 @@ function toInt(v) {
|
|
|
43654
43653
|
}
|
|
43655
43654
|
throw new Error(`cannot convert ${typeof v} to int`);
|
|
43656
43655
|
}
|
|
43657
|
-
var
|
|
43656
|
+
var log37, Term;
|
|
43658
43657
|
var init_term = __esm({
|
|
43659
43658
|
"internal/domain/content/entity/term.ts"() {
|
|
43660
43659
|
"use strict";
|
|
@@ -43664,7 +43663,7 @@ var init_term = __esm({
|
|
|
43664
43663
|
init_frontmatter();
|
|
43665
43664
|
init_doctree();
|
|
43666
43665
|
init_log();
|
|
43667
|
-
|
|
43666
|
+
log37 = getDomainLogger("content", { component: "term" });
|
|
43668
43667
|
Term = class {
|
|
43669
43668
|
terms;
|
|
43670
43669
|
fsSvc;
|
|
@@ -43698,7 +43697,7 @@ var init_term = __esm({
|
|
|
43698
43697
|
try {
|
|
43699
43698
|
weight2 = toInt(w);
|
|
43700
43699
|
} catch (err) {
|
|
43701
|
-
|
|
43700
|
+
log37.warn(`Unable to convert taxonomy weight ${w} to int for "${ps.paths().path()}"`);
|
|
43702
43701
|
}
|
|
43703
43702
|
}
|
|
43704
43703
|
for (let i = 0; i < vals.length; i++) {
|
|
@@ -43789,12 +43788,12 @@ var init_content3 = __esm({
|
|
|
43789
43788
|
});
|
|
43790
43789
|
|
|
43791
43790
|
// internal/domain/site/entity/pager.ts
|
|
43792
|
-
var
|
|
43791
|
+
var log38, SitePager;
|
|
43793
43792
|
var init_pager = __esm({
|
|
43794
43793
|
"internal/domain/site/entity/pager.ts"() {
|
|
43795
43794
|
"use strict";
|
|
43796
43795
|
init_log();
|
|
43797
|
-
|
|
43796
|
+
log38 = getDomainLogger("site", { component: "pager" });
|
|
43798
43797
|
SitePager = class _SitePager {
|
|
43799
43798
|
page;
|
|
43800
43799
|
pager;
|
|
@@ -43901,14 +43900,14 @@ var init_pager = __esm({
|
|
|
43901
43900
|
});
|
|
43902
43901
|
|
|
43903
43902
|
// internal/domain/site/entity/page.ts
|
|
43904
|
-
var import_path11,
|
|
43903
|
+
var import_path11, log39, Page2;
|
|
43905
43904
|
var init_page2 = __esm({
|
|
43906
43905
|
"internal/domain/site/entity/page.ts"() {
|
|
43907
43906
|
"use strict";
|
|
43908
43907
|
import_path11 = __toESM2(require("path"));
|
|
43909
43908
|
init_log();
|
|
43910
43909
|
init_pager();
|
|
43911
|
-
|
|
43910
|
+
log39 = getDomainLogger("site", { component: "page" });
|
|
43912
43911
|
Page2 = class _Page {
|
|
43913
43912
|
// Services
|
|
43914
43913
|
tmplSvc;
|
|
@@ -43947,7 +43946,7 @@ var init_page2 = __esm({
|
|
|
43947
43946
|
await this.renderResources();
|
|
43948
43947
|
await this.renderPage();
|
|
43949
43948
|
} catch (error) {
|
|
43950
|
-
|
|
43949
|
+
log39.error(`Failed to render page ${this.paths().path()}: ${error}`);
|
|
43951
43950
|
}
|
|
43952
43951
|
}
|
|
43953
43952
|
getPageOutput() {
|
|
@@ -43964,7 +43963,7 @@ var init_page2 = __esm({
|
|
|
43964
43963
|
const layouts = this.layouts();
|
|
43965
43964
|
const { preparer: tmpl, found: found2 } = await this.tmplSvc.lookupLayout(layouts);
|
|
43966
43965
|
if (!found2) {
|
|
43967
|
-
|
|
43966
|
+
log39.warn(`Failed to find layout: ${layouts.join(",")} for page ${this.paths().path()}`);
|
|
43968
43967
|
return;
|
|
43969
43968
|
}
|
|
43970
43969
|
const targetFilenames = [];
|
|
@@ -44056,7 +44055,7 @@ var init_page2 = __esm({
|
|
|
44056
44055
|
try {
|
|
44057
44056
|
await stream.close();
|
|
44058
44057
|
} catch (closeError) {
|
|
44059
|
-
|
|
44058
|
+
log39.warn(`Failed to close resource stream: ${closeError}`);
|
|
44060
44059
|
}
|
|
44061
44060
|
}
|
|
44062
44061
|
}
|
|
@@ -44444,7 +44443,7 @@ var init_page2 = __esm({
|
|
|
44444
44443
|
}
|
|
44445
44444
|
return this._paginator;
|
|
44446
44445
|
} catch (error) {
|
|
44447
|
-
|
|
44446
|
+
log39.error("Error during pagination:", error);
|
|
44448
44447
|
return null;
|
|
44449
44448
|
}
|
|
44450
44449
|
}
|
|
@@ -44457,7 +44456,7 @@ var init_page2 = __esm({
|
|
|
44457
44456
|
this._paginator = null;
|
|
44458
44457
|
}
|
|
44459
44458
|
} catch (error) {
|
|
44460
|
-
|
|
44459
|
+
log39.error("Error initializing Paginator:", error);
|
|
44461
44460
|
this._paginator = null;
|
|
44462
44461
|
}
|
|
44463
44462
|
}
|
|
@@ -44493,7 +44492,7 @@ var init_page2 = __esm({
|
|
|
44493
44492
|
sitePage(p2) {
|
|
44494
44493
|
try {
|
|
44495
44494
|
if (p2 === null) {
|
|
44496
|
-
|
|
44495
|
+
log39.warn(`Invalid content page provided: ${p2}`);
|
|
44497
44496
|
return null;
|
|
44498
44497
|
}
|
|
44499
44498
|
return new _Page(
|
|
@@ -44504,7 +44503,7 @@ var init_page2 = __esm({
|
|
|
44504
44503
|
this.site
|
|
44505
44504
|
);
|
|
44506
44505
|
} catch (error) {
|
|
44507
|
-
|
|
44506
|
+
log39.error(`Error creating site page: ${error}`);
|
|
44508
44507
|
return null;
|
|
44509
44508
|
}
|
|
44510
44509
|
}
|
|
@@ -44960,12 +44959,12 @@ __export2(taxonomies_builder_exports, {
|
|
|
44960
44959
|
WeightedPage: () => WeightedPage,
|
|
44961
44960
|
WeightedPages: () => WeightedPages
|
|
44962
44961
|
});
|
|
44963
|
-
var
|
|
44962
|
+
var log40, WeightedPage, WeightedPages, Taxonomy3, OrderedTaxonomyEntry, OrderedTaxonomy, TaxonomyList, TaxonomiesBuilder;
|
|
44964
44963
|
var init_taxonomies_builder = __esm({
|
|
44965
44964
|
"internal/domain/site/entity/taxonomies-builder.ts"() {
|
|
44966
44965
|
"use strict";
|
|
44967
44966
|
init_log();
|
|
44968
|
-
|
|
44967
|
+
log40 = getDomainLogger("site", { component: "taxonomies-builder" });
|
|
44969
44968
|
WeightedPage = class {
|
|
44970
44969
|
page;
|
|
44971
44970
|
// Site Page (wrapped)
|
|
@@ -45003,7 +45002,7 @@ var init_taxonomies_builder = __esm({
|
|
|
45003
45002
|
// Page returns the first page (equivalent to Go's Page method)
|
|
45004
45003
|
page() {
|
|
45005
45004
|
if (this.length === 0) {
|
|
45006
|
-
|
|
45005
|
+
log40.error("Page called on empty WeightedPages");
|
|
45007
45006
|
return null;
|
|
45008
45007
|
}
|
|
45009
45008
|
return this[0];
|
|
@@ -45181,7 +45180,7 @@ var init_taxonomies_builder = __esm({
|
|
|
45181
45180
|
);
|
|
45182
45181
|
return taxonomies;
|
|
45183
45182
|
} catch (error) {
|
|
45184
|
-
|
|
45183
|
+
log40.error(`Failed to create taxonomies: ${error}`);
|
|
45185
45184
|
throw error;
|
|
45186
45185
|
}
|
|
45187
45186
|
}
|
|
@@ -45193,12 +45192,12 @@ var init_taxonomies_builder = __esm({
|
|
|
45193
45192
|
function newEmptyMenus() {
|
|
45194
45193
|
return new Menus({});
|
|
45195
45194
|
}
|
|
45196
|
-
var
|
|
45195
|
+
var log41, Menu2, Menus;
|
|
45197
45196
|
var init_menu = __esm({
|
|
45198
45197
|
"internal/domain/site/valueobject/menu.ts"() {
|
|
45199
45198
|
"use strict";
|
|
45200
45199
|
init_log();
|
|
45201
|
-
|
|
45200
|
+
log41 = getDomainLogger("site", { component: "menu" });
|
|
45202
45201
|
Menu2 = class _Menu {
|
|
45203
45202
|
_title;
|
|
45204
45203
|
_url;
|
|
@@ -45510,20 +45509,20 @@ var init_path3 = __esm({
|
|
|
45510
45509
|
});
|
|
45511
45510
|
|
|
45512
45511
|
// internal/domain/site/entity/pagegraph.ts
|
|
45513
|
-
var
|
|
45512
|
+
var log42, PageGraph;
|
|
45514
45513
|
var init_pagegraph = __esm({
|
|
45515
45514
|
"internal/domain/site/entity/pagegraph.ts"() {
|
|
45516
45515
|
"use strict";
|
|
45517
45516
|
init_path3();
|
|
45518
45517
|
init_log();
|
|
45519
|
-
|
|
45518
|
+
log42 = getDomainLogger("site", { component: "PageGraph" });
|
|
45520
45519
|
PageGraph = class {
|
|
45521
45520
|
allSlugs;
|
|
45522
45521
|
/** Map of page slug → outgoing links (simplified slugs) */
|
|
45523
45522
|
outgoingLinks = /* @__PURE__ */ new Map();
|
|
45524
45523
|
constructor(slugs) {
|
|
45525
45524
|
this.allSlugs = [...slugs];
|
|
45526
|
-
|
|
45525
|
+
log42.info(`PageGraph initialized with ${slugs.length} items (pages + resources)`);
|
|
45527
45526
|
}
|
|
45528
45527
|
/**
|
|
45529
45528
|
* Register outgoing links for a page (called during Pass 2)
|
|
@@ -61680,7 +61679,7 @@ var init_is_absolute_url = __esm({
|
|
|
61680
61679
|
function createHtmlLinkProcessor(graph, options) {
|
|
61681
61680
|
return new HtmlLinkProcessor(graph, options);
|
|
61682
61681
|
}
|
|
61683
|
-
var import_path13,
|
|
61682
|
+
var import_path13, log43, defaultOptions2, HtmlLinkProcessor;
|
|
61684
61683
|
var init_html_link_processor = __esm({
|
|
61685
61684
|
"internal/domain/site/service/html-link-processor.ts"() {
|
|
61686
61685
|
"use strict";
|
|
@@ -61692,7 +61691,7 @@ var init_html_link_processor = __esm({
|
|
|
61692
61691
|
import_path13 = __toESM2(require("path"));
|
|
61693
61692
|
init_path3();
|
|
61694
61693
|
init_log();
|
|
61695
|
-
|
|
61694
|
+
log43 = getDomainLogger("site", { component: "HtmlLinkProcessor" });
|
|
61696
61695
|
defaultOptions2 = {
|
|
61697
61696
|
markdownLinkResolution: "shortest",
|
|
61698
61697
|
prettyLinks: true,
|
|
@@ -61723,7 +61722,7 @@ var init_html_link_processor = __esm({
|
|
|
61723
61722
|
*/
|
|
61724
61723
|
async processLinks(srcSlug, html9) {
|
|
61725
61724
|
if (!html9 || typeof html9 !== "string") {
|
|
61726
|
-
|
|
61725
|
+
log43.error(`[HtmlLinkProcessor] Invalid HTML input: ${typeof html9}`);
|
|
61727
61726
|
return { html: html9 || "", outgoingLinks: [] };
|
|
61728
61727
|
}
|
|
61729
61728
|
const opts = this.options;
|
|
@@ -61861,7 +61860,7 @@ var init_html_link_processor = __esm({
|
|
|
61861
61860
|
});
|
|
61862
61861
|
|
|
61863
61862
|
// internal/domain/site/entity/site.ts
|
|
61864
|
-
var
|
|
61863
|
+
var log44, Site;
|
|
61865
61864
|
var init_site = __esm({
|
|
61866
61865
|
"internal/domain/site/entity/site.ts"() {
|
|
61867
61866
|
"use strict";
|
|
@@ -61873,7 +61872,7 @@ var init_site = __esm({
|
|
|
61873
61872
|
init_pagegraph();
|
|
61874
61873
|
init_html_link_processor();
|
|
61875
61874
|
init_page_filter();
|
|
61876
|
-
|
|
61875
|
+
log44 = getDomainLogger("site", { component: "site" });
|
|
61877
61876
|
Site = class {
|
|
61878
61877
|
// Services
|
|
61879
61878
|
configSvc;
|
|
@@ -61982,7 +61981,7 @@ var init_site = __esm({
|
|
|
61982
61981
|
}
|
|
61983
61982
|
} catch (error) {
|
|
61984
61983
|
const message = error instanceof Error ? error.message : String(error);
|
|
61985
|
-
|
|
61984
|
+
log44.error(`\u274C Site build failed: ${message}`);
|
|
61986
61985
|
throw error;
|
|
61987
61986
|
}
|
|
61988
61987
|
}
|
|
@@ -62011,7 +62010,7 @@ var init_site = __esm({
|
|
|
62011
62010
|
}
|
|
62012
62011
|
} catch (error) {
|
|
62013
62012
|
const message = error instanceof Error ? error.message : String(error);
|
|
62014
|
-
|
|
62013
|
+
log44.error(`\u274C Site build failed: ${message}`);
|
|
62015
62014
|
throw error;
|
|
62016
62015
|
}
|
|
62017
62016
|
}
|
|
@@ -62024,7 +62023,7 @@ var init_site = __esm({
|
|
|
62024
62023
|
await this.buildPageGraph();
|
|
62025
62024
|
} catch (error) {
|
|
62026
62025
|
const message = error instanceof Error ? error.message : String(error);
|
|
62027
|
-
|
|
62026
|
+
log44.error(`\u274C Setup failed: ${message}`);
|
|
62028
62027
|
throw error;
|
|
62029
62028
|
}
|
|
62030
62029
|
}
|
|
@@ -62070,16 +62069,16 @@ var init_site = __esm({
|
|
|
62070
62069
|
this.home = sitePage;
|
|
62071
62070
|
}
|
|
62072
62071
|
});
|
|
62073
|
-
|
|
62072
|
+
log44.info(`\u{1F4CA} Processing wikilinks for ${pages.length} pages...`);
|
|
62074
62073
|
for (const page of pages) {
|
|
62075
62074
|
try {
|
|
62076
62075
|
await page.WikilinkContent();
|
|
62077
62076
|
} catch (error) {
|
|
62078
62077
|
const message = error instanceof Error ? error.message : String(error);
|
|
62079
|
-
|
|
62078
|
+
log44.warn(`\u26A0\uFE0F Failed to process wikilinks for ${page.slug()}: ${message}`);
|
|
62080
62079
|
}
|
|
62081
62080
|
}
|
|
62082
|
-
|
|
62081
|
+
log44.info(`\u2705 Wikilink processing complete`);
|
|
62083
62082
|
for (let i = 0; i < pages.length; i++) {
|
|
62084
62083
|
const page = pages[i];
|
|
62085
62084
|
const pagePath = page.file().paths().base();
|
|
@@ -62110,16 +62109,16 @@ var init_site = __esm({
|
|
|
62110
62109
|
this.home = sitePage;
|
|
62111
62110
|
}
|
|
62112
62111
|
});
|
|
62113
|
-
|
|
62112
|
+
log44.info(`\u{1F4CA} Processing wikilinks for ${pages.length} pages...`);
|
|
62114
62113
|
for (const page of pages) {
|
|
62115
62114
|
try {
|
|
62116
62115
|
await page.WikilinkContent();
|
|
62117
62116
|
} catch (error) {
|
|
62118
62117
|
const message = error instanceof Error ? error.message : String(error);
|
|
62119
|
-
|
|
62118
|
+
log44.warn(`\u26A0\uFE0F Failed to process wikilinks for ${page.slug()}: ${message}`);
|
|
62120
62119
|
}
|
|
62121
62120
|
}
|
|
62122
|
-
|
|
62121
|
+
log44.info(`\u2705 Wikilink processing complete`);
|
|
62123
62122
|
const totalPages = pages.length;
|
|
62124
62123
|
for (let i = 0; i < pages.length; i++) {
|
|
62125
62124
|
const page = pages[i];
|
|
@@ -62311,7 +62310,7 @@ var init_site = __esm({
|
|
|
62311
62310
|
const sitePage = this.sitePageSync(cp);
|
|
62312
62311
|
pages.push(sitePage);
|
|
62313
62312
|
} catch (error) {
|
|
62314
|
-
|
|
62313
|
+
log44.error(`\u274C [Site.sitePages] Failed to convert page ${i}:`, error);
|
|
62315
62314
|
}
|
|
62316
62315
|
}
|
|
62317
62316
|
return pages;
|
|
@@ -62359,12 +62358,12 @@ var init_site = __esm({
|
|
|
62359
62358
|
const langIndex = this.languageSvc.getLanguageIndex(this.language.getCurrentLanguage());
|
|
62360
62359
|
const contentPage = this.contentSvc.getPageFromPathSync(langIndex, key3);
|
|
62361
62360
|
if (!contentPage) {
|
|
62362
|
-
|
|
62361
|
+
log44.warn(`\u26A0\uFE0F GetPage: No page found for key "${key3}"`);
|
|
62363
62362
|
return null;
|
|
62364
62363
|
}
|
|
62365
62364
|
return this.sitePageSync(contentPage);
|
|
62366
62365
|
} catch (error) {
|
|
62367
|
-
|
|
62366
|
+
log44.error(`\u274C Error getting page "${key3}": ${error}`);
|
|
62368
62367
|
return null;
|
|
62369
62368
|
}
|
|
62370
62369
|
}
|
|
@@ -62376,7 +62375,7 @@ var init_site = __esm({
|
|
|
62376
62375
|
try {
|
|
62377
62376
|
await this.staticCopySvc.copyStaticFiles(this.staticCopySvc.staticFs(), this.staticCopySvc.publishFs());
|
|
62378
62377
|
} catch (error) {
|
|
62379
|
-
|
|
62378
|
+
log44.error("\u274C Static file copy failed:", error);
|
|
62380
62379
|
throw error;
|
|
62381
62380
|
}
|
|
62382
62381
|
}
|
|
@@ -62400,7 +62399,7 @@ var init_site = __esm({
|
|
|
62400
62399
|
*/
|
|
62401
62400
|
async buildPageGraph() {
|
|
62402
62401
|
if (this.pageGraph) {
|
|
62403
|
-
|
|
62402
|
+
log44.debug("PageGraph already built, skipping rebuild");
|
|
62404
62403
|
return;
|
|
62405
62404
|
}
|
|
62406
62405
|
try {
|
|
@@ -62413,15 +62412,15 @@ var init_site = __esm({
|
|
|
62413
62412
|
});
|
|
62414
62413
|
}
|
|
62415
62414
|
const pageSlugs = allPages.map((page) => page.slug());
|
|
62416
|
-
|
|
62415
|
+
log44.info(`\u{1F4C4} Collected ${pageSlugs.length} page slugs`);
|
|
62417
62416
|
const resourceSlugs = await this.collectResourceSlugs(allPages);
|
|
62418
|
-
|
|
62417
|
+
log44.info(`\u{1F5BC}\uFE0F Collected ${resourceSlugs.length} resource slugs`);
|
|
62419
62418
|
const allSlugs = [...pageSlugs, ...resourceSlugs];
|
|
62420
62419
|
this.pageGraph = new PageGraph(allSlugs);
|
|
62421
|
-
|
|
62420
|
+
log44.info(`\u2705 PageGraph built: ${pageSlugs.length} pages + ${resourceSlugs.length} resources = ${allSlugs.length} total`);
|
|
62422
62421
|
} catch (error) {
|
|
62423
62422
|
const message = error instanceof Error ? error.message : String(error);
|
|
62424
|
-
|
|
62423
|
+
log44.error(`\u274C Failed to build PageGraph: ${message}`);
|
|
62425
62424
|
throw error;
|
|
62426
62425
|
}
|
|
62427
62426
|
}
|
|
@@ -62449,12 +62448,12 @@ var init_site = __esm({
|
|
|
62449
62448
|
}
|
|
62450
62449
|
} catch (error) {
|
|
62451
62450
|
const message = error instanceof Error ? error.message : String(error);
|
|
62452
|
-
|
|
62451
|
+
log44.debug(`\u26A0\uFE0F Failed to get resources for page ${page.slug()}: ${message}`);
|
|
62453
62452
|
}
|
|
62454
62453
|
}
|
|
62455
62454
|
} catch (error) {
|
|
62456
62455
|
const message = error instanceof Error ? error.message : String(error);
|
|
62457
|
-
|
|
62456
|
+
log44.warn(`\u26A0\uFE0F Failed to collect resource slugs: ${message}`);
|
|
62458
62457
|
}
|
|
62459
62458
|
return resourceSlugs;
|
|
62460
62459
|
}
|
|
@@ -62474,7 +62473,7 @@ var init_site = __esm({
|
|
|
62474
62473
|
*/
|
|
62475
62474
|
async ProcessWikilinks(srcSlug, html9) {
|
|
62476
62475
|
if (!this.pageGraph) {
|
|
62477
|
-
|
|
62476
|
+
log44.warn("\u26A0\uFE0F PageGraph not built yet, returning original HTML");
|
|
62478
62477
|
return html9;
|
|
62479
62478
|
}
|
|
62480
62479
|
try {
|
|
@@ -62487,7 +62486,7 @@ var init_site = __esm({
|
|
|
62487
62486
|
const urlObj = new URL2(baseURL);
|
|
62488
62487
|
baseURL = urlObj.pathname.replace(/\/$/, "");
|
|
62489
62488
|
} catch (e) {
|
|
62490
|
-
|
|
62489
|
+
log44.warn(`Failed to parse baseURL as URL: ${baseURL}, treating as path`);
|
|
62491
62490
|
}
|
|
62492
62491
|
}
|
|
62493
62492
|
if (baseURL === "/") {
|
|
@@ -62507,7 +62506,7 @@ var init_site = __esm({
|
|
|
62507
62506
|
return result.html;
|
|
62508
62507
|
} catch (error) {
|
|
62509
62508
|
const message = error instanceof Error ? error.message : String(error);
|
|
62510
|
-
|
|
62509
|
+
log44.error(`\u274C Failed to process wikilinks for ${srcSlug}: ${message}`);
|
|
62511
62510
|
return html9;
|
|
62512
62511
|
}
|
|
62513
62512
|
}
|
|
@@ -62532,7 +62531,7 @@ var init_site = __esm({
|
|
|
62532
62531
|
*/
|
|
62533
62532
|
GetBacklinks(targetSlug) {
|
|
62534
62533
|
if (!this.pageGraph) {
|
|
62535
|
-
|
|
62534
|
+
log44.warn(`\u26A0\uFE0F PageGraph not built yet, cannot get backlinks for ${targetSlug}`);
|
|
62536
62535
|
return [];
|
|
62537
62536
|
}
|
|
62538
62537
|
return this.pageGraph.getBacklinks(targetSlug);
|
|
@@ -62552,7 +62551,7 @@ var init_site = __esm({
|
|
|
62552
62551
|
*/
|
|
62553
62552
|
async GetContentIndex() {
|
|
62554
62553
|
if (!this.pageGraph) {
|
|
62555
|
-
|
|
62554
|
+
log44.warn(`\u26A0\uFE0F PageGraph not built yet, cannot generate content index`);
|
|
62556
62555
|
return /* @__PURE__ */ new Map();
|
|
62557
62556
|
}
|
|
62558
62557
|
const contentIndex = /* @__PURE__ */ new Map();
|
|
@@ -62570,7 +62569,7 @@ var init_site = __esm({
|
|
|
62570
62569
|
content: truncatedContent
|
|
62571
62570
|
});
|
|
62572
62571
|
}
|
|
62573
|
-
|
|
62572
|
+
log44.debug(`[Site] Generated contentIndex with ${contentIndex.size} entries`);
|
|
62574
62573
|
return contentIndex;
|
|
62575
62574
|
}
|
|
62576
62575
|
};
|
|
@@ -62594,13 +62593,13 @@ async function openFileForWriting(fs3, filename) {
|
|
|
62594
62593
|
function isFileNotFoundError(error) {
|
|
62595
62594
|
return error && (error.code === "ENOENT" || error.code === "FILE_NOT_FOUND" || error.message?.includes("not found") || error.message?.includes("no such file"));
|
|
62596
62595
|
}
|
|
62597
|
-
var import_path15,
|
|
62596
|
+
var import_path15, log45, Publisher, MultiWriter;
|
|
62598
62597
|
var init_publisher = __esm({
|
|
62599
62598
|
"internal/domain/site/entity/publisher.ts"() {
|
|
62600
62599
|
"use strict";
|
|
62601
62600
|
import_path15 = __toESM2(require("path"));
|
|
62602
62601
|
init_log();
|
|
62603
|
-
|
|
62602
|
+
log45 = getDomainLogger("site", { component: "publisher" });
|
|
62604
62603
|
Publisher = class {
|
|
62605
62604
|
fs;
|
|
62606
62605
|
constructor(fs3) {
|
|
@@ -62691,12 +62690,12 @@ var init_publisher = __esm({
|
|
|
62691
62690
|
});
|
|
62692
62691
|
|
|
62693
62692
|
// internal/domain/site/entity/ref.ts
|
|
62694
|
-
var
|
|
62693
|
+
var log46, Ref;
|
|
62695
62694
|
var init_ref = __esm({
|
|
62696
62695
|
"internal/domain/site/entity/ref.ts"() {
|
|
62697
62696
|
"use strict";
|
|
62698
62697
|
init_log();
|
|
62699
|
-
|
|
62698
|
+
log46 = getDomainLogger("site", { component: "ref" });
|
|
62700
62699
|
Ref = class {
|
|
62701
62700
|
site;
|
|
62702
62701
|
contentSvc;
|
|
@@ -62753,7 +62752,7 @@ var init_ref = __esm({
|
|
|
62753
62752
|
try {
|
|
62754
62753
|
refURL = new globalThis.URL(normalizedRef, "http://example.com");
|
|
62755
62754
|
} catch (error) {
|
|
62756
|
-
|
|
62755
|
+
log46.error(`Failed to parse ref URL: ${error}`);
|
|
62757
62756
|
return this.notFoundURL;
|
|
62758
62757
|
}
|
|
62759
62758
|
let target = null;
|
|
@@ -62778,7 +62777,7 @@ var init_ref = __esm({
|
|
|
62778
62777
|
link2 = sitePage.permalink();
|
|
62779
62778
|
}
|
|
62780
62779
|
} catch (error) {
|
|
62781
|
-
|
|
62780
|
+
log46.error(`[${page.pageIdentity().pageLanguage()}] REF_NOT_FOUND: Ref "${ref}": ${error}`);
|
|
62782
62781
|
return this.notFoundURL;
|
|
62783
62782
|
}
|
|
62784
62783
|
}
|
|
@@ -62800,11 +62799,11 @@ var init_ref = __esm({
|
|
|
62800
62799
|
logNotFound(ref, what, page, position3) {
|
|
62801
62800
|
const lang2 = page.pageIdentity().pageLanguage();
|
|
62802
62801
|
if (position3 && position3.isValid()) {
|
|
62803
|
-
|
|
62802
|
+
log46.error(`[${lang2}] REF_NOT_FOUND: Ref "${ref}": ${position3.toString()}: ${what}`);
|
|
62804
62803
|
} else if (!page) {
|
|
62805
|
-
|
|
62804
|
+
log46.error(`[${lang2}] REF_NOT_FOUND: Ref "${ref}": ${what}`);
|
|
62806
62805
|
} else {
|
|
62807
|
-
|
|
62806
|
+
log46.error(`[${lang2}] REF_NOT_FOUND: Ref "${ref}" from page "${page.path()}": ${what}`);
|
|
62808
62807
|
}
|
|
62809
62808
|
}
|
|
62810
62809
|
};
|
|
@@ -62812,12 +62811,12 @@ var init_ref = __esm({
|
|
|
62812
62811
|
});
|
|
62813
62812
|
|
|
62814
62813
|
// internal/domain/site/entity/language.ts
|
|
62815
|
-
var
|
|
62814
|
+
var log47, CollatorWrapper, Language2;
|
|
62816
62815
|
var init_language3 = __esm({
|
|
62817
62816
|
"internal/domain/site/entity/language.ts"() {
|
|
62818
62817
|
"use strict";
|
|
62819
62818
|
init_log();
|
|
62820
|
-
|
|
62819
|
+
log47 = getDomainLogger("site", { component: "language" });
|
|
62821
62820
|
CollatorWrapper = class {
|
|
62822
62821
|
collator;
|
|
62823
62822
|
constructor(collator) {
|
|
@@ -63047,12 +63046,12 @@ var init_author = __esm({
|
|
|
63047
63046
|
function newOrganization() {
|
|
63048
63047
|
return new Organization2();
|
|
63049
63048
|
}
|
|
63050
|
-
var
|
|
63049
|
+
var log48, Organization2;
|
|
63051
63050
|
var init_organization = __esm({
|
|
63052
63051
|
"internal/domain/site/valueobject/organization.ts"() {
|
|
63053
63052
|
"use strict";
|
|
63054
63053
|
init_log();
|
|
63055
|
-
|
|
63054
|
+
log48 = getDomainLogger("site", { component: "organization" });
|
|
63056
63055
|
Organization2 = class {
|
|
63057
63056
|
_name;
|
|
63058
63057
|
_description;
|
|
@@ -63196,13 +63195,13 @@ var init_version = __esm({
|
|
|
63196
63195
|
function newNavigation(langSvc) {
|
|
63197
63196
|
return new Navigation(langSvc);
|
|
63198
63197
|
}
|
|
63199
|
-
var
|
|
63198
|
+
var log49, Navigation;
|
|
63200
63199
|
var init_navigation = __esm({
|
|
63201
63200
|
"internal/domain/site/entity/navigation.ts"() {
|
|
63202
63201
|
"use strict";
|
|
63203
63202
|
init_log();
|
|
63204
63203
|
init_menu();
|
|
63205
|
-
|
|
63204
|
+
log49 = getDomainLogger("site", { component: "navigation" });
|
|
63206
63205
|
Navigation = class {
|
|
63207
63206
|
taxonomies;
|
|
63208
63207
|
taxonomiesBuilder = null;
|
|
@@ -63228,7 +63227,7 @@ var init_navigation = __esm({
|
|
|
63228
63227
|
}
|
|
63229
63228
|
async generateMenusForLanguage(lang2, langIndex) {
|
|
63230
63229
|
if (!this.menuBuilder) {
|
|
63231
|
-
|
|
63230
|
+
log49.error("Menu builder not set, cannot generate menus");
|
|
63232
63231
|
return;
|
|
63233
63232
|
}
|
|
63234
63233
|
if (this.menuCache.get(lang2) === true) {
|
|
@@ -63239,12 +63238,12 @@ var init_navigation = __esm({
|
|
|
63239
63238
|
this.menus.set(lang2, generatedMenus);
|
|
63240
63239
|
this.menuCache.set(lang2, true);
|
|
63241
63240
|
} catch (error) {
|
|
63242
|
-
|
|
63241
|
+
log49.error(`Failed to generate menus for language ${lang2}: ${error}`);
|
|
63243
63242
|
}
|
|
63244
63243
|
}
|
|
63245
63244
|
async generateTaxonomiesForLanguage(lang2, langIndex, site) {
|
|
63246
63245
|
if (!this.taxonomiesBuilder) {
|
|
63247
|
-
|
|
63246
|
+
log49.error("Taxonomies builder not set, cannot generate taxonomies");
|
|
63248
63247
|
return;
|
|
63249
63248
|
}
|
|
63250
63249
|
if (this.taxonomiesCache.get(lang2) === true) {
|
|
@@ -63255,7 +63254,7 @@ var init_navigation = __esm({
|
|
|
63255
63254
|
this.taxonomies.set(lang2, generatedTaxonomies);
|
|
63256
63255
|
this.taxonomiesCache.set(lang2, true);
|
|
63257
63256
|
} catch (error) {
|
|
63258
|
-
|
|
63257
|
+
log49.error(`Failed to generate taxonomies for language ${lang2}: ${error}`);
|
|
63259
63258
|
}
|
|
63260
63259
|
}
|
|
63261
63260
|
getMenus(lang2) {
|
|
@@ -63273,13 +63272,13 @@ var init_navigation = __esm({
|
|
|
63273
63272
|
});
|
|
63274
63273
|
|
|
63275
63274
|
// internal/domain/site/entity/menu-builder.ts
|
|
63276
|
-
var
|
|
63275
|
+
var log50, MenuBuilder;
|
|
63277
63276
|
var init_menu_builder = __esm({
|
|
63278
63277
|
"internal/domain/site/entity/menu-builder.ts"() {
|
|
63279
63278
|
"use strict";
|
|
63280
63279
|
init_log();
|
|
63281
63280
|
init_menu();
|
|
63282
|
-
|
|
63281
|
+
log50 = getDomainLogger("site", { component: "menu-builder" });
|
|
63283
63282
|
MenuBuilder = class {
|
|
63284
63283
|
contentService;
|
|
63285
63284
|
site;
|
|
@@ -63315,7 +63314,7 @@ var init_menu_builder = __esm({
|
|
|
63315
63314
|
await this.processMenuSection(menuName, menuSection, pageUrl, page, menuMap);
|
|
63316
63315
|
}
|
|
63317
63316
|
} catch (error) {
|
|
63318
|
-
|
|
63317
|
+
log50.error(`Error processing page for menu: ${error}`);
|
|
63319
63318
|
}
|
|
63320
63319
|
}
|
|
63321
63320
|
/**
|
|
@@ -63441,7 +63440,7 @@ var init_menu_builder = __esm({
|
|
|
63441
63440
|
const sitePage = await this.site.sitePage(page);
|
|
63442
63441
|
return sitePage.RelPermalink;
|
|
63443
63442
|
} catch (error) {
|
|
63444
|
-
|
|
63443
|
+
log50.error(`Error generating page URL for ${page.path()}: ${error}`);
|
|
63445
63444
|
return this.fallbackUrlFromPath(page.path());
|
|
63446
63445
|
}
|
|
63447
63446
|
}
|
|
@@ -63452,7 +63451,7 @@ var init_menu_builder = __esm({
|
|
|
63452
63451
|
try {
|
|
63453
63452
|
return this.site.getURL().relURL(url);
|
|
63454
63453
|
} catch (error) {
|
|
63455
|
-
|
|
63454
|
+
log50.error(`Error processing menu item URL ${url}: ${error}`);
|
|
63456
63455
|
return url;
|
|
63457
63456
|
}
|
|
63458
63457
|
}
|
|
@@ -63578,7 +63577,7 @@ var init_menu_builder = __esm({
|
|
|
63578
63577
|
function createNavigationFactory(langService, contentService, site) {
|
|
63579
63578
|
return new NavigationFactory(langService, contentService, site);
|
|
63580
63579
|
}
|
|
63581
|
-
var
|
|
63580
|
+
var log51, NavigationFactory;
|
|
63582
63581
|
var init_navigation_factory = __esm({
|
|
63583
63582
|
"internal/domain/site/factory/navigation-factory.ts"() {
|
|
63584
63583
|
"use strict";
|
|
@@ -63586,7 +63585,7 @@ var init_navigation_factory = __esm({
|
|
|
63586
63585
|
init_menu_builder();
|
|
63587
63586
|
init_taxonomies_builder();
|
|
63588
63587
|
init_log();
|
|
63589
|
-
|
|
63588
|
+
log51 = getDomainLogger("site", { component: "navigation-factory" });
|
|
63590
63589
|
NavigationFactory = class {
|
|
63591
63590
|
langService;
|
|
63592
63591
|
contentService;
|
|
@@ -63608,7 +63607,7 @@ var init_navigation_factory = __esm({
|
|
|
63608
63607
|
navigation.setTaxonomiesBuilder(taxonomiesBuilder);
|
|
63609
63608
|
return navigation;
|
|
63610
63609
|
} catch (error) {
|
|
63611
|
-
|
|
63610
|
+
log51.error(`Failed to create Navigation entity: ${error}`);
|
|
63612
63611
|
throw error;
|
|
63613
63612
|
}
|
|
63614
63613
|
}
|
|
@@ -63665,7 +63664,7 @@ function newSite(services) {
|
|
|
63665
63664
|
);
|
|
63666
63665
|
return site;
|
|
63667
63666
|
}
|
|
63668
|
-
var
|
|
63667
|
+
var log52;
|
|
63669
63668
|
var init_site2 = __esm({
|
|
63670
63669
|
"internal/domain/site/factory/site.ts"() {
|
|
63671
63670
|
"use strict";
|
|
@@ -63679,7 +63678,7 @@ var init_site2 = __esm({
|
|
|
63679
63678
|
init_version();
|
|
63680
63679
|
init_navigation_factory();
|
|
63681
63680
|
init_log();
|
|
63682
|
-
|
|
63681
|
+
log52 = getDomainLogger("site", { component: "factory" });
|
|
63683
63682
|
}
|
|
63684
63683
|
});
|
|
63685
63684
|
|
|
@@ -63691,7 +63690,7 @@ var init_type9 = __esm({
|
|
|
63691
63690
|
});
|
|
63692
63691
|
|
|
63693
63692
|
// internal/domain/resources/entity/resource.ts
|
|
63694
|
-
var import_crypto, import_stream, import_promises,
|
|
63693
|
+
var import_crypto, import_stream, import_promises, log53, ResourceHash, PublishOnce, ResourceImpl;
|
|
63695
63694
|
var init_resource = __esm({
|
|
63696
63695
|
"internal/domain/resources/entity/resource.ts"() {
|
|
63697
63696
|
"use strict";
|
|
@@ -63701,7 +63700,7 @@ var init_resource = __esm({
|
|
|
63701
63700
|
init_paths();
|
|
63702
63701
|
import_promises = require("stream/promises");
|
|
63703
63702
|
init_log();
|
|
63704
|
-
|
|
63703
|
+
log53 = getDomainLogger("resources", { component: "publisher" });
|
|
63705
63704
|
ResourceHash = class {
|
|
63706
63705
|
value = "";
|
|
63707
63706
|
size = 0;
|
|
@@ -63785,7 +63784,7 @@ var init_resource = __esm({
|
|
|
63785
63784
|
async publish() {
|
|
63786
63785
|
const targetPath = this.targetPath();
|
|
63787
63786
|
if (!this.publisher) {
|
|
63788
|
-
|
|
63787
|
+
log53.error("\u26A0\uFE0F [Resource.publish] No publisher for: %s", targetPath);
|
|
63789
63788
|
return;
|
|
63790
63789
|
}
|
|
63791
63790
|
await this.publishOnce.do(async () => {
|
|
@@ -63796,21 +63795,21 @@ var init_resource = __esm({
|
|
|
63796
63795
|
readSeeker = await this.readSeekCloser();
|
|
63797
63796
|
await this.copyStreamToFile(readSeeker, publicWriter);
|
|
63798
63797
|
} catch (error) {
|
|
63799
|
-
|
|
63798
|
+
log53.errorf("\u274C [Resource.publish] Error publishing %s: %s", targetPath, error);
|
|
63800
63799
|
throw error;
|
|
63801
63800
|
} finally {
|
|
63802
63801
|
if (readSeeker) {
|
|
63803
63802
|
try {
|
|
63804
63803
|
await readSeeker.close();
|
|
63805
63804
|
} catch (closeError) {
|
|
63806
|
-
|
|
63805
|
+
log53.errorf("\u274C [Resource.publish] Failed to close ReadSeekCloser %s: %s", targetPath, closeError);
|
|
63807
63806
|
}
|
|
63808
63807
|
}
|
|
63809
63808
|
if (publicWriter) {
|
|
63810
63809
|
try {
|
|
63811
63810
|
await publicWriter.file.close();
|
|
63812
63811
|
} catch (closeError) {
|
|
63813
|
-
|
|
63812
|
+
log53.errorf("\u274C [Resource.publish] Failed to close public writer %s: %s", targetPath, closeError);
|
|
63814
63813
|
}
|
|
63815
63814
|
}
|
|
63816
63815
|
}
|
|
@@ -63825,7 +63824,7 @@ var init_resource = __esm({
|
|
|
63825
63824
|
try {
|
|
63826
63825
|
await (0, import_promises.pipeline)(source, destination);
|
|
63827
63826
|
} catch (err) {
|
|
63828
|
-
|
|
63827
|
+
log53.errorf("\u274C [copyStreamToFile] Error during pipeline for %s: %s", targetPath, err);
|
|
63829
63828
|
throw err;
|
|
63830
63829
|
}
|
|
63831
63830
|
}
|
|
@@ -94484,14 +94483,14 @@ var init_template4 = __esm({
|
|
|
94484
94483
|
});
|
|
94485
94484
|
|
|
94486
94485
|
// internal/domain/resources/entity/publisher.ts
|
|
94487
|
-
var path25, import_stream2,
|
|
94486
|
+
var path25, import_stream2, log54, Publisher2, FileWritable;
|
|
94488
94487
|
var init_publisher2 = __esm({
|
|
94489
94488
|
"internal/domain/resources/entity/publisher.ts"() {
|
|
94490
94489
|
"use strict";
|
|
94491
94490
|
path25 = __toESM2(require("path"));
|
|
94492
94491
|
init_log();
|
|
94493
94492
|
import_stream2 = require("stream");
|
|
94494
|
-
|
|
94493
|
+
log54 = getDomainLogger("resources", { component: "publisher" });
|
|
94495
94494
|
Publisher2 = class {
|
|
94496
94495
|
pubFs;
|
|
94497
94496
|
urlSvc;
|
|
@@ -94531,7 +94530,7 @@ var init_publisher2 = __esm({
|
|
|
94531
94530
|
try {
|
|
94532
94531
|
await originalClose();
|
|
94533
94532
|
} catch (error2) {
|
|
94534
|
-
|
|
94533
|
+
log54.errorf("\u274C [Publisher.File.close] Error closing publish file (retry) %s, $s", cleanFilename, error2);
|
|
94535
94534
|
throw error2;
|
|
94536
94535
|
}
|
|
94537
94536
|
};
|
|
@@ -94593,14 +94592,14 @@ var init_publisher2 = __esm({
|
|
|
94593
94592
|
});
|
|
94594
94593
|
|
|
94595
94594
|
// internal/domain/resources/entity/http.ts
|
|
94596
|
-
var http2, https2,
|
|
94595
|
+
var http2, https2, log55, HttpClient4;
|
|
94597
94596
|
var init_http2 = __esm({
|
|
94598
94597
|
"internal/domain/resources/entity/http.ts"() {
|
|
94599
94598
|
"use strict";
|
|
94600
94599
|
init_log();
|
|
94601
94600
|
http2 = __toESM2(require("http"));
|
|
94602
94601
|
https2 = __toESM2(require("https"));
|
|
94603
|
-
|
|
94602
|
+
log55 = getDomainLogger("resources", { component: "http-client" });
|
|
94604
94603
|
HttpClient4 = class {
|
|
94605
94604
|
defaultTimeout = 3e4;
|
|
94606
94605
|
// 30 seconds
|
|
@@ -94633,12 +94632,12 @@ var init_http2 = __esm({
|
|
|
94633
94632
|
};
|
|
94634
94633
|
const request = httpModule.request(requestOptions, (response) => {
|
|
94635
94634
|
if (response.statusCode && response.statusCode >= 300 && response.statusCode < 400 && response.headers.location) {
|
|
94636
|
-
|
|
94635
|
+
log55.infof("\u{1F504} [HttpClient.fromRemote] Redirecting from %s to %s", uri, response.headers.location);
|
|
94637
94636
|
this.fromRemote(response.headers.location, options).then(resolve5);
|
|
94638
94637
|
return;
|
|
94639
94638
|
}
|
|
94640
94639
|
if (!response.statusCode || response.statusCode < 200 || response.statusCode >= 300) {
|
|
94641
|
-
|
|
94640
|
+
log55.errorf(
|
|
94642
94641
|
"\u274C [HttpClient.fromRemote] HTTP error %d when fetching %s: %s",
|
|
94643
94642
|
response.statusCode || 0,
|
|
94644
94643
|
uri,
|
|
@@ -94655,34 +94654,34 @@ var init_http2 = __esm({
|
|
|
94655
94654
|
try {
|
|
94656
94655
|
const buffer = Buffer.concat(chunks);
|
|
94657
94656
|
const content = buffer.toString("utf8");
|
|
94658
|
-
|
|
94657
|
+
log55.infof(
|
|
94659
94658
|
"\u2705 [HttpClient.fromRemote] Successfully fetched %d bytes from %s",
|
|
94660
94659
|
content.length,
|
|
94661
94660
|
uri
|
|
94662
94661
|
);
|
|
94663
94662
|
resolve5(content);
|
|
94664
94663
|
} catch (error) {
|
|
94665
|
-
|
|
94664
|
+
log55.errorf("\u274C [HttpClient.fromRemote] Error converting response to string from %s: %s", uri, error);
|
|
94666
94665
|
resolve5(null);
|
|
94667
94666
|
}
|
|
94668
94667
|
});
|
|
94669
94668
|
response.on("error", (error) => {
|
|
94670
|
-
|
|
94669
|
+
log55.errorf("\u274C [HttpClient.fromRemote] Response error when fetching %s: %s", uri, error.message);
|
|
94671
94670
|
resolve5(null);
|
|
94672
94671
|
});
|
|
94673
94672
|
});
|
|
94674
94673
|
request.on("error", (error) => {
|
|
94675
|
-
|
|
94674
|
+
log55.errorf("\u274C [HttpClient.fromRemote] Request error when fetching %s: %s", uri, error.message);
|
|
94676
94675
|
resolve5(null);
|
|
94677
94676
|
});
|
|
94678
94677
|
request.on("timeout", () => {
|
|
94679
94678
|
request.destroy();
|
|
94680
|
-
|
|
94679
|
+
log55.errorf("\u274C [HttpClient.fromRemote] Request timeout when fetching %s", uri);
|
|
94681
94680
|
resolve5(null);
|
|
94682
94681
|
});
|
|
94683
94682
|
request.end();
|
|
94684
94683
|
} catch (error) {
|
|
94685
|
-
|
|
94684
|
+
log55.errorf("\u274C [HttpClient.fromRemote] Error fetching content from %s: %s", uri, error);
|
|
94686
94685
|
resolve5(null);
|
|
94687
94686
|
}
|
|
94688
94687
|
});
|
|
@@ -94692,7 +94691,7 @@ var init_http2 = __esm({
|
|
|
94692
94691
|
});
|
|
94693
94692
|
|
|
94694
94693
|
// internal/domain/resources/entity/resources.ts
|
|
94695
|
-
var path26, import_crypto3,
|
|
94694
|
+
var path26, import_crypto3, log56, Resources;
|
|
94696
94695
|
var init_resources = __esm({
|
|
94697
94696
|
"internal/domain/resources/entity/resources.ts"() {
|
|
94698
94697
|
"use strict";
|
|
@@ -94707,7 +94706,7 @@ var init_resources = __esm({
|
|
|
94707
94706
|
path26 = __toESM2(require("path"));
|
|
94708
94707
|
import_crypto3 = require("crypto");
|
|
94709
94708
|
init_log();
|
|
94710
|
-
|
|
94709
|
+
log56 = getDomainLogger("resources", { component: "resources" });
|
|
94711
94710
|
Resources = class {
|
|
94712
94711
|
cache = /* @__PURE__ */ new Map();
|
|
94713
94712
|
workspace;
|
|
@@ -94760,7 +94759,7 @@ var init_resources = __esm({
|
|
|
94760
94759
|
}
|
|
94761
94760
|
return resource;
|
|
94762
94761
|
} catch (error) {
|
|
94763
|
-
|
|
94762
|
+
log56.errorf("\u274C [Resources.getResource] Error getting resource %s, %s", cleanPath, error);
|
|
94764
94763
|
return null;
|
|
94765
94764
|
}
|
|
94766
94765
|
}
|
|
@@ -94780,7 +94779,7 @@ var init_resources = __esm({
|
|
|
94780
94779
|
}
|
|
94781
94780
|
return resource;
|
|
94782
94781
|
} catch (error) {
|
|
94783
|
-
|
|
94782
|
+
log56.errorf("\u274C [Resources.getResourceWithOpener] Error getting resource with opener %s, %s", cleanPath, error);
|
|
94784
94783
|
return null;
|
|
94785
94784
|
}
|
|
94786
94785
|
}
|
|
@@ -94802,11 +94801,11 @@ var init_resources = __esm({
|
|
|
94802
94801
|
if (result) {
|
|
94803
94802
|
this.cache.set(cacheKey, result);
|
|
94804
94803
|
} else {
|
|
94805
|
-
|
|
94804
|
+
log56.warnf("\u26A0\uFE0F [Resources.executeAsTemplate] Template execution returned null for resource %s", resource.key());
|
|
94806
94805
|
}
|
|
94807
94806
|
return result;
|
|
94808
94807
|
} catch (error) {
|
|
94809
|
-
|
|
94808
|
+
log56.errorf("\u274C [Resources.executeAsTemplate] Error executing template %s, %s", resource.key(), error);
|
|
94810
94809
|
throw error;
|
|
94811
94810
|
}
|
|
94812
94811
|
}
|
|
@@ -94828,11 +94827,11 @@ var init_resources = __esm({
|
|
|
94828
94827
|
if (result) {
|
|
94829
94828
|
this.cache.set(cacheKey, result);
|
|
94830
94829
|
} else {
|
|
94831
|
-
|
|
94830
|
+
log56.warnf("\u26A0\uFE0F [Resources.minify] Minification returned null for resource %s", resource.key());
|
|
94832
94831
|
}
|
|
94833
94832
|
return result;
|
|
94834
94833
|
} catch (error) {
|
|
94835
|
-
|
|
94834
|
+
log56.errorf("\u274C [Resources.minify] Error minifying resource %s, %s", resource.key(), error);
|
|
94836
94835
|
throw error;
|
|
94837
94836
|
}
|
|
94838
94837
|
}
|
|
@@ -94851,11 +94850,11 @@ var init_resources = __esm({
|
|
|
94851
94850
|
if (res) {
|
|
94852
94851
|
this.cache.set(cacheKey, res);
|
|
94853
94852
|
} else {
|
|
94854
|
-
|
|
94853
|
+
log56.warnf("\u26A0\uFE0F [Resources.fingerprint] Fingerprint operation returned null for resource %s", resource.key());
|
|
94855
94854
|
}
|
|
94856
94855
|
return res;
|
|
94857
94856
|
} catch (error) {
|
|
94858
|
-
|
|
94857
|
+
log56.errorf("\u274C [Resources.fingerprint] Error fingerprinting resource %s, %s", resource.key(), error);
|
|
94859
94858
|
throw error;
|
|
94860
94859
|
}
|
|
94861
94860
|
}
|
|
@@ -94882,7 +94881,7 @@ var init_resources = __esm({
|
|
|
94882
94881
|
}
|
|
94883
94882
|
return resource;
|
|
94884
94883
|
} catch (error) {
|
|
94885
|
-
|
|
94884
|
+
log56.errorf("\u274C [Resources.fromRemote] Error getting remote resource %s, %s", uri, error);
|
|
94886
94885
|
return null;
|
|
94887
94886
|
}
|
|
94888
94887
|
}
|
|
@@ -94918,7 +94917,7 @@ var init_resources = __esm({
|
|
|
94918
94917
|
);
|
|
94919
94918
|
return resource;
|
|
94920
94919
|
} catch (error) {
|
|
94921
|
-
|
|
94920
|
+
log56.errorf("\u274C [Resources.buildResource] Error building resource for %s, %s", pathname, error);
|
|
94922
94921
|
return null;
|
|
94923
94922
|
}
|
|
94924
94923
|
}
|
|
@@ -94977,7 +94976,7 @@ var init_resources = __esm({
|
|
|
94977
94976
|
try {
|
|
94978
94977
|
await file.close();
|
|
94979
94978
|
} catch (closeError) {
|
|
94980
|
-
|
|
94979
|
+
log56.warnf("\u274C [Resources.createReadSeekCloser] Error closing file after read error %s, %s", file.path, closeError);
|
|
94981
94980
|
}
|
|
94982
94981
|
return this.newReadSeekerNoOpCloserFromString("");
|
|
94983
94982
|
}
|
|
@@ -95215,12 +95214,12 @@ var init_resources2 = __esm({
|
|
|
95215
95214
|
});
|
|
95216
95215
|
|
|
95217
95216
|
// internal/application/batch-task-queue.ts
|
|
95218
|
-
var
|
|
95217
|
+
var log57, BatchTaskQueue;
|
|
95219
95218
|
var init_batch_task_queue = __esm({
|
|
95220
95219
|
"internal/application/batch-task-queue.ts"() {
|
|
95221
95220
|
"use strict";
|
|
95222
95221
|
init_log();
|
|
95223
|
-
|
|
95222
|
+
log57 = getDomainLogger("application", { component: "batch-task-queue" });
|
|
95224
95223
|
BatchTaskQueue = class {
|
|
95225
95224
|
queue = [];
|
|
95226
95225
|
currentIndex = 0;
|
|
@@ -95228,7 +95227,7 @@ var init_batch_task_queue = __esm({
|
|
|
95228
95227
|
constructor(batches) {
|
|
95229
95228
|
this.queue = batches;
|
|
95230
95229
|
this.totalBatches = batches.length;
|
|
95231
|
-
|
|
95230
|
+
log57.info(`Task queue initialized with ${this.totalBatches} batches`);
|
|
95232
95231
|
}
|
|
95233
95232
|
/**
|
|
95234
95233
|
* 获取下一个任务批次(线程安全)
|
|
@@ -95281,7 +95280,7 @@ function createTaskBatches(tasks2, batchSize) {
|
|
|
95281
95280
|
for (let i = 0; i < tasks2.length; i += batchSize) {
|
|
95282
95281
|
batches.push(tasks2.slice(i, i + batchSize));
|
|
95283
95282
|
}
|
|
95284
|
-
|
|
95283
|
+
log58.info(`\u{1F4E6} Created ${batches.length} batches (${batchSize} tasks per batch)`);
|
|
95285
95284
|
return batches;
|
|
95286
95285
|
}
|
|
95287
95286
|
async function runWorkerLoop(poolManager, taskQueue, workerIndex, totalPages, completedPages, onProgress) {
|
|
@@ -95289,11 +95288,11 @@ async function runWorkerLoop(poolManager, taskQueue, workerIndex, totalPages, co
|
|
|
95289
95288
|
while (true) {
|
|
95290
95289
|
const batch = taskQueue.nextBatch();
|
|
95291
95290
|
if (!batch) {
|
|
95292
|
-
|
|
95291
|
+
log58.debug(`Worker ${workerIndex} finished - no more tasks`);
|
|
95293
95292
|
break;
|
|
95294
95293
|
}
|
|
95295
95294
|
const progress = taskQueue.getProgress();
|
|
95296
|
-
|
|
95295
|
+
log58.info(`\u{1F504} Worker ${workerIndex} processing batch ${progress.completed}/${progress.total} (${batch.length} tasks)`);
|
|
95297
95296
|
const task = {
|
|
95298
95297
|
type: "process-batch",
|
|
95299
95298
|
pageTasks: batch
|
|
@@ -95314,9 +95313,9 @@ async function runWorkerLoop(poolManager, taskQueue, workerIndex, totalPages, co
|
|
|
95314
95313
|
totalPages
|
|
95315
95314
|
}
|
|
95316
95315
|
});
|
|
95317
|
-
|
|
95316
|
+
log58.info(`\u2705 Worker ${workerIndex} completed batch: ${result.processedCount} tasks in ${result.duration.toFixed(2)}ms`);
|
|
95318
95317
|
} else {
|
|
95319
|
-
|
|
95318
|
+
log58.error(`\u274C Worker ${workerIndex} failed: ${response.error}`);
|
|
95320
95319
|
results.push({
|
|
95321
95320
|
success: false,
|
|
95322
95321
|
processedCount: 0,
|
|
@@ -95345,7 +95344,7 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95345
95344
|
});
|
|
95346
95345
|
const pageTasks = await collectAllPageTasks(projDir, modulesDir);
|
|
95347
95346
|
if (pageTasks.length === 0) {
|
|
95348
|
-
|
|
95347
|
+
log58.warn("\u26A0\uFE0F No page tasks found to process");
|
|
95349
95348
|
onProgress?.({
|
|
95350
95349
|
stage: "completion",
|
|
95351
95350
|
message: "No pages to process",
|
|
@@ -95369,7 +95368,7 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95369
95368
|
const cpuCount = os.cpus().length;
|
|
95370
95369
|
const workerCount = Math.max(2, Math.floor(cpuCount * 0.6));
|
|
95371
95370
|
const batchSize = calculateOptimalBatchSize(pageTasks.length, workerCount);
|
|
95372
|
-
|
|
95371
|
+
log58.info(`\u2699\uFE0F Using ${workerCount} workers with batch size ${batchSize}`);
|
|
95373
95372
|
onProgress?.({
|
|
95374
95373
|
stage: "config",
|
|
95375
95374
|
message: `Creating worker pool with ${workerCount} workers...`,
|
|
@@ -95382,7 +95381,7 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95382
95381
|
message: "Initializing workers...",
|
|
95383
95382
|
percentage: 50
|
|
95384
95383
|
});
|
|
95385
|
-
|
|
95384
|
+
log58.info("\u{1F527} Initializing workers...");
|
|
95386
95385
|
const initStartTime = performance.now();
|
|
95387
95386
|
const initTasks = [];
|
|
95388
95387
|
for (let i = 0; i < workerCount; i++) {
|
|
@@ -95395,7 +95394,7 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95395
95394
|
}
|
|
95396
95395
|
await Promise.all(initTasks);
|
|
95397
95396
|
const initDuration = performance.now() - initStartTime;
|
|
95398
|
-
|
|
95397
|
+
log58.info(`\u2705 All workers initialized in ${initDuration.toFixed(2)}ms`);
|
|
95399
95398
|
onProgress?.({
|
|
95400
95399
|
stage: "build",
|
|
95401
95400
|
message: `Creating ${Math.ceil(pageTasks.length / batchSize)} task batches...`,
|
|
@@ -95408,7 +95407,7 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95408
95407
|
message: "Starting parallel page rendering...",
|
|
95409
95408
|
percentage: 70
|
|
95410
95409
|
});
|
|
95411
|
-
|
|
95410
|
+
log58.info("\u{1F3C3} Starting worker loops...");
|
|
95412
95411
|
const processingStartTime = performance.now();
|
|
95413
95412
|
const completedPages = { count: 0 };
|
|
95414
95413
|
const workerLoops = [];
|
|
@@ -95432,8 +95431,8 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95432
95431
|
message: `Parallel SSG completed! Processed ${totalProcessed} pages with ${workerCount} workers`,
|
|
95433
95432
|
percentage: 100
|
|
95434
95433
|
});
|
|
95435
|
-
|
|
95436
|
-
|
|
95434
|
+
log58.info("\u2728 Parallel SSG completed!");
|
|
95435
|
+
log58.info("\u{1F4CA} Statistics:", {
|
|
95437
95436
|
totalTasks: pageTasks.length,
|
|
95438
95437
|
processedTasks: totalProcessed,
|
|
95439
95438
|
successfulBatches: successCount,
|
|
@@ -95455,13 +95454,13 @@ async function processSSGParallel(projDir, modulesDir, markdown, onProgress, htt
|
|
|
95455
95454
|
};
|
|
95456
95455
|
} catch (error) {
|
|
95457
95456
|
const message = error instanceof Error ? error.message : String(error);
|
|
95458
|
-
|
|
95457
|
+
log58.error(`\u274C Parallel SSG failed: ${message}`);
|
|
95459
95458
|
throw error;
|
|
95460
95459
|
} finally {
|
|
95461
95460
|
process.chdir(originalCwd);
|
|
95462
95461
|
}
|
|
95463
95462
|
}
|
|
95464
|
-
var os,
|
|
95463
|
+
var os, log58;
|
|
95465
95464
|
var init_ssg_parallel = __esm({
|
|
95466
95465
|
"internal/application/ssg-parallel.ts"() {
|
|
95467
95466
|
"use strict";
|
|
@@ -95470,7 +95469,7 @@ var init_ssg_parallel = __esm({
|
|
|
95470
95469
|
init_batch_task_queue();
|
|
95471
95470
|
init_ssg();
|
|
95472
95471
|
os = __toESM2(require("os"));
|
|
95473
|
-
|
|
95472
|
+
log58 = getDomainLogger("ssg", { component: "parallel" });
|
|
95474
95473
|
}
|
|
95475
95474
|
});
|
|
95476
95475
|
|
|
@@ -95632,7 +95631,7 @@ function createCustomizedFunctions(config2, site, resources) {
|
|
|
95632
95631
|
try {
|
|
95633
95632
|
return await resources.getResource(filename);
|
|
95634
95633
|
} catch (error) {
|
|
95635
|
-
|
|
95634
|
+
log59.warn(`Resource not found: ${filename}`, error);
|
|
95636
95635
|
return Promise.resolve(null);
|
|
95637
95636
|
}
|
|
95638
95637
|
},
|
|
@@ -95683,7 +95682,7 @@ async function createTemplateAdapter(templateEngine, site) {
|
|
|
95683
95682
|
execute: async (data) => {
|
|
95684
95683
|
const [result, execErr] = await tmpl.Execute(data);
|
|
95685
95684
|
if (execErr) {
|
|
95686
|
-
|
|
95685
|
+
log59.errorf("template exec error: %s", execErr);
|
|
95687
95686
|
throw execErr;
|
|
95688
95687
|
}
|
|
95689
95688
|
return result;
|
|
@@ -95698,7 +95697,7 @@ async function createTemplateAdapter(templateEngine, site) {
|
|
|
95698
95697
|
try {
|
|
95699
95698
|
return await preparer.execute(data);
|
|
95700
95699
|
} catch (error) {
|
|
95701
|
-
|
|
95700
|
+
log59.error(`\u274C Template execution error: ${error}`);
|
|
95702
95701
|
return `<html><body>Template execution error: ${error}</body></html>`;
|
|
95703
95702
|
}
|
|
95704
95703
|
}
|
|
@@ -95748,11 +95747,11 @@ function createSiteForSSG(config2, fs3, content) {
|
|
|
95748
95747
|
try {
|
|
95749
95748
|
const page = content.getPageFromPath(langIndex, path29);
|
|
95750
95749
|
if (!page) {
|
|
95751
|
-
|
|
95750
|
+
log59.error(`\u26A0\uFE0F Application.getPageFromPath: content domain returned null for path: "${path29}"`);
|
|
95752
95751
|
}
|
|
95753
95752
|
return page;
|
|
95754
95753
|
} catch (error) {
|
|
95755
|
-
|
|
95754
|
+
log59.error(`\u274C Application.getPageFromPath error delegating to content domain:`, error);
|
|
95756
95755
|
return null;
|
|
95757
95756
|
}
|
|
95758
95757
|
},
|
|
@@ -95760,11 +95759,11 @@ function createSiteForSSG(config2, fs3, content) {
|
|
|
95760
95759
|
try {
|
|
95761
95760
|
const page = content.getPageFromPath(langIndex, path29);
|
|
95762
95761
|
if (!page) {
|
|
95763
|
-
|
|
95762
|
+
log59.warn(`\u26A0\uFE0F Application.getPageFromPathSync: content domain returned null for path: ${path29}`);
|
|
95764
95763
|
}
|
|
95765
95764
|
return page;
|
|
95766
95765
|
} catch (error) {
|
|
95767
|
-
|
|
95766
|
+
log59.error(`\u274C Application.getPageFromPathSync error delegating to content domain:`, error);
|
|
95768
95767
|
return null;
|
|
95769
95768
|
}
|
|
95770
95769
|
},
|
|
@@ -95815,16 +95814,16 @@ async function generateStaticSite(projDir, modulesDir, markdown) {
|
|
|
95815
95814
|
let startTime = performance.now();
|
|
95816
95815
|
const config2 = await loadConfiguration(projDir, modulesDir);
|
|
95817
95816
|
let endTime = performance.now();
|
|
95818
|
-
|
|
95817
|
+
log59.info(`\u2705 Configuration loaded in ${(endTime - startTime).toFixed(2)} ms`);
|
|
95819
95818
|
const markdownRenderer = markdown;
|
|
95820
95819
|
startTime = performance.now();
|
|
95821
95820
|
const modules = await createModule(config2);
|
|
95822
95821
|
endTime = performance.now();
|
|
95823
|
-
|
|
95822
|
+
log59.info(`\u2705 Modules created in ${(endTime - startTime).toFixed(2)} ms`);
|
|
95824
95823
|
startTime = performance.now();
|
|
95825
95824
|
const filesystem = await createFileSystem(config2, modules);
|
|
95826
95825
|
endTime = performance.now();
|
|
95827
|
-
|
|
95826
|
+
log59.info(`\u2705 Filesystem created in ${(endTime - startTime).toFixed(2)} ms`);
|
|
95828
95827
|
const content = await createContentEngine(filesystem, config2, modules, markdownRenderer);
|
|
95829
95828
|
const site = createSiteForSSG(config2, filesystem, content);
|
|
95830
95829
|
const resources = createResourcesEngine(config2, filesystem);
|
|
@@ -95842,16 +95841,16 @@ async function generateStaticSite(projDir, modulesDir, markdown) {
|
|
|
95842
95841
|
startTime = performance.now();
|
|
95843
95842
|
await content.collectPages();
|
|
95844
95843
|
endTime = performance.now();
|
|
95845
|
-
|
|
95844
|
+
log59.info(`\u2705 Pages collected in ${(endTime - startTime).toFixed(2)} ms`);
|
|
95846
95845
|
const templateAdapter = await createTemplateAdapter(templateEngine, site);
|
|
95847
95846
|
startTime = performance.now();
|
|
95848
95847
|
await site.build(templateAdapter);
|
|
95849
95848
|
endTime = performance.now();
|
|
95850
95849
|
setDomainInstances(site, content, filesystem, config2, modules, resources, templateEngine);
|
|
95851
|
-
|
|
95850
|
+
log59.info(`\u2705 Site built in ${(endTime - startTime).toFixed(2)} ms`);
|
|
95852
95851
|
} catch (error) {
|
|
95853
95852
|
const message = error instanceof Error ? error.message : String(error);
|
|
95854
|
-
|
|
95853
|
+
log59.error(`\u274C Static site generation failed: ${message}`);
|
|
95855
95854
|
throw new Error(`Failed to generate static site: ${message}`);
|
|
95856
95855
|
}
|
|
95857
95856
|
}
|
|
@@ -95866,7 +95865,7 @@ async function processSSG(projDir, modulesDir, markdown) {
|
|
|
95866
95865
|
}
|
|
95867
95866
|
} catch (error) {
|
|
95868
95867
|
const message = error instanceof Error ? error.message : String(error);
|
|
95869
|
-
|
|
95868
|
+
log59.error(`\u274C SSG processing failed: ${message}`);
|
|
95870
95869
|
throw new Error(`Failed to process SSG: ${message}`);
|
|
95871
95870
|
}
|
|
95872
95871
|
}
|
|
@@ -95942,7 +95941,7 @@ async function generateStaticSiteWithProgress(projDir, modulesDir, markdown, onP
|
|
|
95942
95941
|
return getDomainInstances();
|
|
95943
95942
|
} catch (error) {
|
|
95944
95943
|
const message = error instanceof Error ? error.message : String(error);
|
|
95945
|
-
|
|
95944
|
+
log59.error(`\u274C Static site generation failed: ${message}`);
|
|
95946
95945
|
throw new Error(`Failed to generate static site: ${message}`);
|
|
95947
95946
|
}
|
|
95948
95947
|
}
|
|
@@ -95999,7 +95998,7 @@ async function processSSGWithProgress(projDir, modulesDir, markdown, onProgress,
|
|
|
95999
95998
|
}
|
|
96000
95999
|
} catch (error) {
|
|
96001
96000
|
const message = error instanceof Error ? error.message : String(error);
|
|
96002
|
-
|
|
96001
|
+
log59.error(`\u274C SSG processing failed: ${message}`);
|
|
96003
96002
|
throw new Error(`Failed to process SSG: ${message}`);
|
|
96004
96003
|
}
|
|
96005
96004
|
}
|
|
@@ -96014,29 +96013,29 @@ async function serveSSG(projDir, modulesDir, markdown, onProgress, httpClient) {
|
|
|
96014
96013
|
return await generateStaticSiteWithProgress(projDir, modulesDir, markdown, onProgress, httpClient);
|
|
96015
96014
|
} catch (error) {
|
|
96016
96015
|
const message = error instanceof Error ? error.message : String(error);
|
|
96017
|
-
|
|
96016
|
+
log59.error(`\u274C SSG processing failed: ${message}`);
|
|
96018
96017
|
throw new Error(`Failed to process SSG: ${message}`);
|
|
96019
96018
|
}
|
|
96020
96019
|
}
|
|
96021
96020
|
async function collectAllPageTasks(projDir, modulesDir, markdown, onProgress, httpClient) {
|
|
96022
96021
|
if (tasks.length > 0) {
|
|
96023
|
-
|
|
96022
|
+
log59.info("Page tasks already collected, returning cached tasks");
|
|
96024
96023
|
return tasks;
|
|
96025
96024
|
}
|
|
96026
96025
|
try {
|
|
96027
96026
|
let startTime = performance.now();
|
|
96028
96027
|
const config2 = await loadConfiguration(projDir, modulesDir);
|
|
96029
96028
|
let endTime = performance.now();
|
|
96030
|
-
|
|
96029
|
+
log59.info(`\u2705 Configuration loaded in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96031
96030
|
const markdownRenderer = markdown;
|
|
96032
96031
|
startTime = performance.now();
|
|
96033
96032
|
const modules = await createModuleWithProgress(config2, onProgress, httpClient);
|
|
96034
96033
|
endTime = performance.now();
|
|
96035
|
-
|
|
96034
|
+
log59.info(`\u2705 Modules created in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96036
96035
|
startTime = performance.now();
|
|
96037
96036
|
const filesystem = await createFileSystem(config2, modules);
|
|
96038
96037
|
endTime = performance.now();
|
|
96039
|
-
|
|
96038
|
+
log59.info(`\u2705 Filesystem created in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96040
96039
|
const content = await createContentEngine(filesystem, config2, modules, markdownRenderer);
|
|
96041
96040
|
const site = createSiteForSSG(config2, filesystem, content);
|
|
96042
96041
|
const resources = createResourcesEngine(config2, filesystem);
|
|
@@ -96054,7 +96053,7 @@ async function collectAllPageTasks(projDir, modulesDir, markdown, onProgress, ht
|
|
|
96054
96053
|
startTime = performance.now();
|
|
96055
96054
|
await content.collectPages();
|
|
96056
96055
|
endTime = performance.now();
|
|
96057
|
-
|
|
96056
|
+
log59.info(`\u2705 Pages collected in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96058
96057
|
startTime = performance.now();
|
|
96059
96058
|
const languageKeys = config2.getLanguage().languageKeys();
|
|
96060
96059
|
for (const langKey of languageKeys) {
|
|
@@ -96069,24 +96068,24 @@ async function collectAllPageTasks(projDir, modulesDir, markdown, onProgress, ht
|
|
|
96069
96068
|
page.pageIdentity().clearStale();
|
|
96070
96069
|
}
|
|
96071
96070
|
});
|
|
96072
|
-
|
|
96071
|
+
log59.debug(`Collected pages for language: ${langKey}`);
|
|
96073
96072
|
}
|
|
96074
96073
|
endTime = performance.now();
|
|
96075
|
-
|
|
96074
|
+
log59.info(`\u2705 Page tasks collected in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96076
96075
|
const templateAdapter = await createTemplateAdapter(templateEngine, site);
|
|
96077
96076
|
startTime = performance.now();
|
|
96078
96077
|
await site.build(templateAdapter);
|
|
96079
96078
|
endTime = performance.now();
|
|
96080
|
-
|
|
96079
|
+
log59.info(`\u2705 Site built in ${(endTime - startTime).toFixed(2)} ms`);
|
|
96081
96080
|
setDomainInstances(site, content, filesystem, config2, modules, resources, templateEngine);
|
|
96082
96081
|
return tasks;
|
|
96083
96082
|
} catch (error) {
|
|
96084
96083
|
const message = error instanceof Error ? error.message : String(error);
|
|
96085
|
-
|
|
96084
|
+
log59.error(`\u274C Static site generation failed: ${message}`);
|
|
96086
96085
|
throw new Error(`Failed to generate static site: ${message}`);
|
|
96087
96086
|
}
|
|
96088
96087
|
}
|
|
96089
|
-
var import_path16,
|
|
96088
|
+
var import_path16, log59, configCache, modulesCache, fsCache, contentCache, resourcesCache, templateEngineCache, siteCache, createDomainInstances, tasks;
|
|
96090
96089
|
var init_ssg = __esm({
|
|
96091
96090
|
"internal/application/ssg.ts"() {
|
|
96092
96091
|
"use strict";
|
|
@@ -96100,7 +96099,7 @@ var init_ssg = __esm({
|
|
|
96100
96099
|
import_path16 = __toESM2(require("path"));
|
|
96101
96100
|
init_resources2();
|
|
96102
96101
|
init_ssg_parallel();
|
|
96103
|
-
|
|
96102
|
+
log59 = getDomainLogger("ssg", { component: "application" });
|
|
96104
96103
|
createDomainInstances = (site, content, fs3, config2, modules, resources) => {
|
|
96105
96104
|
return {
|
|
96106
96105
|
site,
|
|
@@ -96116,13 +96115,13 @@ var init_ssg = __esm({
|
|
|
96116
96115
|
});
|
|
96117
96116
|
|
|
96118
96117
|
// internal/application/worker/worker-state.ts
|
|
96119
|
-
var
|
|
96118
|
+
var log60, WorkerState;
|
|
96120
96119
|
var init_worker_state = __esm({
|
|
96121
96120
|
"internal/application/worker/worker-state.ts"() {
|
|
96122
96121
|
"use strict";
|
|
96123
96122
|
init_log();
|
|
96124
96123
|
init_page_filter();
|
|
96125
|
-
|
|
96124
|
+
log60 = getDomainLogger("application", { component: "worker-state" });
|
|
96126
96125
|
WorkerState = class {
|
|
96127
96126
|
constructor(projDir, moduleDir) {
|
|
96128
96127
|
this.projDir = projDir;
|
|
@@ -96134,17 +96133,17 @@ var init_worker_state = __esm({
|
|
|
96134
96133
|
*/
|
|
96135
96134
|
async initialize() {
|
|
96136
96135
|
if (this.initialized) {
|
|
96137
|
-
|
|
96136
|
+
log60.warn("Worker already initialized, skipping...");
|
|
96138
96137
|
return;
|
|
96139
96138
|
}
|
|
96140
96139
|
const startTime = performance.now();
|
|
96141
|
-
|
|
96140
|
+
log60.info("\u{1F680} Initializing worker environment...", {
|
|
96142
96141
|
projDir: this.projDir,
|
|
96143
96142
|
moduleDir: this.moduleDir
|
|
96144
96143
|
});
|
|
96145
96144
|
this.initialized = true;
|
|
96146
96145
|
const duration = performance.now() - startTime;
|
|
96147
|
-
|
|
96146
|
+
log60.info(`\u2705 Worker environment initialized in ${duration.toFixed(2)}ms`);
|
|
96148
96147
|
}
|
|
96149
96148
|
/**
|
|
96150
96149
|
* 处理一个批次的页面任务
|
|
@@ -96158,13 +96157,13 @@ var init_worker_state = __esm({
|
|
|
96158
96157
|
}
|
|
96159
96158
|
const startTime = performance.now();
|
|
96160
96159
|
const errors2 = [];
|
|
96161
|
-
|
|
96160
|
+
log60.info(`\u{1F4E6} Processing batch: ${pageTasks.length} tasks`);
|
|
96162
96161
|
try {
|
|
96163
96162
|
setPageFilter(pageTasks);
|
|
96164
|
-
|
|
96163
|
+
log60.debug(`Filter set for ${pageTasks.length} tasks`);
|
|
96165
96164
|
const { generateStaticSite: generateStaticSite2 } = await Promise.resolve().then(() => (init_ssg(), ssg_exports));
|
|
96166
96165
|
await generateStaticSite2(this.projDir, this.moduleDir);
|
|
96167
|
-
|
|
96166
|
+
log60.debug("\u2705 Tasks processed (filtered)");
|
|
96168
96167
|
const duration = performance.now() - startTime;
|
|
96169
96168
|
const result = {
|
|
96170
96169
|
success: true,
|
|
@@ -96173,12 +96172,12 @@ var init_worker_state = __esm({
|
|
|
96173
96172
|
duration,
|
|
96174
96173
|
errors: errors2
|
|
96175
96174
|
};
|
|
96176
|
-
|
|
96175
|
+
log60.info(`\u2705 Batch processed: ${pageTasks.length} tasks in ${duration.toFixed(2)}ms`);
|
|
96177
96176
|
return result;
|
|
96178
96177
|
} catch (error) {
|
|
96179
96178
|
const message = error instanceof Error ? error.message : String(error);
|
|
96180
96179
|
const errorMsg = `Batch processing failed: ${message}`;
|
|
96181
|
-
|
|
96180
|
+
log60.error(`\u274C ${errorMsg}`);
|
|
96182
96181
|
errors2.push(errorMsg);
|
|
96183
96182
|
const duration = performance.now() - startTime;
|
|
96184
96183
|
return {
|
|
@@ -96196,7 +96195,7 @@ var init_worker_state = __esm({
|
|
|
96196
96195
|
* 清理资源
|
|
96197
96196
|
*/
|
|
96198
96197
|
async cleanup() {
|
|
96199
|
-
|
|
96198
|
+
log60.info("\u{1F9F9} Cleaning up worker resources...");
|
|
96200
96199
|
this.initialized = false;
|
|
96201
96200
|
}
|
|
96202
96201
|
/**
|
|
@@ -96233,7 +96232,7 @@ async function handleWorkerTask(task) {
|
|
|
96233
96232
|
}
|
|
96234
96233
|
} catch (error) {
|
|
96235
96234
|
const message = error instanceof Error ? error.message : String(error);
|
|
96236
|
-
|
|
96235
|
+
log61.error(`Worker task failed: ${message}`);
|
|
96237
96236
|
return {
|
|
96238
96237
|
success: false,
|
|
96239
96238
|
error: message
|
|
@@ -96247,7 +96246,7 @@ async function handleInit(task) {
|
|
|
96247
96246
|
error: "Missing projDir or moduleDir for init task"
|
|
96248
96247
|
};
|
|
96249
96248
|
}
|
|
96250
|
-
|
|
96249
|
+
log61.info("\u{1F527} Initializing worker...");
|
|
96251
96250
|
workerState = new WorkerState(task.projDir, task.moduleDir);
|
|
96252
96251
|
await workerState.initialize();
|
|
96253
96252
|
return {
|
|
@@ -96301,13 +96300,13 @@ async function handleCleanup() {
|
|
|
96301
96300
|
data: { message: "Worker cleaned up successfully" }
|
|
96302
96301
|
};
|
|
96303
96302
|
}
|
|
96304
|
-
var
|
|
96303
|
+
var log61, workerState;
|
|
96305
96304
|
var init_worker_main = __esm({
|
|
96306
96305
|
"internal/application/worker/worker-main.ts"() {
|
|
96307
96306
|
"use strict";
|
|
96308
96307
|
init_worker_state();
|
|
96309
96308
|
init_log();
|
|
96310
|
-
|
|
96309
|
+
log61 = getDomainLogger("application", { component: "worker-main" });
|
|
96311
96310
|
workerState = null;
|
|
96312
96311
|
}
|
|
96313
96312
|
});
|
|
@@ -96318,14 +96317,14 @@ __export2(pool_manager_exports, {
|
|
|
96318
96317
|
WorkerPoolManager: () => WorkerPoolManager
|
|
96319
96318
|
});
|
|
96320
96319
|
module.exports = __toCommonJS2(pool_manager_exports);
|
|
96321
|
-
var workerpool, os2,
|
|
96320
|
+
var workerpool, os2, log62, WorkerPoolManager;
|
|
96322
96321
|
var init_pool_manager = __esm({
|
|
96323
96322
|
"internal/application/worker/pool-manager.ts"() {
|
|
96324
96323
|
init_log();
|
|
96325
96324
|
workerpool = __toESM2(require("workerpool"));
|
|
96326
96325
|
init_worker_main();
|
|
96327
96326
|
os2 = __toESM2(require("os"));
|
|
96328
|
-
|
|
96327
|
+
log62 = getDomainLogger("application", { component: "pool-manager" });
|
|
96329
96328
|
WorkerPoolManager = class {
|
|
96330
96329
|
pool = null;
|
|
96331
96330
|
environment;
|
|
@@ -96333,7 +96332,7 @@ var init_pool_manager = __esm({
|
|
|
96333
96332
|
constructor(config2 = {}) {
|
|
96334
96333
|
this.environment = this.detectEnvironment();
|
|
96335
96334
|
this.workerCount = config2.workerCount || this.calculateOptimalWorkerCount();
|
|
96336
|
-
|
|
96335
|
+
log62.info("Worker pool manager created", {
|
|
96337
96336
|
environment: this.environment,
|
|
96338
96337
|
workerCount: this.workerCount
|
|
96339
96338
|
});
|
|
@@ -96346,20 +96345,20 @@ var init_pool_manager = __esm({
|
|
|
96346
96345
|
*/
|
|
96347
96346
|
detectEnvironment() {
|
|
96348
96347
|
if (typeof Worker !== "undefined" && typeof globalThis.window !== "undefined") {
|
|
96349
|
-
|
|
96348
|
+
log62.debug("Detected Web Worker support (browser/Electron environment)");
|
|
96350
96349
|
return "browser";
|
|
96351
96350
|
}
|
|
96352
96351
|
if (typeof process !== "undefined" && process.versions && process.versions.node) {
|
|
96353
96352
|
try {
|
|
96354
96353
|
require.resolve("worker_threads");
|
|
96355
|
-
|
|
96354
|
+
log62.debug("Detected Node.js Worker Threads support");
|
|
96356
96355
|
return "node";
|
|
96357
96356
|
} catch {
|
|
96358
|
-
|
|
96357
|
+
log62.debug("Node.js detected but worker_threads unavailable, falling back to browser mode");
|
|
96359
96358
|
return "browser";
|
|
96360
96359
|
}
|
|
96361
96360
|
}
|
|
96362
|
-
|
|
96361
|
+
log62.debug("Using browser mode as default");
|
|
96363
96362
|
return "browser";
|
|
96364
96363
|
}
|
|
96365
96364
|
/**
|
|
@@ -96382,11 +96381,11 @@ var init_pool_manager = __esm({
|
|
|
96382
96381
|
*/
|
|
96383
96382
|
async initialize() {
|
|
96384
96383
|
if (this.pool) {
|
|
96385
|
-
|
|
96384
|
+
log62.warn("Worker pool already initialized");
|
|
96386
96385
|
return;
|
|
96387
96386
|
}
|
|
96388
96387
|
const startTime = performance.now();
|
|
96389
|
-
|
|
96388
|
+
log62.info(`\u{1F680} Initializing ${this.environment} worker pool with ${this.workerCount} workers...`);
|
|
96390
96389
|
try {
|
|
96391
96390
|
if (this.environment === "node") {
|
|
96392
96391
|
await this.initializeNodePool();
|
|
@@ -96394,25 +96393,25 @@ var init_pool_manager = __esm({
|
|
|
96394
96393
|
await this.initializeBrowserPool();
|
|
96395
96394
|
}
|
|
96396
96395
|
const duration = performance.now() - startTime;
|
|
96397
|
-
|
|
96396
|
+
log62.info(`\u2705 Worker pool initialized in ${duration.toFixed(2)}ms`);
|
|
96398
96397
|
} catch (error) {
|
|
96399
96398
|
const message = error instanceof Error ? error.message : String(error);
|
|
96400
96399
|
if (this.environment === "node") {
|
|
96401
|
-
|
|
96402
|
-
|
|
96400
|
+
log62.warn(`\u274C Node worker pool initialization failed: ${message}`);
|
|
96401
|
+
log62.warn("\u{1F504} Attempting fallback to browser workers...");
|
|
96403
96402
|
try {
|
|
96404
96403
|
this.environment = "browser";
|
|
96405
96404
|
await this.initializeBrowserPool();
|
|
96406
96405
|
const duration = performance.now() - startTime;
|
|
96407
|
-
|
|
96406
|
+
log62.info(`\u2705 Successfully initialized browser worker pool as fallback in ${duration.toFixed(2)}ms`);
|
|
96408
96407
|
return;
|
|
96409
96408
|
} catch (fallbackError) {
|
|
96410
96409
|
const fallbackMessage = fallbackError instanceof Error ? fallbackError.message : String(fallbackError);
|
|
96411
|
-
|
|
96410
|
+
log62.error(`\u274C Fallback to browser workers also failed: ${fallbackMessage}`);
|
|
96412
96411
|
throw new Error(`Worker pool initialization failed. Node: ${message}, Browser: ${fallbackMessage}`);
|
|
96413
96412
|
}
|
|
96414
96413
|
}
|
|
96415
|
-
|
|
96414
|
+
log62.error(`\u274C Failed to initialize worker pool: ${message}`);
|
|
96416
96415
|
throw error;
|
|
96417
96416
|
}
|
|
96418
96417
|
}
|
|
@@ -96422,13 +96421,13 @@ var init_pool_manager = __esm({
|
|
|
96422
96421
|
async initializeNodePool() {
|
|
96423
96422
|
const path29 = require("path");
|
|
96424
96423
|
const workerPath = path29.join(__dirname, "worker", "worker-node.js");
|
|
96425
|
-
|
|
96424
|
+
log62.debug(`Initializing Node.js worker pool with path: ${workerPath}`);
|
|
96426
96425
|
this.pool = workerpool.pool(workerPath, {
|
|
96427
96426
|
minWorkers: this.workerCount,
|
|
96428
96427
|
maxWorkers: this.workerCount,
|
|
96429
96428
|
workerType: "thread"
|
|
96430
96429
|
});
|
|
96431
|
-
|
|
96430
|
+
log62.debug(`Node.js worker pool created with ${this.workerCount} workers`, {
|
|
96432
96431
|
workerPath
|
|
96433
96432
|
});
|
|
96434
96433
|
}
|
|
@@ -96446,7 +96445,7 @@ var init_pool_manager = __esm({
|
|
|
96446
96445
|
// 使用 Web Workers
|
|
96447
96446
|
});
|
|
96448
96447
|
this.pool.proxy().then((proxy) => {
|
|
96449
|
-
|
|
96448
|
+
log62.debug(`Browser worker pool created with ${this.workerCount} workers`);
|
|
96450
96449
|
});
|
|
96451
96450
|
}
|
|
96452
96451
|
/**
|
|
@@ -96466,7 +96465,7 @@ var init_pool_manager = __esm({
|
|
|
96466
96465
|
}
|
|
96467
96466
|
} catch (error) {
|
|
96468
96467
|
const message = error instanceof Error ? error.message : String(error);
|
|
96469
|
-
|
|
96468
|
+
log62.error(`Worker task execution failed: ${message}`);
|
|
96470
96469
|
return {
|
|
96471
96470
|
success: false,
|
|
96472
96471
|
error: message
|
|
@@ -96491,13 +96490,13 @@ var init_pool_manager = __esm({
|
|
|
96491
96490
|
*/
|
|
96492
96491
|
async terminate() {
|
|
96493
96492
|
if (!this.pool) {
|
|
96494
|
-
|
|
96493
|
+
log62.warn("Worker pool already terminated");
|
|
96495
96494
|
return;
|
|
96496
96495
|
}
|
|
96497
|
-
|
|
96496
|
+
log62.info("\u{1F9F9} Terminating worker pool...");
|
|
96498
96497
|
await this.pool.terminate();
|
|
96499
96498
|
this.pool = null;
|
|
96500
|
-
|
|
96499
|
+
log62.info("\u2705 Worker pool terminated");
|
|
96501
96500
|
}
|
|
96502
96501
|
};
|
|
96503
96502
|
}
|