@nomercy-entertainment/nomercy-player-core 2.2.5 → 2.2.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.
Files changed (140) hide show
  1. package/CHANGELOG.md +24 -0
  2. package/dist/adapters/cue-parser/built-ins.d.ts +3 -3
  3. package/dist/adapters/cue-parser/built-ins.js +1 -1
  4. package/dist/adapters/element-factory/dom.d.ts +4 -0
  5. package/dist/adapters/element-factory/dom.d.ts.map +1 -1
  6. package/dist/adapters/element-factory/dom.js +13 -0
  7. package/dist/adapters/element-factory/dom.js.map +1 -1
  8. package/dist/adapters/event-bus/default.d.ts +6 -1
  9. package/dist/adapters/event-bus/default.d.ts.map +1 -1
  10. package/dist/adapters/event-bus/default.js +32 -10
  11. package/dist/adapters/event-bus/default.js.map +1 -1
  12. package/dist/adapters/lifecycle-registry/ILifecycleRegistry.d.ts +7 -2
  13. package/dist/adapters/lifecycle-registry/ILifecycleRegistry.d.ts.map +1 -1
  14. package/dist/adapters/lifecycle-registry/default.d.ts +8 -2
  15. package/dist/adapters/lifecycle-registry/default.d.ts.map +1 -1
  16. package/dist/adapters/lifecycle-registry/default.js +0 -7
  17. package/dist/adapters/lifecycle-registry/default.js.map +1 -1
  18. package/dist/adapters/logger/default.d.ts +8 -2
  19. package/dist/adapters/logger/default.d.ts.map +1 -1
  20. package/dist/adapters/logger/default.js +21 -11
  21. package/dist/adapters/logger/default.js.map +1 -1
  22. package/dist/adapters/media-element/MediaElementBackend.d.ts +3 -1
  23. package/dist/adapters/media-element/MediaElementBackend.d.ts.map +1 -1
  24. package/dist/adapters/media-element/MediaElementBackend.js.map +1 -1
  25. package/dist/adapters/media-list/default.d.ts +2 -1
  26. package/dist/adapters/media-list/default.d.ts.map +1 -1
  27. package/dist/adapters/media-list/default.js.map +1 -1
  28. package/dist/adapters/platform/browser.d.ts.map +1 -1
  29. package/dist/adapters/platform/browser.js +4 -4
  30. package/dist/adapters/platform/browser.js.map +1 -1
  31. package/dist/adapters/preload/default.d.ts +0 -1
  32. package/dist/adapters/preload/default.d.ts.map +1 -1
  33. package/dist/adapters/preload/default.js +2 -4
  34. package/dist/adapters/preload/default.js.map +1 -1
  35. package/dist/adapters/storage/local-storage.d.ts.map +1 -1
  36. package/dist/adapters/storage/local-storage.js +3 -1
  37. package/dist/adapters/storage/local-storage.js.map +1 -1
  38. package/dist/adapters/stream/hls.d.ts.map +1 -1
  39. package/dist/adapters/stream/hls.js +10 -6
  40. package/dist/adapters/stream/hls.js.map +1 -1
  41. package/dist/core/auth-fetch/attempt.d.ts.map +1 -1
  42. package/dist/core/auth-fetch/attempt.js +23 -2
  43. package/dist/core/auth-fetch/attempt.js.map +1 -1
  44. package/dist/core/auth-fetch/orchestrator.d.ts.map +1 -1
  45. package/dist/core/auth-fetch/orchestrator.js +2 -0
  46. package/dist/core/auth-fetch/orchestrator.js.map +1 -1
  47. package/dist/core/auth-fetch/prepare.d.ts +2 -2
  48. package/dist/core/auth-fetch/prepare.d.ts.map +1 -1
  49. package/dist/core/auth-fetch/prepare.js +36 -7
  50. package/dist/core/auth-fetch/prepare.js.map +1 -1
  51. package/dist/core/auth-fetch/types.d.ts +7 -0
  52. package/dist/core/auth-fetch/types.d.ts.map +1 -1
  53. package/dist/core/chapters/fill-gaps.d.ts.map +1 -1
  54. package/dist/core/chapters/fill-gaps.js +33 -3
  55. package/dist/core/chapters/fill-gaps.js.map +1 -1
  56. package/dist/core/cues/tracker.d.ts.map +1 -1
  57. package/dist/core/cues/tracker.js +4 -0
  58. package/dist/core/cues/tracker.js.map +1 -1
  59. package/dist/core/index.d.ts +1 -1
  60. package/dist/core/index.d.ts.map +1 -1
  61. package/dist/core/kit-version.js +1 -1
  62. package/dist/core/mixins/auth.js +1 -1
  63. package/dist/core/mixins/auth.js.map +1 -1
  64. package/dist/core/mixins/cue-parser.d.ts +2 -2
  65. package/dist/core/mixins/i18n.d.ts.map +1 -1
  66. package/dist/core/mixins/i18n.js +5 -2
  67. package/dist/core/mixins/i18n.js.map +1 -1
  68. package/dist/core/mixins/lifecycle.d.ts.map +1 -1
  69. package/dist/core/mixins/lifecycle.js +67 -24
  70. package/dist/core/mixins/lifecycle.js.map +1 -1
  71. package/dist/core/mixins/loading.d.ts.map +1 -1
  72. package/dist/core/mixins/loading.js +40 -18
  73. package/dist/core/mixins/loading.js.map +1 -1
  74. package/dist/core/mixins/media-tracks.d.ts +4 -0
  75. package/dist/core/mixins/media-tracks.d.ts.map +1 -1
  76. package/dist/core/mixins/media-tracks.js +33 -5
  77. package/dist/core/mixins/media-tracks.js.map +1 -1
  78. package/dist/core/mixins/plugin-registration.d.ts.map +1 -1
  79. package/dist/core/mixins/plugin-registration.js +26 -3
  80. package/dist/core/mixins/plugin-registration.js.map +1 -1
  81. package/dist/core/mixins/queue.d.ts +1 -1
  82. package/dist/core/mixins/queue.d.ts.map +1 -1
  83. package/dist/core/mixins/queue.js +2 -5
  84. package/dist/core/mixins/queue.js.map +1 -1
  85. package/dist/core/mixins/transport.d.ts +3 -2
  86. package/dist/core/mixins/transport.d.ts.map +1 -1
  87. package/dist/core/mixins/transport.js +13 -7
  88. package/dist/core/mixins/transport.js.map +1 -1
  89. package/dist/core/plugin/base.d.ts +6 -1
  90. package/dist/core/plugin/base.d.ts.map +1 -1
  91. package/dist/core/plugin/base.js +0 -6
  92. package/dist/core/plugin/base.js.map +1 -1
  93. package/dist/core/plugin/fetch.d.ts.map +1 -1
  94. package/dist/core/plugin/fetch.js +2 -0
  95. package/dist/core/plugin/fetch.js.map +1 -1
  96. package/dist/core/state.d.ts +6 -0
  97. package/dist/core/state.d.ts.map +1 -1
  98. package/dist/core/state.js +1 -0
  99. package/dist/core/state.js.map +1 -1
  100. package/dist/plugins/audio-graph/index.d.ts +2 -0
  101. package/dist/plugins/audio-graph/index.d.ts.map +1 -1
  102. package/dist/plugins/audio-graph/index.js +20 -2
  103. package/dist/plugins/audio-graph/index.js.map +1 -1
  104. package/dist/plugins/cast-sender/index.d.ts.map +1 -1
  105. package/dist/plugins/cast-sender/index.js +4 -2
  106. package/dist/plugins/cast-sender/index.js.map +1 -1
  107. package/dist/plugins/equalizer/index.d.ts +2 -2
  108. package/dist/plugins/equalizer/index.d.ts.map +1 -1
  109. package/dist/plugins/equalizer/index.js +18 -20
  110. package/dist/plugins/equalizer/index.js.map +1 -1
  111. package/dist/plugins/key-handler/index.d.ts.map +1 -1
  112. package/dist/plugins/key-handler/index.js +3 -0
  113. package/dist/plugins/key-handler/index.js.map +1 -1
  114. package/dist/plugins/media-session/index.d.ts +2 -0
  115. package/dist/plugins/media-session/index.d.ts.map +1 -1
  116. package/dist/plugins/media-session/index.js +6 -0
  117. package/dist/plugins/media-session/index.js.map +1 -1
  118. package/dist/plugins/message/index.js +1 -1
  119. package/dist/plugins/message/index.js.map +1 -1
  120. package/dist/plugins/spectrum/index.js +2 -2
  121. package/dist/plugins/spectrum/index.js.map +1 -1
  122. package/dist/plugins/tab-leader/index.d.ts +6 -1
  123. package/dist/plugins/tab-leader/index.d.ts.map +1 -1
  124. package/dist/plugins/tab-leader/index.js +46 -14
  125. package/dist/plugins/tab-leader/index.js.map +1 -1
  126. package/dist/plugins/visualization/index.d.ts +2 -2
  127. package/dist/plugins/visualization/index.js +11 -11
  128. package/dist/plugins/visualization/index.js.map +1 -1
  129. package/dist/testing/stub-player.d.ts +1 -0
  130. package/dist/testing/stub-player.d.ts.map +1 -1
  131. package/dist/testing/stub-player.js +47 -10
  132. package/dist/testing/stub-player.js.map +1 -1
  133. package/dist/types/config.d.ts +6 -0
  134. package/dist/types/config.d.ts.map +1 -1
  135. package/dist/types/player.d.ts +7 -1
  136. package/dist/types/player.d.ts.map +1 -1
  137. package/dist/types/tracks.d.ts +4 -1
  138. package/dist/types/tracks.d.ts.map +1 -1
  139. package/package.json +4 -1
  140. package/scripts/resolve-translation-globs.mjs +3 -2
