@glissade/export-web 0.10.1-pre.1 → 0.11.0-pre.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -15,13 +15,6 @@ declare class MediabunnyVideoFrameSource implements VideoFrameSource {
15
15
  private frameIndex;
16
16
  warm(fromT: number, toT: number): Promise<void>;
17
17
  getFrameSync(mediaT: number): HTMLCanvasElement | OffscreenCanvas;
18
- /**
19
- * Test-only introspection (§5.4): the number of decoded frames currently
20
- * held, so the lookahead/eviction bound (MAX_CACHED_FRAMES) is assertable
21
- * without reaching into the private cache.
22
- * @internal — not part of the public API surface (api-extractor strips it).
23
- */
24
- cachedFrameCount(): number;
25
18
  close(): void;
26
19
  }
27
20
  //#endregion
package/dist/index.js CHANGED
@@ -11,6 +11,14 @@ import { Canvas2DBackend } from "@glissade/backend-canvas2d";
11
11
  */
12
12
  const DEFAULT_LOOKAHEAD_FRAMES = 10;
13
13
  const MAX_CACHED_FRAMES = 64;
14
+ /**
15
+ * Test-only introspection (§5.4): a module-private registry mapping each source
16
+ * to a reader of its decoded-frame cache size, so the lookahead/eviction bound
17
+ * (MAX_CACHED_FRAMES) is assertable WITHOUT a public class method on the source.
18
+ * Not re-exported from index.ts — import `__cachedFrameCount` directly from
19
+ * this module in tests.
20
+ */
21
+ const cacheSizeReaders = /* @__PURE__ */ new WeakMap();
14
22
  var MediabunnyVideoFrameSource = class MediabunnyVideoFrameSource {
15
23
  fps;
16
24
  duration;
@@ -22,6 +30,7 @@ var MediabunnyVideoFrameSource = class MediabunnyVideoFrameSource {
22
30
  this.fps = fps;
23
31
  this.duration = duration;
24
32
  this.label = label;
33
+ cacheSizeReaders.set(this, () => this.cache.size);
25
34
  }
26
35
  static async open(src, label = typeof src === "string" ? src : "blob") {
27
36
  const track = await new Input({
@@ -66,15 +75,6 @@ var MediabunnyVideoFrameSource = class MediabunnyVideoFrameSource {
66
75
  if (!hit) throw new ColdAssetError(this.label, `frame ${idx} not decoded`, mediaT);
67
76
  return hit;
68
77
  }
69
- /**
70
- * Test-only introspection (§5.4): the number of decoded frames currently
71
- * held, so the lookahead/eviction bound (MAX_CACHED_FRAMES) is assertable
72
- * without reaching into the private cache.
73
- * @internal — not part of the public API surface (api-extractor strips it).
74
- */
75
- cachedFrameCount() {
76
- return this.cache.size;
77
- }
78
78
  close() {
79
79
  this.cache.clear();
80
80
  }
package/package.json CHANGED
@@ -1,8 +1,11 @@
1
1
  {
2
2
  "name": "@glissade/export-web",
3
- "version": "0.10.1-pre.1",
3
+ "version": "0.11.0-pre.0",
4
4
  "description": "glissade in-browser export: WebCodecs VideoEncoder + Mediabunny muxing, OfflineAudioContext audio mix. Frame-accurate, faster than realtime, no server.",
5
5
  "license": "Apache-2.0",
6
+ "engines": {
7
+ "node": ">=20.19"
8
+ },
6
9
  "type": "module",
7
10
  "sideEffects": false,
8
11
  "exports": {
@@ -16,9 +19,9 @@
16
19
  ],
17
20
  "dependencies": {
18
21
  "mediabunny": "^1.0.0",
19
- "@glissade/backend-canvas2d": "0.10.1-pre.1",
20
- "@glissade/core": "0.10.1-pre.1",
21
- "@glissade/scene": "0.10.1-pre.1"
22
+ "@glissade/backend-canvas2d": "0.11.0-pre.0",
23
+ "@glissade/core": "0.11.0-pre.0",
24
+ "@glissade/scene": "0.11.0-pre.0"
22
25
  },
23
26
  "repository": {
24
27
  "type": "git",