rx-player 4.3.0-dev.2025031700 → 4.3.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.
Files changed (232) hide show
  1. package/CHANGELOG.md +9 -1
  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/add_class_name.d.ts.map +1 -1
  8. package/dist/commonjs/compat/add_class_name.js +1 -4
  9. package/dist/commonjs/compat/browser_compatibility_types.d.ts.map +1 -1
  10. package/dist/commonjs/compat/browser_compatibility_types.js +0 -1
  11. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  12. package/dist/commonjs/compat/eme/custom_media_keys/webkit_media_keys.js +0 -2
  13. package/dist/commonjs/compat/eme/eme-api-implementation.js +0 -1
  14. package/dist/commonjs/compat/eme/generate_key_request.d.ts +2 -2
  15. package/dist/commonjs/compat/eme/generate_key_request.js +2 -2
  16. package/dist/commonjs/compat/is_vtt_cue.d.ts.map +1 -1
  17. package/dist/commonjs/compat/is_vtt_cue.js +0 -1
  18. package/dist/commonjs/compat/patch_webkit_source_buffer.js +1 -1
  19. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -1
  20. package/dist/commonjs/core/main/worker/content_preparer.js +82 -0
  21. package/dist/commonjs/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  22. package/dist/commonjs/core/segment_sinks/garbage_collector.js +4 -0
  23. package/dist/commonjs/core/stream/representation/representation_stream.d.ts.map +1 -1
  24. package/dist/commonjs/core/stream/representation/representation_stream.js +29 -45
  25. package/dist/commonjs/core/stream/representation/utils/push_init_segment.d.ts.map +1 -1
  26. package/dist/commonjs/core/stream/representation/utils/push_init_segment.js +0 -3
  27. package/dist/commonjs/core/stream/representation/utils/push_media_segment.d.ts.map +1 -1
  28. package/dist/commonjs/core/stream/representation/utils/push_media_segment.js +0 -3
  29. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  30. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +2 -2
  31. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/capabilities.js +2 -2
  32. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  33. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +0 -1
  34. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts.map +1 -1
  35. package/dist/commonjs/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +0 -1
  36. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  37. package/dist/commonjs/main_thread/api/public_api.js +2 -3
  38. package/dist/commonjs/main_thread/decrypt/session_events_listener.d.ts.map +1 -1
  39. package/dist/commonjs/main_thread/decrypt/session_events_listener.js +26 -18
  40. package/dist/commonjs/main_thread/decrypt/utils/loaded_sessions_store.d.ts +1 -1
  41. package/dist/commonjs/main_thread/decrypt/utils/loaded_sessions_store.js +1 -1
  42. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  43. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +5 -3
  44. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +5 -4
  45. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  46. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.js +10 -4
  47. package/dist/commonjs/manifest/classes/manifest.js +1 -1
  48. package/dist/commonjs/manifest/classes/representation.d.ts +2 -0
  49. package/dist/commonjs/manifest/classes/representation.d.ts.map +1 -1
  50. package/dist/commonjs/manifest/classes/representation.js +1 -0
  51. package/dist/commonjs/manifest/types.d.ts +2 -0
  52. package/dist/commonjs/manifest/types.d.ts.map +1 -1
  53. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +1 -1
  54. package/dist/commonjs/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -1
  55. package/dist/commonjs/parsers/manifest/dash/common/indexes/tokens.js +3 -3
  56. package/dist/commonjs/parsers/manifest/dash/common/parse_representations.js +1 -1
  57. package/dist/commonjs/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  58. package/dist/commonjs/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  59. package/dist/commonjs/parsers/texttracks/ttml/parse_ttml.d.ts +1 -1
  60. package/dist/commonjs/parsers/texttracks/ttml/regexps.d.ts.map +1 -1
  61. package/dist/commonjs/parsers/texttracks/ttml/regexps.js +1 -1
  62. package/dist/commonjs/parsers/texttracks/webvtt/native/set_settings_on_cue.js +1 -1
  63. package/dist/commonjs/transports/smooth/segment_loader.d.ts.map +1 -1
  64. package/dist/commonjs/utils/array_find.js +1 -1
  65. package/dist/commonjs/utils/array_find_index.js +1 -1
  66. package/dist/commonjs/utils/array_includes.js +1 -1
  67. package/dist/commonjs/utils/assert.js +1 -1
  68. package/dist/commonjs/utils/flat_map.d.ts.map +1 -1
  69. package/dist/commonjs/utils/flat_map.js +0 -1
  70. package/dist/commonjs/utils/logger.d.ts.map +1 -1
  71. package/dist/commonjs/utils/logger.js +0 -2
  72. package/dist/commonjs/utils/noop.js +1 -1
  73. package/dist/commonjs/utils/object_assign.d.ts.map +1 -1
  74. package/dist/commonjs/utils/object_assign.js +3 -4
  75. package/dist/commonjs/utils/object_values.js +1 -1
  76. package/dist/commonjs/utils/request/xhr.js +1 -1
  77. package/dist/commonjs/utils/starts_with.d.ts.map +1 -1
  78. package/dist/commonjs/utils/starts_with.js +0 -1
  79. package/dist/commonjs/utils/string_parsing.js +1 -1
  80. package/dist/commonjs/utils/url-utils.js +2 -2
  81. package/dist/commonjs/utils/weak_map_memory.d.ts.map +1 -1
  82. package/dist/commonjs/utils/weak_map_memory.js +0 -1
  83. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  84. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  85. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  86. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  87. package/dist/es2017/compat/add_class_name.d.ts.map +1 -1
  88. package/dist/es2017/compat/add_class_name.js +1 -4
  89. package/dist/es2017/compat/browser_compatibility_types.d.ts.map +1 -1
  90. package/dist/es2017/compat/browser_compatibility_types.js +0 -1
  91. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.d.ts.map +1 -1
  92. package/dist/es2017/compat/eme/custom_media_keys/webkit_media_keys.js +0 -2
  93. package/dist/es2017/compat/eme/eme-api-implementation.js +0 -1
  94. package/dist/es2017/compat/eme/generate_key_request.d.ts +2 -2
  95. package/dist/es2017/compat/eme/generate_key_request.js +2 -2
  96. package/dist/es2017/compat/is_vtt_cue.d.ts.map +1 -1
  97. package/dist/es2017/compat/is_vtt_cue.js +0 -1
  98. package/dist/es2017/compat/patch_webkit_source_buffer.js +1 -1
  99. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -1
  100. package/dist/es2017/core/main/worker/content_preparer.js +34 -0
  101. package/dist/es2017/core/segment_sinks/garbage_collector.d.ts.map +1 -1
  102. package/dist/es2017/core/segment_sinks/garbage_collector.js +4 -0
  103. package/dist/es2017/core/stream/representation/representation_stream.d.ts.map +1 -1
  104. package/dist/es2017/core/stream/representation/representation_stream.js +29 -45
  105. package/dist/es2017/core/stream/representation/utils/push_init_segment.d.ts.map +1 -1
  106. package/dist/es2017/core/stream/representation/utils/push_init_segment.js +0 -3
  107. package/dist/es2017/core/stream/representation/utils/push_media_segment.d.ts.map +1 -1
  108. package/dist/es2017/core/stream/representation/utils/push_media_segment.js +0 -3
  109. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/api/index.js +1 -1
  110. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/capabilities.d.ts +2 -2
  111. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/capabilities.js +2 -2
  112. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.d.ts.map +1 -1
  113. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.js +0 -1
  114. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.d.ts.map +1 -1
  115. package/dist/es2017/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.js +0 -1
  116. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  117. package/dist/es2017/main_thread/api/public_api.js +2 -3
  118. package/dist/es2017/main_thread/decrypt/session_events_listener.d.ts.map +1 -1
  119. package/dist/es2017/main_thread/decrypt/session_events_listener.js +4 -6
  120. package/dist/es2017/main_thread/decrypt/utils/loaded_sessions_store.d.ts +1 -1
  121. package/dist/es2017/main_thread/decrypt/utils/loaded_sessions_store.js +1 -1
  122. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -1
  123. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +5 -3
  124. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +5 -4
  125. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  126. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.js +10 -4
  127. package/dist/es2017/manifest/classes/manifest.js +1 -1
  128. package/dist/es2017/manifest/classes/representation.d.ts +2 -0
  129. package/dist/es2017/manifest/classes/representation.d.ts.map +1 -1
  130. package/dist/es2017/manifest/classes/representation.js +1 -0
  131. package/dist/es2017/manifest/types.d.ts +2 -0
  132. package/dist/es2017/manifest/types.d.ts.map +1 -1
  133. package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.d.ts +1 -1
  134. package/dist/es2017/parsers/manifest/dash/common/convert_supplemental_codecs.js +1 -1
  135. package/dist/es2017/parsers/manifest/dash/common/indexes/tokens.js +3 -3
  136. package/dist/es2017/parsers/manifest/dash/common/parse_representations.js +1 -1
  137. package/dist/es2017/parsers/manifest/dash/fast-js-parser/node_parsers/utils.d.ts.map +1 -1
  138. package/dist/es2017/parsers/manifest/dash/native-parser/node_parsers/utils.d.ts.map +1 -1
  139. package/dist/es2017/parsers/texttracks/ttml/parse_ttml.d.ts +1 -1
  140. package/dist/es2017/parsers/texttracks/ttml/regexps.d.ts.map +1 -1
  141. package/dist/es2017/parsers/texttracks/ttml/regexps.js +1 -1
  142. package/dist/es2017/parsers/texttracks/webvtt/native/set_settings_on_cue.js +1 -1
  143. package/dist/es2017/transports/smooth/segment_loader.d.ts.map +1 -1
  144. package/dist/es2017/utils/array_find.js +1 -1
  145. package/dist/es2017/utils/array_find_index.js +1 -1
  146. package/dist/es2017/utils/array_includes.js +1 -1
  147. package/dist/es2017/utils/assert.js +1 -1
  148. package/dist/es2017/utils/flat_map.d.ts.map +1 -1
  149. package/dist/es2017/utils/flat_map.js +0 -1
  150. package/dist/es2017/utils/logger.d.ts.map +1 -1
  151. package/dist/es2017/utils/logger.js +0 -2
  152. package/dist/es2017/utils/noop.js +1 -1
  153. package/dist/es2017/utils/object_assign.d.ts.map +1 -1
  154. package/dist/es2017/utils/object_assign.js +3 -4
  155. package/dist/es2017/utils/object_values.js +1 -1
  156. package/dist/es2017/utils/request/xhr.js +1 -1
  157. package/dist/es2017/utils/starts_with.d.ts.map +1 -1
  158. package/dist/es2017/utils/starts_with.js +0 -1
  159. package/dist/es2017/utils/string_parsing.js +1 -1
  160. package/dist/es2017/utils/url-utils.js +2 -2
  161. package/dist/es2017/utils/weak_map_memory.d.ts.map +1 -1
  162. package/dist/es2017/utils/weak_map_memory.js +0 -1
  163. package/dist/mpd-parser.wasm +0 -0
  164. package/dist/rx-player.js +80 -107
  165. package/dist/rx-player.min.js +13 -13
  166. package/dist/worker.js +4 -4
  167. package/eslint.config.mjs +423 -0
  168. package/package.json +25 -20
  169. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  170. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  171. package/src/compat/__tests__/should_wait_for_data_before_loaded.test.ts +0 -1
  172. package/src/compat/add_class_name.ts +1 -4
  173. package/src/compat/browser_compatibility_types.ts +0 -1
  174. package/src/compat/eme/custom_media_keys/webkit_media_keys.ts +0 -2
  175. package/src/compat/eme/eme-api-implementation.ts +0 -1
  176. package/src/compat/eme/generate_key_request.ts +2 -2
  177. package/src/compat/is_vtt_cue.ts +0 -1
  178. package/src/compat/patch_webkit_source_buffer.ts +1 -1
  179. package/src/core/main/worker/content_preparer.ts +35 -1
  180. package/src/core/segment_sinks/garbage_collector.ts +4 -0
  181. package/src/core/stream/representation/representation_stream.ts +29 -64
  182. package/src/core/stream/representation/utils/push_init_segment.ts +0 -3
  183. package/src/core/stream/representation/utils/push_media_segment.ts +0 -3
  184. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/DRMInfos.test.ts +0 -3
  185. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/HDCPPolicy.test.ts +0 -2
  186. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/decodingInfos.test.ts +0 -2
  187. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaContentType.test.ts +0 -2
  188. package/src/experimental/tools/mediaCapabilitiesProber/__tests__/probers/mediaDisplayInfos.test.ts +0 -7
  189. package/src/experimental/tools/mediaCapabilitiesProber/api/index.ts +1 -1
  190. package/src/experimental/tools/mediaCapabilitiesProber/capabilities.ts +2 -2
  191. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaContentType.ts +0 -1
  192. package/src/experimental/tools/mediaCapabilitiesProber/probers/mediaDisplayInfos.ts +0 -1
  193. package/src/main_thread/api/public_api.ts +2 -3
  194. package/src/main_thread/decrypt/session_events_listener.ts +9 -8
  195. package/src/main_thread/decrypt/utils/loaded_sessions_store.ts +1 -1
  196. package/src/main_thread/init/multi_thread_content_initializer.ts +5 -2
  197. package/src/main_thread/init/utils/__tests__/update_manifest_codec_support.test.ts +45 -2
  198. package/src/main_thread/init/utils/update_manifest_codec_support.ts +13 -3
  199. package/src/manifest/classes/manifest.ts +1 -1
  200. package/src/manifest/classes/representation.ts +3 -0
  201. package/src/manifest/types.ts +2 -0
  202. package/src/parsers/manifest/dash/common/convert_supplemental_codecs.ts +1 -1
  203. package/src/parsers/manifest/dash/common/indexes/tokens.ts +3 -3
  204. package/src/parsers/manifest/dash/common/parse_representations.ts +1 -1
  205. package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/AdaptationSet.test.ts +3 -7
  206. package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/ContentComponent.test.ts +1 -1
  207. package/src/parsers/manifest/dash/fast-js-parser/node_parsers/__tests__/ContentProtection.test.ts +1 -1
  208. package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/AdaptationSet.test.ts +3 -3
  209. package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/ContentComponent.test.ts +1 -1
  210. package/src/parsers/manifest/dash/native-parser/node_parsers/__tests__/ContentProtection.test.ts +2 -2
  211. package/src/parsers/texttracks/ttml/parse_ttml.ts +1 -1
  212. package/src/parsers/texttracks/ttml/regexps.ts +1 -1
  213. package/src/parsers/texttracks/webvtt/native/set_settings_on_cue.ts +1 -1
  214. package/src/utils/__tests__/array_find.test.ts +1 -1
  215. package/src/utils/__tests__/array_find_index.test.ts +0 -1
  216. package/src/utils/__tests__/array_includes.test.ts +1 -1
  217. package/src/utils/__tests__/id_generator.test.ts +0 -2
  218. package/src/utils/array_find.ts +1 -1
  219. package/src/utils/array_find_index.ts +1 -1
  220. package/src/utils/array_includes.ts +1 -1
  221. package/src/utils/assert.ts +1 -1
  222. package/src/utils/flat_map.ts +0 -1
  223. package/src/utils/logger.ts +0 -2
  224. package/src/utils/noop.ts +1 -1
  225. package/src/utils/object_assign.ts +3 -4
  226. package/src/utils/object_values.ts +1 -1
  227. package/src/utils/request/xhr.ts +2 -2
  228. package/src/utils/starts_with.ts +0 -1
  229. package/src/utils/string_parsing.ts +1 -1
  230. package/src/utils/url-utils.ts +2 -2
  231. package/src/utils/weak_map_memory.ts +0 -1
  232. package/vitest.config.mjs +34 -28
