diff --git a/packages/core/package-subpaths.json b/packages/core/package-subpaths.json index c520a7e9da..472887c5aa 100644 --- a/packages/core/package-subpaths.json +++ b/packages/core/package-subpaths.json @@ -50,6 +50,12 @@ "types": "./dist/compositionContract.d.ts", "environments": ["browser", "bun", "node"] }, + "./studio-preview-mark": { + "source": "./src/studioPreviewMark.ts", + "runtime": "./dist/studioPreviewMark.js", + "types": "./dist/studioPreviewMark.d.ts", + "environments": ["browser", "bun", "node"] + }, "./media-timing": { "source": "./src/mediaTiming.ts", "runtime": "./dist/mediaTiming.js", diff --git a/packages/core/package.json b/packages/core/package.json index fffe05154c..e8f255e63f 100644 --- a/packages/core/package.json +++ b/packages/core/package.json @@ -64,6 +64,12 @@ "import": "./src/compositionContract.ts", "types": "./src/compositionContract.ts" }, + "./studio-preview-mark": { + "bun": "./src/studioPreviewMark.ts", + "node": "./dist/studioPreviewMark.js", + "import": "./src/studioPreviewMark.ts", + "types": "./src/studioPreviewMark.ts" + }, "./media-timing": { "bun": "./src/mediaTiming.ts", "node": "./dist/mediaTiming.js", @@ -466,6 +472,10 @@ "import": "./dist/compositionContract.js", "types": "./dist/compositionContract.d.ts" }, + "./studio-preview-mark": { + "import": "./dist/studioPreviewMark.js", + "types": "./dist/studioPreviewMark.d.ts" + }, "./media-timing": { "import": "./dist/mediaTiming.js", "types": "./dist/mediaTiming.d.ts" diff --git a/packages/core/src/compiler/htmlDocument.test.ts b/packages/core/src/compiler/htmlDocument.test.ts index c98b00b727..e9ae8a4730 100644 --- a/packages/core/src/compiler/htmlDocument.test.ts +++ b/packages/core/src/compiler/htmlDocument.test.ts @@ -1,5 +1,6 @@ import { describe, expect, it } from "vitest"; import { + findStartTags, injectScriptsAtHeadStart, injectScriptsIntoHtml, injectTagsAtHeadStart, @@ -221,6 +222,26 @@ describe("htmlDocument helpers", () => { }); }); +describe("findStartTags", () => { + const at = (html: string, name: string) => + findStartTags(html, name).map((i) => html.slice(i, html.indexOf(">", i) + 1)); + + it("finds each start tag in any case, and none in comments, raw text or longer names", () => { + const html = + '' + + '
'; + expect(at(html, "img")).toEqual(["", ""]); + }); + + it("leaves out template content, nested templates included", () => { + const html = + "" + + '
'; + expect(at(html, "img")).toEqual(["", ""]); + expect(at(html, "template")).toEqual(["