@hale-bopp/valentino-engine 2.0.0 → 2.1.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/CHANGELOG.md CHANGED
@@ -1,5 +1,19 @@
1
1
  # Changelog
2
2
 
3
+ ## [2.1.0] — 2026-03-26
4
+
5
+ ### Added
6
+ - **CMS Guardrails (PBI #605)**: 6 new checks — `checkOgImageExists`, `checkMediaOrphans`, `checkMediaMissingAlt`, `checkBreadcrumbDepth`, `checkLanguageCoverage`, `checkDuplicateRoutes` (12/14 total)
7
+ - **LLMs.txt Generator (PBI #614)**: `generateLlmsTxt` (L0 compact) + `generateLlmsFullTxt` (L1 detailed) + CLI `valentino llms`
8
+ - **Animation Presets (PBI #611)**: `AnimationSpec` on `SectionPresentationBase`, 5 presets (fade-up/in, slide-left/right, scale-in), `probeAnimations` validation, `resolveAnimationCSS` for consumers
9
+ - **Encoding Guardrail (PBI #629)**: `checkMojibake` (14 Latin-1/Win-1252 patterns), `checkTypography` (15+ rules for IT/EN/FR/DE/ES), `checkEncoding` combined
10
+
11
+ ### Changed
12
+ - CLI now has 10 commands (was 9): added `llms`
13
+ - Test suite: 239 tests across 16 suites (was 170/13)
14
+ - Core modules: 17 (was 14)
15
+ - `collectPureCmsWarnings` accepts new options: `mediaManifest`, `contentByLang`
16
+
3
17
  ## [2.0.0] — 2026-03-26
4
18
 
5
19
  ### Breaking Changes
@@ -0,0 +1,2 @@
1
+ export declare function runLlms(args: string[]): void;
2
+ //# sourceMappingURL=llms.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.d.ts","sourceRoot":"","sources":["../../../src/bin/commands/llms.ts"],"names":[],"mappings":"AA0BA,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,CAoE5C"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * CLI command: valentino llms <manifest.json> [options]
3
+ * Generates llms.txt and llms-full.txt from a pages manifest.
4
+ */
5
+ import { readFileSync, writeFileSync } from 'node:fs';
6
+ import { resolve } from 'node:path';
7
+ import { generateLlmsTxt, generateLlmsFullTxt } from '../../core/llms-generator.js';
8
+ function loadJson(path) {
9
+ return JSON.parse(readFileSync(path, 'utf-8'));
10
+ }
11
+ function flattenKeys(obj, prefix = '') {
12
+ const result = {};
13
+ for (const [key, value] of Object.entries(obj)) {
14
+ const fullKey = prefix ? `${prefix}.${key}` : key;
15
+ if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
16
+ Object.assign(result, flattenKeys(value, fullKey));
17
+ }
18
+ else if (typeof value === 'string') {
19
+ result[fullKey] = value;
20
+ }
21
+ }
22
+ return result;
23
+ }
24
+ export function runLlms(args) {
25
+ const manifestPath = args.find((a) => !a.startsWith('--'));
26
+ if (!manifestPath) {
27
+ console.error('Usage: valentino llms <manifest.json> [--content content.json] [--site "Name"] [--tagline "..."] [--base-url https://...] [--out-dir ./public] [--specs-dir ./pages]');
28
+ process.exit(1);
29
+ }
30
+ // Parse options
31
+ const getOpt = (flag) => {
32
+ const idx = args.indexOf(flag);
33
+ return idx >= 0 && idx + 1 < args.length ? args[idx + 1] : undefined;
34
+ };
35
+ const contentPath = getOpt('--content');
36
+ const siteName = getOpt('--site') || 'Site';
37
+ const tagline = getOpt('--tagline');
38
+ const baseUrl = getOpt('--base-url');
39
+ const outDir = getOpt('--out-dir') || '.';
40
+ const specsDir = getOpt('--specs-dir');
41
+ const capsRaw = getOpt('--capabilities');
42
+ // Load manifest
43
+ const manifest = loadJson(resolve(manifestPath));
44
+ // Content resolver
45
+ let contentMap = {};
46
+ if (contentPath) {
47
+ const raw = loadJson(resolve(contentPath));
48
+ contentMap = flattenKeys(raw);
49
+ }
50
+ const resolveContent = (key) => contentMap[key];
51
+ // Load page specs if dir provided
52
+ let specsById;
53
+ if (specsDir) {
54
+ specsById = new Map();
55
+ for (const page of manifest.pages) {
56
+ try {
57
+ const specPath = resolve(specsDir, page.spec.replace(/^\/pages\//, ''));
58
+ const spec = loadJson(specPath);
59
+ specsById.set(page.id, spec);
60
+ }
61
+ catch {
62
+ // Spec not found — skip
63
+ }
64
+ }
65
+ }
66
+ // Capabilities
67
+ const capabilities = capsRaw
68
+ ? capsRaw.split(';').map((s) => s.trim()).filter(Boolean)
69
+ : undefined;
70
+ const options = { siteName, tagline, baseUrl, capabilities, resolveContent, specsById };
71
+ // Generate
72
+ const llmsTxt = generateLlmsTxt(manifest, options);
73
+ const llmsFullTxt = generateLlmsFullTxt(manifest, options);
74
+ // Write
75
+ const outLlms = resolve(outDir, 'llms.txt');
76
+ const outFull = resolve(outDir, 'llms-full.txt');
77
+ writeFileSync(outLlms, llmsTxt, 'utf-8');
78
+ writeFileSync(outFull, llmsFullTxt, 'utf-8');
79
+ const llmsLines = llmsTxt.split('\n').length;
80
+ const fullLines = llmsFullTxt.split('\n').length;
81
+ console.log(`✅ Generated ${outLlms} (${llmsLines} lines)`);
82
+ console.log(`✅ Generated ${outFull} (${fullLines} lines)`);
83
+ }
84
+ //# sourceMappingURL=llms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms.js","sourceRoot":"","sources":["../../../src/bin/commands/llms.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,7 @@ import { runCatalogResolve } from './commands/catalog.js';
11
11
  import { runManifestResolve } from './commands/manifest.js';
12
12
  import { runContrast } from './commands/contrast.js';
13
13
  import { runInit } from './commands/init.js';
14
+ import { runLlms } from './commands/llms.js';
14
15
  const [, , command, ...args] = process.argv;
15
16
  switch (command) {
16
17
  case 'init':
@@ -47,6 +48,9 @@ switch (command) {
47
48
  case 'contrast':
48
49
  runContrast(args);
49
50
  break;
51
+ case 'llms':
52
+ runLlms(args);
53
+ break;
50
54
  default:
51
55
  console.log(`
52
56
  🎨 Valentino Engine v0.1.0 — Antifragile Open Source UI Design Engine
@@ -60,6 +64,7 @@ Usage:
60
64
  valentino contrast <foreground> <background> [AA|AAA] Check WCAG contrast ratio
61
65
  valentino catalog resolve <spec.json> --catalog <catalog.json> Resolve spec with catalog
62
66
  valentino manifest resolve <manifest.json> --route /path Resolve route to page ID
67
+ valentino llms <manifest.json> [--content c.json] [--site N] Generate llms.txt + llms-full.txt
63
68
 
64
69
  Epic: https://dev.azure.com/EasyWayData/EasyWay-DataPortal/_workitems/edit/480
65
70
  `);
@@ -1 +1 @@
1
- {"version":3,"file":"valentino.js","sourceRoot":"","sources":["../../src/bin/valentino.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,EAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3C,QAAQ,OAAO,EAAE,CAAC;IACd,KAAK,MAAM;QACP,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM;IAEV,KAAK,OAAO;QACR,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM;IAEV,KAAK,UAAU;QACX,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM;IAEV,KAAK,YAAY;QACb,aAAa,EAAE,CAAC;QAChB,MAAM;IAEV,KAAK,OAAO;QACR,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM;IAEV,KAAK,SAAS;QACV,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM;IAEV,KAAK,UAAU;QACX,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM;IAEV,KAAK,UAAU;QACX,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM;IAEV;QACI,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;CAcnB,CAAC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"valentino.js","sourceRoot":"","sources":["../../src/bin/valentino.ts"],"names":[],"mappings":";AACA;;;GAGG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAC5D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAE7C,MAAM,CAAC,EAAC,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;AAE3C,QAAQ,OAAO,EAAE,CAAC;IACd,KAAK,MAAM;QACP,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM;IAEV,KAAK,OAAO;QACR,QAAQ,CAAC,IAAI,CAAC,CAAC;QACf,MAAM;IAEV,KAAK,UAAU;QACX,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM;IAEV,KAAK,YAAY;QACb,aAAa,EAAE,CAAC;QAChB,MAAM;IAEV,KAAK,OAAO;QACR,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,MAAM;IAEV,KAAK,SAAS;QACV,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,uEAAuE,CAAC,CAAC;YACvF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM;IAEV,KAAK,UAAU;QACX,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,SAAS;YAAE,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;aACxD,CAAC;YACF,OAAO,CAAC,KAAK,CAAC,iEAAiE,CAAC,CAAC;YACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,CAAC;QACD,MAAM;IAEV,KAAK,UAAU;QACX,WAAW,CAAC,IAAI,CAAC,CAAC;QAClB,MAAM;IAEV,KAAK,MAAM;QACP,OAAO,CAAC,IAAI,CAAC,CAAC;QACd,MAAM;IAEV;QACI,OAAO,CAAC,GAAG,CAAC;;;;;;;;;;;;;;;CAenB,CAAC,CAAC;AACH,CAAC"}
@@ -0,0 +1,18 @@
1
+ /**
2
+ * Animation Presets — Validation and CSS generation for declarative section animations.
3
+ * No DOM — pure functions only. The consumer applies CSS/IntersectionObserver.
4
+ * PBI #611.
5
+ */
6
+ import type { AnimationPreset, AnimationSpec, SectionSpec } from './types.js';
7
+ export type AnimationWarning = {
8
+ type: string;
9
+ section: number;
10
+ message: string;
11
+ };
12
+ /** Validate animation specs across all sections of a page. */
13
+ export declare function probeAnimations(sections: SectionSpec[]): AnimationWarning[];
14
+ /** Resolve animation to CSS custom properties for a section. */
15
+ export declare function resolveAnimationCSS(anim: AnimationSpec): Record<string, string>;
16
+ /** List of all valid animation presets. */
17
+ export declare const ANIMATION_PRESETS: readonly AnimationPreset[];
18
+ //# sourceMappingURL=animation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation.d.ts","sourceRoot":"","sources":["../../src/core/animation.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAE9E,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,8DAA8D;AAC9D,wBAAgB,eAAe,CAAC,QAAQ,EAAE,WAAW,EAAE,GAAG,gBAAgB,EAAE,CAsD3E;AAED,gEAAgE;AAChE,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoC/E;AAED,2CAA2C;AAC3C,eAAO,MAAM,iBAAiB,EAAE,SAAS,eAAe,EAA4E,CAAC"}
@@ -0,0 +1,91 @@
1
+ const VALID_PRESETS = new Set(['fade-up', 'fade-in', 'slide-left', 'slide-right', 'scale-in', 'none']);
2
+ const VALID_DELAYS = new Set(['none', 'stagger']);
3
+ const VALID_TRIGGERS = new Set(['viewport', 'immediate']);
4
+ /** Validate animation specs across all sections of a page. */
5
+ export function probeAnimations(sections) {
6
+ const warnings = [];
7
+ for (let i = 0; i < sections.length; i++) {
8
+ const section = sections[i];
9
+ const anim = section.animation;
10
+ if (!anim)
11
+ continue;
12
+ if (anim.entrance && !VALID_PRESETS.has(anim.entrance)) {
13
+ warnings.push({
14
+ type: 'animation-invalid-preset',
15
+ section: i,
16
+ message: `Section ${i} (${section.type}): unknown animation preset "${anim.entrance}". Valid: ${[...VALID_PRESETS].join(', ')}`,
17
+ });
18
+ }
19
+ if (anim.delay && !VALID_DELAYS.has(anim.delay)) {
20
+ warnings.push({
21
+ type: 'animation-invalid-delay',
22
+ section: i,
23
+ message: `Section ${i} (${section.type}): unknown delay "${anim.delay}". Valid: ${[...VALID_DELAYS].join(', ')}`,
24
+ });
25
+ }
26
+ if (anim.trigger && !VALID_TRIGGERS.has(anim.trigger)) {
27
+ warnings.push({
28
+ type: 'animation-invalid-trigger',
29
+ section: i,
30
+ message: `Section ${i} (${section.type}): unknown trigger "${anim.trigger}". Valid: ${[...VALID_TRIGGERS].join(', ')}`,
31
+ });
32
+ }
33
+ if (anim.duration !== undefined && (anim.duration < 0 || anim.duration > 5000)) {
34
+ warnings.push({
35
+ type: 'animation-duration-out-of-range',
36
+ section: i,
37
+ message: `Section ${i} (${section.type}): duration ${anim.duration}ms is out of range (0-5000)`,
38
+ });
39
+ }
40
+ // Stagger on non-list sections is a no-op warning
41
+ if (anim.delay === 'stagger') {
42
+ const listTypes = new Set(['cards', 'stats', 'how-it-works', 'data-list', 'component-showcase']);
43
+ if (!listTypes.has(section.type)) {
44
+ warnings.push({
45
+ type: 'animation-stagger-no-effect',
46
+ section: i,
47
+ message: `Section ${i} (${section.type}): "stagger" delay has no effect on non-list sections`,
48
+ });
49
+ }
50
+ }
51
+ }
52
+ return warnings;
53
+ }
54
+ /** Resolve animation to CSS custom properties for a section. */
55
+ export function resolveAnimationCSS(anim) {
56
+ const preset = anim.entrance || 'none';
57
+ const duration = anim.duration || 400;
58
+ const delay = anim.delay || 'none';
59
+ if (preset === 'none')
60
+ return {};
61
+ const css = {
62
+ '--v-anim-duration': `${duration}ms`,
63
+ '--v-anim-delay-mode': delay,
64
+ };
65
+ switch (preset) {
66
+ case 'fade-up':
67
+ css['--v-anim-opacity'] = '0';
68
+ css['--v-anim-transform'] = 'translateY(20px)';
69
+ break;
70
+ case 'fade-in':
71
+ css['--v-anim-opacity'] = '0';
72
+ css['--v-anim-transform'] = 'none';
73
+ break;
74
+ case 'slide-left':
75
+ css['--v-anim-opacity'] = '0';
76
+ css['--v-anim-transform'] = 'translateX(40px)';
77
+ break;
78
+ case 'slide-right':
79
+ css['--v-anim-opacity'] = '0';
80
+ css['--v-anim-transform'] = 'translateX(-40px)';
81
+ break;
82
+ case 'scale-in':
83
+ css['--v-anim-opacity'] = '0';
84
+ css['--v-anim-transform'] = 'scale(0.95)';
85
+ break;
86
+ }
87
+ return css;
88
+ }
89
+ /** List of all valid animation presets. */
90
+ export const ANIMATION_PRESETS = ['fade-up', 'fade-in', 'slide-left', 'slide-right', 'scale-in', 'none'];
91
+ //# sourceMappingURL=animation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"animation.js","sourceRoot":"","sources":["../../src/core/animation.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * Encoding Guardrail — Mojibake detection and typographic validation.
3
+ * Pure functions: takes content strings, returns warnings.
4
+ * No I/O — consumer loads the content files.
5
+ * PBI #629.
6
+ */
7
+ export type EncodingWarning = {
8
+ type: 'mojibake' | 'typography';
9
+ severity: 'error' | 'warning';
10
+ file: string;
11
+ key: string;
12
+ message: string;
13
+ match: string;
14
+ };
15
+ /**
16
+ * Detect mojibake in content strings.
17
+ * Returns errors for each mojibake pattern found.
18
+ */
19
+ export declare function checkMojibake(contentByFile: Map<string, Map<string, string>>): EncodingWarning[];
20
+ /**
21
+ * Check typographic issues in content strings.
22
+ * Filters rules by language ('*' matches all).
23
+ */
24
+ export declare function checkTypography(contentByFile: Map<string, Map<string, string>>, lang?: string): EncodingWarning[];
25
+ /**
26
+ * Run all encoding checks (mojibake + typography).
27
+ */
28
+ export declare function checkEncoding(contentByFile: Map<string, Map<string, string>>, lang?: string): EncodingWarning[];
29
+ /** Exported constants for consumer use. */
30
+ export declare const MOJIBAKE_PATTERN_COUNT: number;
31
+ export declare const TYPO_RULE_COUNT: number;
32
+ //# sourceMappingURL=encoding.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.d.ts","sourceRoot":"","sources":["../../src/core/encoding.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,eAAe,GAAG;IAC1B,IAAI,EAAE,UAAU,GAAG,YAAY,CAAC;IAChC,QAAQ,EAAE,OAAO,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACjB,CAAC;AAmDF;;;GAGG;AACH,wBAAgB,aAAa,CACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAChD,eAAe,EAAE,CAwBnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/C,IAAI,CAAC,EAAE,MAAM,GACd,eAAe,EAAE,CA0BnB;AAED;;GAEG;AACH,wBAAgB,aAAa,CACzB,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,EAC/C,IAAI,CAAC,EAAE,MAAM,GACd,eAAe,EAAE,CAKnB;AAED,2CAA2C;AAC3C,eAAO,MAAM,sBAAsB,QAA2B,CAAC;AAC/D,eAAO,MAAM,eAAe,QAAoB,CAAC"}
@@ -0,0 +1,112 @@
1
+ /**
2
+ * Encoding Guardrail — Mojibake detection and typographic validation.
3
+ * Pure functions: takes content strings, returns warnings.
4
+ * No I/O — consumer loads the content files.
5
+ * PBI #629.
6
+ */
7
+ const MOJIBAKE_PATTERNS = [
8
+ { pattern: /è/g, label: 'è (Latin-1→UTF-8)', fix: 'è' },
9
+ { pattern: /é/g, label: 'é (Latin-1→UTF-8)', fix: 'é' },
10
+ { pattern: /Ã /g, label: 'à (Latin-1→UTF-8)', fix: 'à' },
11
+ { pattern: /ù/g, label: 'ù (Latin-1→UTF-8)', fix: 'ù' },
12
+ { pattern: /ò/g, label: 'ò (Latin-1→UTF-8)', fix: 'ò' },
13
+ { pattern: /ì/g, label: 'ì (Latin-1→UTF-8)', fix: 'ì' },
14
+ { pattern: /ö/g, label: 'ö (Latin-1→UTF-8)', fix: 'ö' },
15
+ { pattern: /ü/g, label: 'ü (Latin-1→UTF-8)', fix: 'ü' },
16
+ { pattern: /ä/g, label: 'ä (Latin-1→UTF-8)', fix: 'ä' },
17
+ { pattern: /ñ/g, label: 'ñ (Latin-1→UTF-8)', fix: 'ñ' },
18
+ { pattern: /ç/g, label: 'ç (Latin-1→UTF-8)', fix: 'ç' },
19
+ { pattern: /’/g, label: 'right single quote (Win-1252)', fix: '\u2019' },
20
+ { pattern: /“/g, label: 'left double quote (Win-1252)', fix: '\u201C' },
21
+ { pattern: /â€\u009D/g, label: 'right double quote (Win-1252)', fix: '\u201D' },
22
+ ];
23
+ const TYPO_RULES = [
24
+ // Italian
25
+ { pattern: /\bE'\s/g, lang: 'it', label: "E' instead of È", suggestion: 'Use È (capital E with accent)' },
26
+ { pattern: /\bperche'\b/gi, lang: 'it', label: "perche' instead of perché", suggestion: 'Use perché' },
27
+ { pattern: /\bperche\b(?!')/gi, lang: 'it', label: "perche without accent", suggestion: 'Use perché' },
28
+ { pattern: /\bpiu'\b/gi, lang: 'it', label: "piu' instead of più", suggestion: 'Use più' },
29
+ { pattern: /\bcioe'\b/gi, lang: 'it', label: "cioe' instead of cioè", suggestion: 'Use cioè' },
30
+ { pattern: /\bpuo'\b/gi, lang: 'it', label: "puo' instead of può", suggestion: 'Use può' },
31
+ { pattern: /\bgiacche'\b/gi, lang: 'it', label: "giacche' instead of giacché", suggestion: 'Use giacché' },
32
+ // General typography
33
+ { pattern: /\.\.\./g, lang: '*', label: 'ASCII ellipsis', suggestion: 'Use … (U+2026)' },
34
+ { pattern: /--/g, lang: '*', label: 'double hyphen', suggestion: 'Use — (em dash) or – (en dash)' },
35
+ { pattern: /\s'/g, lang: '*', label: "space before apostrophe", suggestion: 'Remove space before apostrophe' },
36
+ { pattern: /"([^"]*)"/g, lang: '*', label: 'straight double quotes', suggestion: 'Use \u201C\u201D (curly quotes)' },
37
+ // French
38
+ { pattern: /\b(\w+)\s*\?/g, lang: 'fr', label: 'missing space before ?', suggestion: 'French requires a space before ?' },
39
+ { pattern: /\b(\w+)\s*!/g, lang: 'fr', label: 'missing space before !', suggestion: 'French requires a space before !' },
40
+ // German
41
+ { pattern: /\bfuer\b/gi, lang: 'de', label: 'fuer instead of für', suggestion: 'Use für' },
42
+ { pattern: /\bueber\b/gi, lang: 'de', label: 'ueber instead of über', suggestion: 'Use über' },
43
+ // Spanish
44
+ { pattern: /\banio\b/gi, lang: 'es', label: 'anio instead of año', suggestion: 'Use año' },
45
+ ];
46
+ /**
47
+ * Detect mojibake in content strings.
48
+ * Returns errors for each mojibake pattern found.
49
+ */
50
+ export function checkMojibake(contentByFile) {
51
+ const warnings = [];
52
+ for (const [file, entries] of contentByFile) {
53
+ for (const [key, value] of entries) {
54
+ for (const { pattern, label } of MOJIBAKE_PATTERNS) {
55
+ // Reset lastIndex for global patterns
56
+ pattern.lastIndex = 0;
57
+ const match = pattern.exec(value);
58
+ if (match) {
59
+ warnings.push({
60
+ type: 'mojibake',
61
+ severity: 'error',
62
+ file,
63
+ key,
64
+ message: `Mojibake detected: ${label}`,
65
+ match: match[0],
66
+ });
67
+ }
68
+ }
69
+ }
70
+ }
71
+ return warnings;
72
+ }
73
+ /**
74
+ * Check typographic issues in content strings.
75
+ * Filters rules by language ('*' matches all).
76
+ */
77
+ export function checkTypography(contentByFile, lang) {
78
+ const warnings = [];
79
+ const applicableRules = TYPO_RULES.filter((r) => r.lang === '*' || (lang && r.lang === lang));
80
+ for (const [file, entries] of contentByFile) {
81
+ for (const [key, value] of entries) {
82
+ for (const rule of applicableRules) {
83
+ rule.pattern.lastIndex = 0;
84
+ const match = rule.pattern.exec(value);
85
+ if (match) {
86
+ warnings.push({
87
+ type: 'typography',
88
+ severity: 'warning',
89
+ file,
90
+ key,
91
+ message: `${rule.label} — ${rule.suggestion}`,
92
+ match: match[0],
93
+ });
94
+ }
95
+ }
96
+ }
97
+ }
98
+ return warnings;
99
+ }
100
+ /**
101
+ * Run all encoding checks (mojibake + typography).
102
+ */
103
+ export function checkEncoding(contentByFile, lang) {
104
+ return [
105
+ ...checkMojibake(contentByFile),
106
+ ...checkTypography(contentByFile, lang),
107
+ ];
108
+ }
109
+ /** Exported constants for consumer use. */
110
+ export const MOJIBAKE_PATTERN_COUNT = MOJIBAKE_PATTERNS.length;
111
+ export const TYPO_RULE_COUNT = TYPO_RULES.length;
112
+ //# sourceMappingURL=encoding.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encoding.js","sourceRoot":"","sources":["../../src/core/encoding.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,13 @@
1
1
  /**
2
2
  * CMS Guardrails — Pure validation rules for CMS capabilities.
3
3
  * Migrated from easyway-portal scripts/guardrails-cms.mjs (PBI #606).
4
+ * Extended with media, language, breadcrumb, and route checks (PBI #605).
4
5
  * No I/O (no fs, no fetch) — works on pre-loaded data only.
5
- * I/O-dependent checks (media orphans, SEO from disk, encoding) stay in the consumer.
6
6
  */
7
7
  import type { PagesManifestV1 } from './types.js';
8
8
  import type { RedirectRule } from './redirects.js';
9
9
  import type { SeoSpec } from './seo.js';
10
+ import type { MediaManifest } from './media.js';
10
11
  export type CmsWarning = {
11
12
  type: string;
12
13
  severity: 'warning' | 'error';
@@ -30,11 +31,40 @@ export declare function checkRedirects(manifest: PagesManifestV1, rules: Redirec
30
31
  export declare function checkSeoCompleteness(manifest: PagesManifestV1, specsById: Map<string, {
31
32
  seo?: SeoSpec;
32
33
  }>): CmsWarning[];
34
+ /**
35
+ * Check that ogImage in page specs references an existing media key.
36
+ * Requires pre-loaded specs and media manifest.
37
+ */
38
+ export declare function checkOgImageExists(specsById: Map<string, {
39
+ seo?: SeoSpec;
40
+ }>, mediaManifest: MediaManifest): CmsWarning[];
41
+ /**
42
+ * Find media assets not referenced by any page spec.
43
+ * Scans all spec sections for media keys in known fields.
44
+ */
45
+ export declare function checkMediaOrphans(specsById: Map<string, {
46
+ seo?: SeoSpec;
47
+ sections?: Array<Record<string, any>>;
48
+ }>, mediaManifest: MediaManifest): CmsWarning[];
49
+ /** Warn about media assets without alt text (accessibility). */
50
+ export declare function checkMediaMissingAlt(mediaManifest: MediaManifest): CmsWarning[];
51
+ /** Warn about pages with deep routes (3+ segments) that may need intermediate breadcrumb pages. */
52
+ export declare function checkBreadcrumbDepth(manifest: PagesManifestV1): CmsWarning[];
53
+ /**
54
+ * Check language coverage: keys in one language map missing from another.
55
+ * Accepts flattened key sets (consumer handles the JSON loading/flattening).
56
+ */
57
+ export declare function checkLanguageCoverage(contentByLang: Map<string, Set<string>>): CmsWarning[];
58
+ /** Error if manifest has duplicate routes. */
59
+ export declare function checkDuplicateRoutes(manifest: PagesManifestV1): CmsWarning[];
33
60
  /** Run all pure CMS guardrails. Returns combined warnings. */
34
61
  export declare function collectPureCmsWarnings(manifest: PagesManifestV1, options?: {
35
62
  redirectRules?: RedirectRule[];
36
63
  specsById?: Map<string, {
37
64
  seo?: SeoSpec;
65
+ sections?: Array<Record<string, any>>;
38
66
  }>;
67
+ mediaManifest?: MediaManifest;
68
+ contentByLang?: Map<string, Set<string>>;
39
69
  }): CmsWarning[];
40
70
  //# sourceMappingURL=guardrails-cms.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails-cms.d.ts","sourceRoot":"","sources":["../../src/core/guardrails-cms.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAExC,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAazE;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAyB/E;AAED,yCAAyC;AACzC,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAUhF;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAWtE;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAyB7F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC1C,UAAU,EAAE,CAsBd;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE;IACN,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC9C,GACF,UAAU,EAAE,CASd"}
1
+ {"version":3,"file":"guardrails-cms.d.ts","sourceRoot":"","sources":["../../src/core/guardrails-cms.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,KAAK,EAAkB,eAAe,EAAE,MAAM,YAAY,CAAC;AAClE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,KAAK,EAAc,aAAa,EAAE,MAAM,YAAY,CAAC;AAE5D,MAAM,MAAM,UAAU,GAAG;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,SAAS,GAAG,OAAO,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAazE;AAED,kEAAkE;AAClE,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAyB/E;AAED,yCAAyC;AACzC,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAUhF;AAED,uDAAuD;AACvD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAWtE;AAED,yDAAyD;AACzD,wBAAgB,cAAc,CAAC,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,YAAY,EAAE,GAAG,UAAU,EAAE,CAyB7F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAChC,QAAQ,EAAE,eAAe,EACzB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,GAC1C,UAAU,EAAE,CAsBd;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAC9B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC,EACzC,aAAa,EAAE,aAAa,GAC7B,UAAU,EAAE,CAmBd;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC7B,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;CAAE,CAAC,EAChF,aAAa,EAAE,aAAa,GAC7B,UAAU,EAAE,CAiCd;AAED,gEAAgE;AAChE,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,aAAa,GAAG,UAAU,EAAE,CAa/E;AAED,mGAAmG;AACnG,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAmB5E;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CACjC,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,GACxC,UAAU,EAAE,CAkCd;AAED,8CAA8C;AAC9C,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,EAAE,CAkB5E;AAED,8DAA8D;AAC9D,wBAAgB,sBAAsB,CAClC,QAAQ,EAAE,eAAe,EACzB,OAAO,CAAC,EAAE;IACN,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,GAAG,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;KAAE,CAAC,CAAC;IAClF,aAAa,CAAC,EAAE,aAAa,CAAC;IAC9B,aAAa,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;CAC5C,GACF,UAAU,EAAE,CAed"}
@@ -125,6 +125,160 @@ export function checkSeoCompleteness(manifest, specsById) {
125
125
  }
126
126
  return warnings;
127
127
  }
128
+ /**
129
+ * Check that ogImage in page specs references an existing media key.
130
+ * Requires pre-loaded specs and media manifest.
131
+ */
132
+ export function checkOgImageExists(specsById, mediaManifest) {
133
+ const warnings = [];
134
+ const mediaKeys = new Set(mediaManifest.assets.map((a) => a.key));
135
+ for (const [pageId, spec] of specsById) {
136
+ const ogImage = spec.seo?.ogImage;
137
+ if (!ogImage)
138
+ continue;
139
+ // Skip if it looks like a path/URL (only validate media key references)
140
+ if (ogImage.includes('/') || ogImage.includes('.'))
141
+ continue;
142
+ if (!mediaKeys.has(ogImage)) {
143
+ warnings.push({
144
+ type: 'cms-og-image-missing',
145
+ severity: 'warning',
146
+ file: `/pages/${pageId}.json`,
147
+ message: `Page "${pageId}" has seo.ogImage="${ogImage}" but no matching media asset found`,
148
+ });
149
+ }
150
+ }
151
+ return warnings;
152
+ }
153
+ /**
154
+ * Find media assets not referenced by any page spec.
155
+ * Scans all spec sections for media keys in known fields.
156
+ */
157
+ export function checkMediaOrphans(specsById, mediaManifest) {
158
+ const warnings = [];
159
+ if (!mediaManifest.assets.length)
160
+ return warnings;
161
+ // Collect all referenced media keys from specs
162
+ const referencedKeys = new Set();
163
+ for (const [, spec] of specsById) {
164
+ // OG image
165
+ if (spec.seo?.ogImage)
166
+ referencedKeys.add(spec.seo.ogImage);
167
+ // Scan sections for common media fields
168
+ for (const section of spec.sections ?? []) {
169
+ const json = JSON.stringify(section);
170
+ for (const asset of mediaManifest.assets) {
171
+ if (json.includes(asset.key) || json.includes(asset.file)) {
172
+ referencedKeys.add(asset.key);
173
+ }
174
+ }
175
+ }
176
+ }
177
+ for (const asset of mediaManifest.assets) {
178
+ if (!referencedKeys.has(asset.key)) {
179
+ warnings.push({
180
+ type: 'cms-media-orphan',
181
+ severity: 'warning',
182
+ file: 'media.manifest.json',
183
+ message: `Media asset "${asset.key}" (${asset.file}) is not referenced by any page spec`,
184
+ });
185
+ }
186
+ }
187
+ return warnings;
188
+ }
189
+ /** Warn about media assets without alt text (accessibility). */
190
+ export function checkMediaMissingAlt(mediaManifest) {
191
+ const warnings = [];
192
+ for (const asset of mediaManifest.assets) {
193
+ if (!asset.alt || !asset.alt.trim()) {
194
+ warnings.push({
195
+ type: 'cms-media-missing-alt',
196
+ severity: 'warning',
197
+ file: 'media.manifest.json',
198
+ message: `Media asset "${asset.key}" has no alt text — accessibility issue`,
199
+ });
200
+ }
201
+ }
202
+ return warnings;
203
+ }
204
+ /** Warn about pages with deep routes (3+ segments) that may need intermediate breadcrumb pages. */
205
+ export function checkBreadcrumbDepth(manifest) {
206
+ const warnings = [];
207
+ const routes = new Set(manifest.pages.map((p) => p.route));
208
+ for (const page of manifest.pages) {
209
+ const segments = page.route.split('/').filter(Boolean);
210
+ if (segments.length < 3)
211
+ continue;
212
+ // Check if parent route exists
213
+ const parentRoute = '/' + segments.slice(0, -1).join('/');
214
+ if (!routes.has(parentRoute)) {
215
+ warnings.push({
216
+ type: 'cms-breadcrumb-depth',
217
+ severity: 'warning',
218
+ file: 'pages.manifest.json',
219
+ message: `Page "${page.id}" has deep route "${page.route}" but parent "${parentRoute}" doesn't exist — breadcrumb will have gaps`,
220
+ });
221
+ }
222
+ }
223
+ return warnings;
224
+ }
225
+ /**
226
+ * Check language coverage: keys in one language map missing from another.
227
+ * Accepts flattened key sets (consumer handles the JSON loading/flattening).
228
+ */
229
+ export function checkLanguageCoverage(contentByLang) {
230
+ const warnings = [];
231
+ const langs = [...contentByLang.keys()];
232
+ for (let i = 0; i < langs.length; i++) {
233
+ for (let j = i + 1; j < langs.length; j++) {
234
+ const langA = langs[i];
235
+ const langB = langs[j];
236
+ const keysA = contentByLang.get(langA);
237
+ const keysB = contentByLang.get(langB);
238
+ for (const key of keysA) {
239
+ if (!keysB.has(key)) {
240
+ warnings.push({
241
+ type: 'cms-language-coverage',
242
+ severity: 'warning',
243
+ file: `content/${langA}.json`,
244
+ message: `Key "${key}" exists in ${langA.toUpperCase()} but not in ${langB.toUpperCase()}`,
245
+ });
246
+ }
247
+ }
248
+ for (const key of keysB) {
249
+ if (!keysA.has(key)) {
250
+ warnings.push({
251
+ type: 'cms-language-coverage',
252
+ severity: 'warning',
253
+ file: `content/${langB}.json`,
254
+ message: `Key "${key}" exists in ${langB.toUpperCase()} but not in ${langA.toUpperCase()}`,
255
+ });
256
+ }
257
+ }
258
+ }
259
+ }
260
+ return warnings;
261
+ }
262
+ /** Error if manifest has duplicate routes. */
263
+ export function checkDuplicateRoutes(manifest) {
264
+ const warnings = [];
265
+ const seen = new Map();
266
+ for (const page of manifest.pages) {
267
+ const existing = seen.get(page.route);
268
+ if (existing) {
269
+ warnings.push({
270
+ type: 'cms-duplicate-route',
271
+ severity: 'error',
272
+ file: 'pages.manifest.json',
273
+ message: `Route "${page.route}" is claimed by both "${existing}" and "${page.id}"`,
274
+ });
275
+ }
276
+ else {
277
+ seen.set(page.route, page.id);
278
+ }
279
+ }
280
+ return warnings;
281
+ }
128
282
  /** Run all pure CMS guardrails. Returns combined warnings. */
129
283
  export function collectPureCmsWarnings(manifest, options) {
130
284
  return [
@@ -132,8 +286,14 @@ export function collectPureCmsWarnings(manifest, options) {
132
286
  ...checkPublishAtCoherence(manifest),
133
287
  ...checkMaintenanceModeLeak(manifest),
134
288
  ...check404Exists(manifest),
289
+ ...checkDuplicateRoutes(manifest),
290
+ ...checkBreadcrumbDepth(manifest),
135
291
  ...checkRedirects(manifest, options?.redirectRules ?? []),
136
292
  ...(options?.specsById ? checkSeoCompleteness(manifest, options.specsById) : []),
293
+ ...(options?.specsById && options?.mediaManifest ? checkOgImageExists(options.specsById, options.mediaManifest) : []),
294
+ ...(options?.specsById && options?.mediaManifest ? checkMediaOrphans(options.specsById, options.mediaManifest) : []),
295
+ ...(options?.mediaManifest ? checkMediaMissingAlt(options.mediaManifest) : []),
296
+ ...(options?.contentByLang ? checkLanguageCoverage(options.contentByLang) : []),
137
297
  ];
138
298
  }
139
299
  //# sourceMappingURL=guardrails-cms.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"guardrails-cms.js","sourceRoot":"","sources":["../../src/core/guardrails-cms.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"guardrails-cms.js","sourceRoot":"","sources":["../../src/core/guardrails-cms.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * LLMs.txt Generator — Pure functions to produce llms.txt and llms-full.txt
3
+ * from a PagesManifest and optional content/spec data.
4
+ * No I/O — the consumer provides the loaded data.
5
+ *
6
+ * llms.txt = L0 Matrioska (max ~50 lines, site index for LLM agents)
7
+ * llms-full.txt = L1 Matrioska (detailed per-page breakdown)
8
+ *
9
+ * Follows the emerging llms.txt standard (like robots.txt for AI crawlers).
10
+ */
11
+ import type { PagesManifestV1, PageSpecV1 } from './types.js';
12
+ export type LlmsGeneratorOptions = {
13
+ /** Site name displayed in the header */
14
+ siteName: string;
15
+ /** One-line tagline / description */
16
+ tagline?: string;
17
+ /** Base URL (e.g. https://example.com) — used in llms-full.txt links */
18
+ baseUrl?: string;
19
+ /** Capabilities bullet points */
20
+ capabilities?: string[];
21
+ /** Content resolver: given a content key, returns the string value (or undefined) */
22
+ resolveContent?: (key: string) => string | undefined;
23
+ /** Pre-loaded page specs by page id (for llms-full.txt section details) */
24
+ specsById?: Map<string, PageSpecV1>;
25
+ };
26
+ /**
27
+ * Generate llms.txt — compact site index (L0 Matrioska).
28
+ * Max ~50 lines: header, pages list, capabilities.
29
+ */
30
+ export declare function generateLlmsTxt(manifest: PagesManifestV1, options: LlmsGeneratorOptions): string;
31
+ /**
32
+ * Generate llms-full.txt — detailed per-page breakdown (L1 Matrioska).
33
+ * Includes section types, SEO metadata, and page purpose.
34
+ */
35
+ export declare function generateLlmsFullTxt(manifest: PagesManifestV1, options: LlmsGeneratorOptions): string;
36
+ //# sourceMappingURL=llms-generator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-generator.d.ts","sourceRoot":"","sources":["../../src/core/llms-generator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAG9D,MAAM,MAAM,oBAAoB,GAAG;IAC/B,wCAAwC;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,qCAAqC;IACrC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iCAAiC;IACjC,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,qFAAqF;IACrF,cAAc,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;IACrD,2EAA2E;IAC3E,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;CACvC,CAAC;AAEF;;;GAGG;AACH,wBAAgB,eAAe,CAC3B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC9B,MAAM,CAwCR;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAC/B,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,oBAAoB,GAC9B,MAAM,CAuDR"}
@@ -0,0 +1,95 @@
1
+ /**
2
+ * Generate llms.txt — compact site index (L0 Matrioska).
3
+ * Max ~50 lines: header, pages list, capabilities.
4
+ */
5
+ export function generateLlmsTxt(manifest, options) {
6
+ const lines = [];
7
+ const { siteName, tagline, capabilities, resolveContent } = options;
8
+ // Header
9
+ lines.push(`# ${siteName}`);
10
+ if (tagline)
11
+ lines.push(`> ${tagline}`);
12
+ lines.push('');
13
+ // Pages — only published/visible pages with navigation
14
+ const visiblePages = manifest.pages.filter((p) => p.status !== 'draft' && p.nav);
15
+ if (visiblePages.length > 0) {
16
+ lines.push('## Pages');
17
+ for (const page of visiblePages) {
18
+ const label = resolveContent && page.nav?.labelKey
19
+ ? resolveContent(page.nav.labelKey) || page.id
20
+ : page.id;
21
+ const titleKey = page.titleKey;
22
+ const desc = titleKey && resolveContent
23
+ ? resolveContent(titleKey) || ''
24
+ : '';
25
+ const suffix = desc && desc !== label ? ` — ${desc}` : '';
26
+ lines.push(`- ${page.route}: ${label}${suffix}`);
27
+ }
28
+ lines.push('');
29
+ }
30
+ // Capabilities
31
+ if (capabilities && capabilities.length > 0) {
32
+ lines.push('## Capabilities');
33
+ for (const cap of capabilities) {
34
+ lines.push(`- ${cap}`);
35
+ }
36
+ lines.push('');
37
+ }
38
+ return lines.join('\n');
39
+ }
40
+ /**
41
+ * Generate llms-full.txt — detailed per-page breakdown (L1 Matrioska).
42
+ * Includes section types, SEO metadata, and page purpose.
43
+ */
44
+ export function generateLlmsFullTxt(manifest, options) {
45
+ const lines = [];
46
+ const { siteName, tagline, baseUrl, resolveContent, specsById } = options;
47
+ // Header
48
+ lines.push(`# ${siteName} — Full Site Map`);
49
+ if (tagline)
50
+ lines.push(`> ${tagline}`);
51
+ if (baseUrl)
52
+ lines.push(`> ${baseUrl}`);
53
+ lines.push('');
54
+ // All non-draft pages
55
+ const pages = manifest.pages.filter((p) => p.status !== 'draft');
56
+ for (const page of pages) {
57
+ const label = resolveContent && page.nav?.labelKey
58
+ ? resolveContent(page.nav.labelKey) || page.id
59
+ : page.id;
60
+ const url = baseUrl ? `${baseUrl}${page.route}` : page.route;
61
+ lines.push(`## ${label}`);
62
+ lines.push(`- URL: ${url}`);
63
+ lines.push(`- Route: ${page.route}`);
64
+ // SEO from spec
65
+ const spec = specsById?.get(page.id);
66
+ if (spec?.seo) {
67
+ if (spec.seo.metaTitle)
68
+ lines.push(`- Title: ${spec.seo.metaTitle}`);
69
+ if (spec.seo.metaDescription)
70
+ lines.push(`- Description: ${spec.seo.metaDescription}`);
71
+ }
72
+ // Section breakdown
73
+ if (spec?.sections && spec.sections.length > 0) {
74
+ const sectionTypes = spec.sections.map((s) => s.type);
75
+ const uniqueTypes = [...new Set(sectionTypes)];
76
+ lines.push(`- Sections (${spec.sections.length}): ${uniqueTypes.join(', ')}`);
77
+ }
78
+ // Navigation info
79
+ if (page.nav) {
80
+ lines.push(`- Navigation: visible (order ${page.nav.order ?? 'auto'})`);
81
+ }
82
+ else {
83
+ lines.push('- Navigation: hidden');
84
+ }
85
+ lines.push('');
86
+ }
87
+ // Languages
88
+ if (manifest.defaultLanguage) {
89
+ lines.push(`## Languages`);
90
+ lines.push(`- Default: ${manifest.defaultLanguage}`);
91
+ lines.push('');
92
+ }
93
+ return lines.join('\n');
94
+ }
95
+ //# sourceMappingURL=llms-generator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llms-generator.js","sourceRoot":"","sources":["../../src/core/llms-generator.ts"],"names":[],"mappings":"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"}
@@ -39,8 +39,19 @@ export type SectionPresentationSpec = {
39
39
  presetId?: string;
40
40
  transitionProfileId?: string;
41
41
  };
42
+ export type AnimationPreset = 'fade-up' | 'fade-in' | 'slide-left' | 'slide-right' | 'scale-in' | 'none';
43
+ export type AnimationDelay = 'none' | 'stagger';
44
+ export type AnimationTrigger = 'viewport' | 'immediate';
45
+ export type AnimationSpec = {
46
+ entrance?: AnimationPreset;
47
+ delay?: AnimationDelay;
48
+ trigger?: AnimationTrigger;
49
+ /** Duration in ms (default 400) */
50
+ duration?: number;
51
+ };
42
52
  export type SectionPresentationBase = {
43
53
  presentation?: SectionPresentationSpec;
54
+ animation?: AnimationSpec;
44
55
  };
45
56
  export type LayoutMapMeasureToken = 'compact' | 'reading' | 'wide' | 'full';
46
57
  export type LayoutMapVariantToken = 'default' | 'lego' | 'panel-right';
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/core/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -26,8 +26,15 @@ export { resolveMediaUrl, resolveMediaAsset } from './core/media.js';
26
26
  export type { MediaAsset, MediaManifest } from './core/media.js';
27
27
  export { buildWebPageSchema } from './core/seo.js';
28
28
  export type { SeoSpec } from './core/seo.js';
29
- export { checkDraftOrphans, checkPublishAtCoherence, checkMaintenanceModeLeak, check404Exists, checkRedirects, checkSeoCompleteness, collectPureCmsWarnings, } from './core/guardrails-cms.js';
29
+ export { checkDraftOrphans, checkPublishAtCoherence, checkMaintenanceModeLeak, check404Exists, checkRedirects, checkSeoCompleteness, checkOgImageExists, checkMediaOrphans, checkMediaMissingAlt, checkBreadcrumbDepth, checkLanguageCoverage, checkDuplicateRoutes, collectPureCmsWarnings, } from './core/guardrails-cms.js';
30
30
  export type { CmsWarning } from './core/guardrails-cms.js';
31
+ export { checkMojibake, checkTypography, checkEncoding, MOJIBAKE_PATTERN_COUNT, TYPO_RULE_COUNT } from './core/encoding.js';
32
+ export type { EncodingWarning } from './core/encoding.js';
33
+ export { generateLlmsTxt, generateLlmsFullTxt } from './core/llms-generator.js';
34
+ export type { LlmsGeneratorOptions } from './core/llms-generator.js';
35
+ export { probeAnimations, resolveAnimationCSS, ANIMATION_PRESETS } from './core/animation.js';
36
+ export type { AnimationWarning } from './core/animation.js';
37
+ export type { AnimationPreset, AnimationDelay, AnimationTrigger, AnimationSpec } from './core/types.js';
31
38
  export { createExtensionRegistry, registerSectionRenderer, registerGuardrail, registerCustomStatus, setContentResolver, setMediaResolver, registerEditorPanel, hasCustomRenderer, getCustomRenderer, runCustomGuardrails, getEditorPanels, } from './core/extension-registry.js';
32
39
  export type { ExtensionRegistry, CustomSectionRenderer, CustomGuardrail, GuardrailContext, ContentResolver, MediaResolver, EditorPanelDef, } from './core/extension-registry.js';
33
40
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -28,8 +28,14 @@ export { findRedirect } from './core/redirects.js';
28
28
  export { resolveMediaUrl, resolveMediaAsset } from './core/media.js';
29
29
  // CMS — SEO types + Schema.org builder (PBI #606)
30
30
  export { buildWebPageSchema } from './core/seo.js';
31
- // CMS — Guardrails pure rules (PBI #606)
32
- export { checkDraftOrphans, checkPublishAtCoherence, checkMaintenanceModeLeak, check404Exists, checkRedirects, checkSeoCompleteness, collectPureCmsWarnings, } from './core/guardrails-cms.js';
31
+ // CMS — Guardrails pure rules (PBI #606, extended PBI #605)
32
+ export { checkDraftOrphans, checkPublishAtCoherence, checkMaintenanceModeLeak, check404Exists, checkRedirects, checkSeoCompleteness, checkOgImageExists, checkMediaOrphans, checkMediaMissingAlt, checkBreadcrumbDepth, checkLanguageCoverage, checkDuplicateRoutes, collectPureCmsWarnings, } from './core/guardrails-cms.js';
33
+ // Encoding guardrail — mojibake + typography (PBI #629)
34
+ export { checkMojibake, checkTypography, checkEncoding, MOJIBAKE_PATTERN_COUNT, TYPO_RULE_COUNT } from './core/encoding.js';
35
+ // LLMs.txt generator (PBI #614)
36
+ export { generateLlmsTxt, generateLlmsFullTxt } from './core/llms-generator.js';
37
+ // Animation presets (PBI #611)
38
+ export { probeAnimations, resolveAnimationCSS, ANIMATION_PRESETS } from './core/animation.js';
33
39
  // Extension Registry (PBI #606)
34
40
  export { createExtensionRegistry, registerSectionRenderer, registerGuardrail, registerCustomStatus, setContentResolver, setMediaResolver, registerEditorPanel, hasCustomRenderer, getCustomRenderer, runCustomGuardrails, getEditorPanels, } from './core/extension-registry.js';
35
41
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEvG,wBAAwB;AACxB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEvG,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,oCAAoC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,aAAa;AACb,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAElG,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGnF,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,yCAAyC;AACzC,OAAO,EACH,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EACpE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EAAE,sBAAsB,GAC/E,MAAM,0BAA0B,CAAC;AAGlC,gCAAgC;AAChC,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAChE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EACzD,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,GAC7E,MAAM,8BAA8B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAiCH,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAEvG,wBAAwB;AACxB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAEvG,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAE7E,oCAAoC;AACpC,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvD,aAAa;AACb,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAChH,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,oBAAoB;AACpB,OAAO,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAErG,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAE5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6BAA6B,CAAC;AAGpE,SAAS;AACT,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAElG,wCAAwC;AACxC,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAGnF,6BAA6B;AAC7B,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAGnD,kCAAkC;AAClC,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAGrE,kDAAkD;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAGnD,4DAA4D;AAC5D,OAAO,EACH,iBAAiB,EAAE,uBAAuB,EAAE,wBAAwB,EACpE,cAAc,EAAE,cAAc,EAAE,oBAAoB,EACpD,kBAAkB,EAAE,iBAAiB,EAAE,oBAAoB,EAC3D,oBAAoB,EAAE,qBAAqB,EAAE,oBAAoB,EACjE,sBAAsB,GACzB,MAAM,0BAA0B,CAAC;AAGlC,wDAAwD;AACxD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,aAAa,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG5H,gCAAgC;AAChC,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,+BAA+B;AAC/B,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAI9F,gCAAgC;AAChC,OAAO,EACH,uBAAuB,EACvB,uBAAuB,EAAE,iBAAiB,EAAE,oBAAoB,EAChE,kBAAkB,EAAE,gBAAgB,EAAE,mBAAmB,EACzD,iBAAiB,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,eAAe,GAC7E,MAAM,8BAA8B,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hale-bopp/valentino-engine",
3
- "version": "2.0.0",
3
+ "version": "2.1.0",
4
4
  "description": "Antifragile Open Source UI Design Engine — generates Runtime PageSpec JSON, validates accessibility, enforces Design Tokens, and consults GEDI for architectural decisions.",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",