rx-player 4.4.1-dev.2025101500 → 4.4.1

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 (350) hide show
  1. package/CHANGELOG.md +3 -1
  2. package/README.md +111 -50
  3. package/VERSION +1 -1
  4. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  5. package/dist/commonjs/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  6. package/dist/commonjs/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  7. package/dist/commonjs/__GENERATED_CODE/embedded_worker.js +1 -1
  8. package/dist/commonjs/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  9. package/dist/commonjs/core/main/common/FreezeResolver.d.ts.map +1 -0
  10. package/dist/commonjs/core/{entry → main/common}/FreezeResolver.js +3 -3
  11. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  12. package/dist/commonjs/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  13. package/dist/commonjs/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  14. package/dist/{es2017/core/entry → commonjs/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  15. package/dist/commonjs/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  16. package/dist/commonjs/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  17. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  18. package/dist/commonjs/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  19. package/dist/commonjs/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  20. package/dist/{es2017/core/entry → commonjs/core/main/common}/get_thumbnail_data.d.ts +3 -3
  21. package/dist/commonjs/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  22. package/dist/commonjs/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  23. package/dist/{es2017/core/entry → commonjs/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  24. package/dist/commonjs/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  25. package/dist/{es2017/core/entry → commonjs/core/main/worker}/content_preparer.d.ts +15 -22
  26. package/dist/commonjs/core/main/worker/content_preparer.d.ts.map +1 -0
  27. package/dist/commonjs/core/{entry → main/worker}/content_preparer.js +64 -62
  28. package/dist/commonjs/core/main/worker/globals.d.ts +14 -0
  29. package/dist/commonjs/core/main/worker/globals.d.ts.map +1 -0
  30. package/dist/commonjs/core/main/worker/globals.js +26 -0
  31. package/dist/commonjs/core/main/worker/index.d.ts +3 -0
  32. package/dist/commonjs/core/main/worker/index.d.ts.map +1 -0
  33. package/dist/commonjs/core/main/worker/index.js +4 -0
  34. package/dist/commonjs/core/main/worker/send_message.d.ts +4 -0
  35. package/dist/commonjs/core/main/worker/send_message.d.ts.map +1 -0
  36. package/dist/commonjs/core/main/worker/send_message.js +23 -0
  37. package/dist/{es2017/core/entry → commonjs/core/main/worker}/track_choice_setter.d.ts +4 -4
  38. package/dist/commonjs/core/main/worker/track_choice_setter.d.ts.map +1 -0
  39. package/dist/commonjs/core/{entry → main/worker}/track_choice_setter.js +4 -4
  40. package/dist/commonjs/core/main/worker/worker_main.d.ts +2 -0
  41. package/dist/commonjs/core/main/worker/worker_main.d.ts.map +1 -0
  42. package/dist/commonjs/core/{entry/core_entry.js → main/worker/worker_main.js} +153 -192
  43. package/dist/commonjs/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  44. package/dist/commonjs/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  45. package/dist/commonjs/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +22 -22
  46. package/dist/commonjs/core/types.d.ts +1 -519
  47. package/dist/commonjs/core/types.d.ts.map +1 -1
  48. package/dist/commonjs/core/types.js +0 -1
  49. package/dist/commonjs/experimental/features/local.d.ts.map +1 -1
  50. package/dist/commonjs/experimental/features/local.js +1 -7
  51. package/dist/commonjs/experimental/features/metaplaylist.d.ts.map +1 -1
  52. package/dist/commonjs/experimental/features/metaplaylist.js +1 -7
  53. package/dist/commonjs/experimental/features/multi_thread.d.ts.map +1 -1
  54. package/dist/commonjs/experimental/features/multi_thread.js +2 -6
  55. package/dist/commonjs/features/features_object.js +1 -1
  56. package/dist/commonjs/features/list/dash.d.ts.map +1 -1
  57. package/dist/commonjs/features/list/dash.js +1 -7
  58. package/dist/commonjs/features/list/dash_wasm.d.ts.map +1 -1
  59. package/dist/commonjs/features/list/dash_wasm.js +1 -7
  60. package/dist/commonjs/features/list/media_source_main.d.ts.map +1 -1
  61. package/dist/commonjs/features/list/media_source_main.js +1 -7
  62. package/dist/commonjs/features/list/smooth.d.ts.map +1 -1
  63. package/dist/commonjs/features/list/smooth.js +1 -7
  64. package/dist/commonjs/features/types.d.ts +4 -20
  65. package/dist/commonjs/features/types.d.ts.map +1 -1
  66. package/dist/commonjs/main_thread/api/public_api.d.ts.map +1 -1
  67. package/dist/commonjs/main_thread/api/public_api.js +44 -40
  68. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts +108 -166
  69. package/dist/commonjs/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  70. package/dist/commonjs/main_thread/init/media_source_content_initializer.js +918 -1491
  71. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  72. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  73. package/dist/commonjs/main_thread/init/multi_thread_content_initializer.js +1713 -0
  74. package/dist/commonjs/main_thread/init/send_message.d.ts +3 -0
  75. package/dist/commonjs/main_thread/init/send_message.d.ts.map +1 -0
  76. package/dist/commonjs/main_thread/init/send_message.js +13 -0
  77. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  78. package/dist/commonjs/main_thread/init/utils/create_core_playback_observer.js +1 -2
  79. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  80. package/dist/commonjs/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  81. package/dist/commonjs/main_thread/types.d.ts +0 -537
  82. package/dist/commonjs/main_thread/types.d.ts.map +1 -1
  83. package/dist/commonjs/manifest/utils.d.ts.map +1 -1
  84. package/dist/commonjs/manifest/utils.js +4 -18
  85. package/dist/commonjs/mse/worker_media_source_interface.d.ts +2 -2
  86. package/dist/commonjs/mse/worker_media_source_interface.d.ts.map +1 -1
  87. package/dist/commonjs/mse/worker_media_source_interface.js +12 -12
  88. package/dist/commonjs/multithread_types.d.ts +915 -0
  89. package/dist/commonjs/multithread_types.d.ts.map +1 -0
  90. package/dist/commonjs/multithread_types.js +7 -0
  91. package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts +1 -1
  92. package/dist/commonjs/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  93. package/dist/commonjs/parsers/manifest/smooth/create_parser.js +27 -31
  94. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  95. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  96. package/dist/commonjs/parsers/manifest/smooth/parse_C_nodes.js +7 -16
  97. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  98. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  99. package/dist/commonjs/parsers/manifest/smooth/parse_protection_node.js +6 -37
  100. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  101. package/dist/commonjs/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  102. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts +2 -3
  103. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  104. package/dist/commonjs/parsers/manifest/smooth/utils/reduceChildren.js +5 -28
  105. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts +28 -8
  106. package/dist/commonjs/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  107. package/dist/commonjs/playback_observer/media_element_playback_observer.js +146 -64
  108. package/dist/{es2017/playback_observer/core_playback_observer.d.ts → commonjs/playback_observer/worker_playback_observer.d.ts} +8 -8
  109. package/dist/commonjs/playback_observer/worker_playback_observer.d.ts.map +1 -0
  110. package/dist/commonjs/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +13 -13
  111. package/dist/commonjs/transports/smooth/pipelines.d.ts.map +1 -1
  112. package/dist/commonjs/transports/smooth/pipelines.js +3 -25
  113. package/dist/commonjs/worker_entry_point.js +2 -62
  114. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.d.ts.map +1 -1
  115. package/dist/es2017/__GENERATED_CODE/embedded_dash_wasm.js +1 -1
  116. package/dist/es2017/__GENERATED_CODE/embedded_worker.d.ts.map +1 -1
  117. package/dist/es2017/__GENERATED_CODE/embedded_worker.js +1 -1
  118. package/dist/es2017/core/{entry → main/common}/FreezeResolver.d.ts +3 -3
  119. package/dist/es2017/core/main/common/FreezeResolver.d.ts.map +1 -0
  120. package/dist/es2017/core/{entry → main/common}/FreezeResolver.js +3 -3
  121. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.d.ts +5 -5
  122. package/dist/es2017/core/main/common/content_time_boundaries_observer.d.ts.map +1 -0
  123. package/dist/es2017/core/{entry → main/common}/content_time_boundaries_observer.js +6 -6
  124. package/dist/{commonjs/core/entry → es2017/core/main/common}/create_content_time_boundaries_observer.d.ts +6 -6
  125. package/dist/es2017/core/main/common/create_content_time_boundaries_observer.d.ts.map +1 -0
  126. package/dist/es2017/core/{entry → main/common}/create_content_time_boundaries_observer.js +1 -1
  127. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_buffered_data_per_media_buffer.d.ts +4 -4
  128. package/dist/es2017/core/main/common/get_buffered_data_per_media_buffer.d.ts.map +1 -0
  129. package/dist/es2017/core/{entry → main/common}/get_buffered_data_per_media_buffer.js +1 -1
  130. package/dist/{commonjs/core/entry → es2017/core/main/common}/get_thumbnail_data.d.ts +3 -3
  131. package/dist/es2017/core/main/common/get_thumbnail_data.d.ts.map +1 -0
  132. package/dist/es2017/core/{entry → main/common}/get_thumbnail_data.js +2 -2
  133. package/dist/{commonjs/core/entry → es2017/core/main/common}/synchronize_sinks_on_observation.d.ts +2 -2
  134. package/dist/es2017/core/main/common/synchronize_sinks_on_observation.d.ts.map +1 -0
  135. package/dist/{commonjs/core/entry → es2017/core/main/worker}/content_preparer.d.ts +15 -22
  136. package/dist/es2017/core/main/worker/content_preparer.d.ts.map +1 -0
  137. package/dist/es2017/core/{entry → main/worker}/content_preparer.js +55 -53
  138. package/dist/es2017/core/main/worker/globals.d.ts +14 -0
  139. package/dist/es2017/core/main/worker/globals.d.ts.map +1 -0
  140. package/dist/es2017/core/main/worker/globals.js +18 -0
  141. package/dist/es2017/core/main/worker/index.d.ts +3 -0
  142. package/dist/es2017/core/main/worker/index.d.ts.map +1 -0
  143. package/dist/es2017/core/main/worker/index.js +2 -0
  144. package/dist/es2017/core/main/worker/send_message.d.ts +4 -0
  145. package/dist/es2017/core/main/worker/send_message.d.ts.map +1 -0
  146. package/dist/es2017/core/main/worker/send_message.js +19 -0
  147. package/dist/{commonjs/core/entry → es2017/core/main/worker}/track_choice_setter.d.ts +4 -4
  148. package/dist/es2017/core/main/worker/track_choice_setter.d.ts.map +1 -0
  149. package/dist/es2017/core/{entry → main/worker}/track_choice_setter.js +4 -4
  150. package/dist/es2017/core/main/worker/worker_main.d.ts +2 -0
  151. package/dist/es2017/core/main/worker/worker_main.d.ts.map +1 -0
  152. package/dist/es2017/core/{entry/core_entry.js → main/worker/worker_main.js} +114 -153
  153. package/dist/es2017/core/{entry/core_text_displayer_interface.d.ts → main/worker/worker_text_displayer_interface.d.ts} +11 -11
  154. package/dist/es2017/core/main/worker/worker_text_displayer_interface.d.ts.map +1 -0
  155. package/dist/es2017/core/{entry/core_text_displayer_interface.js → main/worker/worker_text_displayer_interface.js} +10 -10
  156. package/dist/es2017/core/types.d.ts +1 -519
  157. package/dist/es2017/core/types.d.ts.map +1 -1
  158. package/dist/es2017/core/types.js +0 -1
  159. package/dist/es2017/experimental/features/local.d.ts.map +1 -1
  160. package/dist/es2017/experimental/features/local.js +1 -7
  161. package/dist/es2017/experimental/features/metaplaylist.d.ts.map +1 -1
  162. package/dist/es2017/experimental/features/metaplaylist.js +1 -7
  163. package/dist/es2017/experimental/features/multi_thread.d.ts.map +1 -1
  164. package/dist/es2017/experimental/features/multi_thread.js +2 -6
  165. package/dist/es2017/features/features_object.js +1 -1
  166. package/dist/es2017/features/list/dash.d.ts.map +1 -1
  167. package/dist/es2017/features/list/dash.js +1 -7
  168. package/dist/es2017/features/list/dash_wasm.d.ts.map +1 -1
  169. package/dist/es2017/features/list/dash_wasm.js +1 -7
  170. package/dist/es2017/features/list/media_source_main.d.ts.map +1 -1
  171. package/dist/es2017/features/list/media_source_main.js +1 -7
  172. package/dist/es2017/features/list/smooth.d.ts.map +1 -1
  173. package/dist/es2017/features/list/smooth.js +1 -7
  174. package/dist/es2017/features/types.d.ts +4 -20
  175. package/dist/es2017/features/types.d.ts.map +1 -1
  176. package/dist/es2017/main_thread/api/public_api.d.ts.map +1 -1
  177. package/dist/es2017/main_thread/api/public_api.js +45 -41
  178. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts +108 -166
  179. package/dist/es2017/main_thread/init/media_source_content_initializer.d.ts.map +1 -1
  180. package/dist/es2017/main_thread/init/media_source_content_initializer.js +760 -1405
  181. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts +308 -0
  182. package/dist/es2017/main_thread/init/multi_thread_content_initializer.d.ts.map +1 -0
  183. package/dist/es2017/main_thread/init/multi_thread_content_initializer.js +1559 -0
  184. package/dist/es2017/main_thread/init/send_message.d.ts +3 -0
  185. package/dist/es2017/main_thread/init/send_message.d.ts.map +1 -0
  186. package/dist/es2017/main_thread/init/send_message.js +10 -0
  187. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.d.ts.map +1 -1
  188. package/dist/es2017/main_thread/init/utils/create_core_playback_observer.js +1 -2
  189. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts +1 -1
  190. package/dist/es2017/main_thread/init/utils/update_manifest_codec_support.d.ts.map +1 -1
  191. package/dist/es2017/main_thread/types.d.ts +0 -537
  192. package/dist/es2017/main_thread/types.d.ts.map +1 -1
  193. package/dist/es2017/manifest/utils.d.ts.map +1 -1
  194. package/dist/es2017/manifest/utils.js +4 -16
  195. package/dist/es2017/mse/worker_media_source_interface.d.ts +2 -2
  196. package/dist/es2017/mse/worker_media_source_interface.d.ts.map +1 -1
  197. package/dist/es2017/mse/worker_media_source_interface.js +12 -12
  198. package/dist/es2017/multithread_types.d.ts +915 -0
  199. package/dist/es2017/multithread_types.d.ts.map +1 -0
  200. package/dist/es2017/multithread_types.js +6 -0
  201. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts +1 -1
  202. package/dist/es2017/parsers/manifest/smooth/create_parser.d.ts.map +1 -1
  203. package/dist/es2017/parsers/manifest/smooth/create_parser.js +27 -31
  204. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts +2 -3
  205. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.d.ts.map +1 -1
  206. package/dist/es2017/parsers/manifest/smooth/parse_C_nodes.js +7 -16
  207. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts +2 -3
  208. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.d.ts.map +1 -1
  209. package/dist/es2017/parsers/manifest/smooth/parse_protection_node.js +6 -15
  210. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts +1 -1
  211. package/dist/es2017/parsers/manifest/smooth/utils/parseBoolean.d.ts.map +1 -1
  212. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts +2 -3
  213. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.d.ts.map +1 -1
  214. package/dist/es2017/parsers/manifest/smooth/utils/reduceChildren.js +5 -6
  215. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts +28 -8
  216. package/dist/es2017/playback_observer/media_element_playback_observer.d.ts.map +1 -1
  217. package/dist/es2017/playback_observer/media_element_playback_observer.js +144 -64
  218. package/dist/{commonjs/playback_observer/core_playback_observer.d.ts → es2017/playback_observer/worker_playback_observer.d.ts} +8 -8
  219. package/dist/es2017/playback_observer/worker_playback_observer.d.ts.map +1 -0
  220. package/dist/es2017/playback_observer/{core_playback_observer.js → worker_playback_observer.js} +2 -2
  221. package/dist/es2017/transports/smooth/pipelines.d.ts.map +1 -1
  222. package/dist/es2017/transports/smooth/pipelines.js +3 -25
  223. package/dist/es2017/worker_entry_point.js +2 -62
  224. package/dist/mpd-parser.wasm +0 -0
  225. package/dist/rx-player.js +19165 -21886
  226. package/dist/rx-player.min.js +20 -20
  227. package/dist/worker.js +8 -8
  228. package/eslint.config.mjs +647 -348
  229. package/package.json +6 -6
  230. package/src/README.md +198 -88
  231. package/src/__GENERATED_CODE/embedded_dash_wasm.ts +1 -1
  232. package/src/__GENERATED_CODE/embedded_worker.ts +1 -1
  233. package/src/core/{entry → main}/README.md +1 -1
  234. package/src/core/{entry → main/common}/FreezeResolver.ts +7 -7
  235. package/src/core/{entry → main/common}/content_time_boundaries_observer.ts +10 -10
  236. package/src/core/{entry → main/common}/create_content_time_boundaries_observer.ts +7 -7
  237. package/src/core/{entry → main/common}/get_buffered_data_per_media_buffer.ts +6 -6
  238. package/src/core/{entry → main/common}/get_thumbnail_data.ts +5 -5
  239. package/src/core/{entry → main/common}/synchronize_sinks_on_observation.ts +2 -2
  240. package/src/core/{entry → main/worker}/content_preparer.ts +76 -77
  241. package/src/core/main/worker/globals.ts +38 -0
  242. package/src/core/main/worker/index.ts +2 -0
  243. package/src/core/main/worker/send_message.ts +28 -0
  244. package/src/core/{entry → main/worker}/track_choice_setter.ts +7 -7
  245. package/src/core/{entry/core_entry.ts → main/worker/worker_main.ts} +149 -223
  246. package/src/core/{entry/core_text_displayer_interface.ts → main/worker/worker_text_displayer_interface.ts} +26 -26
  247. package/src/core/types.ts +3 -631
  248. package/src/experimental/features/__tests__/local.test.ts +2 -11
  249. package/src/experimental/features/__tests__/metaplaylist.test.ts +2 -11
  250. package/src/experimental/features/__tests__/multi_thread.test.ts +3 -8
  251. package/src/experimental/features/local.ts +1 -7
  252. package/src/experimental/features/metaplaylist.ts +1 -7
  253. package/src/experimental/features/multi_thread.ts +2 -6
  254. package/src/features/features_object.ts +1 -1
  255. package/src/features/list/__tests__/dash.test.ts +3 -12
  256. package/src/features/list/__tests__/smooth.test.ts +2 -11
  257. package/src/features/list/dash.ts +1 -7
  258. package/src/features/list/dash_wasm.ts +1 -7
  259. package/src/features/list/media_source_main.ts +1 -7
  260. package/src/features/list/smooth.ts +1 -7
  261. package/src/features/types.ts +4 -23
  262. package/src/main_thread/README.md +0 -8
  263. package/src/main_thread/api/public_api.ts +51 -47
  264. package/src/main_thread/init/media_source_content_initializer.ts +1164 -2046
  265. package/src/main_thread/init/multi_thread_content_initializer.ts +2330 -0
  266. package/src/main_thread/init/send_message.ts +15 -0
  267. package/src/main_thread/init/utils/create_core_playback_observer.ts +1 -2
  268. package/src/main_thread/init/utils/update_manifest_codec_support.ts +1 -1
  269. package/src/main_thread/types.ts +0 -610
  270. package/src/manifest/utils.ts +4 -20
  271. package/src/mse/worker_media_source_interface.ts +35 -35
  272. package/src/multithread_types.ts +1095 -0
  273. package/src/parsers/manifest/smooth/create_parser.ts +34 -40
  274. package/src/parsers/manifest/smooth/parse_C_nodes.ts +8 -19
  275. package/src/parsers/manifest/smooth/parse_protection_node.ts +9 -17
  276. package/src/parsers/manifest/smooth/utils/parseBoolean.ts +1 -1
  277. package/src/parsers/manifest/smooth/utils/reduceChildren.ts +7 -10
  278. package/src/playback_observer/media_element_playback_observer.ts +177 -73
  279. package/src/playback_observer/{core_playback_observer.ts → worker_playback_observer.ts} +13 -13
  280. package/src/transports/smooth/pipelines.ts +5 -25
  281. package/src/worker_entry_point.ts +2 -71
  282. package/dist/commonjs/core/entry/FreezeResolver.d.ts.map +0 -1
  283. package/dist/commonjs/core/entry/content_preparer.d.ts.map +0 -1
  284. package/dist/commonjs/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  285. package/dist/commonjs/core/entry/core_entry.d.ts +0 -36
  286. package/dist/commonjs/core/entry/core_entry.d.ts.map +0 -1
  287. package/dist/commonjs/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  288. package/dist/commonjs/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  289. package/dist/commonjs/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  290. package/dist/commonjs/core/entry/get_thumbnail_data.d.ts.map +0 -1
  291. package/dist/commonjs/core/entry/index.d.ts +0 -5
  292. package/dist/commonjs/core/entry/index.d.ts.map +0 -1
  293. package/dist/commonjs/core/entry/index.js +0 -4
  294. package/dist/commonjs/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  295. package/dist/commonjs/core/entry/track_choice_setter.d.ts.map +0 -1
  296. package/dist/commonjs/core/entry/utils.d.ts +0 -3
  297. package/dist/commonjs/core/entry/utils.d.ts.map +0 -1
  298. package/dist/commonjs/core/entry/utils.js +0 -11
  299. package/dist/commonjs/main_thread/core_interface/base.d.ts +0 -13
  300. package/dist/commonjs/main_thread/core_interface/base.d.ts.map +0 -1
  301. package/dist/commonjs/main_thread/core_interface/base.js +0 -32
  302. package/dist/commonjs/main_thread/core_interface/monothread.d.ts +0 -13
  303. package/dist/commonjs/main_thread/core_interface/monothread.d.ts.map +0 -1
  304. package/dist/commonjs/main_thread/core_interface/monothread.js +0 -56
  305. package/dist/commonjs/main_thread/core_interface/multithread.d.ts +0 -25
  306. package/dist/commonjs/main_thread/core_interface/multithread.d.ts.map +0 -1
  307. package/dist/commonjs/main_thread/core_interface/multithread.js +0 -67
  308. package/dist/commonjs/main_thread/core_interface/types.d.ts +0 -6
  309. package/dist/commonjs/main_thread/core_interface/types.d.ts.map +0 -1
  310. package/dist/commonjs/main_thread/core_interface/types.js +0 -2
  311. package/dist/commonjs/playback_observer/core_playback_observer.d.ts.map +0 -1
  312. package/dist/es2017/core/entry/FreezeResolver.d.ts.map +0 -1
  313. package/dist/es2017/core/entry/content_preparer.d.ts.map +0 -1
  314. package/dist/es2017/core/entry/content_time_boundaries_observer.d.ts.map +0 -1
  315. package/dist/es2017/core/entry/core_entry.d.ts +0 -36
  316. package/dist/es2017/core/entry/core_entry.d.ts.map +0 -1
  317. package/dist/es2017/core/entry/core_text_displayer_interface.d.ts.map +0 -1
  318. package/dist/es2017/core/entry/create_content_time_boundaries_observer.d.ts.map +0 -1
  319. package/dist/es2017/core/entry/get_buffered_data_per_media_buffer.d.ts.map +0 -1
  320. package/dist/es2017/core/entry/get_thumbnail_data.d.ts.map +0 -1
  321. package/dist/es2017/core/entry/index.d.ts +0 -5
  322. package/dist/es2017/core/entry/index.d.ts.map +0 -1
  323. package/dist/es2017/core/entry/index.js +0 -2
  324. package/dist/es2017/core/entry/synchronize_sinks_on_observation.d.ts.map +0 -1
  325. package/dist/es2017/core/entry/track_choice_setter.d.ts.map +0 -1
  326. package/dist/es2017/core/entry/utils.d.ts +0 -3
  327. package/dist/es2017/core/entry/utils.d.ts.map +0 -1
  328. package/dist/es2017/core/entry/utils.js +0 -8
  329. package/dist/es2017/main_thread/core_interface/base.d.ts +0 -13
  330. package/dist/es2017/main_thread/core_interface/base.d.ts.map +0 -1
  331. package/dist/es2017/main_thread/core_interface/base.js +0 -28
  332. package/dist/es2017/main_thread/core_interface/monothread.d.ts +0 -13
  333. package/dist/es2017/main_thread/core_interface/monothread.d.ts.map +0 -1
  334. package/dist/es2017/main_thread/core_interface/monothread.js +0 -32
  335. package/dist/es2017/main_thread/core_interface/multithread.d.ts +0 -25
  336. package/dist/es2017/main_thread/core_interface/multithread.d.ts.map +0 -1
  337. package/dist/es2017/main_thread/core_interface/multithread.js +0 -45
  338. package/dist/es2017/main_thread/core_interface/types.d.ts +0 -6
  339. package/dist/es2017/main_thread/core_interface/types.d.ts.map +0 -1
  340. package/dist/es2017/main_thread/core_interface/types.js +0 -1
  341. package/dist/es2017/playback_observer/core_playback_observer.d.ts.map +0 -1
  342. package/src/core/entry/index.ts +0 -4
  343. package/src/core/entry/utils.ts +0 -11
  344. package/src/main_thread/core_interface/README.md +0 -22
  345. package/src/main_thread/core_interface/base.ts +0 -36
  346. package/src/main_thread/core_interface/monothread.ts +0 -46
  347. package/src/main_thread/core_interface/multithread.ts +0 -49
  348. package/src/main_thread/core_interface/types.ts +0 -5
  349. /package/dist/commonjs/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
  350. /package/dist/es2017/core/{entry → main/common}/synchronize_sinks_on_observation.js +0 -0
package/eslint.config.mjs CHANGED
@@ -6,245 +6,460 @@ import jsdoc from "eslint-plugin-jsdoc";
6
6
  import ban from "eslint-plugin-ban";
7
7
  import typescriptEslint from "@typescript-eslint/eslint-plugin";
8
8
  import tsParser from "@typescript-eslint/parser";
9
-
10
- export default defineConfig([
11
- globalIgnores([
12
- "**/node_modules",
13
- "**/*.log",
14
- "**/*.keys",
15
- "demo/bundle.js",
16
- "demo/lib.js",
17
- "tools/tests/coverage/",
18
- "dist/*",
19
- "!dist/rx-player.js",
20
- "!dist/rx-player.min.js",
21
- "**/test-output.xml",
22
- "src/__GENERATED_CODE",
23
- ]),
24
- jsLint.configs.recommended,
25
- tsLint.configs.recommended,
26
- {
27
- plugins: {
28
- import: _import,
29
- jsdoc,
30
- ban,
31
- "@typescript-eslint": typescriptEslint,
9
+ import react from "eslint-plugin-react";
10
+ import globals from "globals";
11
+
12
+ const rulesJS = {
13
+ "ban/ban": [
14
+ 2,
15
+ {
16
+ name: ["*", "finally"],
17
+ message:
18
+ 'Promise.prototype.finally is forbidden due to poor support from older devices.\nNote that this linting rule just bans naively all "finally" method calls, if in this case it wasn\'t called on a Promise, you can safely ignore this error',
32
19
  },
20
+ ],
21
+ "arrow-body-style": "off",
22
+ "arrow-parens": ["off", "always"],
23
+
24
+ complexity: [
25
+ "off",
26
+ {
27
+ max: 20,
28
+ },
29
+ ],
30
+
31
+ "constructor-super": "error",
32
+ curly: "error",
33
+ "default-case": "off",
34
+ eqeqeq: "error",
35
+ "guard-for-in": "warn",
36
+ "id-blacklist": "off",
37
+ "id-match": "off",
38
+ "import/no-default-export": "off",
39
+ "import/no-deprecated": "error",
40
+
41
+ "import/no-extraneous-dependencies": [
42
+ "error",
43
+ {
44
+ devDependencies: ["**/*.test.ts", "**/__tests__/**"],
45
+ },
46
+ ],
33
47
 
34
- languageOptions: {
35
- parser: tsParser,
36
- ecmaVersion: 5,
37
- sourceType: "module",
48
+ "import/no-internal-modules": "off",
38
49
 
39
- parserOptions: {
40
- project: "tsconfig.eslint.json",
50
+ "import/order": [
51
+ "error",
52
+ {
53
+ alphabetize: {
54
+ order: "asc",
55
+ caseInsensitive: true,
41
56
  },
42
57
  },
58
+ ],
59
+
60
+ "import/no-duplicates": "error",
61
+ "jsdoc/check-alignment": "error",
62
+ "jsdoc/no-types": "off",
63
+ "max-classes-per-file": ["warn", 5],
64
+ "max-lines": ["off", 300],
65
+ "newline-per-chained-call": "off",
66
+ "no-bitwise": "off",
67
+ "no-caller": "error",
68
+ "no-console": "error",
69
+ "no-debugger": "error",
70
+ "no-duplicate-case": "error",
71
+ "no-empty": "error",
72
+ "no-eval": "error",
73
+ "no-fallthrough": "error",
74
+ "no-invalid-this": "error",
75
+ "no-magic-numbers": "off",
76
+ "no-new-wrappers": "error",
77
+ "no-nested-ternary": "error",
78
+ "no-param-reassign": "error",
79
+ "no-return-await": "error",
80
+ "no-sequences": "error",
81
+ "no-shadow": "off",
82
+ "no-sparse-arrays": "error",
83
+ "no-template-curly-in-string": "error",
84
+ "no-throw-literal": "error",
85
+ "no-undef-init": "error",
86
+ "no-unsafe-finally": "error",
87
+ "no-unused-labels": "error",
88
+ "no-var": "error",
89
+ "no-void": "error",
90
+ "object-shorthand": "error",
91
+ "one-var": ["error", "never"],
92
+ "prefer-const": "error",
93
+ "prefer-spread": "error",
94
+ "prefer-object-spread": "error",
95
+ "prefer-template": "off",
96
+
97
+ "no-restricted-properties": [
98
+ "error",
99
+ {
100
+ object: "performance",
101
+ property: "now",
102
+ message:
103
+ "Avoid using `performance.now` directly as timestamps may be different in the worker and the main thread and some platforms don't have it in a Worker environment. Please use the `getMonotonicTimeStamp` util instead.",
104
+ },
105
+ {
106
+ object: "window",
107
+ message:
108
+ "`window` doesn't work in Node.JS and only works when JavaScript is running in the main thread. Please import `globalScope` instead.",
109
+ },
110
+ {
111
+ object: "Object",
112
+ property: "assign",
113
+ message: "Not available in IE11, use `objectAssign` utils instead.",
114
+ },
115
+ {
116
+ object: "Object",
117
+ property: "values",
118
+ message: "Not available in IE11, use `objectValues` utils instead.",
119
+ },
120
+ {
121
+ property: "includes",
122
+ message: "Not available in IE11, use another method such as `indexOf` instead.",
123
+ },
124
+ {
125
+ property: "find",
126
+ message: "Not available in IE11, use `arrayFind` utils instead.",
127
+ },
128
+ {
129
+ property: "findIndex",
130
+ message: "Not available in IE11, use `arrayFindIndex` utils instead.",
131
+ },
132
+ {
133
+ property: "startsWith",
134
+ message: "Not available in IE11, use `startsWith` utils instead.",
135
+ },
136
+ {
137
+ property: "substr",
138
+ message: "Please use `substring` instead.",
139
+ },
140
+ ],
43
141
 
44
- rules: {
45
- "ban/ban": [
46
- 2,
47
- {
48
- name: ["*", "finally"],
49
- message:
50
- 'Promise.prototype.finally is forbidden due to poor support from older devices.\nNote that this linting rule just bans naively all "finally" method calls, if in this case it wasn\'t called on a Promise, you can safely ignore this error',
51
- },
52
- ],
142
+ radix: "error",
53
143
 
54
- "@typescript-eslint/adjacent-overload-signatures": "error",
144
+ "spaced-comment": [
145
+ "error",
146
+ "always",
147
+ {
148
+ markers: ["/"],
149
+ },
150
+ ],
55
151
 
56
- "@typescript-eslint/array-type": [
57
- "error",
58
- {
59
- default: "array-simple",
60
- },
61
- ],
152
+ "use-isnan": "error",
153
+ "valid-typeof": "error",
154
+ yoda: "error",
155
+ };
62
156
 
63
- "@typescript-eslint/await-thenable": "error",
157
+ const rulesTs = {
158
+ "@typescript-eslint/adjacent-overload-signatures": "error",
64
159
 
65
- "@typescript-eslint/no-restricted-types": [
66
- "error",
67
- {
68
- types: {
69
- Object: {
70
- message: "Avoid using the `Object` type. Did you mean `object`?",
71
- },
72
-
73
- Function: {
74
- message:
75
- "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.",
76
- },
77
-
78
- Boolean: {
79
- message: "Avoid using the `Boolean` type. Did you mean `boolean`?",
80
- },
81
-
82
- Number: {
83
- message: "Avoid using the `Number` type. Did you mean `number`?",
84
- },
85
-
86
- String: {
87
- message: "Avoid using the `String` type. Did you mean `string`?",
88
- },
89
-
90
- Symbol: {
91
- message: "Avoid using the `Symbol` type. Did you mean `symbol`?",
92
- },
93
-
94
- HTMLMediaElement: {
95
- message:
96
- "Avoid relying on `HTMLMediaElement` directly unless it is API-facing. Prefer our more restricted `IMediaElement` type",
97
- },
98
-
99
- MediaSource: {
100
- message:
101
- "Avoid relying on `MediaSource` directly unless it is API-facing. Prefer our more restricted `IMediaSource` type",
102
- },
103
-
104
- SourceBuffer: {
105
- message:
106
- "Avoid relying on `SourceBuffer` directly unless it is API-facing. Prefer our more restricted `ISourceBuffer` type",
107
- },
108
-
109
- SourceBufferList: {
110
- message:
111
- "Avoid relying on `SourceBufferList` directly unless it is API-facing. Prefer our more restricted `ISourceBufferList` type",
112
- },
113
-
114
- MediaKeySystemAccess: {
115
- message:
116
- "Avoid relying on `MediaKeySystemAccess` directly unless it is API-facing. Prefer our more restricted `IMediaKeySystemAccess` type",
117
- },
118
-
119
- MediaKeys: {
120
- message:
121
- "Avoid relying on `MediaKeys` directly unless it is API-facing. Prefer our more restricted `IMediaKeys` type",
122
- },
123
-
124
- MediaKeySession: {
125
- message:
126
- "Avoid relying on `MediaKeySession` directly unless it is API-facing. Prefer our more restricted `IMediaKeySession` type",
127
- },
128
- },
160
+ "@typescript-eslint/array-type": [
161
+ "error",
162
+ {
163
+ default: "array-simple",
164
+ },
165
+ ],
166
+
167
+ "@typescript-eslint/await-thenable": "error",
168
+
169
+ "@typescript-eslint/no-restricted-types": [
170
+ "error",
171
+ {
172
+ types: {
173
+ Object: {
174
+ message: "Avoid using the `Object` type. Did you mean `object`?",
129
175
  },
130
- ],
131
176
 
132
- "@typescript-eslint/consistent-type-assertions": [
133
- "error",
134
- {
135
- assertionStyle: "as",
136
- objectLiteralTypeAssertions: "allow",
177
+ Function: {
178
+ message:
179
+ "Avoid using the `Function` type. Prefer a specific function type, like `() => void`.",
137
180
  },
138
- ],
139
181
 
140
- "@typescript-eslint/prefer-promise-reject-errors": "off",
141
- "@typescript-eslint/only-throw-error": "off",
142
- "@typescript-eslint/consistent-type-definitions": "error",
143
- "@typescript-eslint/dot-notation": "error",
182
+ Boolean: {
183
+ message: "Avoid using the `Boolean` type. Did you mean `boolean`?",
184
+ },
144
185
 
145
- "@typescript-eslint/explicit-member-accessibility": [
146
- "off",
147
- {
148
- accessibility: "explicit",
186
+ Number: {
187
+ message: "Avoid using the `Number` type. Did you mean `number`?",
149
188
  },
150
- ],
151
189
 
152
- "@typescript-eslint/consistent-type-imports": "error",
153
- "@typescript-eslint/consistent-type-exports": "error",
190
+ String: {
191
+ message: "Avoid using the `String` type. Did you mean `string`?",
192
+ },
154
193
 
155
- "@typescript-eslint/naming-convention": [
156
- "error",
157
- {
158
- selector: "property",
159
- format: ["camelCase", "UPPER_CASE", "PascalCase"],
160
- leadingUnderscore: "allow",
161
- trailingUnderscore: "allow",
162
-
163
- filter: {
164
- regex: "^(__esModule$)|(__priv_)",
165
- match: false,
166
- },
194
+ Symbol: {
195
+ message: "Avoid using the `Symbol` type. Did you mean `symbol`?",
167
196
  },
168
- {
169
- selector: "method",
170
- format: ["camelCase"],
171
- leadingUnderscore: "allow",
172
- trailingUnderscore: "allow",
197
+
198
+ HTMLMediaElement: {
199
+ message:
200
+ "Avoid relying on `HTMLMediaElement` directly unless it is API-facing. Prefer our more restricted `IMediaElement` type",
173
201
  },
174
- {
175
- selector: "variable",
176
- format: ["camelCase", "UPPER_CASE", "PascalCase"],
177
- leadingUnderscore: "allow",
178
- trailingUnderscore: "allow",
202
+
203
+ MediaSource: {
204
+ message:
205
+ "Avoid relying on `MediaSource` directly unless it is API-facing. Prefer our more restricted `IMediaSource` type",
179
206
  },
180
- {
181
- selector: "parameter",
182
- format: ["camelCase"],
183
- leadingUnderscore: "allow",
184
-
185
- filter: {
186
- regex: "^__priv_",
187
- match: false,
188
- },
207
+
208
+ SourceBuffer: {
209
+ message:
210
+ "Avoid relying on `SourceBuffer` directly unless it is API-facing. Prefer our more restricted `ISourceBuffer` type",
189
211
  },
190
- {
191
- selector: "memberLike",
192
- modifiers: ["private"],
193
- format: ["camelCase"],
194
- leadingUnderscore: "require",
212
+
213
+ SourceBufferList: {
214
+ message:
215
+ "Avoid relying on `SourceBufferList` directly unless it is API-facing. Prefer our more restricted `ISourceBufferList` type",
195
216
  },
196
- {
197
- selector: "enum",
198
- format: ["PascalCase", "UPPER_CASE"],
199
- leadingUnderscore: "allow",
217
+
218
+ MediaKeySystemAccess: {
219
+ message:
220
+ "Avoid relying on `MediaKeySystemAccess` directly unless it is API-facing. Prefer our more restricted `IMediaKeySystemAccess` type",
200
221
  },
201
- {
202
- selector: "typeLike",
203
- format: ["PascalCase"],
204
- leadingUnderscore: "allow",
222
+
223
+ MediaKeys: {
224
+ message:
225
+ "Avoid relying on `MediaKeys` directly unless it is API-facing. Prefer our more restricted `IMediaKeys` type",
205
226
  },
206
- ],
207
227
 
208
- "@typescript-eslint/no-duplicate-type-constituents": [
209
- "error",
210
- {
211
- ignoreIntersections: false,
212
- ignoreUnions: true,
228
+ MediaKeySession: {
229
+ message:
230
+ "Avoid relying on `MediaKeySession` directly unless it is API-facing. Prefer our more restricted `IMediaKeySession` type",
213
231
  },
214
- ],
232
+ },
233
+ },
234
+ ],
215
235
 
216
- "@typescript-eslint/no-empty-function": "error",
217
- "@typescript-eslint/no-empty-interface": "error",
218
- "@typescript-eslint/no-explicit-any": "error",
219
- "@typescript-eslint/no-extraneous-class": "error",
220
- "@typescript-eslint/no-floating-promises": "error",
221
- "@typescript-eslint/no-for-in-array": "error",
222
- "@typescript-eslint/no-implied-eval": "error",
223
- "@typescript-eslint/no-inferrable-types": "off",
224
- "@typescript-eslint/no-misused-new": "error",
225
- "@typescript-eslint/no-namespace": "error",
226
- "@typescript-eslint/no-non-null-assertion": "error",
227
- "@typescript-eslint/no-redundant-type-constituents": "error",
228
- "@typescript-eslint/no-this-alias": "error",
229
- "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
230
- "@typescript-eslint/no-unnecessary-qualifier": "error",
231
- "@typescript-eslint/no-unnecessary-type-arguments": "error",
232
- "@typescript-eslint/no-unnecessary-type-assertion": "error",
233
- "@typescript-eslint/no-unsafe-argument": "error",
234
- "@typescript-eslint/no-unsafe-assignment": "error",
235
- "@typescript-eslint/no-unsafe-enum-comparison": ["off"],
236
- "@typescript-eslint/no-unsafe-member-access": "error",
237
- "@typescript-eslint/no-unused-expressions": "error",
238
- "@typescript-eslint/no-use-before-define": "off",
239
- "@typescript-eslint/no-var-requires": "error",
240
- "@typescript-eslint/prefer-for-of": "off",
241
- "@typescript-eslint/prefer-function-type": "error",
242
- "@typescript-eslint/prefer-namespace-keyword": "error",
243
- "@typescript-eslint/prefer-readonly": "off",
244
- "@typescript-eslint/promise-function-async": "off",
245
- "@typescript-eslint/restrict-template-expressions": "error",
236
+ "@typescript-eslint/consistent-type-assertions": [
237
+ "error",
238
+ {
239
+ assertionStyle: "as",
240
+ objectLiteralTypeAssertions: "allow",
241
+ },
242
+ ],
246
243
 
247
- "@typescript-eslint/no-unused-vars": [
244
+ "@typescript-eslint/prefer-promise-reject-errors": "off",
245
+ "@typescript-eslint/only-throw-error": "off",
246
+ "@typescript-eslint/consistent-type-definitions": "error",
247
+ "@typescript-eslint/dot-notation": "error",
248
+
249
+ "@typescript-eslint/explicit-member-accessibility": [
250
+ "off",
251
+ {
252
+ accessibility: "explicit",
253
+ },
254
+ ],
255
+
256
+ "@typescript-eslint/consistent-type-imports": "error",
257
+ "@typescript-eslint/consistent-type-exports": "error",
258
+
259
+ "@typescript-eslint/naming-convention": [
260
+ "error",
261
+ {
262
+ selector: "property",
263
+ format: ["camelCase", "UPPER_CASE", "PascalCase"],
264
+ leadingUnderscore: "allow",
265
+ trailingUnderscore: "allow",
266
+
267
+ filter: {
268
+ regex: "^(__esModule$)|(__priv_)",
269
+ match: false,
270
+ },
271
+ },
272
+ {
273
+ selector: "method",
274
+ format: ["camelCase"],
275
+ leadingUnderscore: "allow",
276
+ trailingUnderscore: "allow",
277
+ },
278
+ {
279
+ selector: "variable",
280
+ format: ["camelCase", "UPPER_CASE", "PascalCase"],
281
+ leadingUnderscore: "allow",
282
+ trailingUnderscore: "allow",
283
+ },
284
+ {
285
+ selector: "parameter",
286
+ format: ["camelCase"],
287
+ leadingUnderscore: "allow",
288
+
289
+ filter: {
290
+ regex: "^__priv_",
291
+ match: false,
292
+ },
293
+ },
294
+ {
295
+ selector: "memberLike",
296
+ modifiers: ["private"],
297
+ format: ["camelCase"],
298
+ leadingUnderscore: "require",
299
+ },
300
+ {
301
+ selector: "enum",
302
+ format: ["PascalCase", "UPPER_CASE"],
303
+ leadingUnderscore: "allow",
304
+ },
305
+ {
306
+ selector: "typeLike",
307
+ format: ["PascalCase"],
308
+ leadingUnderscore: "allow",
309
+ },
310
+ ],
311
+
312
+ "@typescript-eslint/no-duplicate-type-constituents": [
313
+ "error",
314
+ {
315
+ ignoreIntersections: false,
316
+ ignoreUnions: true,
317
+ },
318
+ ],
319
+
320
+ "@typescript-eslint/no-empty-function": "error",
321
+ "@typescript-eslint/no-empty-interface": "error",
322
+ "@typescript-eslint/no-explicit-any": "error",
323
+ "@typescript-eslint/no-extraneous-class": "error",
324
+ "@typescript-eslint/no-floating-promises": "error",
325
+ "@typescript-eslint/no-for-in-array": "error",
326
+ "@typescript-eslint/no-implied-eval": "error",
327
+ "@typescript-eslint/no-inferrable-types": "off",
328
+ "@typescript-eslint/no-misused-new": "error",
329
+ "@typescript-eslint/no-namespace": "error",
330
+ "@typescript-eslint/no-non-null-assertion": "error",
331
+ "@typescript-eslint/no-redundant-type-constituents": "error",
332
+ "@typescript-eslint/no-this-alias": "error",
333
+ "@typescript-eslint/no-unnecessary-boolean-literal-compare": "error",
334
+ "@typescript-eslint/no-unnecessary-qualifier": "error",
335
+ "@typescript-eslint/no-unnecessary-type-arguments": "error",
336
+ "@typescript-eslint/no-unnecessary-type-assertion": "error",
337
+ "@typescript-eslint/no-unsafe-argument": "error",
338
+ "@typescript-eslint/no-unsafe-assignment": "error",
339
+ "@typescript-eslint/no-unsafe-enum-comparison": ["off"],
340
+ "@typescript-eslint/no-unsafe-member-access": "error",
341
+ "@typescript-eslint/no-unused-expressions": "error",
342
+ "@typescript-eslint/no-use-before-define": "off",
343
+ "@typescript-eslint/no-var-requires": "error",
344
+ "@typescript-eslint/prefer-for-of": "off",
345
+ "@typescript-eslint/prefer-function-type": "error",
346
+ "@typescript-eslint/prefer-namespace-keyword": "error",
347
+ "@typescript-eslint/prefer-readonly": "off",
348
+ "@typescript-eslint/promise-function-async": "off",
349
+ "@typescript-eslint/restrict-template-expressions": "error",
350
+
351
+ "@typescript-eslint/no-unused-vars": [
352
+ "error",
353
+ {
354
+ args: "all",
355
+ argsIgnorePattern: "^_",
356
+ caughtErrors: "none",
357
+ destructuredArrayIgnorePattern: "^_",
358
+ varsIgnorePattern: "^_",
359
+ },
360
+ ],
361
+
362
+ "@typescript-eslint/no-shadow": ["error"],
363
+ "@typescript-eslint/restrict-plus-operands": "error",
364
+
365
+ "@typescript-eslint/strict-boolean-expressions": [
366
+ "error",
367
+ {
368
+ allowAny: false,
369
+ allowNullableBoolean: false,
370
+ allowNullableEnum: false,
371
+ allowNullableNumber: false,
372
+ allowNullableObject: false,
373
+ allowNullableString: false,
374
+ allowNumber: false,
375
+ allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
376
+ allowString: false,
377
+ },
378
+ ],
379
+
380
+ "@typescript-eslint/triple-slash-reference": [
381
+ "error",
382
+ {
383
+ path: "always",
384
+ types: "prefer-import",
385
+ lib: "always",
386
+ },
387
+ ],
388
+
389
+ "@typescript-eslint/unbound-method": "error",
390
+ "@typescript-eslint/unified-signatures": "error",
391
+ };
392
+
393
+ // globalIgnores([
394
+ // "**/node_modules",
395
+ // "**/*.log",
396
+ // "**/*.keys",
397
+ // "demo/bundle.js",
398
+ // "demo/lib.js",
399
+ // "tools/tests/coverage/",
400
+ // "dist/*",
401
+ // "!dist/rx-player.js",
402
+ // "!dist/rx-player.min.js",
403
+ // "**/test-output.xml",
404
+ // "src/__GENERATED_CODE",
405
+ // ]),
406
+
407
+ // jsLint.configs.recommended,
408
+ // tsLint.configs.recommended,
409
+ export default defineConfig([
410
+ globalIgnores([
411
+ "**/node_modules",
412
+ "**/*.log",
413
+ "**/*.keys",
414
+ "demo/bundle.js",
415
+ "demo/lib.js",
416
+ "demo/worker.js",
417
+ "tools/tests/coverage/",
418
+ "dist/*",
419
+ "**/test-output.xml",
420
+ "src/__GENERATED_CODE",
421
+ "doc/generated",
422
+ "tests/performance/current.js",
423
+ "tests/performance/previous.js",
424
+ ]),
425
+ {
426
+ files: ["scripts/**/*.js", "scripts/**/*.mjs"],
427
+ extends: [jsLint.configs.recommended],
428
+ languageOptions: {
429
+ ecmaVersion: 2020,
430
+ sourceType: "module",
431
+ },
432
+ rules: {
433
+ "comma-dangle": [1, "only-multiline"],
434
+ "no-cond-assign": 0,
435
+ "no-constant-condition": 0,
436
+ "no-control-regex": 0,
437
+ "no-debugger": 2,
438
+ "no-dupe-args": 2,
439
+ "no-dupe-keys": 2,
440
+ "no-duplicate-case": 1,
441
+ "no-empty-character-class": 1,
442
+ "no-empty": 0,
443
+ "no-ex-assign": 1,
444
+ "no-extra-boolean-cast": 1,
445
+ "no-extra-parens": [1, "functions"],
446
+ "no-extra-semi": 2,
447
+ "no-fallthrough": "error",
448
+ "no-func-assign": 2,
449
+ "no-inner-declarations": 0,
450
+ "no-invalid-regexp": 1,
451
+ "no-irregular-whitespace": 1,
452
+ "no-negated-in-lhs": 2,
453
+ "no-obj-calls": 2,
454
+ "no-regex-spaces": 1,
455
+ "no-sparse-arrays": 2,
456
+ // NOTE: eslint doesn't seem to allow the inclusion of Node.JS globals by
457
+ // default.
458
+ // I don't want to spend too much efforts on this nor include and maintain
459
+ // another "globals" dependency just for this.
460
+ "no-undef": 0,
461
+ "no-unreachable": 2,
462
+ "no-unused-vars": [
248
463
  "error",
249
464
  {
250
465
  args: "all",
@@ -254,170 +469,254 @@ export default defineConfig([
254
469
  varsIgnorePattern: "^_",
255
470
  },
256
471
  ],
257
-
258
- "@typescript-eslint/no-shadow": ["error"],
259
- "@typescript-eslint/restrict-plus-operands": "error",
260
-
261
- "@typescript-eslint/strict-boolean-expressions": [
262
- "error",
472
+ "use-isnan": 2,
473
+ "valid-jsdoc": 0,
474
+ "valid-typeof": 2,
475
+ "no-unexpected-multiline": 0,
476
+ "no-trailing-spaces": 2,
477
+ "no-multiple-empty-lines": 1,
478
+
479
+ "accessor-pairs": [
480
+ 1,
263
481
  {
264
- allowAny: false,
265
- allowNullableBoolean: false,
266
- allowNullableEnum: false,
267
- allowNullableNumber: false,
268
- allowNullableObject: false,
269
- allowNullableString: false,
270
- allowNumber: false,
271
- allowRuleToRunWithoutStrictNullChecksIKnowWhatIAmDoing: false,
272
- allowString: false,
482
+ setWithoutGet: true,
273
483
  },
274
484
  ],
275
485
 
276
- "@typescript-eslint/triple-slash-reference": [
277
- "error",
278
- {
279
- path: "always",
280
- types: "prefer-import",
281
- lib: "always",
282
- },
283
- ],
486
+ "block-scoped-var": 1,
487
+ complexity: 0,
488
+ curly: [1, "all"],
489
+ "no-case-declarations": 0,
490
+ "no-var": 1,
491
+ "prefer-const": 1,
492
+ "linebreak-style": [1, "unix"],
493
+ semi: [1, "always"],
494
+ },
495
+ },
496
+
497
+ {
498
+ files: ["demo/**/*.js", "demo/**/*.ts", "demo/**/*.tsx"],
499
+ extends: [jsLint.configs.recommended, tsLint.configs.recommended],
500
+ plugins: {
501
+ react,
502
+ "@typescript-eslint": typescriptEslint,
503
+ },
504
+ languageOptions: {
505
+ globals: {
506
+ __DEV__: true,
507
+ __LOGGER_LEVEL__: true,
508
+ __FEATURES__: true,
509
+ },
284
510
 
285
- "@typescript-eslint/unbound-method": "error",
286
- "@typescript-eslint/unified-signatures": "error",
287
- "arrow-body-style": "off",
288
- "arrow-parens": ["off", "always"],
511
+ parser: tsParser,
512
+ ecmaVersion: 2017,
513
+ sourceType: "module",
289
514
 
290
- complexity: [
291
- "off",
292
- {
293
- max: 20,
515
+ parserOptions: {
516
+ tsconfigRootDir: ".",
517
+ project: "./tsconfig.eslint.json",
518
+ ecmaFeatures: {
519
+ jsx: true,
294
520
  },
295
- ],
521
+ },
522
+ },
296
523
 
297
- "constructor-super": "error",
298
- curly: "error",
299
- "default-case": "off",
300
- eqeqeq: "error",
301
- "guard-for-in": "warn",
302
- "id-blacklist": "off",
303
- "id-match": "off",
304
- "import/no-default-export": "off",
305
- "import/no-deprecated": "error",
306
-
307
- "import/no-extraneous-dependencies": [
524
+ rules: {
525
+ "@typescript-eslint/no-unused-vars": [
308
526
  "error",
309
527
  {
310
- devDependencies: ["**/*.test.ts", "**/__tests__/**"],
528
+ args: "all",
529
+ argsIgnorePattern: "^_",
530
+ caughtErrors: "none",
531
+ destructuredArrayIgnorePattern: "^_",
532
+ varsIgnorePattern: "^_",
311
533
  },
312
534
  ],
313
535
 
314
- "import/no-internal-modules": "off",
315
-
316
- "import/order": [
317
- "error",
536
+ "comma-dangle": [1, "only-multiline"],
537
+ "no-cond-assign": 0,
538
+ "no-console": 1,
539
+ "no-constant-condition": 0,
540
+ "no-control-regex": 0,
541
+ "no-debugger": 2,
542
+ "no-dupe-args": 2,
543
+ "no-dupe-keys": 2,
544
+ "no-duplicate-case": 1,
545
+ "no-empty-character-class": 1,
546
+ "no-empty": 0,
547
+ "no-ex-assign": 1,
548
+ "no-extra-boolean-cast": 1,
549
+ "no-extra-parens": [1, "functions"],
550
+ "no-extra-semi": 2,
551
+ "no-func-assign": 2,
552
+ "no-inner-declarations": 0,
553
+ "no-invalid-regexp": 1,
554
+ "no-irregular-whitespace": 1,
555
+ "no-negated-in-lhs": 2,
556
+ "no-obj-calls": 2,
557
+ "no-regex-spaces": 1,
558
+ "no-sparse-arrays": 2,
559
+ "no-unreachable": 2,
560
+ "use-isnan": 2,
561
+ "valid-jsdoc": 0,
562
+ "valid-typeof": 2,
563
+ "no-unexpected-multiline": 0,
564
+ "no-trailing-spaces": 2,
565
+ "no-multiple-empty-lines": 1,
566
+
567
+ "accessor-pairs": [
568
+ 1,
318
569
  {
319
- alphabetize: {
320
- order: "asc",
321
- caseInsensitive: true,
322
- },
570
+ setWithoutGet: true,
323
571
  },
324
572
  ],
325
573
 
326
- "import/no-duplicates": "error",
327
- "jsdoc/check-alignment": "error",
328
- "jsdoc/no-types": "off",
329
- "max-classes-per-file": ["warn", 5],
330
- "max-lines": ["off", 300],
331
- "newline-per-chained-call": "off",
332
- "no-bitwise": "off",
333
- "no-caller": "error",
334
- "no-console": "error",
335
- "no-debugger": "error",
336
- "no-duplicate-case": "error",
337
- "no-empty": "error",
338
- "no-eval": "error",
339
- "no-fallthrough": "error",
340
- "no-invalid-this": "error",
341
- "no-magic-numbers": "off",
342
- "no-new-wrappers": "error",
343
- "no-nested-ternary": "error",
344
- "no-param-reassign": "error",
345
- "no-return-await": "error",
346
- "no-sequences": "error",
347
- "no-shadow": "off",
348
- "no-sparse-arrays": "error",
349
- "no-template-curly-in-string": "error",
350
- "no-throw-literal": "error",
351
- "no-undef-init": "error",
352
- "no-unsafe-finally": "error",
353
- "no-unused-labels": "error",
354
- "no-var": "error",
355
- "no-void": "error",
356
- "object-shorthand": "error",
357
- "one-var": ["error", "never"],
358
- "prefer-const": "error",
359
- "prefer-spread": "error",
360
- "prefer-object-spread": "error",
361
- "prefer-template": "off",
362
-
363
- "no-restricted-properties": [
364
- "error",
365
- {
366
- object: "performance",
367
- property: "now",
368
- message:
369
- "Avoid using `performance.now` directly as timestamps may be different in the worker and the main thread and some platforms don't have it in a Worker environment. Please use the `getMonotonicTimeStamp` util instead.",
370
- },
371
- {
372
- object: "window",
373
- message:
374
- "`window` doesn't work in Node.JS and only works when JavaScript is running in the main thread. Please import `globalScope` instead.",
375
- },
376
- {
377
- object: "Object",
378
- property: "assign",
379
- message: "Not available in IE11, use `objectAssign` utils instead.",
380
- },
381
- {
382
- object: "Object",
383
- property: "values",
384
- message: "Not available in IE11, use `objectValues` utils instead.",
385
- },
386
- {
387
- property: "includes",
388
- message: "Not available in IE11, use another method such as `indexOf` instead.",
389
- },
390
- {
391
- property: "find",
392
- message: "Not available in IE11, use `arrayFind` utils instead.",
393
- },
394
- {
395
- property: "findIndex",
396
- message: "Not available in IE11, use `arrayFindIndex` utils instead.",
397
- },
398
- {
399
- property: "startsWith",
400
- message: "Not available in IE11, use `startsWith` utils instead.",
574
+ "block-scoped-var": 1,
575
+ complexity: 0,
576
+ curly: [1, "all"],
577
+ "no-case-declarations": 0,
578
+ "no-var": 1,
579
+ "prefer-const": 1,
580
+ "linebreak-style": [1, "unix"],
581
+ semi: [1, "always"],
582
+ "react/jsx-uses-vars": [2],
583
+ "react/jsx-uses-react": [2],
584
+ },
585
+ },
586
+
587
+ {
588
+ files: ["tests/**/*.js", "tests/**/*.mjs"],
589
+ extends: [jsLint.configs.recommended],
590
+ plugins: {
591
+ react,
592
+ },
593
+ languageOptions: {
594
+ globals: {
595
+ ...globals.browser,
596
+ ...globals.commonjs,
597
+ ...globals.mocha,
598
+ ...globals.node,
599
+ __DEV__: true,
600
+ __LOGGER_LEVEL__: true,
601
+ __FEATURES__: true,
602
+ },
603
+
604
+ ecmaVersion: 2020,
605
+ sourceType: "module",
606
+
607
+ parserOptions: {
608
+ tsconfigRootDir: ".",
609
+ project: "tsconfig.eslint.json",
610
+ ecmaFeatures: {
611
+ jsx: true,
401
612
  },
613
+ },
614
+ },
615
+ rules: {
616
+ "comma-dangle": [1, "only-multiline"],
617
+ "no-cond-assign": 0,
618
+ "no-console": 1,
619
+ "no-constant-condition": 0,
620
+ "no-control-regex": 0,
621
+ "no-debugger": 2,
622
+ "no-dupe-args": 2,
623
+ "no-dupe-keys": 2,
624
+ "no-duplicate-case": 1,
625
+ "no-empty-character-class": 1,
626
+ "no-empty": 0,
627
+ "no-ex-assign": 1,
628
+ "no-extra-boolean-cast": 1,
629
+ "no-extra-parens": [1, "functions"],
630
+ "no-extra-semi": 2,
631
+ "no-func-assign": 2,
632
+ "no-inner-declarations": 0,
633
+ "no-invalid-regexp": 1,
634
+ "no-irregular-whitespace": 1,
635
+ "no-negated-in-lhs": 2,
636
+ "no-obj-calls": 2,
637
+ "no-regex-spaces": 1,
638
+ "no-sparse-arrays": 2,
639
+ // NOTE: eslint doesn't seem to allow the inclusion of Node.JS globals by
640
+ // default.
641
+ // I don't want to spend too much efforts on this nor include and maintain
642
+ // another "globals" dependency just for this.
643
+ "no-undef": 0,
644
+ "no-unreachable": 2,
645
+ "use-isnan": 2,
646
+ "valid-jsdoc": 0,
647
+ "valid-typeof": 2,
648
+ "no-unexpected-multiline": 0,
649
+ "no-trailing-spaces": 2,
650
+ "no-multiple-empty-lines": 1,
651
+ "no-unused-vars": [
652
+ "error",
402
653
  {
403
- property: "substr",
404
- message: "Please use `substring` instead.",
654
+ args: "all",
655
+ argsIgnorePattern: "^_",
656
+ caughtErrors: "none",
657
+ destructuredArrayIgnorePattern: "^_",
658
+ varsIgnorePattern: "^_",
405
659
  },
406
660
  ],
407
661
 
408
- radix: "error",
409
-
410
- "spaced-comment": [
411
- "error",
412
- "always",
662
+ "accessor-pairs": [
663
+ 1,
413
664
  {
414
- markers: ["/"],
665
+ setWithoutGet: true,
415
666
  },
416
667
  ],
417
668
 
418
- "use-isnan": "error",
419
- "valid-typeof": "error",
420
- yoda: "error",
669
+ "block-scoped-var": 1,
670
+ complexity: 0,
671
+ curly: [1, "all"],
672
+ "no-var": 1,
673
+ "prefer-const": 1,
674
+ "linebreak-style": [1, "unix"],
675
+ semi: [1, "always"],
676
+ "react/jsx-uses-vars": [2],
677
+ "react/jsx-uses-react": [2],
678
+ },
679
+ },
680
+ {
681
+ files: ["src/**/*.js", "src/**/*.mjs"],
682
+ extends: [jsLint.configs.recommended, tsLint.configs.recommended],
683
+ plugins: {
684
+ import: _import,
685
+ jsdoc,
686
+ ban,
687
+ },
688
+ // languageOptions: {
689
+ // ecmaVersion: 5,
690
+ // sourceType: "module",
691
+ // },
692
+
693
+ rules: {
694
+ ...rulesJS,
695
+ },
696
+ },
697
+
698
+ {
699
+ files: ["src/**/*.ts", "src/**/*.tsx"],
700
+ extends: [jsLint.configs.recommended, tsLint.configs.recommended],
701
+ plugins: {
702
+ import: _import,
703
+ jsdoc,
704
+ ban,
705
+ "@typescript-eslint": typescriptEslint,
706
+ },
707
+ languageOptions: {
708
+ parser: tsParser,
709
+ ecmaVersion: 5,
710
+ sourceType: "module",
711
+
712
+ parserOptions: {
713
+ project: "tsconfig.eslint.json",
714
+ },
715
+ },
716
+
717
+ rules: {
718
+ ...rulesJS,
719
+ ...rulesTs,
421
720
  },
422
721
  },
423
722
  ]);