@hyperframes/core 0.8.13 → 0.8.15

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.
@@ -38,8 +38,10 @@ export declare const MEDIA_RENDER_ID_ATTR = "data-hf-render-id";
38
38
  */
39
39
  export declare const AUDIO_GROUP_RENDER_ID_ATTR = "data-hf-group-render-id";
40
40
  interface MediaElementLike {
41
+ readonly tagName?: string;
41
42
  getAttribute(name: string): string | null;
42
43
  setAttribute(name: string, value: string): void;
44
+ querySelectorAll?(selector: string): Iterable<unknown>;
43
45
  }
44
46
  interface DocumentLike {
45
47
  querySelectorAll(selector: string): Iterable<MediaElementLike>;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaRenderIds.d.ts","sourceRoot":"","sources":["../../src/compiler/mediaRenderIds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AAQpE,UAAU,gBAAgB;IACxB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACjD;AAOD,UAAU,YAAY;IACpB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAkBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAwBjE"}
1
+ {"version":3,"file":"mediaRenderIds.d.ts","sourceRoot":"","sources":["../../src/compiler/mediaRenderIds.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AAEH,eAAO,MAAM,oBAAoB,sBAAsB,CAAC;AAExD;;;;;;;;;;GAUG;AACH,eAAO,MAAM,0BAA0B,4BAA4B,CAAC;AA0BpE,UAAU,gBAAgB;IACxB,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IAC1C,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAChD,gBAAgB,CAAC,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;CACxD;AAOD,UAAU,YAAY;IACpB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAChE;AAkBD;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAyBjE"}
@@ -37,11 +37,30 @@ export const MEDIA_RENDER_ID_ATTR = "data-hf-render-id";
37
37
  * collision resolved at the same boundary the media ids are.
38
38
  */
39
39
  export const AUDIO_GROUP_RENDER_ID_ATTR = "data-hf-group-render-id";
40
- /** Elements the render pipeline addresses by id. */
41
- const MEDIA_SELECTOR = "video[src], audio[src], img[src]";
40
+ /**
41
+ * Elements the render pipeline addresses by id.
42
+ *
43
+ * `<video>`/`<audio>` are matched whether the source is a `src` attribute or a
44
+ * `<source>` child. Matching only `[src]` left the `<source>`-child shape
45
+ * unstamped, so two scenes each declaring `<video id="clip"><source …></video>`
46
+ * kept colliding ids in the render document, which is exactly the failure this
47
+ * module exists to prevent.
48
+ */
49
+ const MEDIA_SELECTOR = "video, audio, img[src]";
42
50
  /** Buses, which are addressed by id in exactly the same way and collide the
43
51
  * same way. Only an id'd bus can be joined at all. */
44
52
  const AUDIO_GROUP_SELECTOR = "hf-audio-group[id]";
53
+ /** A `<source>`-bearing media element is addressable even without its own `src`. */
54
+ function hasPlayableSource(el) {
55
+ if (el.getAttribute("src"))
56
+ return true;
57
+ const sources = el.querySelectorAll?.("source[src]");
58
+ if (!sources)
59
+ return false;
60
+ for (const _ of sources)
61
+ return true;
62
+ return false;
63
+ }
45
64
  /**
46
65
  * Derive a document-unique render id from an element's own id.
47
66
  *
@@ -70,6 +89,8 @@ export function assignMediaRenderIds(document) {
70
89
  const taken = new Set();
71
90
  const pending = [];
72
91
  for (const el of document.querySelectorAll(MEDIA_SELECTOR)) {
92
+ if (!hasPlayableSource(el))
93
+ continue;
73
94
  const existing = el.getAttribute(MEDIA_RENDER_ID_ATTR);
74
95
  if (existing) {
75
96
  taken.add(existing);
@@ -1 +1 @@
1
- {"version":3,"file":"mediaRenderIds.js","sourceRoot":"","sources":["../../src/compiler/mediaRenderIds.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mediaRenderIds.js","sourceRoot":"","sources":["../../src/compiler/mediaRenderIds.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hyperframes/core",
3
- "version": "0.8.13",
3
+ "version": "0.8.15",
4
4
  "description": "",
5
5
  "repository": {
6
6
  "type": "git",
@@ -274,9 +274,9 @@
274
274
  "bpm-detective": "^2.0.5",
275
275
  "linkedom": "^0.18.12",
276
276
  "postcss": "^8.5.8",
277
- "@hyperframes/lint": "0.8.13",
278
- "@hyperframes/studio-server": "0.8.13",
279
- "@hyperframes/parsers": "0.8.13"
277
+ "@hyperframes/parsers": "0.8.15",
278
+ "@hyperframes/studio-server": "0.8.15",
279
+ "@hyperframes/lint": "0.8.15"
280
280
  },
281
281
  "devDependencies": {
282
282
  "@types/jsdom": "^28.0.0",