@hyperframes/core 0.8.33 → 0.8.34
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/README.md +15 -0
- package/dist/compiler/externalScripts.d.ts +8 -0
- package/dist/compiler/externalScripts.d.ts.map +1 -0
- package/dist/compiler/externalScripts.js +34 -0
- package/dist/compiler/externalScripts.js.map +1 -0
- package/dist/compiler/htmlBundler.d.ts.map +1 -1
- package/dist/compiler/htmlBundler.js +75 -66
- package/dist/compiler/htmlBundler.js.map +1 -1
- package/dist/compiler/index.d.ts +1 -0
- package/dist/compiler/index.d.ts.map +1 -1
- package/dist/compiler/index.js +1 -0
- package/dist/compiler/index.js.map +1 -1
- package/dist/compiler/inlineSubCompositions.d.ts +3 -2
- package/dist/compiler/inlineSubCompositions.d.ts.map +1 -1
- package/dist/compiler/inlineSubCompositions.js +6 -1
- package/dist/compiler/inlineSubCompositions.js.map +1 -1
- package/dist/generated/position-edits-render-inline.js +1 -1
- package/dist/generated/position-edits-render-inline.js.map +1 -1
- package/dist/generated/runtime-inline.js +1 -1
- package/dist/generated/runtime-inline.js.map +1 -1
- package/dist/generators/hyperframes.d.ts +6 -0
- package/dist/generators/hyperframes.d.ts.map +1 -1
- package/dist/generators/hyperframes.js +118 -69
- package/dist/generators/hyperframes.js.map +1 -1
- package/dist/generators/richTextHtml.d.ts +3 -0
- package/dist/generators/richTextHtml.d.ts.map +1 -0
- package/dist/generators/richTextHtml.js +41 -0
- package/dist/generators/richTextHtml.js.map +1 -0
- package/dist/hyperframe.runtime.iife.js +29 -29
- package/dist/registry/types.d.ts +18 -1
- package/dist/registry/types.d.ts.map +1 -1
- package/dist/registry/types.js.map +1 -1
- package/dist/runtime/applyVariableBindings.d.ts.map +1 -1
- package/dist/runtime/applyVariableBindings.js +2 -1
- package/dist/runtime/applyVariableBindings.js.map +1 -1
- package/dist/runtime/bridge.d.ts.map +1 -1
- package/dist/runtime/bridge.js +5 -3
- package/dist/runtime/bridge.js.map +1 -1
- package/dist/runtime/clipTree.d.ts.map +1 -1
- package/dist/runtime/clipTree.js +2 -1
- package/dist/runtime/clipTree.js.map +1 -1
- package/dist/runtime/domRealm.d.ts +66 -0
- package/dist/runtime/domRealm.d.ts.map +1 -0
- package/dist/runtime/domRealm.js +92 -0
- package/dist/runtime/domRealm.js.map +1 -0
- package/dist/runtime/mediaVolumeEnvelope.d.ts.map +1 -1
- package/dist/runtime/mediaVolumeEnvelope.js +22 -6
- package/dist/runtime/mediaVolumeEnvelope.js.map +1 -1
- package/dist/runtime/playbackRate.d.ts +11 -0
- package/dist/runtime/playbackRate.d.ts.map +1 -1
- package/dist/runtime/playbackRate.js +18 -1
- package/dist/runtime/playbackRate.js.map +1 -1
- package/dist/runtime/positionEdits.d.ts.map +1 -1
- package/dist/runtime/positionEdits.js +8 -18
- package/dist/runtime/positionEdits.js.map +1 -1
- package/dist/runtime/renderFrameSibling.d.ts.map +1 -1
- package/dist/runtime/renderFrameSibling.js +2 -1
- package/dist/runtime/renderFrameSibling.js.map +1 -1
- package/dist/runtime/startResolver.d.ts +1 -0
- package/dist/runtime/startResolver.d.ts.map +1 -1
- package/dist/runtime/startResolver.js +34 -10
- package/dist/runtime/startResolver.js.map +1 -1
- package/package.json +6 -6
- package/schemas/registry-item.json +6 -0
- package/dist/runtime/audioAutomationVolume.d.ts +0 -17
- package/dist/runtime/audioAutomationVolume.d.ts.map +0 -1
- package/dist/runtime/audioAutomationVolume.js +0 -49
- package/dist/runtime/audioAutomationVolume.js.map +0 -1
- package/dist/runtime/media.d.ts +0 -95
- package/dist/runtime/media.d.ts.map +0 -1
- package/dist/runtime/media.js +0 -434
- package/dist/runtime/media.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime-inline.js","sourceRoot":"","sources":["../../src/generated/runtime-inline.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,YAAY,GAAW,
|
|
1
|
+
{"version":3,"file":"runtime-inline.js","sourceRoot":"","sources":["../../src/generated/runtime-inline.ts"],"names":[],"mappings":"AAAA,gFAAgF;AAChF,MAAM,YAAY,GAAW,43nZAA43nZ,CAAC;AAE15nZ;;;;GAIG;AACH,MAAM,UAAU,0BAA0B;IACxC,OAAO,YAAY,CAAC;AACtB,CAAC"}
|
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import type { TimelineElement, CanvasResolution, Keyframe, StageZoomKeyframe } from "../core.types";
|
|
2
2
|
import type { GsapAnimation } from "@hyperframes/parsers";
|
|
3
3
|
export interface SerializeOptions {
|
|
4
|
+
/** Trusted animations: __raw: values are emitted as executable JavaScript. */
|
|
4
5
|
animations?: GsapAnimation[];
|
|
6
|
+
/** Trusted authored CSS, preserved as code; may load external resources. */
|
|
5
7
|
styles?: string;
|
|
6
8
|
generateDefaultAnimations?: boolean;
|
|
7
9
|
resolution?: CanvasResolution;
|
|
8
10
|
compositionId?: string;
|
|
9
11
|
keyframes?: Record<string, Keyframe[]>;
|
|
10
12
|
stageZoomKeyframes?: StageZoomKeyframe[];
|
|
13
|
+
/** Emit executable timeline code; animations and __raw: expressions must be trusted. */
|
|
11
14
|
includeScripts?: boolean;
|
|
12
15
|
includeStyles?: boolean;
|
|
13
16
|
}
|
|
17
|
+
/** Generate CSS from trusted authors. customStyles is authored code, not sanitized CSS. */
|
|
14
18
|
export declare function generateHyperframesStyles(elements: TimelineElement[], resolution: CanvasResolution, customStyles?: string): {
|
|
15
19
|
coreCss: string;
|
|
16
20
|
customCss: string;
|
|
17
21
|
googleFontsLink: string;
|
|
18
22
|
};
|
|
23
|
+
/** Generate executable JavaScript. Animation __raw: expressions require trusted authors. */
|
|
19
24
|
export declare function generateGsapTimelineScript(elements: TimelineElement[], totalDuration: number, options?: SerializeOptions): string;
|
|
25
|
+
/** Generate a document for trusted authors. Authored CSS and animation __raw: expressions retain their executable capabilities. Context encoding is not a sandbox: do not supply untrusted code-bearing options or serve untrusted compositions in a privileged origin. Text uses the inline-formatting sanitizer; parseHtml flattens inner formatting to text. */
|
|
20
26
|
export declare function generateHyperframesHtml(elements: TimelineElement[], totalDuration: number, options?: SerializeOptions): string;
|
|
21
27
|
//# sourceMappingURL=hyperframes.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperframes.d.ts","sourceRoot":"","sources":["../../src/generators/hyperframes.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"hyperframes.d.ts","sourceRoot":"","sources":["../../src/generators/hyperframes.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAOpG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAgF1D,MAAM,WAAW,gBAAgB;IAC/B,8EAA8E;IAC9E,UAAU,CAAC,EAAE,aAAa,EAAE,CAAC;IAC7B,4EAA4E;IAC5E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yBAAyB,CAAC,EAAE,OAAO,CAAC;IACpC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;IACvC,kBAAkB,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACzC,wFAAwF;IACxF,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AA+BD,2FAA2F;AAC3F,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,eAAe,EAAE,EAC3B,UAAU,EAAE,gBAAgB,EAC5B,YAAY,CAAC,EAAE,MAAM,GACpB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,eAAe,EAAE,MAAM,CAAA;CAAE,CA8BjE;AAgDD,4FAA4F;AAC5F,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,eAAe,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CAkHR;AAED,mWAAmW;AACnW,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EAAE,EAC3B,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,gBAAqB,GAC7B,MAAM,CA2GR"}
|
|
@@ -1,7 +1,46 @@
|
|
|
1
|
+
import { isSafeAttributeValue } from "../utils/htmlAttrSafety.js";
|
|
2
|
+
import { richTextHtml } from "./richTextHtml.js";
|
|
1
3
|
import { CANVAS_DIMENSIONS, isTextElement, isMediaElement, isCompositionElement, } from "../core.types.js";
|
|
2
4
|
import { serializeGsapAnimations, keyframesToGsapAnimations } from "@hyperframes/parsers";
|
|
3
5
|
import { GSAP_CDN, BASE_STYLES, ZOOM_CONTAINER_STYLES } from "../templates/constants.js";
|
|
4
6
|
import { COMPOSITION_ATTRIBUTES } from "../compositionContract.js";
|
|
7
|
+
function escapeHtmlAttributeValue(value) {
|
|
8
|
+
return value
|
|
9
|
+
.replace(/&/g, "&")
|
|
10
|
+
.replace(/</g, "<")
|
|
11
|
+
.replace(/>/g, ">")
|
|
12
|
+
.replace(/"/g, """)
|
|
13
|
+
.replace(/'/g, "'");
|
|
14
|
+
}
|
|
15
|
+
function elementSelector(id) {
|
|
16
|
+
// Hex escapes preserve ID identity without letting punctuation add selectors.
|
|
17
|
+
const escaped = id.replace(/[^a-zA-Z0-9_-]|^-?\d/g, (match) => Array.from(match, (char) => `\\${char.codePointAt(0)?.toString(16)} `).join(""));
|
|
18
|
+
return `#${escaped}`;
|
|
19
|
+
}
|
|
20
|
+
function cssString(value) {
|
|
21
|
+
return value.replace(/[\\'\r\n\f]/g, (char) => `\\${char.codePointAt(0)?.toString(16)} `);
|
|
22
|
+
}
|
|
23
|
+
function sourceAttribute(src, composition = false) {
|
|
24
|
+
// URL parsing ignores embedded ASCII tabs/newlines before detecting a scheme.
|
|
25
|
+
const normalized = Array.from(src)
|
|
26
|
+
.filter((char) => char.charCodeAt(0) > 32)
|
|
27
|
+
.join("");
|
|
28
|
+
if (!isSafeAttributeValue("src", normalized) || (composition && /^data:/i.test(normalized))) {
|
|
29
|
+
throw new Error("Unsafe media or composition source URL");
|
|
30
|
+
}
|
|
31
|
+
return escapeHtmlAttributeValue(src);
|
|
32
|
+
}
|
|
33
|
+
function finiteNumber(value) {
|
|
34
|
+
if (typeof value !== "number" || !Number.isFinite(value)) {
|
|
35
|
+
throw new Error("Expected a finite generator numeric value");
|
|
36
|
+
}
|
|
37
|
+
return value;
|
|
38
|
+
}
|
|
39
|
+
function cssValue(value) {
|
|
40
|
+
if (/[;{}<>\r\n]/.test(value))
|
|
41
|
+
throw new Error("Invalid generated CSS value");
|
|
42
|
+
return value;
|
|
43
|
+
}
|
|
5
44
|
const GOOGLE_FONTS_BASE = "https://fonts.googleapis.com/css2";
|
|
6
45
|
const FONT_WEIGHTS = {
|
|
7
46
|
Inter: "400;500;600;700;800;900",
|
|
@@ -59,6 +98,7 @@ function sortElements(elements) {
|
|
|
59
98
|
return a.startTime - b.startTime;
|
|
60
99
|
});
|
|
61
100
|
}
|
|
101
|
+
/** Generate CSS from trusted authors. customStyles is authored code, not sanitized CSS. */
|
|
62
102
|
export function generateHyperframesStyles(elements, resolution, customStyles) {
|
|
63
103
|
const { width, height } = CANVAS_DIMENSIONS[resolution];
|
|
64
104
|
const sortedElements = sortElements(elements);
|
|
@@ -95,29 +135,30 @@ function generateElementStyles(element) {
|
|
|
95
135
|
const textShadow = element.textShadow !== false ? "text-shadow: 2px 2px 4px rgba(0,0,0,0.8);" : "";
|
|
96
136
|
// Text outline using -webkit-text-stroke
|
|
97
137
|
const textOutline = element.textOutline
|
|
98
|
-
? `-webkit-text-stroke: ${element.textOutlineWidth ?? 2}px ${element.textOutlineColor ?? "#000000"}; paint-order: stroke fill;`
|
|
138
|
+
? `-webkit-text-stroke: ${finiteNumber(element.textOutlineWidth ?? 2)}px ${cssValue(element.textOutlineColor ?? "#000000")}; paint-order: stroke fill;`
|
|
99
139
|
: "";
|
|
100
140
|
// Text highlight using background
|
|
101
141
|
const textHighlight = element.textHighlight
|
|
102
|
-
? `background-color: ${element.textHighlightColor ?? "yellow"}; padding: ${element.textHighlightPadding ?? 4}px ${(element.textHighlightPadding ?? 4) * 1.5}px; border-radius: ${element.textHighlightRadius ?? 4}px; box-decoration-break: clone; -webkit-box-decoration-break: clone;`
|
|
142
|
+
? `background-color: ${cssValue(element.textHighlightColor ?? "yellow")}; padding: ${finiteNumber(element.textHighlightPadding ?? 4)}px ${finiteNumber((element.textHighlightPadding ?? 4) * 1.5)}px; border-radius: ${finiteNumber(element.textHighlightRadius ?? 4)}px; box-decoration-break: clone; -webkit-box-decoration-break: clone;`
|
|
103
143
|
: "";
|
|
104
|
-
return `
|
|
105
|
-
|
|
144
|
+
return ` ${elementSelector(element.id)} { ${baseStyles} width: 100%; height: 100%; display: flex; align-items: center; justify-content: center; pointer-events: none; }
|
|
145
|
+
${elementSelector(element.id)} > div { font-family: '${cssString(fontFamily)}', sans-serif; font-size: ${finiteNumber(fontSize)}px; font-weight: ${finiteNumber(fontWeight)}; color: ${cssValue(color)}; ${textShadow} ${textOutline} ${textHighlight} pointer-events: auto; cursor: grab; white-space: pre-wrap; text-align: center; }`;
|
|
106
146
|
}
|
|
107
147
|
switch (element.type) {
|
|
108
148
|
case "video":
|
|
109
149
|
// Videos fill the stage with standard CSS positioning (0,0 = top-left)
|
|
110
|
-
return `
|
|
150
|
+
return ` ${elementSelector(element.id)} { ${baseStyles} width: 100%; height: 100%; object-fit: contain; transform-origin: center center; }`;
|
|
111
151
|
case "image":
|
|
112
152
|
// Images use standard CSS positioning (0,0 = top-left)
|
|
113
|
-
return `
|
|
153
|
+
return ` ${elementSelector(element.id)} { ${baseStyles} max-width: 100%; max-height: 100%; transform-origin: center center; }`;
|
|
114
154
|
case "audio":
|
|
115
|
-
return `
|
|
155
|
+
return ` ${elementSelector(element.id)} { ${baseStyles} }`;
|
|
116
156
|
case "composition":
|
|
117
157
|
// Compositions use standard CSS positioning (0,0 = top-left)
|
|
118
|
-
return `
|
|
158
|
+
return ` ${elementSelector(element.id)} { ${baseStyles} width: 100%; height: 100%; position: absolute; }`;
|
|
119
159
|
}
|
|
120
160
|
}
|
|
161
|
+
/** Generate executable JavaScript. Animation __raw: expressions require trusted authors. */
|
|
121
162
|
export function generateGsapTimelineScript(elements, totalDuration, options = {}) {
|
|
122
163
|
const { animations, generateDefaultAnimations = true, resolution = "landscape", keyframes, stageZoomKeyframes, } = options;
|
|
123
164
|
const { width, height } = CANVAS_DIMENSIONS[resolution];
|
|
@@ -135,7 +176,10 @@ export function generateGsapTimelineScript(elements, totalDuration, options = {}
|
|
|
135
176
|
y: element.y ?? 0,
|
|
136
177
|
scale: baseScale,
|
|
137
178
|
});
|
|
138
|
-
keyframeAnimations = keyframeAnimations.concat(converted)
|
|
179
|
+
keyframeAnimations = keyframeAnimations.concat(converted.map((animation) => ({
|
|
180
|
+
...animation,
|
|
181
|
+
targetSelector: elementSelector(element.id),
|
|
182
|
+
})));
|
|
139
183
|
}
|
|
140
184
|
}
|
|
141
185
|
}
|
|
@@ -187,7 +231,7 @@ export function generateGsapTimelineScript(elements, totalDuration, options = {}
|
|
|
187
231
|
else {
|
|
188
232
|
gsapScript = `
|
|
189
233
|
const tl = gsap.timeline({ paused: true });
|
|
190
|
-
${initialPositionSets ? initialPositionSets + "\n" : ""} tl.to({}, { duration: ${totalDuration || 1} });
|
|
234
|
+
${initialPositionSets ? initialPositionSets + "\n" : ""} tl.to({}, { duration: ${finiteNumber(totalDuration || 1)} });
|
|
191
235
|
`;
|
|
192
236
|
// Append zoom animations
|
|
193
237
|
if (zoomAnimations) {
|
|
@@ -196,6 +240,7 @@ ${initialPositionSets ? initialPositionSets + "\n" : ""} tl.to({}, { duration
|
|
|
196
240
|
}
|
|
197
241
|
return gsapScript;
|
|
198
242
|
}
|
|
243
|
+
/** Generate a document for trusted authors. Authored CSS and animation __raw: expressions retain their executable capabilities. Context encoding is not a sandbox: do not supply untrusted code-bearing options or serve untrusted compositions in a privileged origin. Text uses the inline-formatting sanitizer; parseHtml flattens inner formatting to text. */
|
|
199
244
|
export function generateHyperframesHtml(elements, totalDuration, options = {}) {
|
|
200
245
|
const { animations, styles, generateDefaultAnimations = true, resolution = "landscape", compositionId = `comp-${Date.now()}`, keyframes, stageZoomKeyframes, includeScripts = false, includeStyles = false, } = options;
|
|
201
246
|
// Include zoom keyframes in duration calculation
|
|
@@ -212,7 +257,7 @@ export function generateHyperframesHtml(elements, totalDuration, options = {}) {
|
|
|
212
257
|
const customStyles = styles || "";
|
|
213
258
|
// Serialize zoom keyframes to data attribute
|
|
214
259
|
const zoomKeyframesAttr = stageZoomKeyframes && stageZoomKeyframes.length > 0
|
|
215
|
-
? ` data-zoom-keyframes='${JSON.stringify(stageZoomKeyframes)
|
|
260
|
+
? ` data-zoom-keyframes='${escapeHtmlAttributeValue(JSON.stringify(stageZoomKeyframes))}'`
|
|
216
261
|
: "";
|
|
217
262
|
let styleTags = "";
|
|
218
263
|
let googleFontsLink = "";
|
|
@@ -222,12 +267,18 @@ export function generateHyperframesHtml(elements, totalDuration, options = {}) {
|
|
|
222
267
|
styleTags = [
|
|
223
268
|
styles.coreCss
|
|
224
269
|
? ` <style data-hf-core="true">
|
|
225
|
-
${styles.coreCss
|
|
270
|
+
${styles.coreCss
|
|
271
|
+
.replace(/<\/style/gi, (match) => `<\\${match.slice(1)}`)
|
|
272
|
+
.split("\n")
|
|
273
|
+
.join("\n ")}
|
|
226
274
|
</style>`
|
|
227
275
|
: "",
|
|
228
276
|
styles.customCss
|
|
229
277
|
? ` <style data-hf-custom="true">
|
|
230
|
-
${styles.customCss
|
|
278
|
+
${styles.customCss
|
|
279
|
+
.replace(/<\/style/gi, (match) => `<\\${match.slice(1)}`)
|
|
280
|
+
.split("\n")
|
|
281
|
+
.join("\n ")}
|
|
231
282
|
</style>`
|
|
232
283
|
: "",
|
|
233
284
|
]
|
|
@@ -246,15 +297,15 @@ export function generateHyperframesHtml(elements, totalDuration, options = {}) {
|
|
|
246
297
|
const gsapCdnTag = includeScripts ? ` <script src="${GSAP_CDN}"></script>` : "";
|
|
247
298
|
const gsapScriptTag = includeScripts
|
|
248
299
|
? ` <script>
|
|
249
|
-
${gsapScript}
|
|
300
|
+
${gsapScript.replace(/<\/script/gi, (match) => `<\\${match.slice(1)}`)}
|
|
250
301
|
</script>`
|
|
251
302
|
: "";
|
|
252
303
|
const customStylesAttr = customStyles
|
|
253
|
-
? ` data-custom-styles='${JSON.stringify(customStyles)
|
|
304
|
+
? ` data-custom-styles='${escapeHtmlAttributeValue(JSON.stringify(customStyles))}'`
|
|
254
305
|
: "";
|
|
255
|
-
const resolutionAttr = ` data-resolution="${resolution}"`;
|
|
306
|
+
const resolutionAttr = ` data-resolution="${escapeHtmlAttributeValue(resolution)}"`;
|
|
256
307
|
return `<!DOCTYPE html>
|
|
257
|
-
<html data-composition-id="${compositionId}" data-composition-duration="${calculatedDuration}"${resolutionAttr}${customStylesAttr}>
|
|
308
|
+
<html data-composition-id="${escapeHtmlAttributeValue(compositionId)}" data-composition-duration="${calculatedDuration}"${resolutionAttr}${customStylesAttr}>
|
|
258
309
|
<head>
|
|
259
310
|
<meta charset="UTF-8">
|
|
260
311
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
@@ -292,59 +343,59 @@ function generateZoomGsapAnimations(zoomKeyframes, canvasWidth, canvasHeight) {
|
|
|
292
343
|
continue;
|
|
293
344
|
const { x, y } = calculateZoomTransform(kf.zoom.scale, kf.zoom.focusX, kf.zoom.focusY, canvasWidth, canvasHeight);
|
|
294
345
|
if (i === 0) {
|
|
295
|
-
animations.push(` tl.set("#stage-zoom-container", { scale: ${kf.zoom.scale}, x: ${x}, y: ${y} }, ${kf.time});`);
|
|
346
|
+
animations.push(` tl.set("#stage-zoom-container", { scale: ${finiteNumber(kf.zoom.scale)}, x: ${finiteNumber(x)}, y: ${finiteNumber(y)} }, ${finiteNumber(kf.time)});`);
|
|
296
347
|
}
|
|
297
348
|
else {
|
|
298
349
|
const prevKf = sortedKeyframes[i - 1];
|
|
299
350
|
if (!prevKf)
|
|
300
351
|
continue;
|
|
301
352
|
const duration = kf.time - prevKf.time;
|
|
302
|
-
const ease = kf.ease ? `, ease:
|
|
303
|
-
animations.push(` tl.to("#stage-zoom-container", { scale: ${kf.zoom.scale}, x: ${x}, y: ${y}, duration: ${duration}${ease} }, ${prevKf.time});`);
|
|
353
|
+
const ease = kf.ease ? `, ease: ${JSON.stringify(kf.ease)}` : "";
|
|
354
|
+
animations.push(` tl.to("#stage-zoom-container", { scale: ${finiteNumber(kf.zoom.scale)}, x: ${finiteNumber(x)}, y: ${finiteNumber(y)}, duration: ${finiteNumber(duration)}${ease} }, ${finiteNumber(prevKf.time)});`);
|
|
304
355
|
}
|
|
305
356
|
}
|
|
306
357
|
return animations.join("\n");
|
|
307
358
|
}
|
|
308
359
|
function generateElementHtml(element, keyframes) {
|
|
309
360
|
const baseAttrs = [
|
|
310
|
-
`id="${element.id}"`,
|
|
311
|
-
`data-hf-id="${element.id}"`,
|
|
312
|
-
`${COMPOSITION_ATTRIBUTES.start}="${element.startTime}"`,
|
|
313
|
-
`${COMPOSITION_ATTRIBUTES.duration}="${element.duration}"`,
|
|
314
|
-
`${COMPOSITION_ATTRIBUTES.trackIndex}="${element.zIndex}"`,
|
|
315
|
-
`data-name="${element.name}"`,
|
|
361
|
+
`id="${escapeHtmlAttributeValue(String(element.id))}"`,
|
|
362
|
+
`data-hf-id="${escapeHtmlAttributeValue(String(element.id))}"`,
|
|
363
|
+
`${COMPOSITION_ATTRIBUTES.start}="${escapeHtmlAttributeValue(String(element.startTime))}"`,
|
|
364
|
+
`${COMPOSITION_ATTRIBUTES.duration}="${escapeHtmlAttributeValue(String(element.duration))}"`,
|
|
365
|
+
`${COMPOSITION_ATTRIBUTES.trackIndex}="${escapeHtmlAttributeValue(String(element.zIndex))}"`,
|
|
366
|
+
`data-name="${escapeHtmlAttributeValue(String(element.name))}"`,
|
|
316
367
|
];
|
|
317
368
|
// Serialize transform properties (x, y, scale, opacity) if non-default
|
|
318
369
|
if (element.x !== undefined && element.x !== 0) {
|
|
319
|
-
baseAttrs.push(`data-x="${element.x}"`);
|
|
370
|
+
baseAttrs.push(`data-x="${escapeHtmlAttributeValue(String(element.x))}"`);
|
|
320
371
|
}
|
|
321
372
|
if (element.y !== undefined && element.y !== 0) {
|
|
322
|
-
baseAttrs.push(`data-y="${element.y}"`);
|
|
373
|
+
baseAttrs.push(`data-y="${escapeHtmlAttributeValue(String(element.y))}"`);
|
|
323
374
|
}
|
|
324
375
|
if (element.scale !== undefined && element.scale !== 1) {
|
|
325
|
-
baseAttrs.push(`data-scale="${element.scale}"`);
|
|
376
|
+
baseAttrs.push(`data-scale="${escapeHtmlAttributeValue(String(element.scale))}"`);
|
|
326
377
|
}
|
|
327
378
|
if (element.opacity !== undefined && element.opacity !== 1) {
|
|
328
|
-
baseAttrs.push(`data-opacity="${element.opacity}"`);
|
|
379
|
+
baseAttrs.push(`data-opacity="${escapeHtmlAttributeValue(String(element.opacity))}"`);
|
|
329
380
|
}
|
|
330
381
|
// Serialize keyframes to data attribute if present
|
|
331
382
|
if (keyframes && keyframes.length > 0) {
|
|
332
383
|
const kfJson = JSON.stringify(keyframes);
|
|
333
|
-
baseAttrs.push(`data-keyframes='${kfJson
|
|
384
|
+
baseAttrs.push(`data-keyframes='${escapeHtmlAttributeValue(kfJson)}'`);
|
|
334
385
|
}
|
|
335
386
|
if (isTextElement(element)) {
|
|
336
387
|
const textAttrs = [...baseAttrs, `data-type="text"`];
|
|
337
388
|
if (element.color) {
|
|
338
|
-
textAttrs.push(`data-color="${element.color}"`);
|
|
389
|
+
textAttrs.push(`data-color="${escapeHtmlAttributeValue(String(element.color))}"`);
|
|
339
390
|
}
|
|
340
391
|
if (element.fontSize) {
|
|
341
|
-
textAttrs.push(`data-font-size="${element.fontSize}"`);
|
|
392
|
+
textAttrs.push(`data-font-size="${escapeHtmlAttributeValue(String(element.fontSize))}"`);
|
|
342
393
|
}
|
|
343
394
|
if (element.fontWeight) {
|
|
344
|
-
textAttrs.push(`data-font-weight="${element.fontWeight}"`);
|
|
395
|
+
textAttrs.push(`data-font-weight="${escapeHtmlAttributeValue(String(element.fontWeight))}"`);
|
|
345
396
|
}
|
|
346
397
|
if (element.fontFamily) {
|
|
347
|
-
textAttrs.push(`data-font-family="${element.fontFamily}"`);
|
|
398
|
+
textAttrs.push(`data-font-family="${escapeHtmlAttributeValue(String(element.fontFamily))}"`);
|
|
348
399
|
}
|
|
349
400
|
if (element.textShadow === false) {
|
|
350
401
|
textAttrs.push(`data-text-shadow="false"`);
|
|
@@ -352,50 +403,50 @@ function generateElementHtml(element, keyframes) {
|
|
|
352
403
|
if (element.textOutline) {
|
|
353
404
|
textAttrs.push(`data-text-outline="true"`);
|
|
354
405
|
if (element.textOutlineColor) {
|
|
355
|
-
textAttrs.push(`data-text-outline-color="${element.textOutlineColor}"`);
|
|
406
|
+
textAttrs.push(`data-text-outline-color="${escapeHtmlAttributeValue(String(element.textOutlineColor))}"`);
|
|
356
407
|
}
|
|
357
408
|
if (element.textOutlineWidth) {
|
|
358
|
-
textAttrs.push(`data-text-outline-width="${element.textOutlineWidth}"`);
|
|
409
|
+
textAttrs.push(`data-text-outline-width="${escapeHtmlAttributeValue(String(element.textOutlineWidth))}"`);
|
|
359
410
|
}
|
|
360
411
|
}
|
|
361
412
|
if (element.textHighlight) {
|
|
362
413
|
textAttrs.push(`data-text-highlight="true"`);
|
|
363
414
|
if (element.textHighlightColor) {
|
|
364
|
-
textAttrs.push(`data-text-highlight-color="${element.textHighlightColor}"`);
|
|
415
|
+
textAttrs.push(`data-text-highlight-color="${escapeHtmlAttributeValue(String(element.textHighlightColor))}"`);
|
|
365
416
|
}
|
|
366
417
|
if (element.textHighlightPadding) {
|
|
367
|
-
textAttrs.push(`data-text-highlight-padding="${element.textHighlightPadding}"`);
|
|
418
|
+
textAttrs.push(`data-text-highlight-padding="${escapeHtmlAttributeValue(String(element.textHighlightPadding))}"`);
|
|
368
419
|
}
|
|
369
420
|
if (element.textHighlightRadius) {
|
|
370
|
-
textAttrs.push(`data-text-highlight-radius="${element.textHighlightRadius}"`);
|
|
421
|
+
textAttrs.push(`data-text-highlight-radius="${escapeHtmlAttributeValue(String(element.textHighlightRadius))}"`);
|
|
371
422
|
}
|
|
372
423
|
}
|
|
373
|
-
const content = element.content
|
|
424
|
+
const content = richTextHtml(element.content ?? element.name);
|
|
374
425
|
return `<div ${textAttrs.join(" ")}><div>${content}</div></div>`;
|
|
375
426
|
}
|
|
376
427
|
if (isCompositionElement(element)) {
|
|
377
428
|
const compositionAttrs = [
|
|
378
429
|
...baseAttrs,
|
|
379
430
|
`data-type="composition"`,
|
|
380
|
-
`data-composition-id="${element.compositionId}"`,
|
|
431
|
+
`data-composition-id="${escapeHtmlAttributeValue(String(element.compositionId))}"`,
|
|
381
432
|
];
|
|
382
433
|
if (element.sourceDuration) {
|
|
383
|
-
compositionAttrs.push(`data-source-duration="${element.sourceDuration}"`);
|
|
434
|
+
compositionAttrs.push(`data-source-duration="${escapeHtmlAttributeValue(String(element.sourceDuration))}"`);
|
|
384
435
|
}
|
|
385
436
|
if (element.sourceWidth) {
|
|
386
|
-
compositionAttrs.push(`data-source-width="${element.sourceWidth}"`);
|
|
437
|
+
compositionAttrs.push(`data-source-width="${escapeHtmlAttributeValue(String(element.sourceWidth))}"`);
|
|
387
438
|
}
|
|
388
439
|
if (element.sourceHeight) {
|
|
389
|
-
compositionAttrs.push(`data-source-height="${element.sourceHeight}"`);
|
|
440
|
+
compositionAttrs.push(`data-source-height="${escapeHtmlAttributeValue(String(element.sourceHeight))}"`);
|
|
390
441
|
}
|
|
391
442
|
if (element.variableValues && Object.keys(element.variableValues).length > 0) {
|
|
392
443
|
const varJson = JSON.stringify(element.variableValues);
|
|
393
|
-
compositionAttrs.push(`data-variable-values='${varJson
|
|
444
|
+
compositionAttrs.push(`data-variable-values='${escapeHtmlAttributeValue(varJson)}'`);
|
|
394
445
|
}
|
|
395
446
|
const attrs = compositionAttrs.join(" ");
|
|
396
447
|
// Build iframe src with variable values as query params if present
|
|
397
448
|
// Strip any existing query params first to avoid duplication
|
|
398
|
-
let iframeSrc = element.src.split("?")[0];
|
|
449
|
+
let iframeSrc = element.src.split("?")[0] ?? "";
|
|
399
450
|
if (element.variableValues && Object.keys(element.variableValues).length > 0) {
|
|
400
451
|
const params = new URLSearchParams();
|
|
401
452
|
for (const [key, value] of Object.entries(element.variableValues)) {
|
|
@@ -407,22 +458,22 @@ function generateElementHtml(element, keyframes) {
|
|
|
407
458
|
// The motion design HTML handles its own internal positioning
|
|
408
459
|
// Wrap iframe in container with click overlay for selection
|
|
409
460
|
return `<div ${attrs} style="width: 100%; height: 100%;">
|
|
410
|
-
<iframe src="${iframeSrc}" sandbox="allow-scripts allow-same-origin" style="width: 100%; height: 100%; border: none; pointer-events: none;"></iframe>
|
|
461
|
+
<iframe src="${sourceAttribute(iframeSrc, true)}" sandbox="allow-scripts allow-same-origin" style="width: 100%; height: 100%; border: none; pointer-events: none;"></iframe>
|
|
411
462
|
<div class="composition-click-overlay" style="position: absolute; inset: 0; cursor: pointer;"></div>
|
|
412
463
|
</div>`;
|
|
413
464
|
}
|
|
414
465
|
if (isMediaElement(element)) {
|
|
415
466
|
if (element.mediaStartTime) {
|
|
416
|
-
baseAttrs.push(`data-media-start="${element.mediaStartTime}"`);
|
|
467
|
+
baseAttrs.push(`data-media-start="${escapeHtmlAttributeValue(String(element.mediaStartTime))}"`);
|
|
417
468
|
}
|
|
418
469
|
if (element.sourceDuration) {
|
|
419
|
-
baseAttrs.push(`data-source-duration="${element.sourceDuration}"`);
|
|
470
|
+
baseAttrs.push(`data-source-duration="${escapeHtmlAttributeValue(String(element.sourceDuration))}"`);
|
|
420
471
|
}
|
|
421
472
|
if (element.isAroll) {
|
|
422
473
|
baseAttrs.push(`data-aroll="true"`);
|
|
423
474
|
}
|
|
424
475
|
if (element.volume !== undefined && element.volume !== 1) {
|
|
425
|
-
baseAttrs.push(`data-volume="${element.volume}"`);
|
|
476
|
+
baseAttrs.push(`data-volume="${escapeHtmlAttributeValue(String(element.volume))}"`);
|
|
426
477
|
}
|
|
427
478
|
if (element.type === "video" && element.hasAudio) {
|
|
428
479
|
baseAttrs.push(`data-has-audio="true"`);
|
|
@@ -431,11 +482,11 @@ function generateElementHtml(element, keyframes) {
|
|
|
431
482
|
const attrs = baseAttrs.join(" ");
|
|
432
483
|
switch (element.type) {
|
|
433
484
|
case "video":
|
|
434
|
-
return `<video ${attrs} src="${element.src}" playsinline></video>`;
|
|
485
|
+
return `<video ${attrs} src="${sourceAttribute(element.src)}" playsinline></video>`;
|
|
435
486
|
case "image":
|
|
436
|
-
return `<img ${attrs} src="${element.src}" alt="${element.name}" />`;
|
|
487
|
+
return `<img ${attrs} src="${sourceAttribute(element.src)}" alt="${escapeHtmlAttributeValue(String(element.name))}" />`;
|
|
437
488
|
case "audio":
|
|
438
|
-
return `<audio ${attrs} src="${element.src}"></audio>`;
|
|
489
|
+
return `<audio ${attrs} src="${sourceAttribute(element.src)}"></audio>`;
|
|
439
490
|
default:
|
|
440
491
|
return "";
|
|
441
492
|
}
|
|
@@ -477,10 +528,10 @@ function generateInitialPositionSets(elements, keyframes) {
|
|
|
477
528
|
}
|
|
478
529
|
// Set position and scale (xPercent/yPercent applied at player init)
|
|
479
530
|
if (scaleVal !== 1) {
|
|
480
|
-
sets.push(` tl.set(
|
|
531
|
+
sets.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { x: ${finiteNumber(xVal)}, y: ${finiteNumber(yVal)}, scale: ${finiteNumber(scaleVal)} }, 0);`);
|
|
481
532
|
}
|
|
482
533
|
else if (xVal !== 0 || yVal !== 0) {
|
|
483
|
-
sets.push(` tl.set(
|
|
534
|
+
sets.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { x: ${finiteNumber(xVal)}, y: ${finiteNumber(yVal)} }, 0);`);
|
|
484
535
|
}
|
|
485
536
|
}
|
|
486
537
|
return sets.length > 0 ? sets.join("\n") : "";
|
|
@@ -499,9 +550,8 @@ function generateVisibilityForElementsWithoutKeyframes(elements, keyframes) {
|
|
|
499
550
|
const opacityKeyframes = elementKeyframes?.filter((kf) => kf.properties.opacity !== undefined) || [];
|
|
500
551
|
const start = el.startTime;
|
|
501
552
|
const end = el.startTime + el.duration;
|
|
502
|
-
|
|
503
|
-
animations.push(`
|
|
504
|
-
animations.push(` tl.set("#${el.id}", { visibility: "hidden" }, 0);`);
|
|
553
|
+
animations.push(" // Element visibility");
|
|
554
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "hidden" }, 0);`);
|
|
505
555
|
let elementOpacity = el.opacity ?? 1;
|
|
506
556
|
if (opacityKeyframes.length > 0) {
|
|
507
557
|
const firstOpacityKeyframe = [...opacityKeyframes].sort((a, b) => a.time - b.time)[0];
|
|
@@ -512,12 +562,12 @@ function generateVisibilityForElementsWithoutKeyframes(elements, keyframes) {
|
|
|
512
562
|
// Only include opacity in visibility bookend if non-default or has opacity keyframes
|
|
513
563
|
const needsOpacity = elementOpacity !== 1 || opacityKeyframes.length > 0;
|
|
514
564
|
if (needsOpacity) {
|
|
515
|
-
animations.push(` tl.set(
|
|
565
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "visible", opacity: ${finiteNumber(elementOpacity)} }, ${finiteNumber(start)});`);
|
|
516
566
|
}
|
|
517
567
|
else {
|
|
518
|
-
animations.push(` tl.set(
|
|
568
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "visible" }, ${finiteNumber(start)});`);
|
|
519
569
|
}
|
|
520
|
-
animations.push(` tl.set(
|
|
570
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "hidden" }, ${finiteNumber(end)});`);
|
|
521
571
|
}
|
|
522
572
|
return animations.length > 0 ? animations.join("\n") : "";
|
|
523
573
|
}
|
|
@@ -525,7 +575,7 @@ function generateDefaultGsapAnimations(elements, totalDuration, stageZoomKeyfram
|
|
|
525
575
|
if (elements.length === 0 && (!stageZoomKeyframes || stageZoomKeyframes.length === 0)) {
|
|
526
576
|
return `
|
|
527
577
|
const tl = gsap.timeline({ paused: true });
|
|
528
|
-
tl.to({}, { duration: ${totalDuration || 1} });
|
|
578
|
+
tl.to({}, { duration: ${finiteNumber(totalDuration || 1)} });
|
|
529
579
|
`;
|
|
530
580
|
}
|
|
531
581
|
const animations = [];
|
|
@@ -537,18 +587,17 @@ function generateDefaultGsapAnimations(elements, totalDuration, stageZoomKeyfram
|
|
|
537
587
|
for (const el of elements) {
|
|
538
588
|
const start = el.startTime;
|
|
539
589
|
const end = el.startTime + el.duration;
|
|
540
|
-
const safeName = el.name.replace(/[\r\n]+/g, " ");
|
|
541
590
|
const elementOpacity = el.opacity ?? 1;
|
|
542
|
-
animations.push(
|
|
543
|
-
animations.push(` tl.set(
|
|
591
|
+
animations.push(" // Element visibility");
|
|
592
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "hidden" }, 0);`);
|
|
544
593
|
// Only include opacity if non-default
|
|
545
594
|
if (elementOpacity !== 1) {
|
|
546
|
-
animations.push(` tl.set(
|
|
595
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "visible", opacity: ${finiteNumber(elementOpacity)} }, ${finiteNumber(start)});`);
|
|
547
596
|
}
|
|
548
597
|
else {
|
|
549
|
-
animations.push(` tl.set(
|
|
598
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "visible" }, ${finiteNumber(start)});`);
|
|
550
599
|
}
|
|
551
|
-
animations.push(` tl.set(
|
|
600
|
+
animations.push(` tl.set(${JSON.stringify(elementSelector(el.id))}, { visibility: "hidden" }, ${finiteNumber(end)});`);
|
|
552
601
|
}
|
|
553
602
|
const mediaElements = elements.filter((el) => el.type === "video" || el.type === "audio");
|
|
554
603
|
const mediaSync = mediaElements.length > 0
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hyperframes.js","sourceRoot":"","sources":["../../src/generators/hyperframes.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,oBAAoB,GACrB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAC1F,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACtF,OAAO,EAAE,sBAAsB,EAAE,MAAM,2BAA2B,CAAC;AAEnE,MAAM,iBAAiB,GAAG,mCAAmC,CAAC;AAC9D,MAAM,YAAY,GAA2B;IAC3C,KAAK,EAAE,yBAAyB;IAChC,MAAM,EAAE,iBAAiB;IACzB,UAAU,EAAE,yBAAyB;IACrC,OAAO,EAAE,yBAAyB;IAClC,YAAY,EAAE,KAAK;IACnB,MAAM,EAAE,iBAAiB;IACzB,KAAK,EAAE,KAAK;IACZ,kBAAkB,EAAE,yBAAyB;IAC7C,IAAI,EAAE,iBAAiB;IACvB,QAAQ,EAAE,KAAK;IACf,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,iBAAiB;CAC/B,CAAC;AAEF,SAAS,sBAAsB,CAAC,YAAsB;IACpD,IAAI,YAAY,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IAE3C,MAAM,QAAQ,GAAG,YAAY;SAC1B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,IAAI,YAAY,CAAC;SAChC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;QACT,MAAM,OAAO,GAAG,YAAY,CAAC,CAAC,CAAC,CAAC;QAChC,MAAM,WAAW,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;QACzC,OAAO,UAAU,WAAW,SAAS,OAAO,EAAE,CAAC;IACjD,CAAC,CAAC,CAAC;IAEL,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,IAAI,CAAC;IACvC,OAAO,GAAG,iBAAiB,IAAI,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC;AACnE,CAAC;AAcD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,SAAS,YAAY,CAAC,QAA2B;IAC/C,OAAO,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;QACjC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;YAC1B,OAAO,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,CAAC,CAAC,SAAS,GAAG,CAAC,CAAC,SAAS,CAAC;IACnC,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,yBAAyB,CACvC,QAA2B,EAC3B,UAA4B,EAC5B,YAAqB;IAErB,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAC9C,MAAM,aAAa,GAAG,cAAc,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAEvF,kDAAkD;IAClD,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IACpC,KAAK,MAAM,EAAE,IAAI,cAAc,EAAE,CAAC;QAChC,IAAI,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,UAAU,EAAE,CAAC;YACvC,SAAS,CAAC,GAAG,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;QAC/B,CAAC;IACH,CAAC;IACD,sCAAsC;IACtC,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IACvB,MAAM,cAAc,GAAG,sBAAsB,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC;IAE9D,MAAM,eAAe,GAAG,cAAc;QACpC,CAAC,CAAC;;qCAE+B,cAAc,qBAAqB;QACpE,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,GAAG,WAAW;sCACM,KAAK,eAAe,MAAM;0BACtC,qBAAqB;EAC7C,aAAa,EAAE,CAAC,IAAI,EAAE,CAAC;IAEvB,MAAM,SAAS,GAAG,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IAElE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,qBAAqB,CAAC,OAAwB;IACrD,MAAM,UAAU,GAAG,qBAAqB,CAAC;IAEzC,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,EAAE,CAAC;QACxC,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,GAAG,CAAC;QAC7C,MAAM,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,OAAO,CAAC;QACjD,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,IAAI,OAAO,CAAC;QACvC,MAAM,UAAU,GACd,OAAO,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,CAAC,2CAA2C,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,yCAAyC;QACzC,MAAM,WAAW,GAAG,OAAO,CAAC,WAAW;YACrC,CAAC,CAAC,wBAAwB,OAAO,CAAC,gBAAgB,IAAI,CAAC,MACnD,OAAO,CAAC,gBAAgB,IAAI,SAC9B,6BAA6B;YAC/B,CAAC,CAAC,EAAE,CAAC;QAEP,kCAAkC;QAClC,MAAM,aAAa,GAAG,OAAO,CAAC,aAAa;YACzC,CAAC,CAAC,qBAAqB,OAAO,CAAC,kBAAkB,IAAI,QAAQ,cAAc,OAAO,CAAC,oBAAoB,IAAI,CAAC,MACxG,CAAC,OAAO,CAAC,oBAAoB,IAAI,CAAC,CAAC,GAAG,GACxC,sBACE,OAAO,CAAC,mBAAmB,IAAI,CACjC,uEAAuE;YACzE,CAAC,CAAC,EAAE,CAAC;QAEP,OAAO,QAAQ,OAAO,CAAC,EAAE,MAAM,UAAU;OACtC,OAAO,CAAC,EAAE,0BAA0B,UAAU,6BAA6B,QAAQ,oBAAoB,UAAU,YAAY,KAAK,KAAK,UAAU,IAAI,WAAW,IAAI,aAAa,mFAAmF,CAAC;IAC1Q,CAAC;IAED,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,uEAAuE;YACvE,OAAO,QAAQ,OAAO,CAAC,EAAE,MAAM,UAAU,qFAAqF,CAAC;QACjI,KAAK,OAAO;YACV,uDAAuD;YACvD,OAAO,QAAQ,OAAO,CAAC,EAAE,MAAM,UAAU,wEAAwE,CAAC;QACpH,KAAK,OAAO;YACV,OAAO,QAAQ,OAAO,CAAC,EAAE,MAAM,UAAU,IAAI,CAAC;QAChD,KAAK,aAAa;YAChB,6DAA6D;YAC7D,OAAO,QAAQ,OAAO,CAAC,EAAE,MAAM,UAAU,mDAAmD,CAAC;IACjG,CAAC;AACH,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAA2B,EAC3B,aAAqB,EACrB,UAA4B,EAAE;IAE9B,MAAM,EACJ,UAAU,EACV,yBAAyB,GAAG,IAAI,EAChC,UAAU,GAAG,WAAW,EACxB,SAAS,EACT,kBAAkB,GACnB,GAAG,OAAO,CAAC;IAEZ,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAEzF,uCAAuC;IACvC,IAAI,kBAAkB,GAAoB,EAAE,CAAC;IAC7C,IAAI,SAAS,EAAE,CAAC;QACd,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;YACrC,MAAM,gBAAgB,GAAG,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAC/C,IAAI,gBAAgB,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpD,MAAM,SAAS,GACb,cAAc,CAAC,OAAO,CAAC,IAAI,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBACtF,MAAM,SAAS,GAAG,yBAAyB,CACzC,OAAO,CAAC,EAAE,EACV,gBAAgB,EAChB,OAAO,CAAC,SAAS,EACjB;oBACE,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;oBACjB,CAAC,EAAE,OAAO,CAAC,CAAC,IAAI,CAAC;oBACjB,KAAK,EAAE,SAAS;iBACjB,CACF,CAAC;gBACF,kBAAkB,GAAG,kBAAkB,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC;IAED,0CAA0C;IAC1C,MAAM,cAAc,GAAG,0BAA0B,CAAC,kBAAkB,IAAI,EAAE,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;IAE3F,+DAA+D;IAC/D,0DAA0D;IAC1D,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;IAEnF,gEAAgE;IAChE,iFAAiF;IACjF,MAAM,oBAAoB,GAAG,6CAA6C,CACxE,cAAc,EACd,SAAS,CACV,CAAC;IAEF,IAAI,UAAkB,CAAC;IACvB,IAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxC,qDAAqD;QACrD,MAAM,aAAa,GAAG,CAAC,GAAG,UAAU,EAAE,GAAG,kBAAkB,CAAC,CAAC;QAC7D,UAAU,GAAG,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE;YACxD,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;QACH,kGAAkG;QAClG,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;aAClE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,iBAAiB,EAAE,CAAC;YACtB,UAAU,GAAG,UAAU,CAAC,OAAO,CAC7B,6CAA6C,EAC7C,gDAAgD,iBAAiB,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,IAAI,GAAG,cAAc,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACzC,+BAA+B;QAC/B,UAAU,GAAG,uBAAuB,CAAC,kBAAkB,EAAE,IAAI,EAAE;YAC7D,gBAAgB,EAAE,QAAQ;SAC3B,CAAC,CAAC;QACH,kGAAkG;QAClG,MAAM,iBAAiB,GAAG,CAAC,mBAAmB,EAAE,oBAAoB,CAAC;aAClE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,IAAI,iBAAiB,EAAE,CAAC;YACtB,UAAU,GAAG,UAAU,CAAC,OAAO,CAC7B,6CAA6C,EAC7C,gDAAgD,iBAAiB,EAAE,CACpE,CAAC;QACJ,CAAC;QACD,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,IAAI,GAAG,cAAc,CAAC;QACtC,CAAC;IACH,CAAC;SAAM,IAAI,yBAAyB,EAAE,CAAC;QACrC,UAAU,GAAG,6BAA6B,CACxC,cAAc,EACd,aAAa,EACb,kBAAkB,EAClB,KAAK,EACL,MAAM,CACP,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,UAAU,GAAG;;EAEf,mBAAmB,CAAC,CAAC,CAAC,mBAAmB,GAAG,IAAI,CAAC,CAAC,CAAC,EAAE,6BAA6B,aAAa,IAAI,CAAC;KACjG,CAAC;QACF,yBAAyB;QACzB,IAAI,cAAc,EAAE,CAAC;YACnB,UAAU,IAAI,IAAI,GAAG,cAAc,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,uBAAuB,CACrC,QAA2B,EAC3B,aAAqB,EACrB,UAA4B,EAAE;IAE9B,MAAM,EACJ,UAAU,EACV,MAAM,EACN,yBAAyB,GAAG,IAAI,EAChC,UAAU,GAAG,WAAW,EACxB,aAAa,GAAG,QAAQ,IAAI,CAAC,GAAG,EAAE,EAAE,EACpC,SAAS,EACT,kBAAkB,EAClB,cAAc,GAAG,KAAK,EACtB,aAAa,GAAG,KAAK,GACtB,GAAG,OAAO,CAAC;IAEZ,iDAAiD;IACjD,MAAM,WAAW,GACf,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;QACtD,CAAC,CAAC,CAAC,CAAC;IAER,MAAM,kBAAkB,GACtB,QAAQ,CAAC,MAAM,GAAG,CAAC;QACjB,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,WAAW,CAAC;QAC3F,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;IAE3C,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,cAAc;SAChC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;SACxD,IAAI,CAAC,UAAU,CAAC,CAAC;IAEpB,MAAM,YAAY,GAAG,MAAM,IAAI,EAAE,CAAC;IAElC,6CAA6C;IAC7C,MAAM,iBAAiB,GACrB,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC;QACjD,CAAC,CAAC,yBAAyB,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;QACvF,CAAC,CAAC,EAAE,CAAC;IAET,IAAI,SAAS,GAAG,EAAE,CAAC;IACnB,IAAI,eAAe,GAAG,EAAE,CAAC;IACzB,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,yBAAyB,CAAC,cAAc,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QACnF,eAAe,GAAG,MAAM,CAAC,eAAe,CAAC;QACzC,SAAS,GAAG;YACV,MAAM,CAAC,OAAO;gBACZ,CAAC,CAAC;MACJ,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;WACpC;gBACH,CAAC,CAAC,EAAE;YACN,MAAM,CAAC,SAAS;gBACd,CAAC,CAAC;MACJ,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;WACtC;gBACH,CAAC,CAAC,EAAE;SACP;aACE,MAAM,CAAC,OAAO,CAAC;aACf,IAAI,CAAC,IAAI,CAAC,CAAC;IAChB,CAAC;IAED,MAAM,UAAU,GAAG,cAAc;QAC/B,CAAC,CAAC,0BAA0B,CAAC,cAAc,EAAE,aAAa,EAAE;YACxD,UAAU;YACV,yBAAyB;YACzB,UAAU;YACV,SAAS;YACT,kBAAkB;SACnB,CAAC;QACJ,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,UAAU,GAAG,cAAc,CAAC,CAAC,CAAC,kBAAkB,QAAQ,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC;IAEjF,MAAM,aAAa,GAAG,cAAc;QAClC,CAAC,CAAC;EACJ,UAAU;YACA;QACR,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,gBAAgB,GAAG,YAAY;QACnC,CAAC,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG;QAChF,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,cAAc,GAAG,qBAAqB,UAAU,GAAG,CAAC;IAE1D,OAAO;6BACoB,aAAa,gCAAgC,kBAAkB,IAAI,cAAc,GAAG,gBAAgB;;;;IAI7H,eAAe;IACf,UAAU;EACZ,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE;;;;oCAIC,iBAAiB;QAC7C,YAAY;;;IAGhB,aAAa;;QAET,CAAC;AACT,CAAC;AAED,SAAS,sBAAsB,CAC7B,KAAa,EACb,MAAc,EACd,MAAc,EACd,WAAmB,EACnB,YAAoB;IAEpB,MAAM,OAAO,GAAG,WAAW,GAAG,CAAC,CAAC;IAChC,MAAM,OAAO,GAAG,YAAY,GAAG,CAAC,CAAC;IACjC,MAAM,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,MAAM,CAAC,GAAG,OAAO,GAAG,MAAM,GAAG,KAAK,CAAC;IACnC,OAAO,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC;AAClB,CAAC;AAED,SAAS,0BAA0B,CACjC,aAAkC,EAClC,WAAmB,EACnB,YAAoB;IAEpB,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,MAAM,eAAe,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;IAC3E,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,UAAU,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC;IAEhD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAChD,MAAM,EAAE,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;QAC9B,IAAI,CAAC,EAAE;YAAE,SAAS;QAClB,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,sBAAsB,CACrC,EAAE,CAAC,IAAI,CAAC,KAAK,EACb,EAAE,CAAC,IAAI,CAAC,MAAM,EACd,EAAE,CAAC,IAAI,CAAC,MAAM,EACd,WAAW,EACX,YAAY,CACb,CAAC;QAEF,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,UAAU,CAAC,IAAI,CACb,gDAAgD,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,IAAI,IAAI,CAClG,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM;gBAAE,SAAS;YACtB,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC;YACvC,MAAM,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,YAAY,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;YACnD,UAAU,CAAC,IAAI,CACb,+CAA+C,EAAE,CAAC,IAAI,CAAC,KAAK,QAAQ,CAAC,QAAQ,CAAC,eAAe,QAAQ,GAAG,IAAI,OAAO,MAAM,CAAC,IAAI,IAAI,CACnI,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED,SAAS,mBAAmB,CAAC,OAAwB,EAAE,SAAsB;IAC3E,MAAM,SAAS,GAAG;QAChB,OAAO,OAAO,CAAC,EAAE,GAAG;QACpB,eAAe,OAAO,CAAC,EAAE,GAAG;QAC5B,GAAG,sBAAsB,CAAC,KAAK,KAAK,OAAO,CAAC,SAAS,GAAG;QACxD,GAAG,sBAAsB,CAAC,QAAQ,KAAK,OAAO,CAAC,QAAQ,GAAG;QAC1D,GAAG,sBAAsB,CAAC,UAAU,KAAK,OAAO,CAAC,MAAM,GAAG;QAC1D,cAAc,OAAO,CAAC,IAAI,GAAG;KAC9B,CAAC;IAEF,uEAAuE;IACvE,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,CAAC,KAAK,SAAS,IAAI,OAAO,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QAC/C,SAAS,CAAC,IAAI,CAAC,WAAW,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,CAAC,EAAE,CAAC;QACvD,SAAS,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,OAAO,KAAK,SAAS,IAAI,OAAO,CAAC,OAAO,KAAK,CAAC,EAAE,CAAC;QAC3D,SAAS,CAAC,IAAI,CAAC,iBAAiB,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC;IACtD,CAAC;IAED,mDAAmD;IACnD,IAAI,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtC,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QACzC,SAAS,CAAC,IAAI,CAAC,mBAAmB,MAAM,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,aAAa,CAAC,OAAO,CAAC,EAAE,CAAC;QAC3B,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,EAAE,kBAAkB,CAAC,CAAC;QACrD,IAAI,OAAO,CAAC,KAAK,EAAE,CAAC;YAClB,SAAS,CAAC,IAAI,CAAC,eAAe,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC;QAClD,CAAC;QACD,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACrB,SAAS,CAAC,IAAI,CAAC,mBAAmB,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAC;QACzD,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;YACvB,SAAS,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,UAAU,GAAG,CAAC,CAAC;QAC7D,CAAC;QACD,IAAI,OAAO,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC;YACjC,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;QAC7C,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,SAAS,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;YAC3C,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1E,CAAC;YACD,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC7B,SAAS,CAAC,IAAI,CAAC,4BAA4B,OAAO,CAAC,gBAAgB,GAAG,CAAC,CAAC;YAC1E,CAAC;QACH,CAAC;QACD,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;YAC1B,SAAS,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC7C,IAAI,OAAO,CAAC,kBAAkB,EAAE,CAAC;gBAC/B,SAAS,CAAC,IAAI,CAAC,8BAA8B,OAAO,CAAC,kBAAkB,GAAG,CAAC,CAAC;YAC9E,CAAC;YACD,IAAI,OAAO,CAAC,oBAAoB,EAAE,CAAC;gBACjC,SAAS,CAAC,IAAI,CAAC,gCAAgC,OAAO,CAAC,oBAAoB,GAAG,CAAC,CAAC;YAClF,CAAC;YACD,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;gBAChC,SAAS,CAAC,IAAI,CAAC,+BAA+B,OAAO,CAAC,mBAAmB,GAAG,CAAC,CAAC;YAChF,CAAC;QACH,CAAC;QACD,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;QAChD,OAAO,QAAQ,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,OAAO,cAAc,CAAC;IACnE,CAAC;IAED,IAAI,oBAAoB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClC,MAAM,gBAAgB,GAAG;YACvB,GAAG,SAAS;YACZ,yBAAyB;YACzB,wBAAwB,OAAO,CAAC,aAAa,GAAG;SACjD,CAAC;QACF,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,gBAAgB,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QAC5E,CAAC;QACD,IAAI,OAAO,CAAC,WAAW,EAAE,CAAC;YACxB,gBAAgB,CAAC,IAAI,CAAC,sBAAsB,OAAO,CAAC,WAAW,GAAG,CAAC,CAAC;QACtE,CAAC;QACD,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;YACzB,gBAAgB,CAAC,IAAI,CAAC,uBAAuB,OAAO,CAAC,YAAY,GAAG,CAAC,CAAC;QACxE,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;YACvD,gBAAgB,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;QACpF,CAAC;QACD,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACzC,mEAAmE;QACnE,6DAA6D;QAC7D,IAAI,SAAS,GAAG,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,OAAO,CAAC,cAAc,IAAI,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC7E,MAAM,MAAM,GAAG,IAAI,eAAe,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;gBAClE,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACjC,CAAC;YACD,SAAS,GAAG,GAAG,SAAS,IAAI,MAAM,CAAC,QAAQ,EAAE,EAAE,CAAC;QAClD,CAAC;QACD,mEAAmE;QACnE,8DAA8D;QAC9D,4DAA4D;QAC5D,OAAO,QAAQ,KAAK;qBACH,SAAS;;WAEnB,CAAC;IACV,CAAC;IAED,IAAI,cAAc,CAAC,OAAO,CAAC,EAAE,CAAC;QAC5B,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,qBAAqB,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QACjE,CAAC;QACD,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC;YAC3B,SAAS,CAAC,IAAI,CAAC,yBAAyB,OAAO,CAAC,cAAc,GAAG,CAAC,CAAC;QACrE,CAAC;QACD,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACtC,CAAC;QACD,IAAI,OAAO,CAAC,MAAM,KAAK,SAAS,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzD,SAAS,CAAC,IAAI,CAAC,gBAAgB,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,OAAO,CAAC,IAAI,KAAK,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjD,SAAS,CAAC,IAAI,CAAC,uBAAuB,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC;IAED,MAAM,KAAK,GAAG,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAElC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;QACrB,KAAK,OAAO;YACV,OAAO,UAAU,KAAK,SAAS,OAAO,CAAC,GAAG,wBAAwB,CAAC;QACrE,KAAK,OAAO;YACV,OAAO,QAAQ,KAAK,SAAS,OAAO,CAAC,GAAG,UAAU,OAAO,CAAC,IAAI,MAAM,CAAC;QACvE,KAAK,OAAO;YACV,OAAO,UAAU,KAAK,SAAS,OAAO,CAAC,GAAG,YAAY,CAAC;QACzD;YACE,OAAO,EAAE,CAAC;IACd,CAAC;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAS,2BAA2B,CAClC,QAA2B,EAC3B,SAAsC;IAEtC,MAAM,IAAI,GAAa,EAAE,CAAC;IAC1B,MAAM,WAAW,GAAG,KAAK,CAAC;IAE1B,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,eAAe,GAAG,gBAAgB,EAAE,IAAI,CAC5C,CAAC,EAAE,EAAE,EAAE,CACL,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,WAAW;YAChC,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,SAAS;gBAC5B,EAAE,CAAC,UAAU,CAAC,CAAC,KAAK,SAAS;gBAC7B,EAAE,CAAC,UAAU,CAAC,KAAK,KAAK,SAAS,CAAC,CACvC,CAAC;QAEF,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,IAAI,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;QACvB,MAAM,QAAQ,GAAG,cAAc,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAE1D,wCAAwC;QACxC,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO;YAAE,SAAS;QAElC,iEAAiE;QACjE,2EAA2E;QAC3E,IAAI,oBAAoB,CAAC,EAAE,CAAC;YAAE,SAAS;QAEvC,mEAAmE;QACnE,IAAI,eAAe,EAAE,CAAC;YACpB,SAAS;QACX,CAAC;QAED,oEAAoE;QACpE,IAAI,QAAQ,KAAK,CAAC,EAAE,CAAC;YACnB,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,WAAW,IAAI,QAAQ,IAAI,YAAY,QAAQ,SAAS,CAAC,CAAC;QAC3F,CAAC;aAAM,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;YACpC,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,WAAW,IAAI,QAAQ,IAAI,SAAS,CAAC,CAAC;QACvE,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,6CAA6C,CACpD,QAA2B,EAC3B,SAAsC;IAEtC,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,gBAAgB,GAAG,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC5C,MAAM,gBAAgB,GACpB,gBAAgB,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,UAAU,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QAC9E,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC;QAEvC,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClD,UAAU,CAAC,IAAI,CAAC,UAAU,QAAQ,eAAe,CAAC,CAAC;QACnD,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;QAEzE,IAAI,cAAc,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC;QACrC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAChC,MAAM,oBAAoB,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;YACtF,IAAI,oBAAoB,EAAE,UAAU,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;gBAC3D,cAAc,GAAG,oBAAoB,CAAC,UAAU,CAAC,OAAO,CAAC;YAC3D,CAAC;QACH,CAAC;QACD,qFAAqF;QACrF,MAAM,YAAY,GAAG,cAAc,KAAK,CAAC,IAAI,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC;QACzE,IAAI,YAAY,EAAE,CAAC;YACjB,UAAU,CAAC,IAAI,CACb,gBAAgB,EAAE,CAAC,EAAE,wCAAwC,cAAc,OAAO,KAAK,IAAI,CAC5F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,iCAAiC,KAAK,IAAI,CAAC,CAAC;QACnF,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AAC5D,CAAC;AAED,SAAS,6BAA6B,CACpC,QAA2B,EAC3B,aAAqB,EACrB,kBAAwC,EACxC,WAAoB,EACpB,YAAqB;IAErB,IAAI,QAAQ,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE,CAAC;QACtF,OAAO;;4BAEiB,aAAa,IAAI,CAAC;KACzC,CAAC;IACJ,CAAC;IAED,MAAM,UAAU,GAAa,EAAE,CAAC;IAEhC,iFAAiF;IACjF,MAAM,mBAAmB,GAAG,2BAA2B,CAAC,QAAQ,CAAC,CAAC;IAClE,IAAI,mBAAmB,EAAE,CAAC;QACxB,UAAU,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,MAAM,EAAE,IAAI,QAAQ,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC;QAC3B,MAAM,GAAG,GAAG,EAAE,CAAC,SAAS,GAAG,EAAE,CAAC,QAAQ,CAAC;QAEvC,MAAM,QAAQ,GAAG,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAClD,MAAM,cAAc,GAAG,EAAE,CAAC,OAAO,IAAI,CAAC,CAAC;QACvC,UAAU,CAAC,IAAI,CAAC,UAAU,QAAQ,EAAE,CAAC,CAAC;QACtC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,kCAAkC,CAAC,CAAC;QACzE,sCAAsC;QACtC,IAAI,cAAc,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CACb,gBAAgB,EAAE,CAAC,EAAE,wCAAwC,cAAc,OAAO,KAAK,IAAI,CAC5F,CAAC;QACJ,CAAC;aAAM,CAAC;YACN,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,iCAAiC,KAAK,IAAI,CAAC,CAAC;QACnF,CAAC;QACD,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC,EAAE,gCAAgC,GAAG,IAAI,CAAC,CAAC;IAChF,CAAC;IAED,MAAM,aAAa,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,KAAK,OAAO,IAAI,EAAE,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC;IAC1F,MAAM,SAAS,GACb,aAAa,CAAC,MAAM,GAAG,CAAC;QACtB,CAAC,CAAC;;;;;;;;;;;;;;;;;;;QAmBA;QACF,CAAC,CAAC,EAAE,CAAC;IAET,sCAAsC;IACtC,MAAM,cAAc,GAClB,kBAAkB,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,IAAI,WAAW,IAAI,YAAY;QAChF,CAAC,CAAC,IAAI,GAAG,0BAA0B,CAAC,kBAAkB,EAAE,WAAW,EAAE,YAAY,CAAC;QAClF,CAAC,CAAC,EAAE,CAAC;IAET,OAAO;;EAEP,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;MACjB,SAAS,GAAG,cAAc;GAC7B,CAAC;AACJ,CAAC"}
|
|
1
|
+
{"version":3,"file":"hyperframes.js","sourceRoot":"","sources":["../../src/generators/hyperframes.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richTextHtml.d.ts","sourceRoot":"","sources":["../../src/generators/richTextHtml.ts"],"names":[],"mappings":"AAWA,qFAAqF;AACrF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CA8BpD"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { parseHTML } from "linkedom";
|
|
2
|
+
import { sanitizeRichTextChildren } from "../utils/richTextSanitize.js";
|
|
3
|
+
function escape(value) {
|
|
4
|
+
return value
|
|
5
|
+
.replace(/&/g, "&")
|
|
6
|
+
.replace(/</g, "<")
|
|
7
|
+
.replace(/>/g, ">")
|
|
8
|
+
.replace(/"/g, """);
|
|
9
|
+
}
|
|
10
|
+
/** Preserve the existing inline-formatting contract, with one safe serialization. */
|
|
11
|
+
export function richTextHtml(content) {
|
|
12
|
+
const { document } = parseHTML("<html><body></body></html>");
|
|
13
|
+
const host = document.createElement("div");
|
|
14
|
+
host.innerHTML = content;
|
|
15
|
+
sanitizeRichTextChildren(host);
|
|
16
|
+
// Linkedom does not re-escape entity-looking ampersands in attributes.
|
|
17
|
+
// Serialize the sanitized tree explicitly so a browser parse preserves values.
|
|
18
|
+
const result = [];
|
|
19
|
+
const pending = Array.from(host.childNodes).reverse();
|
|
20
|
+
for (let node = pending.pop(); node !== undefined; node = pending.pop()) {
|
|
21
|
+
if (typeof node === "string") {
|
|
22
|
+
result.push(node);
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (node.nodeType === 3) {
|
|
26
|
+
result.push(escape(node.textContent ?? ""));
|
|
27
|
+
continue;
|
|
28
|
+
}
|
|
29
|
+
if (node.nodeType !== 1)
|
|
30
|
+
continue;
|
|
31
|
+
const element = node;
|
|
32
|
+
const tag = element.tagName.toLowerCase();
|
|
33
|
+
const attrs = Array.from(element.attributes, (attr) => ` ${attr.name}="${escape(attr.value)}"`).join("");
|
|
34
|
+
result.push(`<${tag}${attrs}>`);
|
|
35
|
+
if (tag === "br")
|
|
36
|
+
continue;
|
|
37
|
+
pending.push(`</${tag}>`, ...Array.from(element.childNodes).reverse());
|
|
38
|
+
}
|
|
39
|
+
return result.join("");
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=richTextHtml.js.map
|