@@ -24,7 +24,6 @@
24
24
  * @returns {boolean}
25
25
  */
26
26
  export default function startsWith(completeString, searchString, position) {
27
- // eslint-disable-next-line @typescript-eslint/unbound-method
28
27
  // eslint-disable-next-line no-restricted-properties
29
28
  if (typeof String.prototype.startsWith === "function") {
30
29
  // eslint-disable-next-line no-restricted-properties
@@ -265,7 +265,7 @@ function utf8ToStr(data) {
265
265
  else {
266
266
  // Let's implement a simple escape function
267
267
  // http://ecma-international.org/ecma-262/9.0/#sec-escape-string
268
- const nonEscapedChar = /[A-Za-z0-9*_\+-\.\/]/;
268
+ const nonEscapedChar = /[A-Za-z0-9*_+-./]/;
269
269
  escaped = "";
270
270
  for (let i = 0; i < utf8Str.length; i++) {
271
271
  if (nonEscapedChar.test(utf8Str[i])) {
@@ -30,7 +30,7 @@ const schemeRe = /^(?:[a-z]+:)?\/\//i;
30
30
  * 4th match is the query params (e.g "name=ferret")
31
31
  * 5th match is the fragment (e.g "nose")
32
32
  * */
33
- const urlComponentRegex = /^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;
33
+ const urlComponentRegex = /^(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;
34
34
  /**
35
35
  * In a given URL, find the index at which the filename begins.
36
36
  * That is, this function finds the index of the last `/` character and returns
@@ -135,7 +135,7 @@ function getRelativeUrl(baseUrl, newUrl) {
135
135
  * @param base
136
136
  * @param relative
137
137
  * @see https://datatracker.ietf.org/doc/html/rfc3986#section-5
138
- * @example base: http://example.com | relative: /b/c | output: http://example.com/b/c
138
+ * @example base: http://example.com | relative: /b/c | output: http://example.com/b/c
139
139
  * @returns the resolved url
140
140
  */
141
141
  function _resolveURL(base, relative) {
@@ -1 +1 @@
1
- {"version":3,"file":"weak_map_memory.d.ts","sourceRoot":"","sources":["../../../src/utils/weak_map_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AAEH,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;OAEG;gBACS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAK7B;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAWrB;;OAEG;IACI,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;CAG7B"}
1
+ {"version":3,"file":"weak_map_memory.d.ts","sourceRoot":"","sources":["../../../src/utils/weak_map_memory.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa,CAAC,CAAC,SAAS,MAAM,EAAE,CAAC;IACpD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAgB;IACpC,OAAO,CAAC,QAAQ,CAAgB;IAEhC;;OAEG;gBACS,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;IAK7B;;;OAGG;IACI,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC;IAWrB;;OAEG;IACI,OAAO,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI;CAG7B"}
@@ -51,7 +51,6 @@
51
51
  * ```
52
52
  * @class WeakMapMemory
53
53
  */
54
- // eslint-disable-next-line @typescript-eslint/no-restricted-types
55
54
  export default class WeakMapMemory {
56
55
  /**
57
56
  * @param {Function}
Binary file
package/dist/rx-player.js CHANGED
@@ -149,7 +149,7 @@
149
149
  const sourceBufferWebkitRef = global_scope_default.WebKitSourceBuffer;
150
150
  const sourceBufferWebkitProto = sourceBufferWebkitRef.prototype;
151
151
  for (const fnName in EventEmitter.prototype) {
152
- if (EventEmitter.prototype.hasOwnProperty(fnName)) {
152
+ if (Object.prototype.hasOwnProperty.call(EventEmitter.prototype, fnName)) {
153
153
  sourceBufferWebkitProto[fnName] = EventEmitter.prototype[fnName];
154
154
  }
155
155
  }
@@ -1829,10 +1829,7 @@
1829
1829
  var object_assign_default = typeof Object.assign === "function" ? (
1830
1830
  // eslint-disable-next-line no-restricted-properties
1831
1831
  Object.assign
1832
- ) : (
1833
- // eslint-disable-next-line @typescript-eslint/unbound-method
1834
- objectAssign
1835
- );
1832
+ ) : objectAssign;
1836
1833
 
1837
1834
  // src/utils/deep_merge.ts
1838
1835
  function isObject(item) {
@@ -2091,7 +2088,7 @@
2091
2088
  function assertInterface(o, iface, name = "object") {
2092
2089
  assert(!isNullOrUndefined(o), `${name} should be an object`);
2093
2090
  for (const k in iface) {
2094
- if (iface.hasOwnProperty(k)) {
2091
+ if (Object.prototype.hasOwnProperty.call(iface, k)) {
2095
2092
  assert(
2096
2093
  typeof o[k] === iface[k],
2097
2094
  `${name} should have property ${k} as a ${iface[k]}`
@@ -3457,7 +3454,7 @@
3457
3454
 
3458
3455
  // src/utils/url-utils.ts
3459
3456
  var schemeRe = /^(?:[a-z]+:)?\/\//i;
3460
- var urlComponentRegex = /^(?:([^:\/?#]+):)?(?:\/\/([^\/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;
3457
+ var urlComponentRegex = /^(?:([^:/?#]+):)?(?:\/\/([^/?#]*))?([^?#]*)(?:\?([^#]*))?(?:#(.*))?$/;
3461
3458
  function getFilenameIndexInUrl(url) {
3462
3459
  const indexOfLastSlash = url.lastIndexOf("/");
3463
3460
  if (indexOfLastSlash < 0) {
@@ -4328,7 +4325,7 @@
4328
4325
  if (!isNullOrUndefined(headers)) {
4329
4326
  const _headers = headers;
4330
4327
  for (const key in _headers) {
4331
- if (_headers.hasOwnProperty(key)) {
4328
+ if (Object.prototype.hasOwnProperty.call(_headers, key)) {
4332
4329
  xhr.setRequestHeader(key, _headers[key]);
4333
4330
  }
4334
4331
  }
@@ -5688,7 +5685,8 @@
5688
5685
  isSupported: this.isSupported,
5689
5686
  hdrInfo: this.hdrInfo,
5690
5687
  contentProtections: this.contentProtections,
5691
- decipherable: this.decipherable
5688
+ decipherable: this.decipherable,
5689
+ isCodecSupportedInWebWorker: this.isCodecSupportedInWebWorker
5692
5690
  };
5693
5691
  }
5694
5692
  };
@@ -7115,7 +7113,7 @@
7115
7113
  if (typeof escape === "function") {
7116
7114
  escaped = escape(utf8Str);
7117
7115
  } else {
7118
- const nonEscapedChar = /[A-Za-z0-9*_\+-\.\/]/;
7116
+ const nonEscapedChar = /[A-Za-z0-9*_+-./]/;
7119
7117
  escaped = "";
7120
7118
  for (let i = 0; i < utf8Str.length; i++) {
7121
7119
  if (nonEscapedChar.test(utf8Str[i])) {
@@ -9504,7 +9502,7 @@
9504
9502
  * @param {Object} mediaKeySession
9505
9503
  * @param {string|undefined} initializationDataType - Initialization data type
9506
9504
  * given e.g. by the "encrypted" event for the corresponding request.
9507
- * @param {Uint8Array} initializationData - Initialization data given e.g. by
9505
+ * @param {Uint8Array} initializationData - Initialization data given e.g. by
9508
9506
  * the "encrypted" event for the corresponding request.
9509
9507
  * @returns {Promise}
9510
9508
  */
@@ -10548,38 +10546,41 @@
10548
10546
  () => runGetLicense(message, messageType),
10549
10547
  backoffOptions,
10550
10548
  manualCanceller.signal
10551
- ).then((licenseObject) => {
10552
- if (manualCanceller.isUsed()) {
10553
- return Promise.resolve();
10554
- }
10555
- if (isNullOrUndefined(licenseObject)) {
10556
- log_default.info("DRM: No license given, skipping session.update");
10557
- } else {
10558
- try {
10559
- return updateSessionWithMessage(session, licenseObject);
10560
- } catch (err) {
10561
- manualCanceller.cancel();
10562
- callbacks.onError(err);
10549
+ ).then(
10550
+ async (licenseObject) => {
10551
+ if (manualCanceller.isUsed()) {
10552
+ return;
10563
10553
  }
10564
- }
10565
- }).catch((err) => {
10566
- if (manualCanceller.isUsed()) {
10567
- return;
10568
- }
10569
- manualCanceller.cancel();
10570
- const formattedError = formatGetLicenseError(err);
10571
- if (!isNullOrUndefined(err)) {
10572
- const { fallbackOnLastTry } = err;
10573
- if (fallbackOnLastTry === true) {
10574
- log_default.warn(
10575
- "DRM: Last `getLicense` attempt failed. Blacklisting the current session."
10576
- );
10577
- callbacks.onError(new BlacklistedSessionError(formattedError));
10554
+ if (isNullOrUndefined(licenseObject)) {
10555
+ log_default.info("DRM: No license given, skipping session.update");
10556
+ } else {
10557
+ try {
10558
+ await updateSessionWithMessage(session, licenseObject);
10559
+ } catch (err) {
10560
+ manualCanceller.cancel();
10561
+ callbacks.onError(err);
10562
+ }
10563
+ }
10564
+ },
10565
+ (err) => {
10566
+ if (manualCanceller.isUsed()) {
10578
10567
  return;
10579
10568
  }
10569
+ manualCanceller.cancel();
10570
+ const formattedError = formatGetLicenseError(err);
10571
+ if (!isNullOrUndefined(err)) {
10572
+ const { fallbackOnLastTry } = err;
10573
+ if (fallbackOnLastTry === true) {
10574
+ log_default.warn(
10575
+ "DRM: Last `getLicense` attempt failed. Blacklisting the current session."
10576
+ );
10577
+ callbacks.onError(new BlacklistedSessionError(formattedError));
10578
+ return;
10579
+ }
10580
+ }
10581
+ callbacks.onError(formattedError);
10580
10582
  }
10581
- callbacks.onError(formattedError);
10582
- });
10583
+ );
10583
10584
  },
10584
10585
  manualCanceller.signal
10585
10586
  );
@@ -12525,7 +12526,7 @@
12525
12526
  const adaptationsByType = firstPeriod.adaptations;
12526
12527
  const adaptationsList = [];
12527
12528
  for (const adaptationType in adaptationsByType) {
12528
- if (adaptationsByType.hasOwnProperty(adaptationType)) {
12529
+ if (Object.prototype.hasOwnProperty.call(adaptationsByType, adaptationType)) {
12529
12530
  const adaptations = adaptationsByType[adaptationType];
12530
12531
  adaptationsList.push(...adaptations);
12531
12532
  }
@@ -15405,6 +15406,9 @@
15405
15406
  maxBufferAhead.getValue(),
15406
15407
  cancellationSignal
15407
15408
  ).catch((e) => {
15409
+ if (cancellationSignal.isCancelled() && TaskCanceller.isCancellationError(e)) {
15410
+ return;
15411
+ }
15408
15412
  const errMsg = e instanceof Error ? e.message : "Unknown error";
15409
15413
  log_default.error("Could not run BufferGarbageCollector:", errMsg);
15410
15414
  });
@@ -17688,9 +17692,6 @@
17688
17692
  segmentSink,
17689
17693
  bufferGoal
17690
17694
  }, cancelSignal) {
17691
- if (cancelSignal.cancellationError !== null) {
17692
- throw cancelSignal.cancellationError;
17693
- }
17694
17695
  const codec = content.representation.getMimeTypeString();
17695
17696
  const data = {
17696
17697
  initSegmentUniqueId,
@@ -17727,9 +17728,6 @@
17727
17728
  if (parsedSegment.chunkData === null) {
17728
17729
  return null;
17729
17730
  }
17730
- if (cancelSignal.cancellationError !== null) {
17731
- throw cancelSignal.cancellationError;
17732
- }
17733
17731
  const { chunkData, chunkInfos, chunkOffset, chunkSize, appendWindow } = parsedSegment;
17734
17732
  const codec = content.representation.getMimeTypeString();
17735
17733
  const { APPEND_WINDOW_SECURITIES } = config_default.getCurrent();
@@ -17784,16 +17782,14 @@
17784
17782
  const { period, adaptation, representation } = content;
17785
17783
  const { bufferGoal, maxBufferSize, drmSystemId, fastSwitchThreshold } = options;
17786
17784
  const bufferType = adaptation.type;
17787
- const globalCanceller = new TaskCanceller();
17788
- globalCanceller.linkToSignal(parentCancelSignal);
17789
- const segmentsLoadingCanceller = new TaskCanceller();
17790
- segmentsLoadingCanceller.linkToSignal(globalCanceller.signal);
17785
+ const canceller = new TaskCanceller();
17786
+ canceller.linkToSignal(parentCancelSignal);
17791
17787
  const initSegmentState = {
17792
17788
  segment: representation.index.getInitSegment(),
17793
17789
  uniqueId: null,
17794
17790
  isLoaded: false
17795
17791
  };
17796
- globalCanceller.signal.register(() => {
17792
+ canceller.signal.register(() => {
17797
17793
  if (initSegmentState.uniqueId !== null) {
17798
17794
  segmentSink.freeInitSegment(initSegmentState.uniqueId);
17799
17795
  }
@@ -17810,38 +17806,26 @@
17810
17806
  callbacks.encryptionDataEncountered(
17811
17807
  encryptionData.map((d) => object_assign_default({ content }, d))
17812
17808
  );
17813
- if (globalCanceller.isUsed()) {
17809
+ if (canceller.isUsed()) {
17814
17810
  return;
17815
17811
  }
17816
17812
  }
17817
17813
  }
17818
17814
  segmentQueue.addEventListener("error", (err) => {
17819
- if (segmentsLoadingCanceller.signal.isCancelled()) {
17815
+ if (canceller.signal.isCancelled()) {
17820
17816
  return;
17821
17817
  }
17822
- globalCanceller.cancel();
17818
+ canceller.cancel();
17823
17819
  callbacks.error(err);
17824
17820
  });
17825
- segmentQueue.addEventListener(
17826
- "parsedInitSegment",
17827
- onParsedChunk,
17828
- segmentsLoadingCanceller.signal
17829
- );
17830
- segmentQueue.addEventListener(
17831
- "parsedMediaSegment",
17832
- onParsedChunk,
17833
- segmentsLoadingCanceller.signal
17834
- );
17835
- segmentQueue.addEventListener(
17836
- "emptyQueue",
17837
- checkStatus,
17838
- segmentsLoadingCanceller.signal
17839
- );
17821
+ segmentQueue.addEventListener("parsedInitSegment", onParsedChunk, canceller.signal);
17822
+ segmentQueue.addEventListener("parsedMediaSegment", onParsedChunk, canceller.signal);
17823
+ segmentQueue.addEventListener("emptyQueue", checkStatus, canceller.signal);
17840
17824
  segmentQueue.addEventListener(
17841
17825
  "requestRetry",
17842
17826
  (payload) => {
17843
17827
  callbacks.warning(payload.error);
17844
- if (segmentsLoadingCanceller.signal.isCancelled()) {
17828
+ if (canceller.signal.isCancelled()) {
17845
17829
  return;
17846
17830
  }
17847
17831
  const retriedSegment = payload.segment;
@@ -17852,44 +17836,40 @@
17852
17836
  callbacks.manifestMightBeOufOfSync();
17853
17837
  }
17854
17838
  },
17855
- segmentsLoadingCanceller.signal
17839
+ canceller.signal
17856
17840
  );
17857
17841
  segmentQueue.addEventListener(
17858
17842
  "fullyLoadedSegment",
17859
17843
  (segment) => {
17860
17844
  segmentSink.signalSegmentComplete(object_assign_default({ segment }, content)).catch(onFatalBufferError);
17861
17845
  },
17862
- segmentsLoadingCanceller.signal
17846
+ canceller.signal
17863
17847
  );
17864
17848
  const segmentsToLoadRef = segmentQueue.resetForContent(content, hasInitSegment);
17865
- segmentsLoadingCanceller.signal.register(() => {
17849
+ canceller.signal.register(() => {
17866
17850
  segmentQueue.stop();
17867
17851
  });
17868
17852
  playbackObserver.listen(checkStatus, {
17869
17853
  includeLastObservation: false,
17870
- clearSignal: segmentsLoadingCanceller.signal
17854
+ clearSignal: canceller.signal
17871
17855
  });
17872
- content.manifest.addEventListener(
17873
- "manifestUpdate",
17874
- checkStatus,
17875
- segmentsLoadingCanceller.signal
17876
- );
17856
+ content.manifest.addEventListener("manifestUpdate", checkStatus, canceller.signal);
17877
17857
  bufferGoal.onUpdate(checkStatus, {
17878
17858
  emitCurrentValue: false,
17879
- clearSignal: segmentsLoadingCanceller.signal
17859
+ clearSignal: canceller.signal
17880
17860
  });
17881
17861
  maxBufferSize.onUpdate(checkStatus, {
17882
17862
  emitCurrentValue: false,
17883
- clearSignal: segmentsLoadingCanceller.signal
17863
+ clearSignal: canceller.signal
17884
17864
  });
17885
17865
  terminate.onUpdate(checkStatus, {
17886
17866
  emitCurrentValue: false,
17887
- clearSignal: segmentsLoadingCanceller.signal
17867
+ clearSignal: canceller.signal
17888
17868
  });
17889
17869
  checkStatus();
17890
17870
  return;
17891
17871
  function checkStatus() {
17892
- if (segmentsLoadingCanceller.isUsed()) {
17872
+ if (canceller.isUsed()) {
17893
17873
  return;
17894
17874
  }
17895
17875
  const observation = playbackObserver.getReference().getValue();
@@ -17936,7 +17916,7 @@
17936
17916
  log_default.debug("Stream: Urgent switch, terminate now.", bufferType);
17937
17917
  segmentsToLoadRef.setValue({ initSegment: null, segmentQueue: [] });
17938
17918
  segmentsToLoadRef.finish();
17939
- segmentsLoadingCanceller.cancel();
17919
+ canceller.cancel();
17940
17920
  callbacks.terminating();
17941
17921
  return;
17942
17922
  } else {
@@ -17952,7 +17932,7 @@
17952
17932
  if (nextQueue.length === 0 && nextInit === null) {
17953
17933
  log_default.debug("Stream: No request left, terminate", bufferType);
17954
17934
  segmentsToLoadRef.finish();
17955
- segmentsLoadingCanceller.cancel();
17935
+ canceller.cancel();
17956
17936
  callbacks.terminating();
17957
17937
  return;
17958
17938
  }
@@ -17966,7 +17946,7 @@
17966
17946
  hasFinishedLoading: status.hasFinishedLoading,
17967
17947
  neededSegments: status.neededSegments
17968
17948
  });
17969
- if (segmentsLoadingCanceller.signal.isCancelled()) {
17949
+ if (canceller.signal.isCancelled()) {
17970
17950
  return;
17971
17951
  }
17972
17952
  const { UPTO_CURRENT_POSITION_CLEANUP } = config_default.getCurrent();
@@ -17981,9 +17961,6 @@
17981
17961
  }
17982
17962
  }
17983
17963
  function onParsedChunk(evt) {
17984
- if (globalCanceller.isUsed()) {
17985
- return;
17986
- }
17987
17964
  for (const protInfo of evt.protectionData) {
17988
17965
  representation.addProtectionData(
17989
17966
  protInfo.initDataType,
@@ -17998,9 +17975,6 @@
17998
17975
  allEncryptionData.map((p) => object_assign_default({ content }, p))
17999
17976
  );
18000
17977
  hasSentEncryptionData = true;
18001
- if (globalCanceller.isUsed()) {
18002
- return;
18003
- }
18004
17978
  }
18005
17979
  }
18006
17980
  if (evt.segmentType === "init") {
@@ -18022,7 +17996,7 @@
18022
17996
  segmentData: evt.initializationData,
18023
17997
  segmentSink
18024
17998
  },
18025
- globalCanceller.signal
17999
+ canceller.signal
18026
18000
  ).then((result) => {
18027
18001
  if (result !== null) {
18028
18002
  callbacks.addedSegment(result);
@@ -18038,13 +18012,13 @@
18038
18012
  }
18039
18013
  if (needsManifestRefresh === true) {
18040
18014
  callbacks.needsManifestRefresh();
18041
- if (globalCanceller.isUsed()) {
18015
+ if (canceller.isUsed()) {
18042
18016
  return;
18043
18017
  }
18044
18018
  }
18045
18019
  if (inbandEvents !== void 0 && inbandEvents.length > 0) {
18046
18020
  callbacks.inbandEvent(inbandEvents);
18047
- if (globalCanceller.isUsed()) {
18021
+ if (canceller.isUsed()) {
18048
18022
  return;
18049
18023
  }
18050
18024
  }
@@ -18059,7 +18033,7 @@
18059
18033
  segment: evt.segment,
18060
18034
  segmentSink
18061
18035
  },
18062
- globalCanceller.signal
18036
+ canceller.signal
18063
18037
  ).then((result) => {
18064
18038
  if (result !== null) {
18065
18039
  callbacks.addedSegment(result);
@@ -18068,7 +18042,7 @@
18068
18042
  }
18069
18043
  }
18070
18044
  function onFatalBufferError(err) {
18071
- if (globalCanceller.isUsed() && err instanceof CancellationError) {
18045
+ if (canceller.isUsed() && err instanceof CancellationError) {
18072
18046
  return;
18073
18047
  }
18074
18048
  log_default.warn(
@@ -18077,7 +18051,7 @@
18077
18051
  representation.bitrate,
18078
18052
  err instanceof Error ? err : null
18079
18053
  );
18080
- globalCanceller.cancel();
18054
+ canceller.cancel();
18081
18055
  callbacks.error(err);
18082
18056
  }
18083
18057
  }
@@ -22507,7 +22481,7 @@
22507
22481
  return path;
22508
22482
  } else {
22509
22483
  return path.replace(/\$\$/g, "$").replace(/\$RepresentationID\$/g, String(id)).replace(
22510
- /\$Bandwidth(\%0(\d+)d)?\$/g,
22484
+ /\$Bandwidth(%0(\d+)d)?\$/g,
22511
22485
  processFormatedToken(bitrate === void 0 ? 0 : bitrate)
22512
22486
  );
22513
22487
  }
@@ -22517,12 +22491,12 @@
22517
22491
  if (url.indexOf("$") === -1) {
22518
22492
  return url;
22519
22493
  } else {
22520
- return url.replace(/\$\$/g, "$").replace(/\$Number(\%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
22494
+ return url.replace(/\$\$/g, "$").replace(/\$Number(%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
22521
22495
  if (nb === void 0) {
22522
22496
  throw new Error("Segment number not defined in a $Number$ scheme");
22523
22497
  }
22524
22498
  return processFormatedToken(nb)(_x, _y, widthStr);
22525
- }).replace(/\$Time(\%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
22499
+ }).replace(/\$Time(%0(\d+)d)?\$/g, (_x, _y, widthStr) => {
22526
22500
  if (time === void 0) {
22527
22501
  throw new Error("Segment time not defined in a $Time$ scheme");
22528
22502
  }
@@ -31563,7 +31537,7 @@
31563
31537
  var REGXP_TIME_TICK = /^(\d*\.?\d*)t$/;
31564
31538
  var REGXP_TIME_HMS = /^(?:(\d*\.?\d*)h)?(?:(\d*\.?\d*)m)?(?:(\d*\.?\d*)s)?(?:(\d*\.?\d*)ms)?$/;
31565
31539
  var REGXP_PERCENT_VALUES = /^(\d{1,2}|100)% (\d{1,2}|100)%$/;
31566
- var REGXP_LENGTH = /^((?:\+|\-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
31540
+ var REGXP_LENGTH = /^((?:\+|-)?\d*(?:\.\d+)?)(px|em|c|%|rh|rw)$/;
31567
31541
  var REGXP_8_HEX_COLOR = /^#([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})([0-9A-f]{2})$/;
31568
31542
  var REGXP_4_HEX_COLOR = /^#([0-9A-f])([0-9A-f])([0-9A-f])([0-9A-f])$/;
31569
31543
  var REGXP_RGB_COLOR = /^rgb\( *(\d+) *, *(\d+) *, *(\d+) *\)/;
@@ -31653,8 +31627,7 @@
31653
31627
  var hasClassList;
31654
31628
  function addClassName(elt, className) {
31655
31629
  if (hasClassList === void 0) {
31656
- hasClassList = elt.classList !== void 0 && // eslint-disable-next-line @typescript-eslint/unbound-method
31657
- typeof elt.classList.add === "function";
31630
+ hasClassList = elt.classList !== void 0 && typeof elt.classList.add === "function";
31658
31631
  }
31659
31632
  if (hasClassList) {
31660
31633
  elt.classList.add(className);
@@ -33289,7 +33262,7 @@
33289
33262
  }
33290
33263
  }
33291
33264
  if (isNonEmptyString(settings.position)) {
33292
- const positionRegex = /^([\d\.]+)%(?:,(line-left|line-right|center))?$/;
33265
+ const positionRegex = /^([\d.]+)%(?:,(line-left|line-right|center))?$/;
33293
33266
  const positionArr = positionRegex.exec(settings.position);
33294
33267
  if (Array.isArray(positionArr) && positionArr.length >= 2) {
33295
33268
  const position = parseInt(positionArr[1], 10);
@@ -38162,7 +38135,7 @@ ${event}`
38162
38135
  } = parseConstructorOptions(options);
38163
38136
  videoElement.preload = "auto";
38164
38137
  this.version = /* PLAYER_VERSION */
38165
- "4.3.0-dev.2025031700";
38138
+ "4.3.0";
38166
38139
  this.log = log_default;
38167
38140
  this.state = "STOPPED";
38168
38141
  this.videoElement = videoElement;
@@ -40787,7 +40760,7 @@ ${event}`
40787
40760
  _Player._priv_currentlyUsedVideoElements = /* @__PURE__ */ new WeakSet();
40788
40761
  var Player = _Player;
40789
40762
  Player.version = /* PLAYER_VERSION */
40790
- "4.3.0-dev.2025031700";
40763
+ "4.3.0";
40791
40764
  var public_api_default = Player;
40792
40765
 
40793
40766
  // src/main_thread/api/index.ts