@stati/core 1.20.3 → 1.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/config/loader.d.ts +4 -0
- package/dist/config/loader.d.ts.map +1 -1
- package/dist/config/loader.js +49 -4
- package/dist/core/build.d.ts +6 -0
- package/dist/core/build.d.ts.map +1 -1
- package/dist/core/build.js +176 -66
- package/dist/core/dev.d.ts.map +1 -1
- package/dist/core/dev.js +100 -28
- package/dist/core/isg/builder.d.ts +4 -1
- package/dist/core/isg/builder.d.ts.map +1 -1
- package/dist/core/isg/builder.js +89 -2
- package/dist/core/isg/deps.d.ts +5 -0
- package/dist/core/isg/deps.d.ts.map +1 -1
- package/dist/core/isg/deps.js +38 -3
- package/dist/core/isg/dev-server-lock.d.ts +85 -0
- package/dist/core/isg/dev-server-lock.d.ts.map +1 -0
- package/dist/core/isg/dev-server-lock.js +248 -0
- package/dist/core/isg/hash.d.ts +4 -0
- package/dist/core/isg/hash.d.ts.map +1 -1
- package/dist/core/isg/hash.js +24 -1
- package/dist/core/isg/index.d.ts +3 -2
- package/dist/core/isg/index.d.ts.map +1 -1
- package/dist/core/isg/index.js +3 -2
- package/dist/core/markdown.d.ts +6 -0
- package/dist/core/markdown.d.ts.map +1 -1
- package/dist/core/markdown.js +23 -0
- package/dist/core/preview.js +1 -1
- package/dist/core/templates.js +5 -5
- package/dist/core/utils/bundle-matching.utils.d.ts +2 -0
- package/dist/core/utils/bundle-matching.utils.d.ts.map +1 -1
- package/dist/core/utils/index.d.ts +1 -1
- package/dist/core/utils/index.d.ts.map +1 -1
- package/dist/core/utils/index.js +1 -1
- package/dist/core/utils/logger.utils.d.ts.map +1 -1
- package/dist/core/utils/logger.utils.js +1 -0
- package/dist/core/utils/partial-validation.utils.js +2 -2
- package/dist/core/utils/paths.utils.d.ts +18 -0
- package/dist/core/utils/paths.utils.d.ts.map +1 -1
- package/dist/core/utils/paths.utils.js +23 -0
- package/dist/core/utils/tailwind-inventory.utils.d.ts +1 -16
- package/dist/core/utils/tailwind-inventory.utils.d.ts.map +1 -1
- package/dist/core/utils/tailwind-inventory.utils.js +35 -3
- package/dist/core/utils/typescript.utils.d.ts +13 -0
- package/dist/core/utils/typescript.utils.d.ts.map +1 -1
- package/dist/core/utils/typescript.utils.js +82 -3
- package/dist/env.d.ts +45 -0
- package/dist/env.d.ts.map +1 -1
- package/dist/env.js +51 -0
- package/dist/index.d.ts +2 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -2
- package/dist/metrics/index.d.ts +1 -1
- package/dist/metrics/index.d.ts.map +1 -1
- package/dist/metrics/index.js +2 -0
- package/dist/metrics/recorder.d.ts.map +1 -1
- package/dist/metrics/types.d.ts +31 -0
- package/dist/metrics/types.d.ts.map +1 -1
- package/dist/metrics/utils/html-report.utils.d.ts +24 -0
- package/dist/metrics/utils/html-report.utils.d.ts.map +1 -0
- package/dist/metrics/utils/html-report.utils.js +1547 -0
- package/dist/metrics/utils/index.d.ts +1 -0
- package/dist/metrics/utils/index.d.ts.map +1 -1
- package/dist/metrics/utils/index.js +2 -0
- package/dist/metrics/utils/writer.utils.d.ts +6 -2
- package/dist/metrics/utils/writer.utils.d.ts.map +1 -1
- package/dist/metrics/utils/writer.utils.js +20 -4
- package/dist/search/generator.d.ts +1 -9
- package/dist/search/generator.d.ts.map +1 -1
- package/dist/search/generator.js +26 -2
- package/dist/seo/generator.d.ts.map +1 -1
- package/dist/seo/generator.js +1 -0
- package/dist/seo/utils/escape-and-validation.utils.d.ts.map +1 -1
- package/dist/seo/utils/escape-and-validation.utils.js +1 -16
- package/dist/types/logging.d.ts +31 -12
- package/dist/types/logging.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tailwind-inventory.utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils/tailwind-inventory.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;
|
|
1
|
+
{"version":3,"file":"tailwind-inventory.utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils/tailwind-inventory.utils.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAuBH;;;;;;;;;GASG;AACH,wBAAsB,cAAc,CAAC,WAAW,GAAE,MAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,CA4C1F;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,IAAI,IAAI,CAE7C;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC7E;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAI1D;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,IAAI,CAE9C;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;;GAGG;AACH,wBAAgB,cAAc,IAAI,IAAI,CAErC;AAED;;;;;GAKG;AACH,wBAAgB,YAAY,IAAI,MAAM,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,IAAI,MAAM,CAEzC;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,IAAI,OAAO,CAE3C;AAoCD,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,MAAM,EAChB,eAAe,UAAQ,GACtB,OAAO,CAAC,MAAM,CAAC,CA8DjB"}
|
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|
* dynamically constructed classes (e.g., `from-${color}-50`) are included in the
|
|
7
7
|
* final CSS output.
|
|
8
8
|
*/
|
|
9
|
-
import {
|
|
9
|
+
import { createHash } from 'node:crypto';
|
|
10
10
|
import { join } from 'node:path';
|
|
11
|
+
import { writeFile, ensureDir, pathExists, readFile } from './fs.utils.js';
|
|
11
12
|
/**
|
|
12
13
|
* Module-level Set to track Tailwind classes across template renders.
|
|
13
14
|
* Cleared at the start of each full build.
|
|
@@ -176,8 +177,10 @@ export function isTrackingEnabled() {
|
|
|
176
177
|
*
|
|
177
178
|
* The generated file contains all tracked classes in a hidden div.
|
|
178
179
|
* This file should be added to Tailwind's content configuration.
|
|
180
|
+
* Skips write if the inventory hasn't changed (dev mode optimization).
|
|
179
181
|
*
|
|
180
182
|
* @param cacheDir - Directory where the inventory file should be written (typically .stati/)
|
|
183
|
+
* @param skipIfUnchanged - If true, skip write when class count matches previous
|
|
181
184
|
* @returns Path to the generated inventory file
|
|
182
185
|
*
|
|
183
186
|
* @example
|
|
@@ -186,10 +189,39 @@ export function isTrackingEnabled() {
|
|
|
186
189
|
* // File written to: /path/to/project/.stati/tailwind-classes.html
|
|
187
190
|
* ```
|
|
188
191
|
*/
|
|
189
|
-
|
|
190
|
-
|
|
192
|
+
// Cache for tailwind inventory state (dev mode optimization)
|
|
193
|
+
let lastInventorySize = null;
|
|
194
|
+
let lastInventoryContentHash = null;
|
|
195
|
+
/**
|
|
196
|
+
* Computes a hash of the class list for change detection.
|
|
197
|
+
* Uses sorted classes for deterministic hashing.
|
|
198
|
+
*
|
|
199
|
+
* @param classes - Array of class names
|
|
200
|
+
* @returns 8-character MD5 hash
|
|
201
|
+
*/
|
|
202
|
+
function computeClassListHash(classes) {
|
|
203
|
+
const sortedClasses = [...classes].sort();
|
|
204
|
+
return createHash('md5').update(sortedClasses.join(' ')).digest('hex').substring(0, 8);
|
|
205
|
+
}
|
|
206
|
+
export async function writeTailwindClassInventory(cacheDir, skipIfUnchanged = false) {
|
|
191
207
|
const inventoryPath = join(cacheDir, 'tailwind-classes.html');
|
|
192
208
|
const classes = getInventory();
|
|
209
|
+
// Skip write if content hash hasn't changed (dev mode optimization)
|
|
210
|
+
// Compares sorted class list hash to detect actual changes, not just count
|
|
211
|
+
if (skipIfUnchanged && lastInventorySize === classes.length) {
|
|
212
|
+
const contentHash = computeClassListHash(classes);
|
|
213
|
+
if (contentHash === lastInventoryContentHash) {
|
|
214
|
+
return inventoryPath;
|
|
215
|
+
}
|
|
216
|
+
// Count matched but content changed - update hash and proceed to write
|
|
217
|
+
lastInventoryContentHash = contentHash;
|
|
218
|
+
}
|
|
219
|
+
// Update cached state
|
|
220
|
+
lastInventorySize = classes.length;
|
|
221
|
+
if (skipIfUnchanged && !lastInventoryContentHash) {
|
|
222
|
+
lastInventoryContentHash = computeClassListHash(classes);
|
|
223
|
+
}
|
|
224
|
+
await ensureDir(cacheDir);
|
|
193
225
|
// Generate HTML with all tracked classes
|
|
194
226
|
// Using hidden div so it's scanned by Tailwind but not rendered
|
|
195
227
|
const html = `<!--
|
|
@@ -8,6 +8,10 @@ import * as esbuild from 'esbuild';
|
|
|
8
8
|
import { type CompiledBundleInfo } from './bundle-matching.utils.js';
|
|
9
9
|
import type { TypeScriptConfig } from '../../types/config.js';
|
|
10
10
|
import type { Logger } from '../../types/logging.js';
|
|
11
|
+
/**
|
|
12
|
+
* Formats bytes into a human-readable string.
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatBytes(bytes: number): string;
|
|
11
15
|
/**
|
|
12
16
|
* Options for TypeScript compilation.
|
|
13
17
|
*/
|
|
@@ -39,6 +43,15 @@ export interface WatchOptions {
|
|
|
39
43
|
/** Callback invoked when files are recompiled, receives results and compile time in ms */
|
|
40
44
|
onRebuild: (results: CompiledBundleInfo[], compileTimeMs: number) => void;
|
|
41
45
|
}
|
|
46
|
+
/**
|
|
47
|
+
* Detects existing TypeScript bundles in the output directory.
|
|
48
|
+
* Used when skipping TypeScript compilation (e.g., in dev mode where esbuild watcher handles it).
|
|
49
|
+
* Looks for bundles matching the config bundle names in the output directory.
|
|
50
|
+
*
|
|
51
|
+
* @param options - Same options as compileTypeScript
|
|
52
|
+
* @returns Array of detected bundle info
|
|
53
|
+
*/
|
|
54
|
+
export declare function detectExistingBundles(options: Omit<CompileOptions, 'logger'>): Promise<CompiledBundleInfo[]>;
|
|
42
55
|
/**
|
|
43
56
|
* Compile TypeScript files using esbuild.
|
|
44
57
|
* Supports multiple bundles with parallel compilation.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typescript.utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils/typescript.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQrD;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3E;
|
|
1
|
+
{"version":3,"file":"typescript.utils.d.ts","sourceRoot":"","sources":["../../../src/core/utils/typescript.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AAInC,OAAO,EAA6B,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AAChG,OAAO,KAAK,EAAE,gBAAgB,EAAgB,MAAM,uBAAuB,CAAC;AAC5E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAQrD;;GAEG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAQjD;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,uBAAuB;IACvB,IAAI,EAAE,aAAa,GAAG,YAAY,CAAC;IACnC,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,oCAAoC;IACpC,WAAW,EAAE,MAAM,CAAC;IACpB,+BAA+B;IAC/B,MAAM,EAAE,gBAAgB,CAAC;IACzB,4CAA4C;IAC5C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,SAAS,EAAE,CAAC,OAAO,EAAE,kBAAkB,EAAE,EAAE,aAAa,EAAE,MAAM,KAAK,IAAI,CAAC;CAC3E;AAuCD;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,CAAC,GACtC,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAyC/B;AAuED;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAkD9F;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,CAkGjC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAsB,kBAAkB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAgB5E;AAED;;;;GAIG;AACH,wBAAsB,qBAAqB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAM/E;AAED;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAAC,UAAU,EAAE,MAAM,GAAG,OAAO,CAqC7D;AAiBD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CA8B7E"}
|
|
@@ -10,6 +10,20 @@ import * as fs from 'node:fs/promises';
|
|
|
10
10
|
import { pathExists } from './fs.utils.js';
|
|
11
11
|
import { validateUniqueBundleNames } from './bundle-matching.utils.js';
|
|
12
12
|
import { DEFAULT_TS_SRC_DIR, DEFAULT_TS_OUT_DIR, DEFAULT_BUNDLES, DEFAULT_OUT_DIR, } from '../../constants.js';
|
|
13
|
+
/**
|
|
14
|
+
* Formats bytes into a human-readable string.
|
|
15
|
+
*/
|
|
16
|
+
export function formatBytes(bytes) {
|
|
17
|
+
if (bytes < 1024) {
|
|
18
|
+
return `${bytes} B`;
|
|
19
|
+
}
|
|
20
|
+
else if (bytes < 1024 * 1024) {
|
|
21
|
+
return `${(bytes / 1024).toFixed(2)} KB`;
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
return `${(bytes / (1024 * 1024)).toFixed(2)} MB`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
13
27
|
/**
|
|
14
28
|
* Resolves TypeScript config with defaults based on mode.
|
|
15
29
|
* @internal
|
|
@@ -28,6 +42,47 @@ function resolveConfig(config, mode) {
|
|
|
28
42
|
sourceMaps: !isProduction,
|
|
29
43
|
};
|
|
30
44
|
}
|
|
45
|
+
/**
|
|
46
|
+
* Detects existing TypeScript bundles in the output directory.
|
|
47
|
+
* Used when skipping TypeScript compilation (e.g., in dev mode where esbuild watcher handles it).
|
|
48
|
+
* Looks for bundles matching the config bundle names in the output directory.
|
|
49
|
+
*
|
|
50
|
+
* @param options - Same options as compileTypeScript
|
|
51
|
+
* @returns Array of detected bundle info
|
|
52
|
+
*/
|
|
53
|
+
export async function detectExistingBundles(options) {
|
|
54
|
+
const { projectRoot, config, outDir: globalOutDir = DEFAULT_OUT_DIR, mode } = options;
|
|
55
|
+
const resolved = resolveConfig(config, mode);
|
|
56
|
+
const outDir = path.join(projectRoot, globalOutDir, resolved.outDir);
|
|
57
|
+
const results = [];
|
|
58
|
+
// Check if output directory exists
|
|
59
|
+
if (!(await pathExists(outDir))) {
|
|
60
|
+
return results;
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
const files = await fs.readdir(outDir);
|
|
64
|
+
for (const bundleConfig of resolved.bundles) {
|
|
65
|
+
// In dev mode, bundles use stable names (no hash)
|
|
66
|
+
// In prod mode, bundles have hashes like "bundleName-abc123.js"
|
|
67
|
+
const pattern = mode === 'development'
|
|
68
|
+
? `${bundleConfig.bundleName}.js`
|
|
69
|
+
: new RegExp(`^${bundleConfig.bundleName}-[a-zA-Z0-9]+\\.js$`);
|
|
70
|
+
const matchingFile = files.find((f) => typeof pattern === 'string' ? f === pattern : pattern.test(f));
|
|
71
|
+
if (matchingFile) {
|
|
72
|
+
const bundlePath = path.posix.join('/', resolved.outDir, matchingFile);
|
|
73
|
+
results.push({
|
|
74
|
+
config: bundleConfig,
|
|
75
|
+
filename: matchingFile,
|
|
76
|
+
path: bundlePath,
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
catch {
|
|
82
|
+
// If we can't read the directory, return empty results
|
|
83
|
+
}
|
|
84
|
+
return results;
|
|
85
|
+
}
|
|
31
86
|
/**
|
|
32
87
|
* Compile a single bundle using esbuild.
|
|
33
88
|
* @internal
|
|
@@ -60,13 +115,19 @@ async function compileSingleBundle(bundleConfig, resolvedConfig, projectRoot, gl
|
|
|
60
115
|
const outputs = Object.keys(result.metafile?.outputs ?? {});
|
|
61
116
|
const bundleFile = outputs.find((f) => f.endsWith('.js'));
|
|
62
117
|
const bundleFilename = bundleFile ? path.basename(bundleFile) : `${bundleConfig.bundleName}.js`;
|
|
118
|
+
// Get the bundle size from metafile
|
|
119
|
+
const bundleSize = bundleFile ? result.metafile?.outputs[bundleFile]?.bytes : undefined;
|
|
63
120
|
// Construct the path relative to site root
|
|
64
121
|
const bundlePath = path.posix.join('/', resolvedConfig.outDir, bundleFilename);
|
|
65
|
-
|
|
122
|
+
const bundleInfo = {
|
|
66
123
|
config: bundleConfig,
|
|
67
124
|
filename: bundleFilename,
|
|
68
125
|
path: bundlePath,
|
|
69
126
|
};
|
|
127
|
+
if (bundleSize !== undefined) {
|
|
128
|
+
bundleInfo.sizeInBytes = bundleSize;
|
|
129
|
+
}
|
|
130
|
+
return bundleInfo;
|
|
70
131
|
}
|
|
71
132
|
catch (error) {
|
|
72
133
|
if (error instanceof Error) {
|
|
@@ -118,8 +179,16 @@ export async function compileTypeScript(options) {
|
|
|
118
179
|
// Filter out null results (skipped bundles) and collect successful ones
|
|
119
180
|
const successfulResults = results.filter((r) => r !== null);
|
|
120
181
|
if (successfulResults.length > 0) {
|
|
121
|
-
|
|
122
|
-
|
|
182
|
+
// Log each bundle on its own line
|
|
183
|
+
for (const r of successfulResults) {
|
|
184
|
+
if (logger.file) {
|
|
185
|
+
logger.file('compiled', r.filename, r.sizeInBytes);
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
// Calculate and display total
|
|
189
|
+
const totalBytes = successfulResults.reduce((sum, r) => sum + (r.sizeInBytes ?? 0), 0);
|
|
190
|
+
const totalSuffix = totalBytes > 0 ? ` (${formatBytes(totalBytes)} total)` : '';
|
|
191
|
+
logger.success(`Compiled ${successfulResults.length} TypeScript bundle${successfulResults.length > 1 ? 's' : ''}${totalSuffix}`);
|
|
123
192
|
}
|
|
124
193
|
else if (resolved.bundles.length > 0) {
|
|
125
194
|
logger.warning('No TypeScript bundles were compiled (all entry points missing).');
|
|
@@ -161,6 +230,10 @@ export async function createTypeScriptWatcher(options) {
|
|
|
161
230
|
logger.warning(`TypeScript entry point not found: ${entryPath} (bundle: ${bundleConfig.bundleName})`);
|
|
162
231
|
continue;
|
|
163
232
|
}
|
|
233
|
+
// Track whether this is the initial build triggered by context.watch()
|
|
234
|
+
// We skip notifications for the initial build since files were just compiled
|
|
235
|
+
// by compileTypeScript() during the initial build phase
|
|
236
|
+
let isInitialBuild = true;
|
|
164
237
|
const context = await esbuild.context({
|
|
165
238
|
entryPoints: [entryPath],
|
|
166
239
|
bundle: true,
|
|
@@ -202,6 +275,12 @@ export async function createTypeScriptWatcher(options) {
|
|
|
202
275
|
path: bundlePath,
|
|
203
276
|
};
|
|
204
277
|
latestResults.set(bundleConfig.bundleName, bundleResult);
|
|
278
|
+
// Skip notifications for the initial build triggered by context.watch()
|
|
279
|
+
// since files were already compiled during performInitialBuild()
|
|
280
|
+
if (isInitialBuild) {
|
|
281
|
+
isInitialBuild = false;
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
205
284
|
logger.info(`TypeScript '${bundleConfig.bundleName}' recompiled.`);
|
|
206
285
|
// Notify with all current results and compile time
|
|
207
286
|
onRebuild(Array.from(latestResults.values()), compileTime);
|
package/dist/env.d.ts
CHANGED
|
@@ -1,5 +1,50 @@
|
|
|
1
1
|
type Env = 'development' | 'production' | 'test';
|
|
2
2
|
export declare function setEnv(env: Env): void;
|
|
3
3
|
export declare function getEnv(): Env;
|
|
4
|
+
/**
|
|
5
|
+
* Check if the current environment is development.
|
|
6
|
+
* Useful for conditional logic that only runs during development builds.
|
|
7
|
+
*
|
|
8
|
+
* @returns `true` if in development mode, `false` otherwise
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* ```typescript
|
|
12
|
+
* if (isDevelopment()) {
|
|
13
|
+
* // Enable verbose logging
|
|
14
|
+
* logger.debug('Detailed debug information');
|
|
15
|
+
* }
|
|
16
|
+
* ```
|
|
17
|
+
*/
|
|
18
|
+
export declare function isDevelopment(): boolean;
|
|
19
|
+
/**
|
|
20
|
+
* Check if the current environment is production.
|
|
21
|
+
* Useful for conditional logic that only runs during production builds.
|
|
22
|
+
*
|
|
23
|
+
* @returns `true` if in production mode, `false` otherwise
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```typescript
|
|
27
|
+
* if (isProduction()) {
|
|
28
|
+
* // Generate sitemap and robots.txt
|
|
29
|
+
* generateSitemap();
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function isProduction(): boolean;
|
|
34
|
+
/**
|
|
35
|
+
* Check if the current environment is test.
|
|
36
|
+
* Useful for conditional logic during test execution.
|
|
37
|
+
*
|
|
38
|
+
* @returns `true` if in test mode, `false` otherwise
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* ```typescript
|
|
42
|
+
* if (isTest()) {
|
|
43
|
+
* // Use mock data
|
|
44
|
+
* return getMockData();
|
|
45
|
+
* }
|
|
46
|
+
* ```
|
|
47
|
+
*/
|
|
48
|
+
export declare function isTest(): boolean;
|
|
4
49
|
export {};
|
|
5
50
|
//# sourceMappingURL=env.d.ts.map
|
package/dist/env.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAIjD,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,QAE9B;AAED,wBAAgB,MAAM,IAAI,GAAG,CAE5B"}
|
|
1
|
+
{"version":3,"file":"env.d.ts","sourceRoot":"","sources":["../src/env.ts"],"names":[],"mappings":"AAAA,KAAK,GAAG,GAAG,aAAa,GAAG,YAAY,GAAG,MAAM,CAAC;AAIjD,wBAAgB,MAAM,CAAC,GAAG,EAAE,GAAG,QAE9B;AAED,wBAAgB,MAAM,IAAI,GAAG,CAE5B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,IAAI,OAAO,CAEvC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC"}
|
package/dist/env.js
CHANGED
|
@@ -5,3 +5,54 @@ export function setEnv(env) {
|
|
|
5
5
|
export function getEnv() {
|
|
6
6
|
return currentEnv;
|
|
7
7
|
}
|
|
8
|
+
/**
|
|
9
|
+
* Check if the current environment is development.
|
|
10
|
+
* Useful for conditional logic that only runs during development builds.
|
|
11
|
+
*
|
|
12
|
+
* @returns `true` if in development mode, `false` otherwise
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```typescript
|
|
16
|
+
* if (isDevelopment()) {
|
|
17
|
+
* // Enable verbose logging
|
|
18
|
+
* logger.debug('Detailed debug information');
|
|
19
|
+
* }
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
export function isDevelopment() {
|
|
23
|
+
return currentEnv === 'development';
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Check if the current environment is production.
|
|
27
|
+
* Useful for conditional logic that only runs during production builds.
|
|
28
|
+
*
|
|
29
|
+
* @returns `true` if in production mode, `false` otherwise
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* ```typescript
|
|
33
|
+
* if (isProduction()) {
|
|
34
|
+
* // Generate sitemap and robots.txt
|
|
35
|
+
* generateSitemap();
|
|
36
|
+
* }
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export function isProduction() {
|
|
40
|
+
return currentEnv === 'production';
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Check if the current environment is test.
|
|
44
|
+
* Useful for conditional logic during test execution.
|
|
45
|
+
*
|
|
46
|
+
* @returns `true` if in test mode, `false` otherwise
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```typescript
|
|
50
|
+
* if (isTest()) {
|
|
51
|
+
* // Use mock data
|
|
52
|
+
* return getMockData();
|
|
53
|
+
* }
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export function isTest() {
|
|
57
|
+
return currentEnv === 'test';
|
|
58
|
+
}
|
package/dist/index.d.ts
CHANGED
|
@@ -31,8 +31,8 @@ export type { AutoInjectOptions } from './seo/index.js';
|
|
|
31
31
|
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, generateSitemap, generateSitemapEntry, generateSitemapXml, generateSitemapIndexXml, generateRobotsTxt, generateRobotsTxtFromConfig, escapeHtml, generateRobotsContent, validateSEOMetadata, detectExistingSEOTags, normalizeUrlPath, resolveAbsoluteUrl, isValidUrl, autoInjectSEO, shouldAutoInject, } from './seo/index.js';
|
|
32
32
|
export type { RSSValidationResult } from './rss/index.js';
|
|
33
33
|
export { generateRSSFeed, generateRSSFeeds, validateRSSConfig, validateRSSFeedConfig, } from './rss/index.js';
|
|
34
|
-
export { loadConfig } from './config/loader.js';
|
|
35
|
-
export { setEnv, getEnv } from './env.js';
|
|
34
|
+
export { loadConfig, clearConfigCache } from './config/loader.js';
|
|
35
|
+
export { setEnv, getEnv, isDevelopment, isProduction, isTest } from './env.js';
|
|
36
36
|
export { getStatiVersion } from './core/utils/index.js';
|
|
37
37
|
import type { StatiConfig } from './types/index.js';
|
|
38
38
|
/**
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGtF,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG1F,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,YAAY,EACV,WAAW,EACX,SAAS,EACT,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,OAAO,EACP,SAAS,EACT,SAAS,EACT,UAAU,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EACV,WAAW,EACX,SAAS,EACT,UAAU,EACV,mBAAmB,EACnB,UAAU,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,iBAAiB,EACjB,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,aAAa,EACb,YAAY,EACZ,uBAAuB,EACvB,eAAe,GAChB,MAAM,kBAAkB,CAAC;AAG1B,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAGtF,YAAY,EACV,YAAY,EACZ,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAG1F,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,WAAW,GACZ,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAG5F,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,qBAAqB,EACrB,uBAAuB,EACvB,eAAe,EACf,oBAAoB,EACpB,kBAAkB,EAClB,uBAAuB,EACvB,iBAAiB,EACjB,2BAA2B,EAC3B,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,gBAAgB,EAChB,kBAAkB,EAClB,UAAU,EACV,aAAa,EACb,gBAAgB,GACjB,MAAM,gBAAgB,CAAC;AAGxB,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EACL,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,qBAAqB,GACtB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAG/E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE,WAAW,GAAG,WAAW,CAE7D"}
|
package/dist/index.js
CHANGED
|
@@ -24,8 +24,8 @@ export { createMetricRecorder, noopMetricRecorder, writeMetrics } from './metric
|
|
|
24
24
|
export { generateSEOMetadata, generateSEO, generateOpenGraphTags, generateTwitterCardTags, generateSitemap, generateSitemapEntry, generateSitemapXml, generateSitemapIndexXml, generateRobotsTxt, generateRobotsTxtFromConfig, escapeHtml, generateRobotsContent, validateSEOMetadata, detectExistingSEOTags, normalizeUrlPath, resolveAbsoluteUrl, isValidUrl, autoInjectSEO, shouldAutoInject, } from './seo/index.js';
|
|
25
25
|
export { generateRSSFeed, generateRSSFeeds, validateRSSConfig, validateRSSFeedConfig, } from './rss/index.js';
|
|
26
26
|
// Re-export config and env utilities
|
|
27
|
-
export { loadConfig } from './config/loader.js';
|
|
28
|
-
export { setEnv, getEnv } from './env.js';
|
|
27
|
+
export { loadConfig, clearConfigCache } from './config/loader.js';
|
|
28
|
+
export { setEnv, getEnv, isDevelopment, isProduction, isTest } from './env.js';
|
|
29
29
|
// Re-export version utility
|
|
30
30
|
export { getStatiVersion } from './core/utils/index.js';
|
|
31
31
|
/**
|
package/dist/metrics/index.d.ts
CHANGED
|
@@ -33,6 +33,6 @@
|
|
|
33
33
|
export type { BuildMetrics, MetricsMeta, MetricsFlags, MetricsTotals, MetricsPhases, MetricsCounts, MetricsISG, PageTiming, IncrementalMetrics, MetricRecorder, MetricRecorderOptions, PhaseName, CounterName, GaugeName, } from './types.js';
|
|
34
34
|
export { createMetricRecorder } from './recorder.js';
|
|
35
35
|
export { noopMetricRecorder } from './noop.js';
|
|
36
|
-
export { writeMetrics, generateMetricsFilename, DEFAULT_METRICS_DIR, isCI, getGitCommit, getGitBranch, getCpuCount, getPlatform, getArch, getNodeVersion, getMemoryUsage, } from './utils/index.js';
|
|
36
|
+
export { writeMetrics, generateMetricsFilename, DEFAULT_METRICS_DIR, generateMetricsHtml, writeMetricsHtml, isCI, getGitCommit, getGitBranch, getCpuCount, getPlatform, getArch, getNodeVersion, getMemoryUsage, } from './utils/index.js';
|
|
37
37
|
export type { WriteMetricsOptions, WriteMetricsResult } from './utils/index.js';
|
|
38
38
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAEL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EAEnB,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/metrics/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAGH,YAAY,EACV,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,aAAa,EACb,aAAa,EACb,aAAa,EACb,UAAU,EACV,UAAU,EACV,kBAAkB,EAClB,cAAc,EACd,qBAAqB,EACrB,SAAS,EACT,WAAW,EACX,SAAS,GACV,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAGrD,OAAO,EAAE,kBAAkB,EAAE,MAAM,WAAW,CAAC;AAG/C,OAAO,EAEL,YAAY,EACZ,uBAAuB,EACvB,mBAAmB,EAEnB,mBAAmB,EACnB,gBAAgB,EAEhB,IAAI,EACJ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,EACX,OAAO,EACP,cAAc,EACd,cAAc,GACf,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
|
package/dist/metrics/index.js
CHANGED
|
@@ -38,5 +38,7 @@ export { noopMetricRecorder } from './noop.js';
|
|
|
38
38
|
export {
|
|
39
39
|
// Writer utilities
|
|
40
40
|
writeMetrics, generateMetricsFilename, DEFAULT_METRICS_DIR,
|
|
41
|
+
// HTML report utilities
|
|
42
|
+
generateMetricsHtml, writeMetricsHtml,
|
|
41
43
|
// System utilities
|
|
42
44
|
isCI, getGitCommit, getGitBranch, getCpuCount, getPlatform, getArch, getNodeVersion, getMemoryUsage, } from './utils/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/metrics/recorder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAQtB,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"recorder.d.ts","sourceRoot":"","sources":["../../src/metrics/recorder.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EACV,cAAc,EACd,qBAAqB,EAQtB,MAAM,YAAY,CAAC;AA+NpB;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,cAAc,CAaxF"}
|
package/dist/metrics/types.d.ts
CHANGED
|
@@ -79,17 +79,48 @@ export interface MetricsTotals {
|
|
|
79
79
|
* All fields are optional as not all phases run in every build.
|
|
80
80
|
*/
|
|
81
81
|
export interface MetricsPhases {
|
|
82
|
+
/** Configuration file loading and validation */
|
|
82
83
|
readonly configLoadMs?: number;
|
|
84
|
+
/** Content discovery and markdown parsing */
|
|
83
85
|
readonly contentDiscoveryMs?: number;
|
|
86
|
+
/** Navigation tree building */
|
|
84
87
|
readonly navigationBuildMs?: number;
|
|
88
|
+
/** Cache manifest loading from disk */
|
|
85
89
|
readonly cacheManifestLoadMs?: number;
|
|
90
|
+
/** TypeScript compilation */
|
|
86
91
|
readonly typescriptCompileMs?: number;
|
|
92
|
+
/** Total page rendering time (includes shouldRebuild + render + fileWrite + cacheEntry) */
|
|
87
93
|
readonly pageRenderingMs?: number;
|
|
94
|
+
/** Aggregate time checking if pages need rebuild (shouldRebuildPage) */
|
|
95
|
+
readonly shouldRebuildTotalMs?: number;
|
|
96
|
+
/** Aggregate time rendering pages (renderPage) */
|
|
97
|
+
readonly renderPageTotalMs?: number;
|
|
98
|
+
/** Aggregate time writing HTML files to disk */
|
|
99
|
+
readonly fileWriteTotalMs?: number;
|
|
100
|
+
/** Aggregate time updating cache entries */
|
|
101
|
+
readonly cacheEntryTotalMs?: number;
|
|
102
|
+
/** Search index generation */
|
|
88
103
|
readonly searchIndexGenerationMs?: number;
|
|
104
|
+
/** Search index write to disk */
|
|
105
|
+
readonly searchIndexWriteMs?: number;
|
|
106
|
+
/** Static asset copying */
|
|
89
107
|
readonly assetCopyMs?: number;
|
|
108
|
+
/** Cache manifest saving to disk */
|
|
90
109
|
readonly cacheManifestSaveMs?: number;
|
|
110
|
+
/** Sitemap generation */
|
|
91
111
|
readonly sitemapGenerationMs?: number;
|
|
112
|
+
/** RSS feed generation */
|
|
92
113
|
readonly rssGenerationMs?: number;
|
|
114
|
+
/** Tailwind detection and inventory initialization */
|
|
115
|
+
readonly tailwindInitMs?: number;
|
|
116
|
+
/** Tailwind inventory write at end of build */
|
|
117
|
+
readonly tailwindInventoryMs?: number;
|
|
118
|
+
/** Directory size calculation for build stats */
|
|
119
|
+
readonly getDirectorySizeMs?: number;
|
|
120
|
+
/** Build lock acquisition */
|
|
121
|
+
readonly lockAcquireMs?: number;
|
|
122
|
+
/** Build lock release */
|
|
123
|
+
readonly lockReleaseMs?: number;
|
|
93
124
|
/** Build hooks - only recorded when hooks are configured */
|
|
94
125
|
readonly hookBeforeAllMs?: number;
|
|
95
126
|
readonly hookAfterAllMs?: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/metrics/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* HTML Metrics Report Generator
|
|
3
|
+
*
|
|
4
|
+
* Generates a self-contained HTML file for visualizing build performance metrics.
|
|
5
|
+
* Handles both standard and detailed (with pageTimings) metrics files.
|
|
6
|
+
*/
|
|
7
|
+
import type { BuildMetrics } from '../types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Generate the HTML report content
|
|
10
|
+
*/
|
|
11
|
+
export declare function generateMetricsHtml(metrics: BuildMetrics): string;
|
|
12
|
+
/**
|
|
13
|
+
* Write the HTML metrics report to a file.
|
|
14
|
+
*
|
|
15
|
+
* @param metrics - The build metrics data
|
|
16
|
+
* @param outputPath - Path to write the HTML file
|
|
17
|
+
* @returns Promise resolving to success boolean and path
|
|
18
|
+
*/
|
|
19
|
+
export declare function writeMetricsHtml(metrics: BuildMetrics, outputPath: string): Promise<{
|
|
20
|
+
success: boolean;
|
|
21
|
+
path?: string;
|
|
22
|
+
error?: string;
|
|
23
|
+
}>;
|
|
24
|
+
//# sourceMappingURL=html-report.utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"html-report.utils.d.ts","sourceRoot":"","sources":["../../../src/metrics/utils/html-report.utils.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAc,MAAM,aAAa,CAAC;AAwM5D;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,YAAY,GAAG,MAAM,CAs2CjE;AAED;;;;;;GAMG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAS9D"}
|