package/CHANGELOG.md CHANGED
@@ -2,6 +2,30 @@
2
2
 
3
3
  ## [Unreleased]
4
4
 
5
+ ## [2.2.7] — 2026-10-19
6
+
7
+ ### Changed
8
+
9
+ - Version-only release to keep the trio at one version for music-player 2.2.7.
10
+
11
+ ## [2.2.6] — 2026-10-18
12
+
13
+ ### Added
14
+
15
+ - `setup({ fetch })` and `setup({ idGenerator })` inject the transport and the id source.
16
+ - `player.on`, `once` and `off` accept a plugin class, and `listen()` types the handler event from the target and name.
17
+ - The `createElement` builder gets `insertBefore` and `insertAfter`.
18
+
19
+ ### Fixed
20
+
21
+ - Playback: native HLS reaches ready and reports element errors; a load that is interrupted restores the user volume; `load()` takes its race epoch before it awaits; `seekToIndex` loads the item it moves to; user `next()` skips past repeat one; rewind, forward and restart honor a `beforeSeek` time change.
22
+ - Subtitles and chapters: the selected subtitle stays on the same track when the list changes; a sidecar fetch that a newer pick replaced is dropped; language-less stream tracks hide next to sidecars; chapter gaps under 2 s are absorbed.
23
+ - Preload: asset fetches use auth and the URL resolver; a failed next-item fetch emits `preloadError`.
24
+ - Auth and network: the 401 retry sends the token the refresh handler stored; the last attempt skips the retry event and backoff; request-building errors arrive as `AuthError` or `NetworkError`; the network guards work where `navigator` is missing.
25
+ - Setup and plugins: the pipeline stops after dispose; plugins added after the plugin stage register before `ready`; late registrations are dropped after dispose; `ready()` rejects when setup failed; `once()` keeps one wrapper per handler and event.
26
+ - Audio: the equalizer applies band Q and type, and a preset can override a built-in; the audio graph leaves a backend-owned context alone on dispose; the tab leader pauses a non-leader tab on play; media-session artwork that resolves late is dropped; visualization frames carry playback seconds.
27
+ - Other: the cast sender starts the receiver at the local position; storage drops its stale copy on remove; the toast hides when the queue ends; the key handler ignores keys while Meta is held; one wake lock controller per player; child loggers follow the parent; the test `StubPlayer` selection, auth and reset behave like the real player.
28
+
5
29
  ## [2.2.5] — 2026-10-08
