netra-artifacts 0.1.0-alpha.5 → 0.1.0-alpha.7
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 +16 -0
- package/README.md +8 -6
- package/dist/constants/defaults.d.ts.map +1 -1
- package/dist/constants/defaults.js +2 -0
- package/dist/constants/defaults.js.map +1 -1
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.d.ts.map +1 -1
- package/dist/constants/index.js +1 -0
- package/dist/constants/index.js.map +1 -1
- package/dist/constants/sandbox.d.ts +4 -6
- package/dist/constants/sandbox.d.ts.map +1 -1
- package/dist/constants/sandbox.js +3 -6
- package/dist/constants/sandbox.js.map +1 -1
- package/dist/constants/trustedCdnHosts.d.ts +27 -0
- package/dist/constants/trustedCdnHosts.d.ts.map +1 -0
- package/dist/constants/trustedCdnHosts.js +58 -0
- package/dist/constants/trustedCdnHosts.js.map +1 -0
- package/dist/iframe/HtmlArtifactPreview.d.ts.map +1 -1
- package/dist/iframe/HtmlArtifactPreview.js +24 -7
- package/dist/iframe/HtmlArtifactPreview.js.map +1 -1
- package/dist/iframe/iframeSizing.d.ts +2 -1
- package/dist/iframe/iframeSizing.d.ts.map +1 -1
- package/dist/iframe/iframeSizing.js +21 -1
- package/dist/iframe/iframeSizing.js.map +1 -1
- package/dist/iframe/iframeSrcDoc.d.ts +10 -4
- package/dist/iframe/iframeSrcDoc.d.ts.map +1 -1
- package/dist/iframe/iframeSrcDoc.js +92 -13
- package/dist/iframe/iframeSrcDoc.js.map +1 -1
- package/dist/prompts/htmlArtifactPrompt.d.ts +7 -0
- package/dist/prompts/htmlArtifactPrompt.d.ts.map +1 -1
- package/dist/prompts/htmlArtifactPrompt.js +67 -19
- package/dist/prompts/htmlArtifactPrompt.js.map +1 -1
- package/dist/prompts/index.d.ts +1 -0
- package/dist/prompts/index.d.ts.map +1 -1
- package/dist/prompts/index.js +1 -0
- package/dist/prompts/index.js.map +1 -1
- package/dist/prompts/threejsGamePrompt.d.ts +14 -0
- package/dist/prompts/threejsGamePrompt.d.ts.map +1 -0
- package/dist/prompts/threejsGamePrompt.js +157 -0
- package/dist/prompts/threejsGamePrompt.js.map +1 -0
- package/dist/sanitizer/dangerousPatterns.d.ts +2 -1
- package/dist/sanitizer/dangerousPatterns.d.ts.map +1 -1
- package/dist/sanitizer/dangerousPatterns.js +2 -1
- package/dist/sanitizer/dangerousPatterns.js.map +1 -1
- package/dist/sanitizer/sanitizeConfig.d.ts.map +1 -1
- package/dist/sanitizer/sanitizeConfig.js +1 -4
- package/dist/sanitizer/sanitizeConfig.js.map +1 -1
- package/dist/sanitizer/sanitizeHtml.d.ts.map +1 -1
- package/dist/sanitizer/sanitizeHtml.js +121 -2
- package/dist/sanitizer/sanitizeHtml.js.map +1 -1
- package/dist/server/config.d.ts.map +1 -1
- package/dist/server/config.js +9 -1
- package/dist/server/config.js.map +1 -1
- package/dist/server/createArtifactStreamResponse.js +2 -0
- package/dist/server/createArtifactStreamResponse.js.map +1 -1
- package/dist/stream/buffering.d.ts +1 -1
- package/dist/stream/buffering.d.ts.map +1 -1
- package/dist/stream/buffering.js +6 -1
- package/dist/stream/buffering.js.map +1 -1
- package/dist/stream/predictiveHtmlParser.d.ts.map +1 -1
- package/dist/stream/predictiveHtmlParser.js +13 -3
- package/dist/stream/predictiveHtmlParser.js.map +1 -1
- package/dist/types/client.d.ts +4 -2
- package/dist/types/client.d.ts.map +1 -1
- package/dist/types/config.d.ts +11 -3
- package/dist/types/config.d.ts.map +1 -1
- package/dist/types/server.d.ts +12 -1
- package/dist/types/server.d.ts.map +1 -1
- package/dist-cjs/constants/defaults.js +2 -0
- package/dist-cjs/constants/defaults.js.map +1 -1
- package/dist-cjs/constants/index.js +1 -0
- package/dist-cjs/constants/index.js.map +1 -1
- package/dist-cjs/constants/sandbox.js +3 -6
- package/dist-cjs/constants/sandbox.js.map +1 -1
- package/dist-cjs/constants/trustedCdnHosts.js +63 -0
- package/dist-cjs/constants/trustedCdnHosts.js.map +1 -0
- package/dist-cjs/iframe/HtmlArtifactPreview.js +24 -7
- package/dist-cjs/iframe/HtmlArtifactPreview.js.map +1 -1
- package/dist-cjs/iframe/iframeSizing.js +21 -1
- package/dist-cjs/iframe/iframeSizing.js.map +1 -1
- package/dist-cjs/iframe/iframeSrcDoc.js +91 -12
- package/dist-cjs/iframe/iframeSrcDoc.js.map +1 -1
- package/dist-cjs/prompts/htmlArtifactPrompt.js +67 -19
- package/dist-cjs/prompts/htmlArtifactPrompt.js.map +1 -1
- package/dist-cjs/prompts/index.js +1 -0
- package/dist-cjs/prompts/index.js.map +1 -1
- package/dist-cjs/prompts/threejsGamePrompt.js +161 -0
- package/dist-cjs/prompts/threejsGamePrompt.js.map +1 -0
- package/dist-cjs/sanitizer/dangerousPatterns.js +2 -1
- package/dist-cjs/sanitizer/dangerousPatterns.js.map +1 -1
- package/dist-cjs/sanitizer/sanitizeConfig.js +1 -4
- package/dist-cjs/sanitizer/sanitizeConfig.js.map +1 -1
- package/dist-cjs/sanitizer/sanitizeHtml.js +121 -2
- package/dist-cjs/sanitizer/sanitizeHtml.js.map +1 -1
- package/dist-cjs/server/config.js +9 -1
- package/dist-cjs/server/config.js.map +1 -1
- package/dist-cjs/server/createArtifactStreamResponse.js +2 -0
- package/dist-cjs/server/createArtifactStreamResponse.js.map +1 -1
- package/dist-cjs/stream/buffering.js +6 -1
- package/dist-cjs/stream/buffering.js.map +1 -1
- package/dist-cjs/stream/predictiveHtmlParser.js +13 -3
- package/dist-cjs/stream/predictiveHtmlParser.js.map +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -5,8 +5,24 @@ adheres to [Semantic Versioning](https://semver.org/).
|
|
|
5
5
|
|
|
6
6
|
## [Unreleased]
|
|
7
7
|
|
|
8
|
+
### Added
|
|
9
|
+
|
|
10
|
+
- **Single-file three.js games.** New `allowModuleImports` sanitize/preview flag
|
|
11
|
+
keeps a `<script type="importmap">` whose targets resolve to a trusted,
|
|
12
|
+
version-pinned ESM CDN (`esm.sh`, `cdn.jsdelivr.net`, `unpkg.com`,
|
|
13
|
+
`cdn.skypack.dev`), so a self-contained game can `import … from "three"` with
|
|
14
|
+
no build step. The game frame runs in the isolated `allow-scripts` sandbox
|
|
15
|
+
(no `allow-same-origin`) with a defense-in-depth CSP pinning script/connect to
|
|
16
|
+
those CDNs. New `game` server option switches the HTML prompt to a dedicated
|
|
17
|
+
three.js game builder (pinned import map + module + fixed-timestep loop) and
|
|
18
|
+
implies `allowModuleImports`. New `threejs-games` agent skill + single-file
|
|
19
|
+
setup guidance in `threejs-fundamentals`.
|
|
20
|
+
|
|
8
21
|
### Changed
|
|
9
22
|
|
|
23
|
+
- Trusted YouTube embeds and inline JavaScript are now explicit opt-ins. The
|
|
24
|
+
script-capable iframe sandbox omits `allow-same-origin`, and an internal
|
|
25
|
+
postMessage resize bridge keeps isolated video/script previews auto-sized.
|
|
10
26
|
- HTML-artifact prompt reworked to a **hybrid styling model**: one small shared
|
|
11
27
|
`<style>` design system (box-sizing reset + fluid `clamp()` type/space scale +
|
|
12
28
|
element defaults + `.wrap/.stack/.grid/.row/.card/.scroll-x` utility classes)
|
package/README.md
CHANGED
|
@@ -98,6 +98,7 @@ export async function POST(req: Request) {
|
|
|
98
98
|
allowStyleTags: true,
|
|
99
99
|
allowSvg: true,
|
|
100
100
|
allowExternalFonts: false,
|
|
101
|
+
allowVideoEmbeds: false,
|
|
101
102
|
},
|
|
102
103
|
snapshotIntervalMs: 0,
|
|
103
104
|
},
|
|
@@ -212,17 +213,18 @@ type ArtifactStreamEvent =
|
|
|
212
213
|
|
|
213
214
|
## Security
|
|
214
215
|
|
|
215
|
-
Artifacts are static HTML/CSS:
|
|
216
|
+
Artifacts are static HTML/CSS by default:
|
|
216
217
|
|
|
217
|
-
- Scripts are stripped
|
|
218
|
+
- Scripts are stripped unless `allowScripts` is explicitly enabled
|
|
218
219
|
- Event handler attributes are stripped
|
|
219
220
|
- Dangerous URLs are stripped
|
|
220
|
-
- Iframes, embeds, object tags, and refresh meta tags are stripped
|
|
221
|
-
-
|
|
221
|
+
- Iframes, embeds, object tags, and refresh meta tags are stripped unless `allowVideoEmbeds` keeps a normalized trusted YouTube iframe
|
|
222
|
+
- `<script type="importmap">` is stripped unless `allowModuleImports` is set, and then only mappings that resolve to a trusted, version-pinned ESM CDN survive — enabling single-file ESM games (e.g. three.js) with a defense-in-depth CSP on the frame
|
|
223
|
+
- The preview iframe receives `allow-scripts` only for opt-in inline scripts, trusted video embeds, or module-import games, and that script-capable path omits `allow-same-origin`
|
|
222
224
|
- `allowExternalFonts` only keeps approved Google Fonts hosts
|
|
223
225
|
|
|
224
|
-
Use Netra for safe previews of generated static HTML
|
|
225
|
-
|
|
226
|
+
Use Netra's default mode for safe previews of generated static HTML. Opt into
|
|
227
|
+
scripts only for artifacts you are comfortable executing in an isolated iframe.
|
|
226
228
|
|
|
227
229
|
## Checks
|
|
228
230
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/constants/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,iGACgE,CAAC;AAE/F,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,
|
|
1
|
+
{"version":3,"file":"defaults.d.ts","sourceRoot":"","sources":["../../src/constants/defaults.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC3B,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,2EAA2E;AAC3E,eAAO,MAAM,iBAAiB,iGACgE,CAAC;AAE/F,oDAAoD;AACpD,eAAO,MAAM,wBAAwB,EAAE,QAAQ,CAAC,eAAe,CAS9D,CAAC;AAEF,4CAA4C;AAC5C,eAAO,MAAM,uBAAuB,EAAE,QAAQ,CAAC,0BAA0B,CAiBxE,CAAC;AAEF,4EAA4E;AAC5E,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAE9C,8BAA8B;AAC9B,eAAO,MAAM,wBAAwB;;;;CAI3B,CAAC"}
|
|
@@ -10,6 +10,7 @@ export const DEFAULT_SANITIZE_OPTIONS = {
|
|
|
10
10
|
allowSvg: true,
|
|
11
11
|
allowExternalFonts: false,
|
|
12
12
|
allowVideoEmbeds: false,
|
|
13
|
+
allowModuleImports: false,
|
|
13
14
|
};
|
|
14
15
|
/** Preview defaults for the iframe card. */
|
|
15
16
|
export const DEFAULT_PREVIEW_OPTIONS = {
|
|
@@ -21,6 +22,7 @@ export const DEFAULT_PREVIEW_OPTIONS = {
|
|
|
21
22
|
allowSvg: true,
|
|
22
23
|
allowExternalFonts: false,
|
|
23
24
|
allowVideoEmbeds: false,
|
|
25
|
+
allowModuleImports: false,
|
|
24
26
|
sanitize: true,
|
|
25
27
|
seamless: true,
|
|
26
28
|
minHeight: 420,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/constants/defaults.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,4FAA4F,CAAC;AAE/F,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,KAAK;
|
|
1
|
+
{"version":3,"file":"defaults.js","sourceRoot":"","sources":["../../src/constants/defaults.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,iBAAiB,GAC5B,4FAA4F,CAAC;AAE/F,oDAAoD;AACpD,MAAM,CAAC,MAAM,wBAAwB,GAA8B;IACjE,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;CAC1B,CAAC;AAEF,4CAA4C;AAC5C,MAAM,CAAC,MAAM,uBAAuB,GAAyC;IAC3E,OAAO,EAAE,eAAe;IACxB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,IAAI;IACvB,cAAc,EAAE,IAAI;IACpB,QAAQ,EAAE,IAAI;IACd,kBAAkB,EAAE,KAAK;IACzB,gBAAgB,EAAE,KAAK;IACvB,kBAAkB,EAAE,KAAK;IACzB,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;IACd,SAAS,EAAE,GAAG;IACd,SAAS,EAAE,GAAG;IACd,UAAU,EAAE,IAAI;IAChB,UAAU,EAAE,EAAE;IACd,YAAY,EAAE,qBAAqB;CACpC,CAAC;AAEF,4EAA4E;AAC5E,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,8BAA8B;AAC9B,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,gBAAgB,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM;IAChB,UAAU,EAAE,MAAM;CACV,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
|
package/dist/constants/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/constants/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC"}
|
|
@@ -1,19 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Iframe sandbox tokens. `allow-scripts` is intentionally absent — generated
|
|
3
|
-
* artifacts are static HTML/CSS and must never execute JavaScript.
|
|
4
|
-
*/
|
|
1
|
+
/** Iframe sandbox tokens used by the preview. Scripts are opt-in only. */
|
|
5
2
|
export declare const SANDBOX_TOKENS: {
|
|
6
3
|
readonly FORMS: "allow-forms";
|
|
7
4
|
readonly POPUPS: "allow-popups";
|
|
8
5
|
readonly SAME_ORIGIN: "allow-same-origin";
|
|
6
|
+
readonly SCRIPTS: "allow-scripts";
|
|
9
7
|
};
|
|
10
8
|
/**
|
|
11
9
|
* Default sandbox: forms + same-origin + popups, but NO scripts. `allow-same-origin`
|
|
12
10
|
* lets the parent measure the document so the iframe can auto-fit its content
|
|
13
11
|
* height (no inner scrollbar). It is only dangerous when combined with
|
|
14
|
-
* `allow-scripts
|
|
12
|
+
* `allow-scripts`, so the script-enabled sandbox path deliberately omits it.
|
|
15
13
|
*/
|
|
16
14
|
export declare const DEFAULT_SANDBOX: string;
|
|
17
15
|
/** Tokens that are forbidden regardless of configuration. */
|
|
18
|
-
export declare const FORBIDDEN_SANDBOX_TOKENS: readonly ["allow-
|
|
16
|
+
export declare const FORBIDDEN_SANDBOX_TOKENS: readonly ["allow-top-navigation", "allow-top-navigation-by-user-activation", "allow-modals"];
|
|
19
17
|
//# sourceMappingURL=sandbox.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/constants/sandbox.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sandbox.d.ts","sourceRoot":"","sources":["../../src/constants/sandbox.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,eAAO,MAAM,cAAc;;;;;CAKjB,CAAC;AAEX;;;;;GAKG;AACH,eAAO,MAAM,eAAe,QAAmF,CAAC;AAEhH,6DAA6D;AAC7D,eAAO,MAAM,wBAAwB,8FAI3B,CAAC"}
|
|
@@ -1,22 +1,19 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Iframe sandbox tokens. `allow-scripts` is intentionally absent — generated
|
|
3
|
-
* artifacts are static HTML/CSS and must never execute JavaScript.
|
|
4
|
-
*/
|
|
1
|
+
/** Iframe sandbox tokens used by the preview. Scripts are opt-in only. */
|
|
5
2
|
export const SANDBOX_TOKENS = {
|
|
6
3
|
FORMS: "allow-forms",
|
|
7
4
|
POPUPS: "allow-popups",
|
|
8
5
|
SAME_ORIGIN: "allow-same-origin",
|
|
6
|
+
SCRIPTS: "allow-scripts",
|
|
9
7
|
};
|
|
10
8
|
/**
|
|
11
9
|
* Default sandbox: forms + same-origin + popups, but NO scripts. `allow-same-origin`
|
|
12
10
|
* lets the parent measure the document so the iframe can auto-fit its content
|
|
13
11
|
* height (no inner scrollbar). It is only dangerous when combined with
|
|
14
|
-
* `allow-scripts
|
|
12
|
+
* `allow-scripts`, so the script-enabled sandbox path deliberately omits it.
|
|
15
13
|
*/
|
|
16
14
|
export const DEFAULT_SANDBOX = `${SANDBOX_TOKENS.FORMS} ${SANDBOX_TOKENS.SAME_ORIGIN} ${SANDBOX_TOKENS.POPUPS}`;
|
|
17
15
|
/** Tokens that are forbidden regardless of configuration. */
|
|
18
16
|
export const FORBIDDEN_SANDBOX_TOKENS = [
|
|
19
|
-
"allow-scripts",
|
|
20
17
|
"allow-top-navigation",
|
|
21
18
|
"allow-top-navigation-by-user-activation",
|
|
22
19
|
"allow-modals",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/constants/sandbox.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"sandbox.js","sourceRoot":"","sources":["../../src/constants/sandbox.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,KAAK,EAAE,aAAa;IACpB,MAAM,EAAE,cAAc;IACtB,WAAW,EAAE,mBAAmB;IAChC,OAAO,EAAE,eAAe;CAChB,CAAC;AAEX;;;;;GAKG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,GAAG,cAAc,CAAC,KAAK,IAAI,cAAc,CAAC,WAAW,IAAI,cAAc,CAAC,MAAM,EAAE,CAAC;AAEhH,6DAA6D;AAC7D,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACtC,sBAAsB;IACtB,yCAAyC;IACzC,cAAc;CACN,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist for ESM module URLs that may appear in a `<script type="importmap">`
|
|
3
|
+
* when `allowModuleImports` is enabled (single-file games, e.g. three.js).
|
|
4
|
+
*
|
|
5
|
+
* The sanitizer guarantees no arbitrary JavaScript can be loaded: an importmap
|
|
6
|
+
* only maps bare specifiers to URLs, and the inline module that consumes it can
|
|
7
|
+
* only `import` from those mapped URLs. So the security boundary is "which URLs
|
|
8
|
+
* may a mapping target." We require:
|
|
9
|
+
*
|
|
10
|
+
* 1. https only,
|
|
11
|
+
* 2. a known immutable ESM CDN host, and
|
|
12
|
+
* 3. a version-pinned path (so a mapping can't silently float to new code).
|
|
13
|
+
*
|
|
14
|
+
* This mirrors the deliberately-narrow allowlist approach already used for
|
|
15
|
+
* Google Fonts (`ALLOWED_FONT_LINK`) and trusted YouTube embeds.
|
|
16
|
+
*/
|
|
17
|
+
/** Immutable, versioned ESM CDN hosts. */
|
|
18
|
+
export declare const TRUSTED_MODULE_CDN_HOSTS: readonly string[];
|
|
19
|
+
/**
|
|
20
|
+
* True if `value` is an https URL on a trusted CDN host with a version-pinned
|
|
21
|
+
* package path. Accepts a bare specifier check too: callers pass fully-resolved
|
|
22
|
+
* URLs (importmap values), not bare names.
|
|
23
|
+
*/
|
|
24
|
+
export declare function isTrustedModuleUrl(value: string): boolean;
|
|
25
|
+
/** CSP source list (space-joined origins) for the trusted CDN hosts. */
|
|
26
|
+
export declare function trustedModuleCdnOrigins(): string;
|
|
27
|
+
//# sourceMappingURL=trustedCdnHosts.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedCdnHosts.d.ts","sourceRoot":"","sources":["../../src/constants/trustedCdnHosts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0CAA0C;AAC1C,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAKrD,CAAC;AAYF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAYzD;AAED,wEAAwE;AACxE,wBAAgB,uBAAuB,IAAI,MAAM,CAEhD"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Allowlist for ESM module URLs that may appear in a `<script type="importmap">`
|
|
3
|
+
* when `allowModuleImports` is enabled (single-file games, e.g. three.js).
|
|
4
|
+
*
|
|
5
|
+
* The sanitizer guarantees no arbitrary JavaScript can be loaded: an importmap
|
|
6
|
+
* only maps bare specifiers to URLs, and the inline module that consumes it can
|
|
7
|
+
* only `import` from those mapped URLs. So the security boundary is "which URLs
|
|
8
|
+
* may a mapping target." We require:
|
|
9
|
+
*
|
|
10
|
+
* 1. https only,
|
|
11
|
+
* 2. a known immutable ESM CDN host, and
|
|
12
|
+
* 3. a version-pinned path (so a mapping can't silently float to new code).
|
|
13
|
+
*
|
|
14
|
+
* This mirrors the deliberately-narrow allowlist approach already used for
|
|
15
|
+
* Google Fonts (`ALLOWED_FONT_LINK`) and trusted YouTube embeds.
|
|
16
|
+
*/
|
|
17
|
+
/** Immutable, versioned ESM CDN hosts. */
|
|
18
|
+
export const TRUSTED_MODULE_CDN_HOSTS = [
|
|
19
|
+
"esm.sh",
|
|
20
|
+
"cdn.jsdelivr.net",
|
|
21
|
+
"unpkg.com",
|
|
22
|
+
"cdn.skypack.dev",
|
|
23
|
+
];
|
|
24
|
+
/**
|
|
25
|
+
* A path is "pinned" when it carries an explicit version. We accept the common
|
|
26
|
+
* forms used by these CDNs:
|
|
27
|
+
* - `…/three@0.160.0/…` (esm.sh, unpkg, skypack)
|
|
28
|
+
* - `…/npm/three@0.160.0/…` (jsDelivr npm)
|
|
29
|
+
* - `…/three@0.160.0` (bare package, no subpath)
|
|
30
|
+
* A leading `v` on the version (skypack's `three@v0.160.0`) is allowed.
|
|
31
|
+
*/
|
|
32
|
+
const PINNED_PACKAGE = /[@/][a-z0-9._-]+@v?\d+(?:\.\d+){0,2}(?:[-+][a-z0-9.-]+)?(?:\/|$)/i;
|
|
33
|
+
/**
|
|
34
|
+
* True if `value` is an https URL on a trusted CDN host with a version-pinned
|
|
35
|
+
* package path. Accepts a bare specifier check too: callers pass fully-resolved
|
|
36
|
+
* URLs (importmap values), not bare names.
|
|
37
|
+
*/
|
|
38
|
+
export function isTrustedModuleUrl(value) {
|
|
39
|
+
let url;
|
|
40
|
+
try {
|
|
41
|
+
url = new URL(value.trim());
|
|
42
|
+
}
|
|
43
|
+
catch {
|
|
44
|
+
return false;
|
|
45
|
+
}
|
|
46
|
+
if (url.protocol !== "https:")
|
|
47
|
+
return false;
|
|
48
|
+
const host = url.hostname.toLowerCase().replace(/^www\./, "");
|
|
49
|
+
if (!TRUSTED_MODULE_CDN_HOSTS.includes(host))
|
|
50
|
+
return false;
|
|
51
|
+
// The path must pin a version somewhere (package@version).
|
|
52
|
+
return PINNED_PACKAGE.test(url.pathname);
|
|
53
|
+
}
|
|
54
|
+
/** CSP source list (space-joined origins) for the trusted CDN hosts. */
|
|
55
|
+
export function trustedModuleCdnOrigins() {
|
|
56
|
+
return TRUSTED_MODULE_CDN_HOSTS.map((h) => `https://${h}`).join(" ");
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=trustedCdnHosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trustedCdnHosts.js","sourceRoot":"","sources":["../../src/constants/trustedCdnHosts.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,0CAA0C;AAC1C,MAAM,CAAC,MAAM,wBAAwB,GAAsB;IACzD,QAAQ;IACR,kBAAkB;IAClB,WAAW;IACX,iBAAiB;CAClB,CAAC;AAEF;;;;;;;GAOG;AACH,MAAM,cAAc,GAAG,mEAAmE,CAAC;AAE3F;;;;GAIG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAAa;IAC9C,IAAI,GAAQ,CAAC;IACb,IAAI,CAAC;QACH,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC;IAC9B,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,GAAG,CAAC,QAAQ,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC;IAC9D,IAAI,CAAC,wBAAwB,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,KAAK,CAAC;IAC3D,2DAA2D;IAC3D,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC3C,CAAC;AAED,wEAAwE;AACxE,MAAM,UAAU,uBAAuB;IACrC,OAAO,wBAAwB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACvE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactPreview.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,
|
|
1
|
+
{"version":3,"file":"HtmlArtifactPreview.d.ts","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AAGrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAE1D,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,0BAA0B,CAAC;IACrC,4EAA4E;IAC5E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,oFAAoF;IACpF,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,wBAAwB,2CA4OlE"}
|
|
@@ -41,14 +41,24 @@ export function HtmlArtifactPreview(props) {
|
|
|
41
41
|
}, [iframeRef, onLoad]);
|
|
42
42
|
// Commit a built document to the frame: patch the live DOM in place once the
|
|
43
43
|
// frame has loaded (no reload, no flash), else seed it via `srcDoc`.
|
|
44
|
-
const paint = React.useCallback((doc) => {
|
|
45
|
-
if (doc === lastDocRef.current)
|
|
44
|
+
const paint = React.useCallback((doc, forceReload = false) => {
|
|
45
|
+
if (doc === lastDocRef.current && !forceReload)
|
|
46
46
|
return;
|
|
47
47
|
lastDocRef.current = doc;
|
|
48
48
|
const iframe = iframeRef.current;
|
|
49
|
-
if (
|
|
49
|
+
if (forceReload) {
|
|
50
|
+
loadedRef.current = false;
|
|
51
|
+
cleanupNavigationRef.current?.();
|
|
52
|
+
cleanupNavigationRef.current = null;
|
|
53
|
+
setSrcDoc(doc);
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (loadedRef.current && iframe) {
|
|
50
57
|
try {
|
|
51
|
-
|
|
58
|
+
const target = iframe.contentDocument;
|
|
59
|
+
if (!target)
|
|
60
|
+
throw new Error("iframe document unavailable");
|
|
61
|
+
patchIframeDocument(target, doc);
|
|
52
62
|
measure();
|
|
53
63
|
return;
|
|
54
64
|
}
|
|
@@ -77,11 +87,12 @@ export function HtmlArtifactPreview(props) {
|
|
|
77
87
|
const doc = buildSrcDoc(finalHtml, {
|
|
78
88
|
sanitize: opts.sanitize,
|
|
79
89
|
seamless: true,
|
|
90
|
+
resizeBridge: opts.allowScripts || opts.allowVideoEmbeds || opts.allowModuleImports,
|
|
80
91
|
camouflage: bare,
|
|
81
92
|
theme,
|
|
82
93
|
sanitizeOptions: opts,
|
|
83
94
|
});
|
|
84
|
-
paint(doc);
|
|
95
|
+
paint(doc, !streaming && (opts.allowScripts || opts.allowModuleImports));
|
|
85
96
|
}, [paint, theme, bare]);
|
|
86
97
|
// Schedule a flush, throttled to at most once per `debounceMs` and aligned to
|
|
87
98
|
// an animation frame so rapid SSE deltas don't trigger a render storm.
|
|
@@ -131,7 +142,7 @@ export function HtmlArtifactPreview(props) {
|
|
|
131
142
|
cleanupNavigationRef.current?.();
|
|
132
143
|
cancelScheduled(schedRef.current);
|
|
133
144
|
}, []);
|
|
134
|
-
const sandbox = React.useMemo(() => resolveSandbox(opts), [opts]);
|
|
145
|
+
const sandbox = React.useMemo(() => resolveSandbox({ ...opts, sandbox: options?.sandbox }), [opts, options?.sandbox]);
|
|
135
146
|
// In bare/seamless mode the host surface shows through: no background, no
|
|
136
147
|
// skeleton box, no progress bar — just the transparent artifact inline.
|
|
137
148
|
const showSkeleton = !html && !errored && !bare;
|
|
@@ -180,7 +191,13 @@ function cancelScheduled(sched) {
|
|
|
180
191
|
sched.timer = null;
|
|
181
192
|
}
|
|
182
193
|
function attachIframeHashNavigation(iframe) {
|
|
183
|
-
|
|
194
|
+
let doc;
|
|
195
|
+
try {
|
|
196
|
+
doc = iframe?.contentDocument;
|
|
197
|
+
}
|
|
198
|
+
catch {
|
|
199
|
+
return () => { };
|
|
200
|
+
}
|
|
184
201
|
if (!iframe || !doc)
|
|
185
202
|
return () => { };
|
|
186
203
|
const onClick = (event) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"HtmlArtifactPreview.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"HtmlArtifactPreview.js","sourceRoot":"","sources":["../../src/iframe/HtmlArtifactPreview.tsx"],"names":[],"mappings":"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"}
|
|
@@ -7,7 +7,8 @@ export interface AutoSizeOptions {
|
|
|
7
7
|
* Auto-size an iframe to its full content height so the artifact never shows an
|
|
8
8
|
* inner scrollbar — the page provides the single scroll. This requires reading
|
|
9
9
|
* the framed document, which works when the sandbox includes `allow-same-origin`
|
|
10
|
-
* (the default
|
|
10
|
+
* (the default static path). Script-enabled previews are isolated without
|
|
11
|
+
* same-origin, so measurement gracefully falls back to the configured minimum.
|
|
11
12
|
*
|
|
12
13
|
* Measurement is resilient: it re-measures on load, on every content reflow
|
|
13
14
|
* (ResizeObserver), and after web fonts finish loading (which changes height).
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeSizing.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED
|
|
1
|
+
{"version":3,"file":"iframeSizing.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,GAAE,eAAoB;;;;;EAmF9D"}
|
|
@@ -3,7 +3,8 @@ import { useCallback, useEffect, useRef, useState } from "react";
|
|
|
3
3
|
* Auto-size an iframe to its full content height so the artifact never shows an
|
|
4
4
|
* inner scrollbar — the page provides the single scroll. This requires reading
|
|
5
5
|
* the framed document, which works when the sandbox includes `allow-same-origin`
|
|
6
|
-
* (the default
|
|
6
|
+
* (the default static path). Script-enabled previews are isolated without
|
|
7
|
+
* same-origin, so measurement gracefully falls back to the configured minimum.
|
|
7
8
|
*
|
|
8
9
|
* Measurement is resilient: it re-measures on load, on every content reflow
|
|
9
10
|
* (ResizeObserver), and after web fonts finish loading (which changes height).
|
|
@@ -66,6 +67,25 @@ export function useIframeAutoSize(options = {}) {
|
|
|
66
67
|
clearTimeout(t2);
|
|
67
68
|
};
|
|
68
69
|
}, [measure]);
|
|
70
|
+
useEffect(() => {
|
|
71
|
+
if (!enabled || typeof window === "undefined")
|
|
72
|
+
return;
|
|
73
|
+
const onMessage = (event) => {
|
|
74
|
+
const iframe = ref.current;
|
|
75
|
+
if (!iframe || event.source !== iframe.contentWindow)
|
|
76
|
+
return;
|
|
77
|
+
const data = event.data;
|
|
78
|
+
if (!data || data.type !== "netra-artifact:resize")
|
|
79
|
+
return;
|
|
80
|
+
const measured = Number(data.height);
|
|
81
|
+
if (!Number.isFinite(measured) || measured <= 0)
|
|
82
|
+
return;
|
|
83
|
+
const clamped = Math.min(Math.max(Math.ceil(measured), minHeight), maxHeight);
|
|
84
|
+
setHeight((prev) => (Math.abs(prev - clamped) > 1 ? clamped : prev));
|
|
85
|
+
};
|
|
86
|
+
window.addEventListener("message", onMessage);
|
|
87
|
+
return () => window.removeEventListener("message", onMessage);
|
|
88
|
+
}, [enabled, minHeight, maxHeight]);
|
|
69
89
|
useEffect(() => {
|
|
70
90
|
return () => observerRef.current?.disconnect();
|
|
71
91
|
}, []);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeSizing.js","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAQjE
|
|
1
|
+
{"version":3,"file":"iframeSizing.js","sourceRoot":"","sources":["../../src/iframe/iframeSizing.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,11 +10,13 @@ export declare function themeToCss(theme: ArtifactTheme): string;
|
|
|
10
10
|
export interface BuildSrcDocOptions {
|
|
11
11
|
sanitize?: boolean;
|
|
12
12
|
seamless?: boolean;
|
|
13
|
+
/** Inject a postMessage auto-resize bridge for isolated script-capable frames. */
|
|
14
|
+
resizeBridge?: boolean;
|
|
13
15
|
/** Force the document + any single full-page wrapper transparent (camouflage). */
|
|
14
16
|
camouflage?: boolean;
|
|
15
17
|
/** Host theme injected as CSS variables + base color/font into the iframe. */
|
|
16
18
|
theme?: ArtifactTheme;
|
|
17
|
-
sanitizeOptions?: Pick<HtmlArtifactPreviewOptions, "allowForms" | "allowInlineStyles" | "allowStyleTags" | "allowSvg" | "allowExternalFonts" | "allowVideoEmbeds">;
|
|
19
|
+
sanitizeOptions?: Pick<HtmlArtifactPreviewOptions, "allowForms" | "allowScripts" | "allowInlineStyles" | "allowStyleTags" | "allowSvg" | "allowExternalFonts" | "allowVideoEmbeds" | "allowModuleImports">;
|
|
18
20
|
}
|
|
19
21
|
/**
|
|
20
22
|
* Produce the final `srcDoc` string for the preview iframe: sanitized (by
|
|
@@ -23,12 +25,16 @@ export interface BuildSrcDocOptions {
|
|
|
23
25
|
*/
|
|
24
26
|
export declare function buildSrcDoc(rawHtml: string, options?: BuildSrcDocOptions): string;
|
|
25
27
|
/**
|
|
26
|
-
* Resolve the sandbox attribute. An explicit `sandbox` wins
|
|
27
|
-
*
|
|
28
|
-
*
|
|
28
|
+
* Resolve the sandbox attribute. An explicit `sandbox` wins, then still passes
|
|
29
|
+
* through the safety filter. When scripts or trusted video embeds need script
|
|
30
|
+
* execution, `allow-same-origin` is removed so generated code cannot run with
|
|
31
|
+
* the host page's origin.
|
|
29
32
|
*/
|
|
30
33
|
export declare function resolveSandbox(options: {
|
|
31
34
|
sandbox?: string;
|
|
32
35
|
allowForms?: boolean;
|
|
36
|
+
allowScripts?: boolean;
|
|
37
|
+
allowVideoEmbeds?: boolean;
|
|
38
|
+
allowModuleImports?: boolean;
|
|
33
39
|
}): string;
|
|
34
40
|
//# sourceMappingURL=iframeSrcDoc.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iframeSrcDoc.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSrcDoc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"iframeSrcDoc.d.ts","sourceRoot":"","sources":["../../src/iframe/iframeSrcDoc.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,oBAAoB,CAAC;AACrE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAwE1D;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,GAAG,MAAM,CAsBvD;AA2MD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kFAAkF;IAClF,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,eAAe,CAAC,EAAE,IAAI,CACpB,0BAA0B,EACxB,YAAY,GACZ,cAAc,GACd,mBAAmB,GACnB,gBAAgB,GAChB,UAAU,GACV,oBAAoB,GACpB,kBAAkB,GAClB,oBAAoB,CACvB,CAAC;CACH;AA0BD;;;;GAIG;AACH,wBAAgB,WAAW,CACzB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,kBAAuB,GAC/B,MAAM,CAqCR;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE;IACtC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B,GAAG,MAAM,CAeT"}
|