rx-player 4.5.0-dev.2026033100 → 4.5.0-dev.2026041501

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 (251) hide show
  1. package/CHANGELOG.md +22 -5
  2. package/VERSION +1 -1
  3. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  7. package/dist/commonjs/compat/can_patch_out_pssh.d.ts +42 -0
  8. package/dist/commonjs/compat/can_patch_out_pssh.d.ts.map +1 -0
  9. package/dist/commonjs/compat/can_patch_out_pssh.js +53 -0
  10. package/dist/commonjs/compat/env_detector.d.ts +2 -0
  11. package/dist/commonjs/compat/env_detector.d.ts.map +1 -1
  12. package/dist/commonjs/compat/env_detector.js +5 -0
  13. package/dist/commonjs/core/adaptive/network_analyzer.d.ts +1 -2
  14. package/dist/commonjs/core/adaptive/network_analyzer.d.ts.map +1 -1
  15. package/dist/commonjs/core/adaptive/network_analyzer.js +3 -3
  16. package/dist/commonjs/core/adaptive/utils/representation_score_calculator.js +2 -2
  17. package/dist/commonjs/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  18. package/dist/commonjs/core/cmcd/cmcd_data_builder.js +9 -3
  19. package/dist/commonjs/core/entry/content_preparer.d.ts.map +1 -1
  20. package/dist/commonjs/core/entry/content_preparer.js +5 -7
  21. package/dist/commonjs/core/entry/core_entry.d.ts.map +1 -1
  22. package/dist/commonjs/core/entry/core_entry.js +6 -2
  23. package/dist/commonjs/core/entry/core_text_displayer_interface.js +3 -3
  24. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  25. package/dist/commonjs/core/fetchers/manifest/manifest_fetcher.js +12 -0
  26. package/dist/commonjs/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
  27. package/dist/commonjs/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  28. package/dist/commonjs/core/fetchers/utils/schedule_request.js +4 -3
  29. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts +0 -2
  30. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  31. package/dist/commonjs/core/segment_sinks/garbage_collector.js +0 -3
  32. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
  33. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
  34. package/dist/commonjs/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
  35. package/dist/commonjs/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  36. package/dist/commonjs/core/stream/adaptation/adaptation_stream.js +6 -6
  37. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  38. package/dist/commonjs/core/stream/orchestrator/stream_orchestrator.js +37 -40
  39. package/dist/commonjs/default_config.d.ts +5 -0
  40. package/dist/commonjs/default_config.d.ts.map +1 -1
  41. package/dist/commonjs/default_config.js +5 -0
  42. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  43. package/dist/commonjs/main_thread/api/public_api.js +23 -16
  44. package/dist/commonjs/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  45. package/dist/commonjs/main_thread/decrypt/content_decryptor.js +4 -1
  46. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +1 -1
  47. package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts +2 -0
  48. package/dist/commonjs/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
  49. package/dist/commonjs/main_thread/decrypt/set_server_certificate.js +4 -0
  50. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +0 -8
  51. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  52. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +58 -50
  53. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
  54. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  55. package/dist/commonjs/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
  56. package/dist/commonjs/main_thread/render_thumbnail.d.ts.map +1 -1
  57. package/dist/commonjs/main_thread/render_thumbnail.js +4 -0
  58. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  59. package/dist/commonjs/main_thread/tracks_store/media_element_tracks_store.js +1 -0
  60. package/dist/commonjs/main_thread/tracks_store/tracks_store.d.ts +1 -1
  61. package/dist/commonjs/main_thread/tracks_store/tracks_store.js +1 -1
  62. package/dist/{es2017/parsers/containers/isobmff/take_pssh_out.d.ts → commonjs/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
  63. package/dist/commonjs/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
  64. package/dist/commonjs/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +22 -17
  65. package/dist/commonjs/parsers/containers/isobmff/index.d.ts +2 -2
  66. package/dist/commonjs/parsers/containers/isobmff/index.d.ts.map +1 -1
  67. package/dist/commonjs/parsers/containers/isobmff/index.js +4 -4
  68. package/dist/commonjs/playback_observer/core_playback_observer.d.ts +4 -4
  69. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +1 -1
  70. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +1 -2
  71. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  72. package/dist/commonjs/transports/dash/segment_parser.js +1 -1
  73. package/dist/commonjs/transports/local/segment_parser.js +1 -1
  74. package/dist/commonjs/utils/test-utils.d.ts +30 -0
  75. package/dist/commonjs/utils/test-utils.d.ts.map +1 -0
  76. package/dist/commonjs/utils/test-utils.js +79 -0
  77. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  78. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  79. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  80. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  81. package/dist/es2017/compat/can_patch_out_pssh.d.ts +42 -0
  82. package/dist/es2017/compat/can_patch_out_pssh.d.ts.map +1 -0
  83. package/dist/es2017/compat/can_patch_out_pssh.js +50 -0
  84. package/dist/es2017/compat/env_detector.d.ts +2 -0
  85. package/dist/es2017/compat/env_detector.d.ts.map +1 -1
  86. package/dist/es2017/compat/env_detector.js +5 -0
  87. package/dist/es2017/core/adaptive/network_analyzer.d.ts +1 -2
  88. package/dist/es2017/core/adaptive/network_analyzer.d.ts.map +1 -1
  89. package/dist/es2017/core/adaptive/network_analyzer.js +3 -3
  90. package/dist/es2017/core/adaptive/utils/representation_score_calculator.js +2 -2
  91. package/dist/es2017/core/cmcd/cmcd_data_builder.d.ts.map +1 -1
  92. package/dist/es2017/core/cmcd/cmcd_data_builder.js +9 -3
  93. package/dist/es2017/core/entry/content_preparer.d.ts.map +1 -1
  94. package/dist/es2017/core/entry/content_preparer.js +3 -5
  95. package/dist/es2017/core/entry/core_entry.d.ts.map +1 -1
  96. package/dist/es2017/core/entry/core_entry.js +6 -2
  97. package/dist/es2017/core/entry/core_text_displayer_interface.js +3 -3
  98. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.d.ts.map +1 -1
  99. package/dist/es2017/core/fetchers/manifest/manifest_fetcher.js +12 -0
  100. package/dist/es2017/core/fetchers/thumbnails/thumbnail_fetcher.js +1 -1
  101. package/dist/es2017/core/fetchers/utils/schedule_request.d.ts.map +1 -1
  102. package/dist/es2017/core/fetchers/utils/schedule_request.js +2 -3
  103. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts +0 -2
  104. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  105. package/dist/es2017/core/segment_sinks/garbage_collector.js +0 -3
  106. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts +1 -1
  107. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.d.ts.map +1 -1
  108. package/dist/es2017/core/segment_sinks/implementations/text/text_segment_sink.js +2 -2
  109. package/dist/es2017/core/stream/adaptation/adaptation_stream.d.ts.map +1 -1
  110. package/dist/es2017/core/stream/adaptation/adaptation_stream.js +6 -6
  111. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.d.ts.map +1 -1
  112. package/dist/es2017/core/stream/orchestrator/stream_orchestrator.js +40 -39
  113. package/dist/es2017/default_config.d.ts +5 -0
  114. package/dist/es2017/default_config.d.ts.map +1 -1
  115. package/dist/es2017/default_config.js +5 -0
  116. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  117. package/dist/es2017/main_thread/api/public_api.js +20 -13
  118. package/dist/es2017/main_thread/decrypt/content_decryptor.d.ts.map +1 -1
  119. package/dist/es2017/main_thread/decrypt/content_decryptor.js +4 -1
  120. package/dist/es2017/main_thread/decrypt/session_events_listener.js +1 -1
  121. package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts +2 -0
  122. package/dist/es2017/main_thread/decrypt/set_server_certificate.d.ts.map +1 -1
  123. package/dist/es2017/main_thread/decrypt/set_server_certificate.js +4 -0
  124. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +0 -8
  125. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  126. package/dist/es2017/main_thread/init/media_source_content_initializer.js +58 -50
  127. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts +35 -5
  128. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.d.ts.map +1 -1
  129. package/dist/es2017/main_thread/init/utils/stream_events_emitter/stream_events_emitter.js +60 -19
  130. package/dist/es2017/main_thread/render_thumbnail.d.ts.map +1 -1
  131. package/dist/es2017/main_thread/render_thumbnail.js +4 -0
  132. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.d.ts.map +1 -1
  133. package/dist/es2017/main_thread/tracks_store/media_element_tracks_store.js +1 -0
  134. package/dist/es2017/main_thread/tracks_store/tracks_store.d.ts +1 -1
  135. package/dist/es2017/main_thread/tracks_store/tracks_store.js +1 -1
  136. package/dist/{commonjs/parsers/containers/isobmff/take_pssh_out.d.ts → es2017/parsers/containers/isobmff/extract_pssh.d.ts} +6 -4
  137. package/dist/es2017/parsers/containers/isobmff/extract_pssh.d.ts.map +1 -0
  138. package/dist/es2017/parsers/containers/isobmff/{take_pssh_out.js → extract_pssh.js} +21 -16
  139. package/dist/es2017/parsers/containers/isobmff/index.d.ts +2 -2
  140. package/dist/es2017/parsers/containers/isobmff/index.d.ts.map +1 -1
  141. package/dist/es2017/parsers/containers/isobmff/index.js +2 -2
  142. package/dist/es2017/playback_observer/core_playback_observer.d.ts +4 -4
  143. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +1 -1
  144. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +1 -2
  145. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  146. package/dist/es2017/transports/dash/segment_parser.js +2 -2
  147. package/dist/es2017/transports/local/segment_parser.js +2 -2
  148. package/dist/es2017/utils/test-utils.d.ts +30 -0
  149. package/dist/es2017/utils/test-utils.d.ts.map +1 -0
  150. package/dist/es2017/utils/test-utils.js +36 -0
  151. package/dist/mpd-parser.wasm +0 -0
  152. package/dist/worker.js +6 -6
  153. package/package.json +4 -2
  154. package/src/README.md +7 -7
  155. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  156. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  157. package/src/compat/__tests__/can_patch_out_pssh.test.ts +40 -0
  158. package/src/compat/can_patch_out_pssh.ts +53 -0
  159. package/src/compat/env_detector.ts +4 -0
  160. package/src/core/README.md +1 -1
  161. package/src/core/adaptive/README.md +3 -3
  162. package/src/core/adaptive/__tests__/adaptive_representation_selector.test.ts +181 -110
  163. package/src/core/adaptive/__tests__/guess_based_chooser.test.ts +229 -123
  164. package/src/core/adaptive/__tests__/mocks.ts +100 -0
  165. package/src/core/adaptive/__tests__/network_analyzer.test.ts +152 -59
  166. package/src/core/adaptive/network_analyzer.ts +4 -4
  167. package/src/core/adaptive/utils/__tests__/filter_by_bitrate.test.ts +11 -19
  168. package/src/core/adaptive/utils/__tests__/filter_by_resolution.test.ts +12 -12
  169. package/src/core/adaptive/utils/__tests__/last_estimate_storage.test.ts +25 -12
  170. package/src/core/adaptive/utils/__tests__/pending_requests_store.test.ts +13 -9
  171. package/src/core/adaptive/utils/__tests__/representation_score_calculator.test.ts +11 -11
  172. package/src/core/adaptive/utils/__tests__/select_optimal_representation.test.ts +13 -23
  173. package/src/core/adaptive/utils/representation_score_calculator.ts +2 -2
  174. package/src/core/cmcd/__tests__/cmcd_data_builder.test.ts +60 -15
  175. package/src/core/cmcd/cmcd_data_builder.ts +9 -3
  176. package/src/core/entry/README.md +2 -2
  177. package/src/core/entry/__tests__/core_text_displayer_interface.test.ts +20 -0
  178. package/src/core/entry/content_preparer.ts +2 -5
  179. package/src/core/entry/core_entry.ts +6 -2
  180. package/src/core/entry/core_text_displayer_interface.ts +3 -3
  181. package/src/core/fetchers/manifest/__tests__/manifest_fetcher.test.ts +52 -3
  182. package/src/core/fetchers/manifest/manifest_fetcher.ts +12 -0
  183. package/src/core/fetchers/thumbnails/__tests__/thumbnail_fetcher.test.ts +70 -0
  184. package/src/core/fetchers/thumbnails/thumbnail_fetcher.ts +1 -1
  185. package/src/core/fetchers/utils/schedule_request.ts +5 -3
  186. package/src/core/segment_sinks/__tests__/garbage_collector.test.ts +434 -0
  187. package/src/core/segment_sinks/__tests__/mocks.ts +49 -0
  188. package/src/core/segment_sinks/garbage_collector.ts +0 -3
  189. package/src/core/segment_sinks/implementations/text/__tests__/text_segment_sink.test.ts +177 -0
  190. package/src/core/segment_sinks/implementations/text/text_segment_sink.ts +2 -2
  191. package/src/core/segment_sinks/inventory/__tests__/buffered_history.test.ts +215 -0
  192. package/src/core/segment_sinks/inventory/__tests__/segment_inventory.test.ts +448 -0
  193. package/src/core/stream/adaptation/__tests__/adaptation_stream.test.ts +973 -0
  194. package/src/core/stream/adaptation/__tests__/get_representations_switch_strategy.test.ts +283 -374
  195. package/src/core/stream/adaptation/adaptation_stream.ts +6 -8
  196. package/src/core/stream/orchestrator/README.md +4 -4
  197. package/src/core/stream/orchestrator/__tests__/stream_orchestrator.test.ts +707 -0
  198. package/src/core/stream/orchestrator/stream_orchestrator.ts +41 -46
  199. package/src/core/stream/period/utils/__tests__/get_adaptation_switch_strategy.test.ts +290 -220
  200. package/src/core/stream/representation/__tests__/encryption_data_notifier.test.ts +93 -63
  201. package/src/core/stream/representation/utils/__tests__/append_segment_to_buffer.test.ts +106 -63
  202. package/src/core/stream/representation/utils/__tests__/check_for_discontinuity.test.ts +179 -204
  203. package/src/core/stream/representation/utils/__tests__/get_segment_priority.test.ts +7 -7
  204. package/src/core/stream/representation/utils/__tests__/push_init_segment.test.ts +103 -60
  205. package/src/core/stream/representation/utils/__tests__/push_media_segment.test.ts +231 -165
  206. package/src/default_config.ts +6 -0
  207. package/src/experimental/README.md +1 -1
  208. package/src/features/README.md +3 -3
  209. package/src/main_thread/api/README.md +6 -7
  210. package/src/main_thread/api/public_api.ts +16 -10
  211. package/src/main_thread/decrypt/README.md +4 -4
  212. package/src/main_thread/decrypt/__tests__/__global__/content_decryptor.test.ts +135 -0
  213. package/src/main_thread/decrypt/__tests__/__global__/get_license.test.ts +70 -0
  214. package/src/main_thread/decrypt/__tests__/__global__/server_certificate.test.ts +44 -0
  215. package/src/main_thread/decrypt/__tests__/__global__/utils.ts +2 -2
  216. package/src/main_thread/decrypt/content_decryptor.ts +6 -1
  217. package/src/main_thread/decrypt/session_events_listener.ts +1 -1
  218. package/src/main_thread/decrypt/set_server_certificate.ts +5 -0
  219. package/src/main_thread/init/media_source_content_initializer.ts +69 -55
  220. package/src/main_thread/init/utils/__tests__/stream_events_emitter.test.ts +175 -0
  221. package/src/main_thread/init/utils/stream_events_emitter/stream_events_emitter.ts +90 -26
  222. package/src/main_thread/render_thumbnail.ts +4 -0
  223. package/src/main_thread/tracks_store/README.md +12 -0
  224. package/src/main_thread/tracks_store/__tests__/media_element_tracks_store.test.ts +25 -18
  225. package/src/main_thread/tracks_store/media_element_tracks_store.ts +1 -0
  226. package/src/main_thread/tracks_store/tracks_store.ts +1 -1
  227. package/src/manifest/classes/__tests__/mocks.ts +202 -0
  228. package/src/parsers/containers/isobmff/__tests__/extract_pssh.test.ts +199 -0
  229. package/src/parsers/containers/isobmff/{take_pssh_out.ts → extract_pssh.ts} +21 -17
  230. package/src/parsers/containers/isobmff/index.ts +2 -2
  231. package/src/parsers/manifest/dash/wasm-parser/README.md +9 -9
  232. package/src/playback_observer/__tests__/mocks.ts +152 -0
  233. package/src/playback_observer/core_playback_observer.ts +4 -4
  234. package/src/playback_observer/media_element_playback_observer.ts +1 -1
  235. package/src/tools/README.md +2 -2
  236. package/src/transports/README.md +5 -5
  237. package/src/transports/dash/segment_parser.ts +2 -2
  238. package/src/transports/local/segment_parser.ts +2 -2
  239. package/src/transports/metaplaylist/README.md +4 -4
  240. package/src/utils/README.md +3 -3
  241. package/src/utils/test-utils.ts +50 -0
  242. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
  243. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  244. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.js +0 -20
  245. package/dist/commonjs/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
  246. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts +0 -11
  247. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  248. package/dist/es2017/core/entry/synchronize_sinks_on_observation.js +0 -17
  249. package/dist/es2017/parsers/containers/isobmff/take_pssh_out.d.ts.map +0 -1
  250. package/src/core/adaptive/utils/__tests__/bandwith_estimator.test.ts +0 -117
  251. package/src/core/entry/synchronize_sinks_on_observation.ts +0 -22
@@ -13,50 +13,55 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
+ import canPatchOutPsshBox from "../../../compat/can_patch_out_pssh";
16
17
  import log from "../../../log";
17
18
  import sliceUint8Array from "../../../utils/slice_uint8array";
18
19
  import { bytesToHex } from "../../../utils/string_parsing";
19
20
  import { getBoxContent, getBoxOffsets } from "./get_box";
20
21
  /**
21
- * Replace every PSSH box from an ISOBMFF segment by FREE boxes and returns the
22
- * removed PSSH in an array.
22
+ * Return every `pssh` box from an ISOBMFF segment.
23
+ *
24
+ * If the current device has no issue with it, also replace them by `free` boxes.
23
25
  * Useful to manually manage encryption while avoiding the round-trip with the
24
26
  * browser's encrypted event.
27
+ *
25
28
  * @param {Uint8Array} data - the ISOBMFF segment
26
29
  * @returns {Array.<Uint8Array>} - The extracted PSSH boxes. In the order they
27
30
  * are encountered.
28
31
  */
29
- export default function takePSSHOut(data) {
30
- let i = 0;
31
- const moov = getBoxContent(data, 0x6d6f6f76 /* moov */);
32
- if (moov === null) {
32
+ export default function extractPssh(data) {
33
+ const moovContent = getBoxContent(data, 0x6d6f6f76 /* moov */);
34
+ if (moovContent === null) {
33
35
  return [];
34
36
  }
35
37
  const psshBoxes = [];
36
- while (i < moov.length) {
38
+ let remainingMoovContent = moovContent;
39
+ while (remainingMoovContent.length > 0) {
37
40
  let psshOffsets;
38
41
  try {
39
- psshOffsets = getBoxOffsets(moov, 0x70737368 /* pssh */);
42
+ psshOffsets = getBoxOffsets(remainingMoovContent, 0x70737368 /* pssh */);
40
43
  }
41
44
  catch (e) {
42
- const err = e instanceof Error ? e : "";
45
+ const err = e instanceof Error ? e : new Error("Unknown ISOBMFF box reading error");
43
46
  log.warn("isobmff", "Error while removing PSSH from ISOBMFF", err);
44
47
  return psshBoxes;
45
48
  }
46
49
  if (psshOffsets === null) {
47
50
  return psshBoxes;
48
51
  }
49
- const pssh = sliceUint8Array(moov, psshOffsets[0], psshOffsets[2]);
52
+ const pssh = sliceUint8Array(remainingMoovContent, psshOffsets[0], psshOffsets[2]);
50
53
  const systemId = getPsshSystemID(pssh, psshOffsets[1] - psshOffsets[0]);
51
54
  if (systemId !== undefined) {
52
55
  psshBoxes.push({ systemId, data: pssh });
53
56
  }
54
- // replace by `free` box.
55
- moov[psshOffsets[0] + 4] = 0x66;
56
- moov[psshOffsets[0] + 5] = 0x72;
57
- moov[psshOffsets[0] + 6] = 0x65;
58
- moov[psshOffsets[0] + 7] = 0x65;
59
- i = psshOffsets[2];
57
+ if (canPatchOutPsshBox()) {
58
+ // replace by `free` box.
59
+ remainingMoovContent[psshOffsets[0] + 4] = 0x66;
60
+ remainingMoovContent[psshOffsets[0] + 5] = 0x72;
61
+ remainingMoovContent[psshOffsets[0] + 6] = 0x65;
62
+ remainingMoovContent[psshOffsets[0] + 7] = 0x65;
63
+ }
64
+ remainingMoovContent = remainingMoovContent.subarray(psshOffsets[2]);
60
65
  }
61
66
  return psshBoxes;
62
67
  }
@@ -14,14 +14,14 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import extractCompleteChunks, { extractInitSegment } from "./extract_complete_chunks";
17
+ import extractPssh, { getPsshSystemID } from "./extract_pssh";
17
18
  import findCompleteBox from "./find_complete_box";
18
19
  import removeDolbyVisionConfigData from "./remove_dolby_vision_config_data";
19
- import takePSSHOut, { getPsshSystemID } from "./take_pssh_out";
20
20
  export { extractInitSegment };
21
21
  export { createBox, createBoxWithChildren } from "./create_box";
22
22
  export { getBox, getBoxContent, getNextBoxOffsets, getBoxOffsets, getUuidContent, } from "./get_box";
23
23
  export { getMDAT, getMDIA, getTRAF } from "./read";
24
24
  export type { IEMSG, ISidxSegment } from "./utils";
25
25
  export { getMDHDTimescale, getPlayReadyKIDFromPrivateData, getTrackFragmentDecodeTime, getDurationFromTrun, getSegmentsFromSidx, patchPssh, updateBoxLength, } from "./utils";
26
- export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, takePSSHOut, };
26
+ export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, extractPssh, };
27
27
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,2BAA2B,MAAM,mCAAmC,CAAC;AAC5E,OAAO,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,WAAW,GACZ,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/parsers/containers/isobmff/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,qBAAqB,EAAE,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AACtF,OAAO,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,eAAe,MAAM,qBAAqB,CAAC;AAClD,OAAO,2BAA2B,MAAM,mCAAmC,CAAC;AAE5E,OAAO,EAAE,kBAAkB,EAAE,CAAC;AAC9B,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACL,MAAM,EACN,aAAa,EACb,iBAAiB,EACjB,aAAa,EACb,cAAc,GACf,MAAM,WAAW,CAAC;AACnB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AACnD,YAAY,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EACL,gBAAgB,EAChB,8BAA8B,EAC9B,0BAA0B,EAC1B,mBAAmB,EACnB,mBAAmB,EACnB,SAAS,EACT,eAAe,GAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,eAAe,EACf,2BAA2B,EAC3B,WAAW,GACZ,CAAC"}
@@ -14,12 +14,12 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import extractCompleteChunks, { extractInitSegment } from "./extract_complete_chunks";
17
+ import extractPssh, { getPsshSystemID } from "./extract_pssh";
17
18
  import findCompleteBox from "./find_complete_box";
18
19
  import removeDolbyVisionConfigData from "./remove_dolby_vision_config_data";
19
- import takePSSHOut, { getPsshSystemID } from "./take_pssh_out";
20
20
  export { extractInitSegment };
21
21
  export { createBox, createBoxWithChildren } from "./create_box";
22
22
  export { getBox, getBoxContent, getNextBoxOffsets, getBoxOffsets, getUuidContent, } from "./get_box";
23
23
  export { getMDAT, getMDIA, getTRAF } from "./read";
24
24
  export { getMDHDTimescale, getPlayReadyKIDFromPrivateData, getTrackFragmentDecodeTime, getDurationFromTrun, getSegmentsFromSidx, patchPssh, updateBoxLength, } from "./utils";
25
- export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, takePSSHOut, };
25
+ export { extractCompleteChunks, findCompleteBox, getPsshSystemID, removeDolbyVisionConfigData, extractPssh, };
@@ -70,12 +70,12 @@ export default class CorePlaybackObserver implements IReadOnlyPlaybackObserver<I
70
70
  private _messageSender;
71
71
  private _contentId;
72
72
  constructor(src: IReadOnlySharedReference<ICorePlaybackObservation>, contentId: string, sendMessage: (msg: IUpdatePlaybackRateCoreMessage) => void, cancellationSignal: CancellationSignal);
73
- getCurrentTime(): number | undefined;
74
- getReadyState(): number | undefined;
75
- getIsPaused(): boolean | undefined;
73
+ getCurrentTime(): undefined;
74
+ getReadyState(): undefined;
75
+ getIsPaused(): undefined;
76
76
  getReference(): IReadOnlySharedReference<ICorePlaybackObservation>;
77
77
  setPlaybackRate(playbackRate: number): void;
78
- getPlaybackRate(): number | undefined;
78
+ getPlaybackRate(): undefined;
79
79
  listen(cb: (observation: ICorePlaybackObservation, stopListening: () => void) => void, params: {
80
80
  includeLastObservation?: boolean | undefined;
81
81
  clearSignal: CancellationSignal;
@@ -1 +1 @@
1
- {"version":3,"file":"core_playback_observer.d.ts","sourceRoot":"","sources":["../../../src/playback_observer/core_playback_observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,mBAAmB,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,EAAE,0BAA0B,CAAC;IACnC;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;OAQG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,oBACnB,YAAW,yBAAyB,CAAC,wBAAwB,CAAC;IAE9D,OAAO,CAAC,IAAI,CAAqD;IACjE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,UAAU,CAAS;gBAGzB,GAAG,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EACvD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,CAAC,GAAG,EAAE,8BAA8B,KAAK,IAAI,EAC1D,kBAAkB,EAAE,kBAAkB;IAQjC,cAAc,IAAI,MAAM,GAAG,SAAS;IAIpC,aAAa,IAAI,MAAM,GAAG,SAAS;IAInC,WAAW,IAAI,OAAO,GAAG,SAAS;IAIlC,YAAY,IAAI,wBAAwB,CAAC,wBAAwB,CAAC;IAIlE,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ3C,eAAe,IAAI,MAAM,GAAG,SAAS;IAIrC,MAAM,CACX,EAAE,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,IAAI,KAAK,IAAI,EAC9E,MAAM,EAAE;QACN,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7C,WAAW,EAAE,kBAAkB,CAAC;KACjC,GACA,IAAI;IAWA,sBAAsB,CAAC,KAAK,EACjC,SAAS,EAAE,CACT,cAAc,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EAClE,kBAAkB,EAAE,kBAAkB,KACnC,wBAAwB,CAAC,KAAK,CAAC,GACnC,yBAAyB,CAAC,KAAK,CAAC;CAGpC"}
1
+ {"version":3,"file":"core_playback_observer.d.ts","sourceRoot":"","sources":["../../../src/playback_observer/core_playback_observer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,8BAA8B,EAAE,MAAM,eAAe,CAAC;AAEpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AACnE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,KAAK,EACV,eAAe,EACf,yBAAyB,EACzB,kBAAkB,EACnB,MAAM,SAAS,CAAC;AAEjB,OAAO,KAAK,mBAAmB,MAAM,8BAA8B,CAAC;AAEpE,MAAM,WAAW,wBAAwB;IACvC;;;OAGG;IACH,MAAM,EAAE,0BAA0B,CAAC;IACnC;;;OAGG;IACH,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,mDAAmD;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,qDAAqD;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,KAAK,EAAE,MAAM,CAAC;IACd,gFAAgF;IAChF,eAAe,EAAE,MAAM,CAAC;IACxB;;;OAGG;IACH,QAAQ,EAAE,MAAM,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC;IAC9C,WAAW,EAAE,kBAAkB,GAAG,IAAI,CAAC;IACvC,QAAQ,EAAE,eAAe,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B;;;;;;;;OAQG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,kEAAkE;IAClE,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,2EAA2E;AAC3E,MAAM,WAAW,0BAA0B;IACzC;;;;;;;;OAQG;IACH,IAAI,EAAE,OAAO,CAAC;IACd;;;;OAIG;IACH,OAAO,EAAE,OAAO,GAAG,SAAS,CAAC;CAC9B;AAED,MAAM,CAAC,OAAO,OAAO,oBACnB,YAAW,yBAAyB,CAAC,wBAAwB,CAAC;IAE9D,OAAO,CAAC,IAAI,CAAqD;IACjE,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,cAAc,CAAgD;IACtE,OAAO,CAAC,UAAU,CAAS;gBAGzB,GAAG,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EACvD,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,CAAC,GAAG,EAAE,8BAA8B,KAAK,IAAI,EAC1D,kBAAkB,EAAE,kBAAkB;IAQjC,cAAc,IAAI,SAAS;IAI3B,aAAa,IAAI,SAAS;IAI1B,WAAW,IAAI,SAAS;IAIxB,YAAY,IAAI,wBAAwB,CAAC,wBAAwB,CAAC;IAIlE,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAQ3C,eAAe,IAAI,SAAS;IAI5B,MAAM,CACX,EAAE,EAAE,CAAC,WAAW,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,IAAI,KAAK,IAAI,EAC9E,MAAM,EAAE;QACN,sBAAsB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;QAC7C,WAAW,EAAE,kBAAkB,CAAC;KACjC,GACA,IAAI;IAWA,sBAAsB,CAAC,KAAK,EACjC,SAAS,EAAE,CACT,cAAc,EAAE,wBAAwB,CAAC,wBAAwB,CAAC,EAClE,kBAAkB,EAAE,kBAAkB,KACnC,wBAAwB,CAAC,KAAK,CAAC,GACnC,yBAAyB,CAAC,KAAK,CAAC;CAGpC"}
@@ -278,11 +278,10 @@ export interface IPlaybackObserverOptions {
278
278
  withMediaSource: boolean;
279
279
  lowLatencyMode: boolean;
280
280
  }
281
- interface IPendingSeekInformation {
281
+ export interface IPendingSeekInformation {
282
282
  /** Position to seek to. */
283
283
  position: number;
284
284
  /** If `true`, the seek was performed by the RxPlayer's internal logic. */
285
285
  isInternal: boolean;
286
286
  }
287
- export {};
288
287
  //# sourceMappingURL=media_element_playback_observer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"media_element_playback_observer.d.ts","sourceRoot":"","sources":["../../../src/playback_observer/media_element_playback_observer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"media_element_playback_observer.d.ts","sourceRoot":"","sources":["../../../src/playback_observer/media_element_playback_observer.ts"],"names":[],"mappings":"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"}
@@ -15,7 +15,7 @@
15
15
  */
16
16
  import shouldPatchOutDolbyVisionConfigDataFromMp4 from "../../compat/should_patch_out_dolby_vision_config_data_from_mp4";
17
17
  import logger from "../../log";
18
- import { getMDHDTimescale, getSegmentsFromSidx, takePSSHOut, removeDolbyVisionConfigData, } from "../../parsers/containers/isobmff";
18
+ import { getMDHDTimescale, getSegmentsFromSidx, extractPssh, removeDolbyVisionConfigData, } from "../../parsers/containers/isobmff";
19
19
  import { getKeyIdFromInitSegment, parseEmsgBoxes, } from "../../parsers/containers/isobmff/utils";
20
20
  import { getSegmentsFromCues, getTimeCodeScale } from "../../parsers/containers/matroska";
21
21
  import { toUint8Array } from "../../utils/byte_parsing";
@@ -59,7 +59,7 @@ export default function generateAudioVideoSegmentParser({ __priv_patchLastSegmen
59
59
  const seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
60
60
  const protectionData = [];
61
61
  if (seemsToBeMP4) {
62
- const psshInfo = takePSSHOut(chunkData);
62
+ const psshInfo = extractPssh(chunkData);
63
63
  let keyId;
64
64
  if (segment.isInit) {
65
65
  keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { getMDHDTimescale, takePSSHOut } from "../../parsers/containers/isobmff";
16
+ import { getMDHDTimescale, extractPssh } from "../../parsers/containers/isobmff";
17
17
  import { getKeyIdFromInitSegment } from "../../parsers/containers/isobmff/utils";
18
18
  import { getTimeCodeScale } from "../../parsers/containers/matroska";
19
19
  import getISOBMFFTimingInfos from "../utils/get_isobmff_timing_infos";
@@ -49,7 +49,7 @@ export default function segmentParser(loadedSegment, context, initTimescale) {
49
49
  const seemsToBeMP4 = containerType === "mp4" || containerType === undefined;
50
50
  const protectionData = [];
51
51
  if (seemsToBeMP4) {
52
- const psshInfo = takePSSHOut(chunkData);
52
+ const psshInfo = extractPssh(chunkData);
53
53
  let keyId;
54
54
  if (segment.isInit) {
55
55
  keyId = (_a = getKeyIdFromInitSegment(chunkData)) !== null && _a !== void 0 ? _a : undefined;
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Util useful to create mocked versions of classes with each of their methods
3
+ * and properties replaced, while being properly checked by TypeScript.
4
+ * @param {Object} methods - Each of this class' methods (key is the method
5
+ * name, value is the implementation).
6
+ * @param {Object} properties - Each of this class' property (key is the
7
+ * property name, value is the implementation).
8
+ * @returns {*} - The mocked class, which should respect its public API.
9
+ */
10
+ export declare function makeMockedClass<T>(methods: MethodsMap<T>, properties: PropertiesMap<T>): {
11
+ new (opts?: Partial<T>): T;
12
+ prototype: IPrototype<T>;
13
+ };
14
+ type IPrototype<T> = {
15
+ [K in keyof T as T[K] extends Function ? K : never]: T[K];
16
+ };
17
+ type MethodKeys<T> = {
18
+ [K in keyof T]: T[K] extends Function ? K : never;
19
+ }[keyof T];
20
+ type PropertyKeys<T> = {
21
+ [K in keyof T]: T[K] extends Function ? never : K;
22
+ }[keyof T];
23
+ type MethodsMap<T> = {
24
+ [K in MethodKeys<T>]: T[K];
25
+ };
26
+ type PropertiesMap<T> = {
27
+ [K in PropertyKeys<T>]: T[K];
28
+ };
29
+ export {};
30
+ //# sourceMappingURL=test-utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../../src/utils/test-utils.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAC/B,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,EACtB,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAC3B;IAAE,KAAK,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;IAAC,SAAS,EAAE,UAAU,CAAC,CAAC,CAAC,CAAA;CAAE,CA0B1D;AAGD,KAAK,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AAGnF,KAAK,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,CAAC,GAAG,KAAK;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AACpF,KAAK,YAAY,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,QAAQ,GAAG,KAAK,GAAG,CAAC;CAAE,CAAC,MAAM,CAAC,CAAC,CAAC;AAGtF,KAAK,UAAU,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC;AACpD,KAAK,aAAa,CAAC,CAAC,IAAI;KAAG,CAAC,IAAI,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;CAAE,CAAC"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Util useful to create mocked versions of classes with each of their methods
3
+ * and properties replaced, while being properly checked by TypeScript.
4
+ * @param {Object} methods - Each of this class' methods (key is the method
5
+ * name, value is the implementation).
6
+ * @param {Object} properties - Each of this class' property (key is the
7
+ * property name, value is the implementation).
8
+ * @returns {*} - The mocked class, which should respect its public API.
9
+ */
10
+ export function makeMockedClass(methods, properties) {
11
+ // eslint-disable-next-line @typescript-eslint/no-extraneous-class
12
+ class Dummy {
13
+ constructor(opts = {}) {
14
+ // Apply default property values
15
+ for (const key in properties) {
16
+ if (Object.prototype.hasOwnProperty.call(properties, key)) {
17
+ // @ts-expect-error dynamic assignment
18
+ // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
19
+ this[key] = properties[key];
20
+ }
21
+ }
22
+ // Override with any provided opts
23
+ for (const key in opts) {
24
+ if (Object.prototype.hasOwnProperty.call(opts, key)) {
25
+ // @ts-expect-error dynamic assignment
26
+ this[key] = opts[key];
27
+ }
28
+ }
29
+ }
30
+ }
31
+ for (const [name, fn] of Object.entries(methods)) {
32
+ // @ts-expect-error dynamic assignment
33
+ Dummy.prototype[name] = fn;
34
+ }
35
+ return Dummy;
36
+ }
Binary file