6
30
 
7
31
  ### Changed
@@ -1,8 +1,8 @@
1
1
  /**
2
2
  * Built-in `ICueParser` instances for LRC, VTT subtitles, and sprite VTT.
3
3
  *
4
- * The kit auto-registers these at low priority during setup so consumer-supplied
5
- * parsers for the same URL patterns always take precedence.
4
+ * The kit auto-registers these at the low-priority end during setup, so
5
+ * consumer-supplied parsers for the same URL patterns take precedence.
6
6
  *
7
7
  * Resolution order: URL extension is checked first (`.lrc` / `.vtt`), then the
8
8
  * optional `contentType`. Sprite VTT shares the `.vtt` extension and ranks
@@ -22,7 +22,7 @@ export declare const spriteVttParser: ICueParser<VTTSpritePayload>;
22
22
  /**
23
23
  * Default parser bundle registered by the kit at startup. Consumers do not
24
24
  * need to install these manually. Register a custom parser with the same `id`
25
- * to replace any of them, or call `player.cueRegistry.unregister(id)` to
25
+ * to replace any of them, or call `player.unregisterCueParser(id)` to
26
26
  * remove one entirely.
27
27
  */
28
28
  export declare const builtInCueParsers: ReadonlyArray<ICueParser>;
@@ -60,7 +60,7 @@ export const spriteVttParser = {
60
60
  /**
61
61
  * Default parser bundle registered by the kit at startup. Consumers do not
62
62
  * need to install these manually. Register a custom parser with the same `id`
63
- * to replace any of them, or call `player.cueRegistry.unregister(id)` to
63
+ * to replace any of them, or call `player.unregisterCueParser(id)` to
64
64
  * remove one entirely.
65
65
  */
66
66
  export const builtInCueParsers = [
@@ -4,6 +4,8 @@ export interface CreateElement<T extends Element> {
4
4
  addClasses: (names: string[]) => AddClasses<T>;
5
5
  appendTo: (parent: Element) => AppendTo<T>;
6
6
  prependTo: (parent: Element) => AppendTo<T>;
7
+ insertBefore: (sibling: Element) => AppendTo<T>;
8
+ insertAfter: (sibling: Element) => AppendTo<T>;
7
9
  setAttribute: (name: string, value: string) => AddClasses<T>;
8
10
  setProperty: (name: string, value: string) => AddClasses<T>;
9
11
  }
@@ -11,6 +13,8 @@ export interface AddClasses<T extends Element> {
11
13
  get: () => T;
12
14
  appendTo: (parent: Element) => AppendTo<T>;
13
15
  prependTo: (parent: Element) => AppendTo<T>;
16
+ insertBefore: (sibling: Element) => AppendTo<T>;
17
+ insertAfter: (sibling: Element) => AppendTo<T>;
14
18
  addClasses: (names: string[]) => AddClasses<T>;
15
19
  setAttribute: (name: string, value: string) => AddClasses<T>;
16
20
  setProperty: (name: string, value: string) => AddClasses<T>;
@@ -1 +1 @@
1
- {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/adapters/element-factory/dom.ts"],"names":[],"mappings":"AAQA,kFAAkF;AAClF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,OAAO;IAC/C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO;IAC5C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,OAAO;IAC1C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAClE,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,OAAO,GACd,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAiCzC;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAMnF;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAM1E;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,iBAAiB,CAQ1G"}
1
+ {"version":3,"file":"dom.d.ts","sourceRoot":"","sources":["../../../src/adapters/element-factory/dom.ts"],"names":[],"mappings":"AAQA,kFAAkF;AAClF,MAAM,WAAW,aAAa,CAAC,CAAC,SAAS,OAAO;IAC/C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,OAAO;IAC5C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC3C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC5C,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAChD,WAAW,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC;IAC/C,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC/C,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;IAC7D,WAAW,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC5D;AAED,MAAM,WAAW,QAAQ,CAAC,CAAC,SAAS,OAAO;IAC1C,GAAG,EAAE,MAAM,CAAC,CAAC;IACb,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,UAAU,CAAC,CAAC,CAAC,CAAC;CAC/C;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,CAAC,SAAS,MAAM,qBAAqB,EAClE,IAAI,EAAE,CAAC,EACP,EAAE,EAAE,MAAM,EACV,MAAM,CAAC,EAAE,OAAO,GACd,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAmCzC;AAED,qFAAqF;AACrF,wBAAgB,UAAU,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,CAMnF;AAED,uFAAuF;AACvF,wBAAgB,aAAa,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAM1E;AAID;;;GAGG;AACH,wBAAgB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAMpE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,GAAG,iBAAiB,CAQ1G"}
@@ -33,6 +33,8 @@ export function createElement(type, id, unique) {
33
33
  parent.insertBefore(el, parent.firstChild);
34
34
  return makeAppendTo(el);
35
35
  },
36
+ insertBefore: (sibling) => placeNextTo(el, sibling, 'before'),
37
+ insertAfter: (sibling) => placeNextTo(el, sibling, 'after'),
36
38
  setAttribute: (name, value) => {
37
39
  el.setAttribute(name, value);
38
40
  return makeAddClasses(el);
@@ -89,6 +91,15 @@ export function createButton(id, label, onClick) {
89
91
  // ─────────────────────────────────────────────────────────────────────────
90
92
  // Internals
91
93
  // ─────────────────────────────────────────────────────────────────────────
94
+ function placeNextTo(el, sibling, where) {
95
+ if (!sibling.parentNode)
96
+ throw new Error(`createElement: cannot insert ${where} a sibling that has no parent`);
97
+ if (where === 'before')
98
+ sibling.before(el);
99
+ else
100
+ sibling.after(el);
101
+ return makeAppendTo(el);
102
+ }
92
103
  function makeAppendTo(el) {
93
104
  return {
94
105
  get: () => el,
@@ -106,6 +117,8 @@ function makeAddClasses(el) {
106
117
  parent.insertBefore(el, parent.firstChild);
107
118
  return makeAppendTo(el);
108
119
  },
120
+ insertBefore: (sibling) => placeNextTo(el, sibling, 'before'),
121
+ insertAfter: (sibling) => placeNextTo(el, sibling, 'after'),
109
122
  addClasses: (names) => addClasses(el, names),
110
123
  setAttribute: (name, value) => {
111
124
  el.setAttribute(name, value);
@@ -1 +1 @@
1
- {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/adapters/element-factory/dom.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dom.js","sourceRoot":"","sources":["../../../src/adapters/element-factory/dom.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import type { AnyPluginCtor, PluginEventMap } from '../../core/plugin/index.js';
1
2
  /**
2
3
  * Handler type for string-keyed (untyped) events. Consumers that subscribe to
3
4
  * plugin-namespaced events (`plugin:<id>:<event>`) or other dynamic event names
@@ -17,7 +18,7 @@ type AnyHandler = (data: any) => void;
17
18
  * `Set.delete(fn)` works without matching options; `EventTarget.removeEventListener`
18
19
  * needs the exact same function reference and doesn't compose with `once`.
19
20
  * - `once()` wraps the caller's handler so it self-removes after the first
20
- * call. The wrapper is stored in a `WeakMap<userHandler, wrapper>` so
21
+ * call. Wrappers are stored per handler and event so
21
22
  * `off(event, userHandler)` can locate and remove the wrapper even though the
22
23
  * caller passes their original function reference.
23
24
  * - `emit()` snapshots the listener set before iterating, so a listener that
@@ -59,6 +60,7 @@ export declare class EventEmitter<E extends Record<string, any> = Record<string,
59
60
  on(_event: 'all', _fn: (event: string, data: unknown) => void): void;
60
61
  on<K extends keyof E>(_event: K, _fn: (data: E[K]) => void): void;
61
62
  on(_event: string, _fn: AnyHandler): void;
63
+ on<C extends AnyPluginCtor, K extends keyof PluginEventMap<C> & string>(_plugin: C, _event: K, _fn: (data: PluginEventMap<C>[K]) => void): void;
62
64
  /**
63
65
  * Register `fn` to be called the next time `event` is emitted, then
64
66
  * automatically removed.
@@ -68,6 +70,8 @@ export declare class EventEmitter<E extends Record<string, any> = Record<string,
68
70
  */
69
71
  once<K extends keyof E>(_event: K, _fn: (data: E[K]) => void): void;
70
72
  once(_event: string, _fn: AnyHandler): void;
73
+ once<C extends AnyPluginCtor, K extends keyof PluginEventMap<C> & string>(_plugin: C, _event: K, _fn: (data: PluginEventMap<C>[K]) => void): void;
74
+ private removeOnceWrapper;
71
75
  /**
72
76
  * Remove a listener (or all listeners for an event).
73
77
  *
@@ -82,6 +86,7 @@ export declare class EventEmitter<E extends Record<string, any> = Record<string,
82
86
  off<K extends keyof E>(_event: K, _fn?: (data: E[K]) => void): void;
83
87
  off(_event: 'all', _fn?: (event: string, data: unknown) => void): void;
84
88
  off(_event: string, _fn?: AnyHandler): void;
89
+ off<C extends AnyPluginCtor, K extends keyof PluginEventMap<C> & string>(_plugin: C, _event: K, _fn?: (data: PluginEventMap<C>[K]) => void): void;
85
90
  /**
86
91
  * Emit `event` with `data`, calling every registered listener in insertion
87
92
  * order.
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/event-bus/default.ts"],"names":[],"mappings":"AAQA;;;;;;;GAOG;AACH,KAAK,UAAU,GAAG,CAAC,IAAI,EAAE,GAAG,KAAK,IAAI,CAAC;AAwBtC;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC5E;;;;OAIG;IACH,SAAiB,YAAY,EAAE,CAAC,CAAC;IAEjC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAsC;IAChE,uGAAuG;IACvG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAqD;IAClF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyC;IACtE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAqB;IAEhD,OAAO,CAAC,yBAAyB;IAcjC;;;;;;;;;;;;;;;OAeG;IACH,EAAE,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IACpE,EAAE,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IACjE,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAsBzC;;;;;;OAMG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IACnE,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,UAAU,GAAG,IAAI;IAW3C;;;;;;;;;;OAUG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,GAAG,IAAI;IACnE,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,IAAI,GAAG,IAAI;IACtE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,CAAC,EAAE,UAAU,GAAG,IAAI;IAkD3C;;;;;;;;OAQG;IACH,IAAI,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI;IACtD,IAAI,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAqC3C;;;;;OAKG;IACH,YAAY,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,GAAG,OAAO;IACnD,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAMrC;;;;OAIG;IACH,aAAa,IAAI,MAAM;IAMvB;;;;;;;;;;OAUG;IACH,WAAW,CAAC,CAAC,SAAS,MAAM,CAAC,EAAE,KAAK,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAC7E,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,UAAU,CAAC;CAOrD"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/event-bus/default.ts"],"names":[],"mappings":"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"}
@@ -34,7 +34,7 @@ const RENAMED_EVENTS = {
34
34
  * `Set.delete(fn)` works without matching options; `EventTarget.removeEventListener`
35
35
  * needs the exact same function reference and doesn't compose with `once`.
36
36
  * - `once()` wraps the caller's handler so it self-removes after the first
37
- * call. The wrapper is stored in a `WeakMap<userHandler, wrapper>` so
37
+ * call. Wrappers are stored per handler and event so
38
38
  * `off(event, userHandler)` can locate and remove the wrapper even though the
39
39
  * caller passes their original function reference.
40
40
  * - `emit()` snapshots the listener set before iterating, so a listener that
@@ -63,7 +63,9 @@ export class EventEmitter {
63
63
  });
64
64
  });
65
65
  }
66
- on(event, fn) {
66
+ on(event, fn, third) {
67
+ if (typeof event === 'function')
68
+ return this.on(`plugin:${event.id}:${fn}`, third);
67
69
  const key = String(event);
68
70
  const renamedTo = RENAMED_EVENTS[key];
69
71
  if (renamedTo && typeof console !== 'undefined' && console.warn) {
@@ -83,22 +85,41 @@ export class EventEmitter {
83
85
  if (wasEmpty && key !== 'listeners-changed')
84
86
  this._scheduleListenersChanged(key, 1);
85
87
  }
86
- once(event, fn) {
88
+ once(event, fn, third) {
89
+ if (typeof event === 'function')
90
+ return this.once(`plugin:${event.id}:${fn}`, third);
91
+ const key = String(event);
92
+ let byEvent = this.onceWrappers.get(fn);
93
+ if (byEvent?.has(key))
94
+ return;
87
95
  // Spread-through so firehose listeners receive both (event, data) args.
88
96
  const wrapper = (...args) => {
89
- this.off(event, fn);
97
+ this.removeOnceWrapper(key, fn, wrapper);
90
98
  fn(...args);
91
99
  };
92
- this.onceWrappers.set(fn, wrapper);
100
+ if (!byEvent) {
101
+ byEvent = new Map();
102
+ this.onceWrappers.set(fn, byEvent);
103
+ }
104
+ byEvent.set(key, wrapper);
93
105
  this.on(event, wrapper);
94
106
  }
95
- off(event, fn) {
107
+ removeOnceWrapper(key, fn, wrapper) {
108
+ const byEvent = this.onceWrappers.get(fn);
109
+ if (byEvent?.get(key) === wrapper)
110
+ byEvent.delete(key);
111
+ this.off(key, wrapper);
112
+ }
113
+ off(event, fn, third) {
114
+ if (typeof event === 'function')
115
+ return this.off(`plugin:${event.id}:${fn}`, third);
96
116
  if (event === 'all') {
97
117
  if (fn) {
98
- const wrapper = this.onceWrappers.get(fn);
118
+ const byEvent = this.onceWrappers.get(fn);
119
+ const wrapper = byEvent?.get('all');
99
120
  if (wrapper) {
100
121
  this.anyListeners.delete(wrapper);
101
- this.onceWrappers.delete(fn);
122
+ byEvent?.delete('all');
102
123
  }
103
124
  else {
104
125
  this.anyListeners.delete(fn);
@@ -122,10 +143,11 @@ export class EventEmitter {
122
143
  return;
123
144
  }
124
145
  const sizeBefore = set.size;
125
- const wrapper = this.onceWrappers.get(fn);
146
+ const byEvent = this.onceWrappers.get(fn);
147
+ const wrapper = byEvent?.get(key);
126
148
  if (wrapper) {
127
149
  set.delete(wrapper);
128
- this.onceWrappers.delete(fn);
150
+ byEvent?.delete(key);
129
151
  }
130
152
  else {
131
153
  set.delete(fn);
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/event-bus/default.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/event-bus/default.ts"],"names":[],"mappings":"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"}
@@ -5,14 +5,19 @@
5
5
  */
6
6
  export interface ILifecycleRegistry {
7
7
  addCleanup(fn: () => void): void;
8
- listen(target: EventTarget, event: string, handler: EventListener, options?: AddEventListenerOptions | boolean): void;
8
+ listen<K extends keyof WindowEventMap>(target: Window, event: K, handler: (event: WindowEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
9
+ listen<K extends keyof DocumentEventMap>(target: Document, event: K, handler: (event: DocumentEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
10
+ listen<K extends keyof HTMLMediaElementEventMap>(target: HTMLMediaElement, event: K, handler: (event: HTMLMediaElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
11
+ listen<K extends keyof HTMLElementEventMap>(target: HTMLElement, event: K, handler: (event: HTMLElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
12
+ listen<K extends keyof SVGElementEventMap>(target: SVGElement, event: K, handler: (event: SVGElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
13
+ listen(target: EventTarget, event: string, handler: (event: Event) => void, options?: AddEventListenerOptions | boolean): void;
9
14
  timeout(fn: () => void, ms: number): number;
10
15
  interval(fn: () => void, ms: number): number;
11
16
  observe<O extends {
12
17
  disconnect(): void;
13
18
  }>(observer: O): O;
14
19
  abortable(): AbortController;
15
- frame(fn: (deltaMs: number, time: number) => void): void;
20
+ frame(fn: (deltaMs: number, time: number) => void): () => void;
16
21
  dispose(): void;
17
22
  isDisposed(): boolean;
18
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ILifecycleRegistry.d.ts","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/ILifecycleRegistry.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IACtH,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,OAAO,CAAC,CAAC,SAAS;QAAE,UAAU,IAAI,IAAI,CAAA;KAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1D,SAAS,IAAI,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,IAAI,CAAC;IACzD,OAAO,IAAI,IAAI,CAAC;IAChB,UAAU,IAAI,OAAO,CAAC;CACtB"}
1
+ {"version":3,"file":"ILifecycleRegistry.d.ts","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/ILifecycleRegistry.ts"],"names":[],"mappings":"AAQA;;;;GAIG;AACH,MAAM,WAAW,kBAAkB;IAClC,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI,CAAC;IACjC,MAAM,CAAC,CAAC,SAAS,MAAM,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IACjK,MAAM,CAAC,CAAC,SAAS,MAAM,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IACvK,MAAM,CAAC,CAAC,SAAS,MAAM,wBAAwB,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,wBAAwB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/L,MAAM,CAAC,CAAC,SAAS,MAAM,mBAAmB,EAAE,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,mBAAmB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IAChL,MAAM,CAAC,CAAC,SAAS,MAAM,kBAAkB,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IAC7K,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI,CAAC;IAC/H,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5C,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7C,OAAO,CAAC,CAAC,SAAS;QAAE,UAAU,IAAI,IAAI,CAAA;KAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;IAC1D,SAAS,IAAI,eAAe,CAAC;IAC7B,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI,CAAC;IAC/D,OAAO,IAAI,IAAI,CAAC;IAChB,UAAU,IAAI,OAAO,CAAC;CACtB"}
@@ -1,3 +1,4 @@
1
+ import type { ILifecycleRegistry } from './ILifecycleRegistry.js';
1
2
  interface DisconnectableObserver {
2
3
  disconnect(): void;
3
4
  }
@@ -10,7 +11,7 @@ interface DisconnectableObserver {
10
11
  *
11
12
  * Idempotent: calling `dispose()` twice is safe; the second call is a no-op.
12
13
  */
13
- export declare class LifecycleRegistry {
14
+ export declare class LifecycleRegistry implements ILifecycleRegistry {
14
15
  private readonly listeners;
15
16
  private readonly timeouts;
16
17
  private readonly intervals;
@@ -37,7 +38,12 @@ export declare class LifecycleRegistry {
37
38
  *
38
39
  * Silent no-op after `dispose()`.
39
40
  */
40
- listen(target: EventTarget, event: string, handler: EventListener, options?: AddEventListenerOptions | boolean): void;
41
+ listen<K extends keyof WindowEventMap>(target: Window, event: K, handler: (event: WindowEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
42
+ listen<K extends keyof DocumentEventMap>(target: Document, event: K, handler: (event: DocumentEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
43
+ listen<K extends keyof HTMLMediaElementEventMap>(target: HTMLMediaElement, event: K, handler: (event: HTMLMediaElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
44
+ listen<K extends keyof HTMLElementEventMap>(target: HTMLElement, event: K, handler: (event: HTMLElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
45
+ listen<K extends keyof SVGElementEventMap>(target: SVGElement, event: K, handler: (event: SVGElementEventMap[K]) => void, options?: AddEventListenerOptions | boolean): void;
46
+ listen(target: EventTarget, event: string, handler: (event: Event) => void, options?: AddEventListenerOptions | boolean): void;
41
47
  /**
42
48
  * Schedule a one-shot callback and auto-cancel it on `dispose()`. Wraps
43
49
  * `setTimeout` — errors inside `fn` are caught and logged so they cannot kill
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/default.ts"],"names":[],"mappings":"AAeA,UAAU,sBAAsB;IAAG,UAAU,IAAI,IAAI,CAAA;CAAE;AAEvD;;;;;;;;GAQG;AACH,qBAAa,iBAAiB;IAC7B,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAwB;IAClD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgC;IAC1D,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAyB;IAChD,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAC1C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAyB;IAClD,OAAO,CAAC,QAAQ,CAAS;IAEzB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,EAAE,MAAM,IAAI,GAAG,IAAI;IAWhC;;;;;;OAMG;IACH,MAAM,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,EAAE,uBAAuB,GAAG,OAAO,GAAG,IAAI;IAYrH;;;;;;;OAOG;IACH,OAAO,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAkB3C;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,EAAE,MAAM,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM;IAiB5C;;;;;;;;OAQG;IACH,OAAO,CAAC,CAAC,SAAS,sBAAsB,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC;IAOzD;;;;;;OAMG;IACH,SAAS,IAAI,eAAe;IAU5B;;;;;;;;;;;;;OAaG;IACH,KAAK,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,GAAG,MAAM,IAAI;IAsC9D;;;;;;;OAOG;IACH,OAAO,IAAI,IAAI;IAsEf,oEAAoE;IACpE,UAAU,IAAI,OAAO;IAIrB,OAAO,CAAC,eAAe;CAKvB"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/default.ts"],"names":[],"mappings":"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"}
@@ -43,13 +43,6 @@ export class LifecycleRegistry {
43
43
  }
44
44
  this.cleanups.push(fn);
45
45
  }
46
- /**
47
- * Attach a DOM event listener and schedule its removal for `dispose()`. Drop-in
48
- * replacement for `target.addEventListener` — same signature, same behaviour,
49
- * automatic teardown.
50
- *
51
- * Silent no-op after `dispose()`.
52
- */
53
46
  listen(target, event, handler, options) {
54
47
  if (this.disposed)
55
48
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/default.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/lifecycle-registry/default.ts"],"names":[],"mappings":"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"}
@@ -13,6 +13,7 @@ export declare class Logger implements ILogger {
13
13
  private _level;
14
14
  private prefix;
15
15
  private readonly sinks;
16
+ private parent?;
16
17
  constructor(opts?: LoggerOptions);
17
18
  /**
18
19
  * Read or write the verbosity threshold.
@@ -27,6 +28,9 @@ export declare class Logger implements ILogger {
27
28
  * `(level, prefix, args)` so it can route to console / Sentry / Datadog with
28
29
  * full context. Multiple sinks compose in registration order.
29
30
  *
31
+ * The console is only the fallback: once a sink is registered, console
32
+ * output stops. Add a console sink if you want both.
33
+ *
30
34
  * Returns an unsubscribe function — call it to stop routing to this sink.
31
35
  */
32
36
  addSink(fn: LogSink): () => void;
@@ -48,12 +52,14 @@ export declare class Logger implements ILogger {
48
52
  * log.debug('cue loaded'); // → "[nmplayer][lyrics] cue loaded"
49
53
  * ```
50
54
  *
51
- * Children share the parent's registered sinks so consumer-installed pipes
52
- * capture every plugin's output uniformly.
55
+ * Children read the parent's sinks and level at log time, so later
56
+ * `addSink()` and `level()` calls on the parent reach them. A level set on
57
+ * the child wins over the parent.
53
58
  */
54
59
  child(suffix: string): Logger;
55
60
  /** Internal factory — creates a Logger with a pre-formatted prefix string. */
56
61
  private static _withPrefix;
62
+ private allSinks;
57
63
  private dispatch;
58
64
  }
59
65
  //# sourceMappingURL=default.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/logger/default.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACX,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,WAAW,CAAC;AAGnB;;;;;;;;;GASG;AACH,qBAAa,MAAO,YAAW,OAAO;IACrC,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;gBAE3B,IAAI,CAAC,EAAE,aAAa;IAKhC;;;;;OAKG;IACH,KAAK,IAAI,QAAQ;IACjB,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ5B;;;;;;OAMG;IACH,OAAO,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,IAAI;IAShC,iDAAiD;IACjD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,kCAAkC;IAClC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,kCAAkC;IAClC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,sBAAsB;IACtB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,qBAAqB;IACrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAM7B,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B,OAAO,CAAC,QAAQ;CA4BhB"}
1
+ {"version":3,"file":"default.d.ts","sourceRoot":"","sources":["../../../src/adapters/logger/default.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACX,OAAO,EACP,aAAa,EACb,QAAQ,EACR,OAAO,EACP,MAAM,WAAW,CAAC;AAGnB;;;;;;;;;GASG;AACH,qBAAa,MAAO,YAAW,OAAO;IAErC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAiB;IACvC,OAAO,CAAC,MAAM,CAAC,CAAS;gBAEZ,IAAI,CAAC,EAAE,aAAa;IAKhC;;;;;OAKG;IACH,KAAK,IAAI,QAAQ;IACjB,KAAK,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAQ5B;;;;;;;;;OASG;IACH,OAAO,CAAC,EAAE,EAAE,OAAO,GAAG,MAAM,IAAI;IAShC,iDAAiD;IACjD,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,kCAAkC;IAClC,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B,kCAAkC;IAClC,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,sBAAsB;IACtB,IAAI,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI9B,qBAAqB;IACrB,KAAK,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAI/B;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM;IAO7B,8EAA8E;IAC9E,OAAO,CAAC,MAAM,CAAC,WAAW;IAM1B,OAAO,CAAC,QAAQ;IAIhB,OAAO,CAAC,QAAQ;CA8BhB"}
@@ -17,16 +17,18 @@ import { LEVEL_RANK } from './ILogger.js';
17
17
  * Each level emits when the configured threshold is at or above that rank.
18
18
  */
19
19
  export class Logger {
20
+ // Undefined on a child until level(value) is called; then it follows the parent.
20
21
  _level;
21
22
  prefix;
22
23
  sinks = [];
24
+ parent;
23
25
  constructor(opts) {
24
26
  this._level = opts?.level ?? 'info';
25
27
  this.prefix = opts?.prefix ? `[${opts.prefix}]` : '[nmplayer]';
26
28
  }
27
29
  level(value) {
28
30
  if (value === undefined) {
29
- return this._level;
31
+ return this._level ?? this.parent?.level() ?? 'info';
30
32
  }
31
33
  this._level = value;
32
34
  }
@@ -35,6 +37,9 @@ export class Logger {
35
37
  * `(level, prefix, args)` so it can route to console / Sentry / Datadog with
36
38
  * full context. Multiple sinks compose in registration order.
37
39
  *
40
+ * The console is only the fallback: once a sink is registered, console
41
+ * output stops. Add a console sink if you want both.
42
+ *
38
43
  * Returns an unsubscribe function — call it to stop routing to this sink.
39
44
  */
40
45
  addSink(fn) {
@@ -73,26 +78,31 @@ export class Logger {
73
78
  * log.debug('cue loaded'); // → "[nmplayer][lyrics] cue loaded"
74
79
  * ```
75
80
  *
76
- * Children share the parent's registered sinks so consumer-installed pipes
77
- * capture every plugin's output uniformly.
81
+ * Children read the parent's sinks and level at log time, so later
82
+ * `addSink()` and `level()` calls on the parent reach them. A level set on
83
+ * the child wins over the parent.
78
84
  */
79
85
  child(suffix) {
80
- const child = Logger._withPrefix(`${this.prefix}[${suffix}]`, this._level);
81
- for (const sink of this.sinks)
82
- child.sinks.push(sink);
86
+ const child = Logger._withPrefix(`${this.prefix}[${suffix}]`);
87
+ child._level = undefined;
88
+ child.parent = this;
83
89
  return child;
84
90
  }
85
91
  /** Internal factory — creates a Logger with a pre-formatted prefix string. */
86
- static _withPrefix(rawPrefix, level) {
87
- const instance = new Logger({ level });
92
+ static _withPrefix(rawPrefix) {
93
+ const instance = new Logger();
88
94
  instance.prefix = rawPrefix;
89
95
  return instance;
90
96
  }
97
+ allSinks() {
98
+ return this.parent ? [...this.parent.allSinks(), ...this.sinks] : this.sinks;
99
+ }
91
100
  dispatch(lvl, args) {
92
- if (LEVEL_RANK[lvl] > LEVEL_RANK[this._level])
101
+ if (LEVEL_RANK[lvl] > LEVEL_RANK[this.level()])
93
102
  return;
103
+ const sinks = this.allSinks();
94
104
  // When no sinks are registered, write directly to the console.
95
- if (this.sinks.length === 0 && typeof console !== 'undefined') {
105
+ if (sinks.length === 0 && typeof console !== 'undefined') {
96
106
  const consoleFor = {
97
107
  trace: console.trace,
98
108
  debug: console.debug ?? console.log,
@@ -105,7 +115,7 @@ export class Logger {
105
115
  if (fn)
106
116
  fn.call(console, this.prefix, ...args);
107
117
  }
108
- for (const sink of this.sinks) {
118
+ for (const sink of sinks) {
109
119
  try {
110
120
  sink(lvl, this.prefix, args);
111
121
  }
@@ -1 +1 @@
1
- {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/logger/default.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"default.js","sourceRoot":"","sources":["../../../src/adapters/logger/default.ts"],"names":[],"mappings":"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"}
@@ -134,7 +134,9 @@ export declare abstract class MediaElementBackend<TEl extends HTMLMediaElement,
134
134
  /**
135
135
  * Get the current element volume (perceptual-gain curved amplitude, not
136
136
  * the 0..1 slider position). The player mixin owns the slider position in
137
- * `_internalVolume`.
137
+ * `_internalVolume`. The getter does not invert the curve, so
138
+ * `volume(0.5)` reads back `perceptualGain(0.5)`; read the slider position
139
+ * from the player's `volume()`.
138
140
  *
139
141
  * Setter clamps to [0, 1], applies `perceptualGain`, and writes to
140
142
  * `element.volume`. Subclasses that need additional tracking (e.g.
@@ -1 +1 @@
1
- {"version":3,"file":"MediaElementBackend.d.ts","sourceRoot":"","sources":["../../../src/adapters/media-element/MediaElementBackend.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGxE,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAUpD;;;;;GAKG;AACH,MAAM,WAAW,0BAA0B;IAC1C,SAAS,EAAE,OAAO,CAAC;IACnB,cAAc,EAAE,OAAO,CAAC;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,EAAE,OAAO,CAAC;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,OAAO,CAAC;CACf;AAED;;;;;;;;;;;;GAYG;AACH,MAAM,MAAM,kBAAkB,GAAG,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;AAErE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AACH,8BAAsB,mBAAmB,CACxC,GAAG,SAAS,gBAAgB,EAC5B,QAAQ,SAAS,0BAA0B,CAC1C,SAAQ,YAAY,CAAC,QAAQ,CAAC;IAC/B,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IACxC,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC;IACvB,SAAS,CAAC,WAAW,EAAE,OAAO,CAAC;IAE/B,SAAS,CAAC,WAAW,EAAE,gBAAgB,EAAE,CAAM;IAC/C,SAAS,CAAC,WAAW,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7C,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAa;IACxD,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAS;IAEpC,SAAS,CAAC,mBAAmB,EAAE,kBAAkB,GAAG,SAAS,CAAC;gBAElD,OAAO,EAAE,GAAG,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,SAAS;IASpE;;;;OAIG;IACH,qBAAqB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAMzD;;;;;;;;;;;;;;;OAeG;IACH,SAAS,CAAC,gBAAgB,CACzB,aAAa,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,EAC5C,QAAQ,EAAE,MAAM,YAAY,GAC1B,IAAI;IAUP;;;;OAIG;IACH,SAAS,CAAC,gBAAgB,CAAC,EAAE,GAAE,gBAA+B,GAAG,IAAI;IASrE;;;;;;;;;OASG;IACH,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,KAAK,IAAI,IAAI;IAIb,IAAI,IAAI,IAAI;IAYZ,WAAW,IAAI,MAAM;IACrB,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAalC,QAAQ,IAAI,MAAM;IAKlB,cAAc,IAAI,UAAU;IAI5B,QAAQ,IAAI,UAAU;IAItB,YAAY,IAAI,MAAM;IACtB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAUhC;;;;;;;;;OASG;IACH,MAAM,IAAI,MAAM;IAChB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAS3B;;;OAGG;IACH,IAAI,IAAI,IAAI;IAIZ,MAAM,IAAI,IAAI;IAMd;;;;OAIG;IACH,WAAW,IAAI,IAAI;IAKnB,YAAY,IAAI,IAAI;IAKpB,WAAW,IAAI,kBAAkB;IAMjC,aAAa,IAAI,WAAW;IAItB,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIhD,SAAS,IAAI,MAAM;IAInB,SAAS,IAAI,SAAS,GAAG,SAAS;IAI5B,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAIlD,YAAY,IAAI,GAAG;CAGnB"}
1
+ {"version":3,"file":"MediaElementBackend.d.ts","sourceRoot":"","sources":["../../../src/adapters/media-element/MediaElementBackend.ts"],"names":[],"mappings":"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"}