@bestagentkits/render 0.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.
Files changed (140) hide show
  1. package/CHANGELOG.md +29 -0
  2. package/LICENSE +21 -0
  3. package/README.md +166 -0
  4. package/dist/cli.d.ts +18 -0
  5. package/dist/cli.d.ts.map +1 -0
  6. package/dist/cli.js +336 -0
  7. package/dist/cli.js.map +1 -0
  8. package/dist/diagnostics.d.ts +45 -0
  9. package/dist/diagnostics.d.ts.map +1 -0
  10. package/dist/diagnostics.js +57 -0
  11. package/dist/diagnostics.js.map +1 -0
  12. package/dist/diagram/adapter.d.ts +71 -0
  13. package/dist/diagram/adapter.d.ts.map +1 -0
  14. package/dist/diagram/adapter.js +87 -0
  15. package/dist/diagram/adapter.js.map +1 -0
  16. package/dist/errors.d.ts +37 -0
  17. package/dist/errors.d.ts.map +1 -0
  18. package/dist/errors.js +42 -0
  19. package/dist/errors.js.map +1 -0
  20. package/dist/hash.d.ts +14 -0
  21. package/dist/hash.d.ts.map +1 -0
  22. package/dist/hash.js +27 -0
  23. package/dist/hash.js.map +1 -0
  24. package/dist/index.d.ts +43 -0
  25. package/dist/index.d.ts.map +1 -0
  26. package/dist/index.js +25 -0
  27. package/dist/index.js.map +1 -0
  28. package/dist/internal/yaml-error.d.ts +14 -0
  29. package/dist/internal/yaml-error.d.ts.map +1 -0
  30. package/dist/internal/yaml-error.js +12 -0
  31. package/dist/internal/yaml-error.js.map +1 -0
  32. package/dist/ir.d.ts +77 -0
  33. package/dist/ir.d.ts.map +1 -0
  34. package/dist/ir.js +20 -0
  35. package/dist/ir.js.map +1 -0
  36. package/dist/json.d.ts +23 -0
  37. package/dist/json.d.ts.map +1 -0
  38. package/dist/json.js +47 -0
  39. package/dist/json.js.map +1 -0
  40. package/dist/registry/actions.d.ts +48 -0
  41. package/dist/registry/actions.d.ts.map +1 -0
  42. package/dist/registry/actions.js +274 -0
  43. package/dist/registry/actions.js.map +1 -0
  44. package/dist/registry/prop-schema.d.ts +108 -0
  45. package/dist/registry/prop-schema.d.ts.map +1 -0
  46. package/dist/registry/prop-schema.js +400 -0
  47. package/dist/registry/prop-schema.js.map +1 -0
  48. package/dist/registry/registry.d.ts +47 -0
  49. package/dist/registry/registry.d.ts.map +1 -0
  50. package/dist/registry/registry.js +201 -0
  51. package/dist/registry/registry.js.map +1 -0
  52. package/dist/registry/roster.d.ts +53 -0
  53. package/dist/registry/roster.d.ts.map +1 -0
  54. package/dist/registry/roster.js +692 -0
  55. package/dist/registry/roster.js.map +1 -0
  56. package/dist/render/blocks.d.ts +41 -0
  57. package/dist/render/blocks.d.ts.map +1 -0
  58. package/dist/render/blocks.js +749 -0
  59. package/dist/render/blocks.js.map +1 -0
  60. package/dist/render/charts.d.ts +29 -0
  61. package/dist/render/charts.d.ts.map +1 -0
  62. package/dist/render/charts.js +235 -0
  63. package/dist/render/charts.js.map +1 -0
  64. package/dist/render/document.d.ts +40 -0
  65. package/dist/render/document.d.ts.map +1 -0
  66. package/dist/render/document.js +90 -0
  67. package/dist/render/document.js.map +1 -0
  68. package/dist/render/escape.d.ts +46 -0
  69. package/dist/render/escape.d.ts.map +1 -0
  70. package/dist/render/escape.js +108 -0
  71. package/dist/render/escape.js.map +1 -0
  72. package/dist/render/render.d.ts +52 -0
  73. package/dist/render/render.d.ts.map +1 -0
  74. package/dist/render/render.js +216 -0
  75. package/dist/render/render.js.map +1 -0
  76. package/dist/render/runtime.d.ts +25 -0
  77. package/dist/render/runtime.d.ts.map +1 -0
  78. package/dist/render/runtime.js +451 -0
  79. package/dist/render/runtime.js.map +1 -0
  80. package/dist/render/styles.d.ts +15 -0
  81. package/dist/render/styles.d.ts.map +1 -0
  82. package/dist/render/styles.js +163 -0
  83. package/dist/render/styles.js.map +1 -0
  84. package/dist/render/verify.d.ts +25 -0
  85. package/dist/render/verify.d.ts.map +1 -0
  86. package/dist/render/verify.js +168 -0
  87. package/dist/render/verify.js.map +1 -0
  88. package/dist/spec/bindings.d.ts +19 -0
  89. package/dist/spec/bindings.d.ts.map +1 -0
  90. package/dist/spec/bindings.js +51 -0
  91. package/dist/spec/bindings.js.map +1 -0
  92. package/dist/spec/bounds.d.ts +43 -0
  93. package/dist/spec/bounds.d.ts.map +1 -0
  94. package/dist/spec/bounds.js +144 -0
  95. package/dist/spec/bounds.js.map +1 -0
  96. package/dist/spec/forbidden.d.ts +27 -0
  97. package/dist/spec/forbidden.d.ts.map +1 -0
  98. package/dist/spec/forbidden.js +91 -0
  99. package/dist/spec/forbidden.js.map +1 -0
  100. package/dist/spec/migrate.d.ts +33 -0
  101. package/dist/spec/migrate.d.ts.map +1 -0
  102. package/dist/spec/migrate.js +113 -0
  103. package/dist/spec/migrate.js.map +1 -0
  104. package/dist/spec/normalize.d.ts +29 -0
  105. package/dist/spec/normalize.d.ts.map +1 -0
  106. package/dist/spec/normalize.js +649 -0
  107. package/dist/spec/normalize.js.map +1 -0
  108. package/dist/spec/parse.d.ts +22 -0
  109. package/dist/spec/parse.d.ts.map +1 -0
  110. package/dist/spec/parse.js +62 -0
  111. package/dist/spec/parse.js.map +1 -0
  112. package/dist/spec/providers.d.ts +30 -0
  113. package/dist/spec/providers.d.ts.map +1 -0
  114. package/dist/spec/providers.js +64 -0
  115. package/dist/spec/providers.js.map +1 -0
  116. package/dist/spec/validate.d.ts +28 -0
  117. package/dist/spec/validate.d.ts.map +1 -0
  118. package/dist/spec/validate.js +68 -0
  119. package/dist/spec/validate.js.map +1 -0
  120. package/dist/theme/load-theme.d.ts +55 -0
  121. package/dist/theme/load-theme.d.ts.map +1 -0
  122. package/dist/theme/load-theme.js +219 -0
  123. package/dist/theme/load-theme.js.map +1 -0
  124. package/dist/theme/presets.d.ts +50 -0
  125. package/dist/theme/presets.d.ts.map +1 -0
  126. package/dist/theme/presets.js +304 -0
  127. package/dist/theme/presets.js.map +1 -0
  128. package/dist/theme/theme-catalog.d.ts +68 -0
  129. package/dist/theme/theme-catalog.d.ts.map +1 -0
  130. package/dist/theme/theme-catalog.js +198 -0
  131. package/dist/theme/theme-catalog.js.map +1 -0
  132. package/dist/theme/tokens.d.ts +38 -0
  133. package/dist/theme/tokens.d.ts.map +1 -0
  134. package/dist/theme/tokens.js +190 -0
  135. package/dist/theme/tokens.js.map +1 -0
  136. package/dist/version.d.ts +12 -0
  137. package/dist/version.d.ts.map +1 -0
  138. package/dist/version.js +12 -0
  139. package/dist/version.js.map +1 -0
  140. package/package.json +80 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"blocks.js","sourceRoot":"","sources":["../../src/render/blocks.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Deterministic SVG charts.
3
+ *
4
+ * Common chart types are rendered as SVG rather than with a charting library:
5
+ * no dependency, no network, and byte-identical output. Every chart also emits a
6
+ * text summary and a data table, so the values are available to assistive
7
+ * technology and to anyone who cannot read the plot.
8
+ *
9
+ * All geometry is rounded to two decimals before it reaches the markup, because
10
+ * floating-point noise would otherwise break byte-determinism across engines.
11
+ */
12
+ import { escapeAttribute } from './escape.js';
13
+ export interface ChartSeries {
14
+ label: string;
15
+ values: number[];
16
+ }
17
+ export interface ChartInput {
18
+ kind: string;
19
+ id: string;
20
+ labels: string[];
21
+ series: ChartSeries[];
22
+ title?: string;
23
+ description?: string;
24
+ }
25
+ /** Render one chart block as a figure containing SVG, a summary, and a table. */
26
+ export declare function renderChart(input: ChartInput): string;
27
+ /** Escape helper re-exported for chart consumers that build their own chart markup. */
28
+ export { escapeAttribute };
29
+ //# sourceMappingURL=charts.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.d.ts","sourceRoot":"","sources":["../../src/render/charts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAE,eAAe,EAAgC,MAAM,aAAa,CAAC;AAE5E,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AA+OD,iFAAiF;AACjF,wBAAgB,WAAW,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CA+CrD;AAED,uFAAuF;AACvF,OAAO,EAAE,eAAe,EAAE,CAAC"}
@@ -0,0 +1,235 @@
1
+ /**
2
+ * Deterministic SVG charts.
3
+ *
4
+ * Common chart types are rendered as SVG rather than with a charting library:
5
+ * no dependency, no network, and byte-identical output. Every chart also emits a
6
+ * text summary and a data table, so the values are available to assistive
7
+ * technology and to anyone who cannot read the plot.
8
+ *
9
+ * All geometry is rounded to two decimals before it reaches the markup, because
10
+ * floating-point noise would otherwise break byte-determinism across engines.
11
+ */
12
+ import { escapeAttribute, escapeText, renderAttributes } from './escape.js';
13
+ const WIDTH = 640;
14
+ const HEIGHT = 240;
15
+ const PADDING = { top: 16, right: 16, bottom: 36, left: 44 };
16
+ function round(value) {
17
+ return Math.round(value * 100) / 100;
18
+ }
19
+ function extent(series) {
20
+ const values = series.flatMap((entry) => entry.values);
21
+ if (values.length === 0)
22
+ return { min: 0, max: 1 };
23
+ const min = Math.min(0, ...values);
24
+ const max = Math.max(...values);
25
+ return max === min ? { min, max: min + 1 } : { min, max };
26
+ }
27
+ function plotWidth() {
28
+ return WIDTH - PADDING.left - PADDING.right;
29
+ }
30
+ function plotHeight() {
31
+ return HEIGHT - PADDING.top - PADDING.bottom;
32
+ }
33
+ function scaleY(value, bounds) {
34
+ const ratio = (value - bounds.min) / (bounds.max - bounds.min);
35
+ return round(PADDING.top + plotHeight() * (1 - ratio));
36
+ }
37
+ function scaleX(index, count) {
38
+ if (count <= 1)
39
+ return round(PADDING.left + plotWidth() / 2);
40
+ return round(PADDING.left + (plotWidth() * index) / (count - 1));
41
+ }
42
+ function axisLabels(labels, bounds) {
43
+ const parts = [];
44
+ const step = Math.max(1, Math.ceil(labels.length / 8));
45
+ for (let index = 0; index < labels.length; index += step) {
46
+ const x = scaleX(index, labels.length);
47
+ parts.push(`<text class="ak-chart-label" x="${x}" y="${HEIGHT - PADDING.bottom + 16}" text-anchor="middle">${escapeText(labels[index] ?? '')}</text>`);
48
+ }
49
+ parts.push(`<line class="ak-chart-axis" x1="${PADDING.left}" y1="${PADDING.top}" x2="${PADDING.left}" y2="${HEIGHT - PADDING.bottom}"/>`);
50
+ parts.push(`<line class="ak-chart-axis" x1="${PADDING.left}" y1="${HEIGHT - PADDING.bottom}" x2="${WIDTH - PADDING.right}" y2="${HEIGHT - PADDING.bottom}"/>`);
51
+ parts.push(`<text class="ak-chart-label" x="${PADDING.left - 6}" y="${scaleY(bounds.max, bounds) + 3}" text-anchor="end">${escapeText(String(round(bounds.max)))}</text>`);
52
+ if (bounds.min < 0) {
53
+ parts.push(`<text class="ak-chart-label" x="${PADDING.left - 6}" y="${scaleY(bounds.min, bounds) + 3}" text-anchor="end">${escapeText(String(round(bounds.min)))}</text>`);
54
+ }
55
+ return parts.join('');
56
+ }
57
+ function pointTitle(label, series, index) {
58
+ return `${label}: ${series.label} ${series.values[index] ?? 0}`;
59
+ }
60
+ function barChart(input, bounds) {
61
+ const groups = input.labels.length;
62
+ const seriesCount = Math.max(input.series.length, 1);
63
+ const groupWidth = plotWidth() / Math.max(groups, 1);
64
+ const barWidth = round(Math.max(2, (groupWidth - 8) / seriesCount));
65
+ const parts = [];
66
+ const zeroY = scaleY(Math.max(bounds.min, 0), bounds);
67
+ input.series.forEach((series, seriesIndex) => {
68
+ input.labels.forEach((label, index) => {
69
+ const value = series.values[index] ?? 0;
70
+ const x = round(PADDING.left + groupWidth * index + 4 + seriesIndex * barWidth);
71
+ const y = scaleY(value, bounds);
72
+ const height = round(Math.abs(zeroY - y));
73
+ const top = Math.min(y, zeroY);
74
+ parts.push(`<rect class="ak-chart-bar${seriesIndex % 2 === 1 ? ' ak-chart-bar--alt' : ''}" tabindex="0" x="${x}" y="${top}" width="${barWidth}" height="${height}"><title>${escapeText(pointTitle(label, series, index))}</title></rect>`);
75
+ });
76
+ });
77
+ return `${axisLabels(input.labels, bounds)}${parts.join('')}`;
78
+ }
79
+ function linePath(series, bounds) {
80
+ return series.values
81
+ .map((value, index) => `${index === 0 ? 'M' : 'L'}${scaleX(index, series.values.length)},${scaleY(value, bounds)}`)
82
+ .join(' ');
83
+ }
84
+ function lineChart(input, bounds, area) {
85
+ const parts = [];
86
+ input.series.forEach((series) => {
87
+ const path = linePath(series, bounds);
88
+ if (area) {
89
+ const baseY = scaleY(Math.max(bounds.min, 0), bounds);
90
+ parts.push(`<path class="ak-chart-area" d="${path} L${scaleX(series.values.length - 1, series.values.length)},${baseY} L${PADDING.left},${baseY} Z"/>`);
91
+ }
92
+ parts.push(`<path class="ak-chart-line" d="${path}"/>`);
93
+ series.values.forEach((value, index) => {
94
+ const label = input.labels[Math.min(index, input.labels.length - 1)] ?? '';
95
+ parts.push(`<circle class="ak-chart-bar" tabindex="0" cx="${scaleX(index, series.values.length)}" cy="${scaleY(value, bounds)}" r="3"><title>${escapeText(pointTitle(label, series, index))}</title></circle>`);
96
+ });
97
+ });
98
+ const axis = area ? '' : axisLabels(input.labels, bounds);
99
+ return `${axis}${parts.join('')}`;
100
+ }
101
+ function sparkline(input, bounds) {
102
+ const parts = [];
103
+ for (const series of input.series) {
104
+ parts.push(`<path class="ak-chart-line" d="${linePath(series, bounds)}"/>`);
105
+ }
106
+ return parts.join('');
107
+ }
108
+ function radialChart(input, donut) {
109
+ const series = input.series[0];
110
+ if (series === undefined)
111
+ return '';
112
+ const values = input.labels.map((_, index) => Math.max(series.values[index] ?? 0, 0));
113
+ const total = values.reduce((sum, value) => sum + value, 0) || 1;
114
+ const centreX = WIDTH / 2;
115
+ const centreY = HEIGHT / 2;
116
+ const radius = 84;
117
+ const inner = donut ? 46 : 0;
118
+ const parts = [];
119
+ let angle = -Math.PI / 2;
120
+ values.forEach((value, index) => {
121
+ const sweep = (value / total) * Math.PI * 2;
122
+ const start = angle;
123
+ const end = angle + sweep;
124
+ angle = end;
125
+ const large = sweep > Math.PI ? 1 : 0;
126
+ const x1 = round(centreX + radius * Math.cos(start));
127
+ const y1 = round(centreY + radius * Math.sin(start));
128
+ const x2 = round(centreX + radius * Math.cos(end));
129
+ const y2 = round(centreY + radius * Math.sin(end));
130
+ const label = input.labels[index] ?? '';
131
+ const title = `<title>${escapeText(`${label}: ${value} (${round((value / total) * 100)}%)`)}</title>`;
132
+ if (inner > 0) {
133
+ const ix1 = round(centreX + inner * Math.cos(start));
134
+ const iy1 = round(centreY + inner * Math.sin(start));
135
+ const ix2 = round(centreX + inner * Math.cos(end));
136
+ const iy2 = round(centreY + inner * Math.sin(end));
137
+ parts.push(`<path class="ak-chart-bar${index % 2 === 1 ? ' ak-chart-bar--alt' : ''}" tabindex="0" d="M${x1},${y1} A${radius},${radius} 0 ${large} 1 ${x2},${y2} L${ix2},${iy2} A${inner},${inner} 0 ${large} 0 ${ix1},${iy1} Z">${title}</path>`);
138
+ }
139
+ else {
140
+ parts.push(`<path class="ak-chart-bar${index % 2 === 1 ? ' ak-chart-bar--alt' : ''}" tabindex="0" d="M${centreX},${centreY} L${x1},${y1} A${radius},${radius} 0 ${large} 1 ${x2},${y2} Z">${title}</path>`);
141
+ }
142
+ });
143
+ return parts.join('');
144
+ }
145
+ function progressChart(input) {
146
+ const series = input.series[0];
147
+ if (series === undefined)
148
+ return '';
149
+ const max = Math.max(1, ...series.values);
150
+ const rowHeight = 26;
151
+ const barWidth = plotWidth();
152
+ const parts = [];
153
+ input.labels.forEach((label, index) => {
154
+ const value = series.values[index] ?? 0;
155
+ const y = PADDING.top + index * rowHeight;
156
+ if (y > HEIGHT - PADDING.bottom)
157
+ return;
158
+ parts.push(`<text class="ak-chart-label" x="0" y="${y + 12}" text-anchor="start">${escapeText(label)}</text>`);
159
+ parts.push(`<rect x="${PADDING.left}" y="${y + 4}" width="${barWidth}" height="10" fill="var(--ak-color-surface-raised)"/>`);
160
+ parts.push(`<rect class="ak-chart-bar" tabindex="0" x="${PADDING.left}" y="${y + 4}" width="${round((barWidth * Math.max(0, Math.min(value, max))) / max)}" height="10"><title>${escapeText(`${label}: ${value}`)}</title></rect>`);
161
+ });
162
+ return parts.join('');
163
+ }
164
+ function dataTable(input) {
165
+ const head = input.labels.map((label) => `<th scope="col">${escapeText(label)}</th>`).join('');
166
+ const rows = input.series
167
+ .map((series) => {
168
+ const cells = input.labels
169
+ .map((_, index) => `<td>${escapeText(String(series.values[index] ?? ''))}</td>`)
170
+ .join('');
171
+ return `<tr><th scope="row">${escapeText(series.label)}</th>${cells}</tr>`;
172
+ })
173
+ .join('');
174
+ return `<table class="ak-chart-table"><caption>${escapeText(input.title ?? 'Chart data')}</caption><thead><tr><th scope="col">Series</th>${head}</tr></thead><tbody>${rows}</tbody></table>`;
175
+ }
176
+ function textSummary(input) {
177
+ if (input.description !== undefined && input.description !== '')
178
+ return input.description;
179
+ const lines = input.series.map((series) => {
180
+ const pairs = input.labels
181
+ .map((label, index) => `${label} ${series.values[index] ?? ''}`.trim())
182
+ .join(', ');
183
+ return `${series.label}: ${pairs}`;
184
+ });
185
+ return lines.join('. ');
186
+ }
187
+ /** Render one chart block as a figure containing SVG, a summary, and a table. */
188
+ export function renderChart(input) {
189
+ const bounds = extent(input.series);
190
+ let body;
191
+ switch (input.kind) {
192
+ case 'bar':
193
+ body = barChart(input, bounds);
194
+ break;
195
+ case 'line':
196
+ body = lineChart(input, bounds, false);
197
+ break;
198
+ case 'area':
199
+ body = lineChart(input, bounds, true);
200
+ break;
201
+ case 'pie':
202
+ body = radialChart(input, false);
203
+ break;
204
+ case 'donut':
205
+ body = radialChart(input, true);
206
+ break;
207
+ case 'sparkline':
208
+ body = sparkline(input, bounds);
209
+ break;
210
+ case 'progress':
211
+ body = progressChart(input);
212
+ break;
213
+ default:
214
+ body = '';
215
+ }
216
+ const summary = textSummary(input);
217
+ const ariaLabel = input.title === undefined ? summary : `${input.title}. ${summary}`;
218
+ const caption = input.title === undefined ? '' : `<figcaption>${escapeText(input.title)}</figcaption>`;
219
+ return [
220
+ `<figure class="ak-chart"${renderAttributes({ 'data-ak-kind': input.kind })}>`,
221
+ caption,
222
+ `<svg viewBox="0 0 ${WIDTH} ${HEIGHT}" role="img"${renderAttributes({
223
+ 'aria-label': ariaLabel,
224
+ 'data-ak-chart': input.id,
225
+ })}><title>${escapeText(input.title ?? 'Chart')}</title>${body}</svg>`,
226
+ `<p class="ak-sr">${escapeText(summary)}</p>`,
227
+ `<details class="ak-details"><summary>Chart data table</summary>${dataTable(input)}</details>`,
228
+ '</figure>',
229
+ ]
230
+ .filter((part) => part !== '')
231
+ .join('');
232
+ }
233
+ /** Escape helper re-exported for chart consumers that build their own chart markup. */
234
+ export { escapeAttribute };
235
+ //# sourceMappingURL=charts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"charts.js","sourceRoot":"","sources":["../../src/render/charts.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Document assembly.
3
+ *
4
+ * The emitted artifact is a single file that must be self-defending: it is
5
+ * opened from `file://`, so it cannot rely on response headers. The Content
6
+ * Security Policy is therefore embedded, derived from the page's own network
7
+ * policy, and the inline style and script elements carry deterministic nonces
8
+ * so the policy can name exactly what is allowed instead of falling back to
9
+ * `'unsafe-inline'`.
10
+ *
11
+ * Nonces are derived from a content hash, not from randomness: a random nonce
12
+ * would break byte-determinism, and a nonce does not need to be unpredictable
13
+ * to be useful here (it only has to distinguish the compiler's own elements).
14
+ */
15
+ import type { IrDocument } from '../ir.js';
16
+ export interface DocumentInput {
17
+ ir: IrDocument;
18
+ compilerVersion: string;
19
+ css: string;
20
+ js: string;
21
+ body: string;
22
+ /** Extra origins a permitted capability needs in the policy, deduplicated. */
23
+ allowedOrigins: string[];
24
+ themeToggle: boolean;
25
+ /** Resolved theme density, emitted as a document-level attribute. */
26
+ density: string;
27
+ }
28
+ export interface AssembledDocument {
29
+ html: string;
30
+ csp: string;
31
+ styleNonce: string;
32
+ scriptNonce: string;
33
+ }
34
+ export declare function buildContentSecurityPolicy(input: DocumentInput): {
35
+ csp: string;
36
+ styleNonce: string;
37
+ scriptNonce: string;
38
+ };
39
+ export declare function assembleDocument(input: DocumentInput): AssembledDocument;
40
+ //# sourceMappingURL=document.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,UAAU,CAAC;AAI1D,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,UAAU,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,8EAA8E;IAC9E,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AA8BD,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,aAAa,GAAG;IAChE,GAAG,EAAE,MAAM,CAAC;IACZ,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB,CAQA;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,aAAa,GAAG,iBAAiB,CA6CxE"}
@@ -0,0 +1,90 @@
1
+ /**
2
+ * Document assembly.
3
+ *
4
+ * The emitted artifact is a single file that must be self-defending: it is
5
+ * opened from `file://`, so it cannot rely on response headers. The Content
6
+ * Security Policy is therefore embedded, derived from the page's own network
7
+ * policy, and the inline style and script elements carry deterministic nonces
8
+ * so the policy can name exactly what is allowed instead of falling back to
9
+ * `'unsafe-inline'`.
10
+ *
11
+ * Nonces are derived from a content hash, not from randomness: a random nonce
12
+ * would break byte-determinism, and a nonce does not need to be unpredictable
13
+ * to be useful here (it only has to distinguish the compiler's own elements).
14
+ */
15
+ import { stableHash } from '../hash.js';
16
+ import { escapeAttribute, escapeText } from './escape.js';
17
+ import { needsLiveRegion } from './runtime.js';
18
+ function directives(policy, input, styleNonce, scriptNonce) {
19
+ const origins = [...new Set(input.allowedOrigins)].sort();
20
+ const imageSources = ['data:', 'file:', ...origins];
21
+ const mediaSources = ['file:', ...origins];
22
+ const parts = [
23
+ "default-src 'none'",
24
+ "base-uri 'none'",
25
+ "form-action 'none'",
26
+ "frame-src 'none'",
27
+ "object-src 'none'",
28
+ "connect-src 'none'",
29
+ "font-src 'none'",
30
+ `img-src ${imageSources.join(' ')}`,
31
+ `media-src ${mediaSources.join(' ')}`,
32
+ `style-src 'nonce-${styleNonce}'`,
33
+ ];
34
+ parts.push(input.js === '' ? "script-src 'none'" : `script-src 'nonce-${scriptNonce}'`);
35
+ if (policy !== 'deny' && policy.allow.length > 0) {
36
+ parts.push(`/* network capabilities: ${policy.allow.join(', ')} */`);
37
+ }
38
+ return parts.join('; ');
39
+ }
40
+ export function buildContentSecurityPolicy(input) {
41
+ const styleNonce = `ak${stableHash(input.css).slice(0, 16)}`;
42
+ const scriptNonce = `ak${stableHash(input.js).slice(0, 16)}`;
43
+ return {
44
+ csp: directives(input.ir.policy.network, input, styleNonce, scriptNonce),
45
+ styleNonce,
46
+ scriptNonce,
47
+ };
48
+ }
49
+ export function assembleDocument(input) {
50
+ const { csp, styleNonce, scriptNonce } = buildContentSecurityPolicy(input);
51
+ const { meta } = input.ir;
52
+ const liveRegion = needsLiveRegion(new Set(input.ir.nodes.flatMap((node) => node.runtimeFeatures)))
53
+ ? `<div class="ak-sr" data-ak-live role="status" aria-live="polite"></div>`
54
+ : '';
55
+ const themeToggle = input.themeToggle
56
+ ? `<div class="ak-page-bar"><button type="button" class="ak-btn ak-theme-toggle" data-ak-theme-toggle aria-pressed="false" aria-label="Toggle dark theme">Dark</button></div>`
57
+ : '';
58
+ const description = meta.description === undefined
59
+ ? ''
60
+ : `<meta name="description" content="${escapeAttribute(meta.description)}" />`;
61
+ const html = [
62
+ '<!DOCTYPE html>',
63
+ `<html lang="${escapeAttribute(meta.locale)}" data-density="${escapeAttribute(input.density)}">`,
64
+ '<head>',
65
+ '<meta charset="utf-8" />',
66
+ '<meta name="viewport" content="width=device-width, initial-scale=1" />',
67
+ '<meta name="color-scheme" content="light dark" />',
68
+ `<meta name="generator" content="@bestagentkits/render ${escapeAttribute(input.compilerVersion)}" />`,
69
+ `<meta http-equiv="Content-Security-Policy" content="${escapeAttribute(csp)}" />`,
70
+ `<title>${escapeText(meta.title)}</title>`,
71
+ description,
72
+ `<style nonce="${escapeAttribute(styleNonce)}">${input.css}</style>`,
73
+ '</head>',
74
+ '<body>',
75
+ '<a class="ak-skip" href="#ak-main-content">Skip to main content</a>',
76
+ '<div class="ak-shell">',
77
+ themeToggle,
78
+ input.body,
79
+ '</div>',
80
+ liveRegion,
81
+ input.js === '' ? '' : `<script nonce="${escapeAttribute(scriptNonce)}">${input.js}</script>`,
82
+ '</body>',
83
+ '</html>',
84
+ '',
85
+ ]
86
+ .filter((line) => line !== '')
87
+ .join('\n');
88
+ return { html, csp, styleNonce, scriptNonce };
89
+ }
90
+ //# sourceMappingURL=document.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"document.js","sourceRoot":"","sources":["../../src/render/document.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAExC,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAsB/C,SAAS,UAAU,CACjB,MAAqB,EACrB,KAAoB,EACpB,UAAkB,EAClB,WAAmB;IAEnB,MAAM,OAAO,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC1D,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IACpD,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,CAAC;IAC3C,MAAM,KAAK,GAAG;QACZ,oBAAoB;QACpB,iBAAiB;QACjB,oBAAoB;QACpB,kBAAkB;QAClB,mBAAmB;QACnB,oBAAoB;QACpB,iBAAiB;QACjB,WAAW,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACnC,aAAa,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;QACrC,oBAAoB,UAAU,GAAG;KAClC,CAAC;IACF,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,qBAAqB,WAAW,GAAG,CAAC,CAAC;IACxF,IAAI,MAAM,KAAK,MAAM,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACjD,KAAK,CAAC,IAAI,CAAC,4BAA4B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvE,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAoB;IAK7D,MAAM,UAAU,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7D,MAAM,WAAW,GAAG,KAAK,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;IAC7D,OAAO;QACL,GAAG,EAAE,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,WAAW,CAAC;QACxE,UAAU;QACV,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,KAAoB;IACnD,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,0BAA0B,CAAC,KAAK,CAAC,CAAC;IAC3E,MAAM,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;IAC1B,MAAM,UAAU,GAAG,eAAe,CAChC,IAAI,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,CAChE;QACC,CAAC,CAAC,yEAAyE;QAC3E,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GAAG,KAAK,CAAC,WAAW;QACnC,CAAC,CAAC,4KAA4K;QAC9K,CAAC,CAAC,EAAE,CAAC;IACP,MAAM,WAAW,GACf,IAAI,CAAC,WAAW,KAAK,SAAS;QAC5B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,qCAAqC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;IAEnF,MAAM,IAAI,GAAG;QACX,iBAAiB;QACjB,eAAe,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,mBAAmB,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI;QAChG,QAAQ;QACR,0BAA0B;QAC1B,wEAAwE;QACxE,mDAAmD;QACnD,yDAAyD,eAAe,CAAC,KAAK,CAAC,eAAe,CAAC,MAAM;QACrG,uDAAuD,eAAe,CAAC,GAAG,CAAC,MAAM;QACjF,UAAU,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU;QAC1C,WAAW;QACX,iBAAiB,eAAe,CAAC,UAAU,CAAC,KAAK,KAAK,CAAC,GAAG,UAAU;QACpE,SAAS;QACT,QAAQ;QACR,qEAAqE;QACrE,wBAAwB;QACxB,WAAW;QACX,KAAK,CAAC,IAAI;QACV,QAAQ;QACR,UAAU;QACV,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,kBAAkB,eAAe,CAAC,WAAW,CAAC,KAAK,KAAK,CAAC,EAAE,WAAW;QAC7F,SAAS;QACT,SAAS;QACT,EAAE;KACH;SACE,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,EAAE,CAAC;SAC7B,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,UAAU,EAAE,WAAW,EAAE,CAAC;AAChD,CAAC"}
@@ -0,0 +1,46 @@
1
+ /**
2
+ * Escaping and serialization.
3
+ *
4
+ * Escaping happens at emission, per context. Nothing here is applied at parse
5
+ * time: a value that is safe as text is not automatically safe as an attribute,
6
+ * in a URL, or inside a `script` element, and the compiler must not pretend
7
+ * otherwise.
8
+ */
9
+ /** Escape text content for an element body. */
10
+ export declare function escapeText(value: string): string;
11
+ /** Escape a value for a double-quoted attribute. */
12
+ export declare function escapeAttribute(value: string): string;
13
+ /**
14
+ * Percent-encode a URL for emission.
15
+ *
16
+ * Scheme policy is enforced by the URL policy module before this runs; this
17
+ * function only guarantees that the emitted reference cannot break out of the
18
+ * attribute or introduce a control character.
19
+ */
20
+ export declare function escapeUrl(value: string): string;
21
+ /**
22
+ * Serialize embedded data for a `script type="application/json"` element.
23
+ *
24
+ * `<` and `>` are escaped so a value can never close the element, and the two
25
+ * Unicode line separators are escaped because they terminate a JavaScript line
26
+ * even inside a string literal.
27
+ */
28
+ export declare function serializeJsonForScript(value: unknown): string;
29
+ /**
30
+ * Serialize a JSON payload for a `data-*` attribute (not for a script body).
31
+ * Kept separate from `serializeJsonForScript` so the two contexts cannot be
32
+ * confused.
33
+ */
34
+ export declare function serializeJsonForAttribute(value: unknown): string;
35
+ export interface AttributeValue {
36
+ [name: string]: string | number | boolean | undefined | null;
37
+ }
38
+ /**
39
+ * Render attributes in a fixed order.
40
+ *
41
+ * Ordering is deterministic regardless of the object's insertion order, so two
42
+ * runs of the compiler cannot differ because of how a renderer happened to
43
+ * build its attribute map.
44
+ */
45
+ export declare function renderAttributes(attributes: AttributeValue): string;
46
+ //# sourceMappingURL=escape.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"escape.d.ts","sourceRoot":"","sources":["../../src/render/escape.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAsBH,+CAA+C;AAC/C,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMhD;AAED,oDAAoD;AACpD,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAMrD;AAMD;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAM/C;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAO7D;AAED;;;;GAIG;AACH,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEhE;AAED,MAAM,WAAW,cAAc;IAC7B,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,IAAI,CAAC;CAC9D;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAAC,UAAU,EAAE,cAAc,GAAG,MAAM,CAkBnE"}