@jellyfin/sdk 0.13.0 → 1.0.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 (760) hide show
  1. package/.nvmrc +1 -0
  2. package/.openapi-generator-ignore +2 -0
  3. package/CHANGELOG.md +24 -2
  4. package/README.md +52 -27
  5. package/eslint.config.mjs +118 -0
  6. package/lib/api.d.ts +30 -8
  7. package/lib/api.js +79 -14
  8. package/lib/constants.d.ts +11 -0
  9. package/lib/constants.js +13 -0
  10. package/lib/generated-client/api/{artists-api.d.ts → artist-api.d.ts} +38 -173
  11. package/lib/generated-client/api/{artists-api.js → artist-api.js} +39 -33
  12. package/lib/generated-client/api/audio-api.d.ts +295 -450
  13. package/lib/generated-client/api/audio-api.js +332 -64
  14. package/lib/generated-client/api/authentication-api.d.ts +517 -0
  15. package/lib/generated-client/api/authentication-api.js +870 -0
  16. package/lib/generated-client/api/backup-api.d.ts +0 -22
  17. package/lib/generated-client/api/backup-api.js +5 -11
  18. package/lib/generated-client/api/branding-api.d.ts +0 -9
  19. package/lib/generated-client/api/branding-api.js +4 -10
  20. package/lib/generated-client/api/{channels-api.d.ts → channel-api.d.ts} +32 -95
  21. package/lib/generated-client/api/{channels-api.js → channel-api.js} +35 -41
  22. package/lib/generated-client/api/collection-api.d.ts +0 -31
  23. package/lib/generated-client/api/collection-api.js +4 -10
  24. package/lib/generated-client/api/{devices-api.d.ts → device-api.d.ts} +48 -81
  25. package/lib/generated-client/api/{devices-api.js → device-api.js} +46 -54
  26. package/lib/generated-client/api/{display-preferences-api.d.ts → display-preference-api.d.ts} +20 -46
  27. package/lib/generated-client/api/{display-preferences-api.js → display-preference-api.js} +22 -28
  28. package/lib/generated-client/api/environment-api.d.ts +0 -60
  29. package/lib/generated-client/api/environment-api.js +6 -75
  30. package/lib/generated-client/api/filter-api.d.ts +0 -40
  31. package/lib/generated-client/api/filter-api.js +3 -9
  32. package/lib/generated-client/api/{genres-api.d.ts → genre-api.d.ts} +20 -72
  33. package/lib/generated-client/api/{genres-api.js → genre-api.js} +22 -28
  34. package/lib/generated-client/api/image-api.d.ts +4 -1007
  35. package/lib/generated-client/api/image-api.js +42 -48
  36. package/lib/generated-client/api/instant-mix-api.d.ts +8 -245
  37. package/lib/generated-client/api/instant-mix-api.js +16 -121
  38. package/lib/generated-client/api/item-lookup-api.d.ts +0 -65
  39. package/lib/generated-client/api/item-lookup-api.js +12 -18
  40. package/lib/generated-client/api/item-update-api.d.ts +0 -25
  41. package/lib/generated-client/api/item-update-api.js +4 -10
  42. package/lib/generated-client/api/library-api.d.ts +1239 -327
  43. package/lib/generated-client/api/library-api.js +1307 -95
  44. package/lib/generated-client/api/library-structure-api.d.ts +0 -62
  45. package/lib/generated-client/api/library-structure-api.js +9 -15
  46. package/lib/generated-client/api/live-tv-api.d.ts +0 -622
  47. package/lib/generated-client/api/live-tv-api.js +39 -320
  48. package/lib/generated-client/api/localization-api.d.ts +0 -10
  49. package/lib/generated-client/api/localization-api.js +5 -11
  50. package/lib/generated-client/api/{lyrics-api.d.ts → lyric-api.d.ts} +44 -89
  51. package/lib/generated-client/api/{lyrics-api.js → lyric-api.js} +42 -48
  52. package/lib/generated-client/api/media-info-api.d.ts +4 -91
  53. package/lib/generated-client/api/media-info-api.js +10 -16
  54. package/lib/generated-client/api/{media-segments-api.d.ts → media-segment-api.d.ts} +14 -27
  55. package/lib/generated-client/api/{media-segments-api.js → media-segment-api.js} +17 -23
  56. package/lib/generated-client/api/{movies-api.d.ts → movie-api.d.ts} +14 -33
  57. package/lib/generated-client/api/{movies-api.js → movie-api.js} +17 -23
  58. package/lib/generated-client/api/music-genre-api.d.ts +85 -0
  59. package/lib/generated-client/api/music-genre-api.js +121 -0
  60. package/lib/generated-client/api/{persons-api.d.ts → person-api.d.ts} +52 -64
  61. package/lib/generated-client/api/{persons-api.js → person-api.js} +51 -32
  62. package/lib/generated-client/api/{playlists-api.d.ts → playlist-api.d.ts} +86 -185
  63. package/lib/generated-client/api/{playlists-api.js → playlist-api.js} +80 -81
  64. package/lib/generated-client/api/plugin-api.d.ts +743 -0
  65. package/lib/generated-client/api/plugin-api.js +1186 -0
  66. package/lib/generated-client/api/remote-image-api.d.ts +0 -35
  67. package/lib/generated-client/api/remote-image-api.js +4 -10
  68. package/lib/generated-client/api/{scheduled-tasks-api.d.ts → scheduled-task-api.d.ts} +38 -73
  69. package/lib/generated-client/api/{scheduled-tasks-api.js → scheduled-task-api.js} +37 -43
  70. package/lib/generated-client/api/search-api.d.ts +0 -45
  71. package/lib/generated-client/api/search-api.js +2 -8
  72. package/lib/generated-client/api/session-api.d.ts +163 -181
  73. package/lib/generated-client/api/session-api.js +262 -123
  74. package/lib/generated-client/api/{tv-shows-api.d.ts → show-api.d.ts} +34 -156
  75. package/lib/generated-client/api/{tv-shows-api.js → show-api.js} +36 -47
  76. package/lib/generated-client/api/startup-api.d.ts +20 -25
  77. package/lib/generated-client/api/startup-api.js +28 -14
  78. package/lib/generated-client/api/{studios-api.d.ts → studio-api.d.ts} +20 -70
  79. package/lib/generated-client/api/{studios-api.js → studio-api.js} +22 -28
  80. package/lib/generated-client/api/subtitle-api.d.ts +0 -114
  81. package/lib/generated-client/api/subtitle-api.js +11 -17
  82. package/lib/generated-client/api/{suggestions-api.d.ts → suggestion-api.d.ts} +14 -35
  83. package/lib/generated-client/api/{suggestions-api.js → suggestion-api.js} +17 -23
  84. package/lib/generated-client/api/sync-play-api.d.ts +0 -96
  85. package/lib/generated-client/api/sync-play-api.js +23 -29
  86. package/lib/generated-client/api/system-api.d.ts +420 -20
  87. package/lib/generated-client/api/system-api.js +659 -18
  88. package/lib/generated-client/api/{trailers-api.d.ts → trailer-api.d.ts} +32 -193
  89. package/lib/generated-client/api/{trailers-api.js → trailer-api.js} +35 -27
  90. package/lib/generated-client/api/{trickplay-api.d.ts → trick-play-api.d.ts} +20 -46
  91. package/lib/generated-client/api/{trickplay-api.js → trick-play-api.js} +22 -28
  92. package/lib/generated-client/api/user-api.d.ts +0 -249
  93. package/lib/generated-client/api/user-api.js +11 -277
  94. package/lib/generated-client/api/user-data-api.d.ts +429 -0
  95. package/lib/generated-client/api/{user-library-api.js → user-data-api.js} +149 -324
  96. package/lib/generated-client/api/{user-views-api.d.ts → user-view-api.d.ts} +20 -42
  97. package/lib/generated-client/api/{user-views-api.js → user-view-api.js} +22 -28
  98. package/lib/generated-client/api/{videos-api.d.ts → video-api.d.ts} +111 -533
  99. package/lib/generated-client/api/{videos-api.js → video-api.js} +141 -101
  100. package/lib/generated-client/api/{years-api.d.ts → year-api.d.ts} +20 -66
  101. package/lib/generated-client/api/{years-api.js → year-api.js} +22 -28
  102. package/lib/generated-client/api.d.ts +23 -38
  103. package/lib/generated-client/base.d.ts +0 -24
  104. package/lib/generated-client/base.js +0 -15
  105. package/lib/generated-client/common.d.ts +4 -35
  106. package/lib/generated-client/common.js +15 -26
  107. package/lib/generated-client/configuration.d.ts +24 -17
  108. package/lib/generated-client/configuration.js +8 -2
  109. package/lib/generated-client/index.js +25 -39
  110. package/lib/generated-client/models/access-schedule.d.ts +0 -15
  111. package/lib/generated-client/models/activity-log-entry-message.d.ts +0 -11
  112. package/lib/generated-client/models/activity-log-entry-query-result.d.ts +0 -8
  113. package/lib/generated-client/models/activity-log-entry-start-message.d.ts +1 -10
  114. package/lib/generated-client/models/activity-log-entry-stop-message.d.ts +0 -7
  115. package/lib/generated-client/models/activity-log-entry.d.ts +0 -25
  116. package/lib/generated-client/models/activity-log-sort-by.d.ts +23 -0
  117. package/lib/generated-client/models/{architecture.d.ts → activity-log-sort-by.js} +13 -11
  118. package/lib/generated-client/models/add-virtual-folder-dto.d.ts +0 -7
  119. package/lib/generated-client/models/album-info-remote-search-query.d.ts +0 -19
  120. package/lib/generated-client/models/album-info.d.ts +1 -49
  121. package/lib/generated-client/models/all-theme-media-result.d.ts +0 -20
  122. package/lib/generated-client/models/artist-info-remote-search-query.d.ts +0 -19
  123. package/lib/generated-client/models/artist-info.d.ts +0 -44
  124. package/lib/generated-client/models/audio-spatial-format.d.ts +0 -2
  125. package/lib/generated-client/models/audio-spatial-format.js +0 -2
  126. package/lib/generated-client/models/authenticate-user-by-name.d.ts +0 -6
  127. package/lib/generated-client/models/authentication-info-query-result.d.ts +0 -8
  128. package/lib/generated-client/models/authentication-info.d.ts +0 -35
  129. package/lib/generated-client/models/authentication-result.d.ts +0 -16
  130. package/lib/generated-client/models/backup-manifest-dto.d.ts +5 -20
  131. package/lib/generated-client/models/backup-options-dto.d.ts +0 -10
  132. package/lib/generated-client/models/backup-restore-request-dto.d.ts +1 -5
  133. package/lib/generated-client/models/base-item-dto-image-blur-hashes.d.ts +14 -81
  134. package/lib/generated-client/models/base-item-dto-query-result.d.ts +0 -8
  135. package/lib/generated-client/models/base-item-dto.d.ts +6 -456
  136. package/lib/generated-client/models/base-item-kind.d.ts +0 -2
  137. package/lib/generated-client/models/base-item-kind.js +0 -2
  138. package/lib/generated-client/models/base-item-person-image-blur-hashes.d.ts +13 -80
  139. package/lib/generated-client/models/base-item-person.d.ts +0 -20
  140. package/lib/generated-client/models/book-info-remote-search-query.d.ts +0 -19
  141. package/lib/generated-client/models/book-info.d.ts +2 -40
  142. package/lib/generated-client/models/box-set-info-remote-search-query.d.ts +0 -19
  143. package/lib/generated-client/models/box-set-info.d.ts +1 -37
  144. package/lib/generated-client/models/branding-options-dto.d.ts +1 -9
  145. package/lib/generated-client/models/buffer-request-dto.d.ts +0 -10
  146. package/lib/generated-client/models/cast-receiver-application.d.ts +2 -8
  147. package/lib/generated-client/models/channel-features.d.ts +0 -29
  148. package/lib/generated-client/models/channel-item-sort-field.d.ts +0 -5
  149. package/lib/generated-client/models/channel-item-sort-field.js +0 -5
  150. package/lib/generated-client/models/channel-mapping-options-dto.d.ts +2 -12
  151. package/lib/generated-client/models/channel-media-content-type.d.ts +0 -5
  152. package/lib/generated-client/models/channel-media-content-type.js +0 -5
  153. package/lib/generated-client/models/channel-media-type.d.ts +0 -5
  154. package/lib/generated-client/models/channel-media-type.js +0 -5
  155. package/lib/generated-client/models/channel-type.d.ts +0 -2
  156. package/lib/generated-client/models/channel-type.js +0 -2
  157. package/lib/generated-client/models/chapter-info.d.ts +0 -18
  158. package/lib/generated-client/models/client-capabilities-dto.d.ts +0 -19
  159. package/lib/generated-client/models/client-log-document-response-dto.d.ts +0 -4
  160. package/lib/generated-client/models/codec-profile.d.ts +0 -17
  161. package/lib/generated-client/models/codec-type.d.ts +1 -3
  162. package/lib/generated-client/models/codec-type.js +1 -3
  163. package/lib/generated-client/models/collection-creation-result.d.ts +0 -10
  164. package/lib/generated-client/models/collection-type-options.d.ts +0 -2
  165. package/lib/generated-client/models/collection-type-options.js +0 -2
  166. package/lib/generated-client/models/collection-type.d.ts +0 -2
  167. package/lib/generated-client/models/collection-type.js +0 -2
  168. package/lib/generated-client/models/configuration-page-info.d.ts +0 -14
  169. package/lib/generated-client/models/container-profile.d.ts +0 -13
  170. package/lib/generated-client/models/country-info.d.ts +0 -10
  171. package/lib/generated-client/models/create-playlist-dto.d.ts +1 -18
  172. package/lib/generated-client/models/create-user-by-name.d.ts +0 -6
  173. package/lib/generated-client/models/culture-dto.d.ts +0 -15
  174. package/lib/generated-client/models/custom-database-option.d.ts +2 -8
  175. package/lib/generated-client/models/custom-database-options.d.ts +3 -13
  176. package/lib/generated-client/models/database-configuration-options.d.ts +1 -15
  177. package/lib/generated-client/models/database-locking-behavior-types.d.ts +0 -2
  178. package/lib/generated-client/models/database-locking-behavior-types.js +0 -2
  179. package/lib/generated-client/models/day-of-week.d.ts +0 -5
  180. package/lib/generated-client/models/day-of-week.js +0 -5
  181. package/lib/generated-client/models/day-pattern.d.ts +1 -3
  182. package/lib/generated-client/models/day-pattern.js +1 -3
  183. package/lib/generated-client/models/default-directory-browser-info-dto.d.ts +0 -4
  184. package/lib/generated-client/models/deinterlace-method.d.ts +0 -2
  185. package/lib/generated-client/models/deinterlace-method.js +0 -2
  186. package/lib/generated-client/models/device-info-dto-query-result.d.ts +0 -8
  187. package/lib/generated-client/models/device-info-dto.d.ts +0 -27
  188. package/lib/generated-client/models/device-options-dto.d.ts +0 -8
  189. package/lib/generated-client/models/device-profile.d.ts +1 -25
  190. package/lib/generated-client/models/direct-play-profile.d.ts +0 -13
  191. package/lib/generated-client/models/display-preferences-dto.d.ts +0 -36
  192. package/lib/generated-client/models/dlna-profile-type.d.ts +0 -5
  193. package/lib/generated-client/models/dlna-profile-type.js +0 -5
  194. package/lib/generated-client/models/down-mix-stereo-algorithms.d.ts +0 -2
  195. package/lib/generated-client/models/down-mix-stereo-algorithms.js +0 -2
  196. package/lib/generated-client/models/dynamic-day-of-week.d.ts +0 -2
  197. package/lib/generated-client/models/dynamic-day-of-week.js +0 -2
  198. package/lib/generated-client/models/embedded-subtitle-options.d.ts +0 -2
  199. package/lib/generated-client/models/embedded-subtitle-options.js +0 -2
  200. package/lib/generated-client/models/encoder-preset.d.ts +0 -2
  201. package/lib/generated-client/models/encoder-preset.js +0 -2
  202. package/lib/generated-client/models/encoding-context.d.ts +1 -3
  203. package/lib/generated-client/models/encoding-context.js +1 -3
  204. package/lib/generated-client/models/encoding-options.d.ts +6 -117
  205. package/lib/generated-client/models/end-point-info.d.ts +0 -15
  206. package/lib/generated-client/models/external-id-info.d.ts +0 -11
  207. package/lib/generated-client/models/external-id-media-type.d.ts +0 -2
  208. package/lib/generated-client/models/external-id-media-type.js +0 -2
  209. package/lib/generated-client/models/external-url.d.ts +0 -9
  210. package/lib/generated-client/models/extra-type.d.ts +0 -5
  211. package/lib/generated-client/models/extra-type.js +0 -5
  212. package/lib/generated-client/models/file-system-entry-info.d.ts +0 -11
  213. package/lib/generated-client/models/file-system-entry-type.d.ts +0 -2
  214. package/lib/generated-client/models/file-system-entry-type.js +0 -2
  215. package/lib/generated-client/models/folder-storage-dto.d.ts +1 -13
  216. package/lib/generated-client/models/font-file.d.ts +0 -10
  217. package/lib/generated-client/models/force-keep-alive-message.d.ts +0 -11
  218. package/lib/generated-client/models/forgot-password-action.d.ts +0 -5
  219. package/lib/generated-client/models/forgot-password-action.js +0 -5
  220. package/lib/generated-client/models/forgot-password-dto.d.ts +0 -4
  221. package/lib/generated-client/models/forgot-password-pin-dto.d.ts +0 -4
  222. package/lib/generated-client/models/forgot-password-result.d.ts +0 -14
  223. package/lib/generated-client/models/general-command-message.d.ts +0 -14
  224. package/lib/generated-client/models/general-command-type.d.ts +0 -2
  225. package/lib/generated-client/models/general-command-type.js +0 -2
  226. package/lib/generated-client/models/general-command.d.ts +1 -21
  227. package/lib/generated-client/models/get-programs-dto.d.ts +0 -56
  228. package/lib/generated-client/models/group-info-dto.d.ts +0 -15
  229. package/lib/generated-client/models/group-queue-mode.d.ts +0 -2
  230. package/lib/generated-client/models/group-queue-mode.js +0 -2
  231. package/lib/generated-client/models/group-repeat-mode.d.ts +0 -2
  232. package/lib/generated-client/models/group-repeat-mode.js +0 -2
  233. package/lib/generated-client/models/group-shuffle-mode.d.ts +0 -2
  234. package/lib/generated-client/models/group-shuffle-mode.js +0 -2
  235. package/lib/generated-client/models/group-state-type.d.ts +0 -2
  236. package/lib/generated-client/models/group-state-type.js +0 -2
  237. package/lib/generated-client/models/group-state-update.d.ts +0 -12
  238. package/lib/generated-client/models/group-update-type.d.ts +0 -2
  239. package/lib/generated-client/models/group-update-type.js +0 -2
  240. package/lib/generated-client/models/group-update.d.ts +0 -1
  241. package/lib/generated-client/models/guide-info.d.ts +0 -9
  242. package/lib/generated-client/models/hardware-acceleration-type.d.ts +0 -2
  243. package/lib/generated-client/models/hardware-acceleration-type.js +0 -2
  244. package/lib/generated-client/models/{notification-level.d.ts → hls-audio-seek-strategy.d.ts} +5 -8
  245. package/lib/generated-client/models/{transcoding-info.js → hls-audio-seek-strategy.js} +8 -2
  246. package/lib/generated-client/models/ignore-wait-request-dto.d.ts +0 -4
  247. package/lib/generated-client/models/image-format.d.ts +0 -2
  248. package/lib/generated-client/models/image-format.js +0 -2
  249. package/lib/generated-client/models/image-info.d.ts +0 -21
  250. package/lib/generated-client/models/image-option.d.ts +0 -14
  251. package/lib/generated-client/models/image-orientation.d.ts +0 -5
  252. package/lib/generated-client/models/image-orientation.js +0 -5
  253. package/lib/generated-client/models/image-provider-info.d.ts +0 -6
  254. package/lib/generated-client/models/image-resolution.d.ts +0 -2
  255. package/lib/generated-client/models/image-resolution.js +0 -2
  256. package/lib/generated-client/models/image-saving-convention.d.ts +1 -3
  257. package/lib/generated-client/models/image-saving-convention.js +1 -3
  258. package/lib/generated-client/models/image-type.d.ts +0 -2
  259. package/lib/generated-client/models/image-type.js +0 -2
  260. package/lib/generated-client/models/inbound-keep-alive-message.d.ts +0 -7
  261. package/lib/generated-client/models/inbound-web-socket-message.d.ts +0 -1
  262. package/lib/generated-client/models/index.d.ts +2 -2
  263. package/lib/generated-client/models/index.js +2 -1
  264. package/lib/generated-client/models/installation-info.d.ts +0 -19
  265. package/lib/generated-client/models/iplugin.d.ts +0 -16
  266. package/lib/generated-client/models/iso-type.d.ts +0 -2
  267. package/lib/generated-client/models/iso-type.js +0 -2
  268. package/lib/generated-client/models/item-counts.d.ts +0 -26
  269. package/lib/generated-client/models/item-fields.d.ts +0 -2
  270. package/lib/generated-client/models/item-fields.js +0 -2
  271. package/lib/generated-client/models/item-filter.d.ts +0 -2
  272. package/lib/generated-client/models/item-filter.js +0 -2
  273. package/lib/generated-client/models/item-sort-by.d.ts +0 -2
  274. package/lib/generated-client/models/item-sort-by.js +0 -2
  275. package/lib/generated-client/models/join-group-request-dto.d.ts +0 -4
  276. package/lib/generated-client/models/keep-until.d.ts +0 -5
  277. package/lib/generated-client/models/keep-until.js +0 -5
  278. package/lib/generated-client/models/library-changed-message.d.ts +0 -14
  279. package/lib/generated-client/models/library-option-info-dto.d.ts +0 -6
  280. package/lib/generated-client/models/library-options-result-dto.d.ts +0 -14
  281. package/lib/generated-client/models/library-options.d.ts +0 -207
  282. package/lib/generated-client/models/library-storage-dto.d.ts +3 -11
  283. package/lib/generated-client/models/library-type-options-dto.d.ts +4 -12
  284. package/lib/generated-client/models/library-update-info.d.ts +0 -22
  285. package/lib/generated-client/models/listings-provider-info.d.ts +0 -95
  286. package/lib/generated-client/models/live-stream-response.d.ts +0 -10
  287. package/lib/generated-client/models/live-tv-info.d.ts +0 -11
  288. package/lib/generated-client/models/live-tv-options.d.ts +0 -80
  289. package/lib/generated-client/models/live-tv-service-info.d.ts +0 -24
  290. package/lib/generated-client/models/live-tv-service-status.d.ts +1 -3
  291. package/lib/generated-client/models/live-tv-service-status.js +1 -3
  292. package/lib/generated-client/models/localization-option.d.ts +0 -15
  293. package/lib/generated-client/models/location-type.d.ts +0 -2
  294. package/lib/generated-client/models/location-type.js +0 -2
  295. package/lib/generated-client/models/log-file.d.ts +1 -14
  296. package/lib/generated-client/models/log-level.d.ts +0 -5
  297. package/lib/generated-client/models/log-level.js +0 -5
  298. package/lib/generated-client/models/lyric-dto.d.ts +0 -9
  299. package/lib/generated-client/models/lyric-line-cue.d.ts +0 -10
  300. package/lib/generated-client/models/lyric-line.d.ts +0 -8
  301. package/lib/generated-client/models/lyric-metadata.d.ts +0 -22
  302. package/lib/generated-client/models/media-attachment.d.ts +0 -16
  303. package/lib/generated-client/models/media-path-dto.d.ts +0 -11
  304. package/lib/generated-client/models/media-path-info.d.ts +0 -10
  305. package/lib/generated-client/models/media-protocol.d.ts +0 -5
  306. package/lib/generated-client/models/media-protocol.js +0 -5
  307. package/lib/generated-client/models/media-segment-dto-query-result.d.ts +0 -8
  308. package/lib/generated-client/models/media-segment-dto.d.ts +0 -15
  309. package/lib/generated-client/models/media-segment-type.d.ts +0 -2
  310. package/lib/generated-client/models/media-segment-type.js +0 -2
  311. package/lib/generated-client/models/media-source-info.d.ts +1 -228
  312. package/lib/generated-client/models/media-source-type.d.ts +1 -3
  313. package/lib/generated-client/models/media-source-type.js +1 -3
  314. package/lib/generated-client/models/media-stream-protocol.d.ts +1 -3
  315. package/lib/generated-client/models/media-stream-protocol.js +1 -3
  316. package/lib/generated-client/models/media-stream-type.d.ts +0 -2
  317. package/lib/generated-client/models/media-stream-type.js +0 -2
  318. package/lib/generated-client/models/media-stream.d.ts +7 -176
  319. package/lib/generated-client/models/media-type.d.ts +0 -2
  320. package/lib/generated-client/models/media-type.js +0 -2
  321. package/lib/generated-client/models/media-update-info-dto.d.ts +0 -4
  322. package/lib/generated-client/models/media-update-info-path-dto.d.ts +1 -7
  323. package/lib/generated-client/models/media-url.d.ts +0 -15
  324. package/lib/generated-client/models/message-command.d.ts +4 -12
  325. package/lib/generated-client/models/metadata-configuration.d.ts +0 -10
  326. package/lib/generated-client/models/metadata-editor-info.d.ts +0 -17
  327. package/lib/generated-client/models/metadata-field.d.ts +0 -2
  328. package/lib/generated-client/models/metadata-field.js +0 -2
  329. package/lib/generated-client/models/metadata-options.d.ts +0 -37
  330. package/lib/generated-client/models/metadata-refresh-mode.d.ts +0 -5
  331. package/lib/generated-client/models/metadata-refresh-mode.js +0 -5
  332. package/lib/generated-client/models/move-playlist-item-request-dto.d.ts +0 -6
  333. package/lib/generated-client/models/movie-info-remote-search-query.d.ts +0 -19
  334. package/lib/generated-client/models/movie-info.d.ts +1 -37
  335. package/lib/generated-client/models/music-video-info-remote-search-query.d.ts +0 -19
  336. package/lib/generated-client/models/music-video-info.d.ts +0 -44
  337. package/lib/generated-client/models/name-guid-pair.d.ts +0 -15
  338. package/lib/generated-client/models/name-id-pair.d.ts +0 -9
  339. package/lib/generated-client/models/name-value-pair.d.ts +0 -9
  340. package/lib/generated-client/models/network-configuration.d.ts +1 -49
  341. package/lib/generated-client/models/new-group-request-dto.d.ts +0 -4
  342. package/lib/generated-client/models/next-item-request-dto.d.ts +0 -4
  343. package/lib/generated-client/models/open-live-stream-dto.d.ts +0 -33
  344. package/lib/generated-client/models/outbound-keep-alive-message.d.ts +0 -9
  345. package/lib/generated-client/models/outbound-web-socket-message.d.ts +0 -1
  346. package/lib/generated-client/models/package-info.d.ts +1 -19
  347. package/lib/generated-client/models/parental-rating-score.d.ts +0 -6
  348. package/lib/generated-client/models/parental-rating.d.ts +0 -11
  349. package/lib/generated-client/models/path-substitution.d.ts +0 -6
  350. package/lib/generated-client/models/person-kind.d.ts +1 -2
  351. package/lib/generated-client/models/person-kind.js +2 -3
  352. package/lib/generated-client/models/person-lookup-info-remote-search-query.d.ts +0 -19
  353. package/lib/generated-client/models/person-lookup-info.d.ts +1 -37
  354. package/lib/generated-client/models/pin-redeem-result.d.ts +0 -9
  355. package/lib/generated-client/models/ping-request-dto.d.ts +0 -4
  356. package/lib/generated-client/models/play-access.d.ts +1 -3
  357. package/lib/generated-client/models/play-access.js +1 -3
  358. package/lib/generated-client/models/play-command.d.ts +0 -2
  359. package/lib/generated-client/models/play-command.js +0 -2
  360. package/lib/generated-client/models/play-message.d.ts +0 -14
  361. package/lib/generated-client/models/play-method.d.ts +1 -3
  362. package/lib/generated-client/models/play-method.js +1 -3
  363. package/lib/generated-client/models/play-queue-update-reason.d.ts +0 -2
  364. package/lib/generated-client/models/play-queue-update-reason.js +0 -2
  365. package/lib/generated-client/models/play-queue-update.d.ts +0 -27
  366. package/lib/generated-client/models/play-request-dto.d.ts +0 -8
  367. package/lib/generated-client/models/play-request.d.ts +0 -33
  368. package/lib/generated-client/models/playback-error-code.d.ts +1 -3
  369. package/lib/generated-client/models/playback-error-code.js +1 -3
  370. package/lib/generated-client/models/playback-info-dto.d.ts +0 -37
  371. package/lib/generated-client/models/playback-info-response.d.ts +0 -11
  372. package/lib/generated-client/models/playback-order.d.ts +0 -2
  373. package/lib/generated-client/models/playback-order.js +0 -2
  374. package/lib/generated-client/models/playback-progress-info.d.ts +0 -71
  375. package/lib/generated-client/models/playback-request-type.d.ts +0 -2
  376. package/lib/generated-client/models/playback-request-type.js +0 -2
  377. package/lib/generated-client/models/playback-start-info.d.ts +0 -71
  378. package/lib/generated-client/models/playback-stop-info.d.ts +0 -36
  379. package/lib/generated-client/models/player-state-info.d.ts +0 -38
  380. package/lib/generated-client/models/playlist-creation-result.d.ts +0 -10
  381. package/lib/generated-client/models/playlist-dto.d.ts +2 -10
  382. package/lib/generated-client/models/playlist-user-permissions.d.ts +0 -6
  383. package/lib/generated-client/models/playstate-command.d.ts +0 -2
  384. package/lib/generated-client/models/playstate-command.js +0 -2
  385. package/lib/generated-client/models/playstate-message.d.ts +0 -14
  386. package/lib/generated-client/models/playstate-request.d.ts +2 -13
  387. package/lib/generated-client/models/plugin-info.d.ts +0 -21
  388. package/lib/generated-client/models/plugin-installation-cancelled-message.d.ts +0 -14
  389. package/lib/generated-client/models/plugin-installation-completed-message.d.ts +0 -14
  390. package/lib/generated-client/models/plugin-installation-failed-message.d.ts +0 -14
  391. package/lib/generated-client/models/plugin-installing-message.d.ts +0 -14
  392. package/lib/generated-client/models/plugin-status.d.ts +0 -2
  393. package/lib/generated-client/models/plugin-status.js +0 -2
  394. package/lib/generated-client/models/plugin-uninstalled-message.d.ts +0 -14
  395. package/lib/generated-client/models/previous-item-request-dto.d.ts +0 -4
  396. package/lib/generated-client/models/problem-details.d.ts +0 -30
  397. package/lib/generated-client/models/process-priority-class.d.ts +0 -5
  398. package/lib/generated-client/models/process-priority-class.js +0 -5
  399. package/lib/generated-client/models/profile-condition-type.d.ts +0 -5
  400. package/lib/generated-client/models/profile-condition-type.js +0 -5
  401. package/lib/generated-client/models/profile-condition-value.d.ts +1 -5
  402. package/lib/generated-client/models/profile-condition-value.js +2 -6
  403. package/lib/generated-client/models/profile-condition.d.ts +0 -25
  404. package/lib/generated-client/models/program-audio.d.ts +0 -5
  405. package/lib/generated-client/models/program-audio.js +0 -5
  406. package/lib/generated-client/models/public-system-info.d.ts +0 -19
  407. package/lib/generated-client/models/query-filters-legacy.d.ts +0 -25
  408. package/lib/generated-client/models/query-filters.d.ts +3 -15
  409. package/lib/generated-client/models/queue-item.d.ts +3 -9
  410. package/lib/generated-client/models/queue-request-dto.d.ts +0 -9
  411. package/lib/generated-client/models/quick-connect-dto.d.ts +0 -4
  412. package/lib/generated-client/models/quick-connect-result.d.ts +0 -18
  413. package/lib/generated-client/models/rating-type.d.ts +1 -3
  414. package/lib/generated-client/models/rating-type.js +1 -3
  415. package/lib/generated-client/models/ready-request-dto.d.ts +0 -10
  416. package/lib/generated-client/models/recommendation-dto.d.ts +0 -25
  417. package/lib/generated-client/models/recommendation-type.d.ts +0 -5
  418. package/lib/generated-client/models/recommendation-type.js +0 -5
  419. package/lib/generated-client/models/recording-status.d.ts +0 -5
  420. package/lib/generated-client/models/recording-status.js +0 -5
  421. package/lib/generated-client/models/refresh-progress-message.d.ts +0 -11
  422. package/lib/generated-client/models/remote-image-info.d.ts +0 -28
  423. package/lib/generated-client/models/remote-image-result.d.ts +0 -8
  424. package/lib/generated-client/models/remote-lyric-info-dto.d.ts +3 -14
  425. package/lib/generated-client/models/remote-search-result.d.ts +3 -59
  426. package/lib/generated-client/models/remote-subtitle-info.d.ts +0 -85
  427. package/lib/generated-client/models/remove-from-playlist-request-dto.d.ts +0 -8
  428. package/lib/generated-client/models/repeat-mode.d.ts +1 -3
  429. package/lib/generated-client/models/repeat-mode.js +1 -3
  430. package/lib/generated-client/models/repository-info.d.ts +0 -8
  431. package/lib/generated-client/models/restart-required-message.d.ts +0 -9
  432. package/lib/generated-client/models/scheduled-task-ended-message.d.ts +0 -14
  433. package/lib/generated-client/models/scheduled-tasks-info-message.d.ts +0 -11
  434. package/lib/generated-client/models/scheduled-tasks-info-start-message.d.ts +1 -10
  435. package/lib/generated-client/models/scheduled-tasks-info-stop-message.d.ts +0 -7
  436. package/lib/generated-client/models/scroll-direction.d.ts +0 -2
  437. package/lib/generated-client/models/scroll-direction.js +0 -2
  438. package/lib/generated-client/models/search-hint-result.d.ts +0 -6
  439. package/lib/generated-client/models/search-hint.d.ts +0 -66
  440. package/lib/generated-client/models/seek-request-dto.d.ts +0 -4
  441. package/lib/generated-client/models/send-command-type.d.ts +0 -2
  442. package/lib/generated-client/models/send-command-type.js +0 -2
  443. package/lib/generated-client/models/send-command.d.ts +0 -17
  444. package/lib/generated-client/models/series-info-remote-search-query.d.ts +0 -19
  445. package/lib/generated-client/models/series-info.d.ts +1 -37
  446. package/lib/generated-client/models/series-status.d.ts +0 -2
  447. package/lib/generated-client/models/series-status.js +0 -2
  448. package/lib/generated-client/models/series-timer-cancelled-message.d.ts +0 -14
  449. package/lib/generated-client/models/series-timer-created-message.d.ts +0 -14
  450. package/lib/generated-client/models/series-timer-info-dto-query-result.d.ts +0 -8
  451. package/lib/generated-client/models/series-timer-info-dto.d.ts +1 -91
  452. package/lib/generated-client/models/server-configuration.d.ts +3 -180
  453. package/lib/generated-client/models/server-discovery-info.d.ts +0 -10
  454. package/lib/generated-client/models/server-restarting-message.d.ts +0 -9
  455. package/lib/generated-client/models/server-shutting-down-message.d.ts +0 -9
  456. package/lib/generated-client/models/session-info-dto.d.ts +1 -80
  457. package/lib/generated-client/models/session-message-type.d.ts +0 -2
  458. package/lib/generated-client/models/session-message-type.js +0 -2
  459. package/lib/generated-client/models/session-user-info.d.ts +0 -6
  460. package/lib/generated-client/models/sessions-message.d.ts +0 -11
  461. package/lib/generated-client/models/sessions-start-message.d.ts +1 -10
  462. package/lib/generated-client/models/sessions-stop-message.d.ts +0 -7
  463. package/lib/generated-client/models/set-channel-mapping-dto.d.ts +0 -8
  464. package/lib/generated-client/models/set-playlist-item-request-dto.d.ts +0 -4
  465. package/lib/generated-client/models/set-repeat-mode-request-dto.d.ts +0 -7
  466. package/lib/generated-client/models/set-shuffle-mode-request-dto.d.ts +0 -7
  467. package/lib/generated-client/models/song-info.d.ts +0 -54
  468. package/lib/generated-client/models/sort-order.d.ts +0 -2
  469. package/lib/generated-client/models/sort-order.js +0 -2
  470. package/lib/generated-client/models/special-view-option-dto.d.ts +0 -6
  471. package/lib/generated-client/models/startup-configuration-dto.d.ts +0 -10
  472. package/lib/generated-client/models/startup-remote-access-dto.d.ts +0 -11
  473. package/lib/generated-client/models/startup-user-dto.d.ts +0 -6
  474. package/lib/generated-client/models/subtitle-delivery-method.d.ts +0 -2
  475. package/lib/generated-client/models/subtitle-delivery-method.js +0 -2
  476. package/lib/generated-client/models/subtitle-playback-mode.d.ts +0 -2
  477. package/lib/generated-client/models/subtitle-playback-mode.js +0 -2
  478. package/lib/generated-client/models/subtitle-profile.d.ts +0 -15
  479. package/lib/generated-client/models/sync-play-command-message.d.ts +0 -14
  480. package/lib/generated-client/models/sync-play-group-does-not-exist-update.d.ts +0 -14
  481. package/lib/generated-client/models/sync-play-group-joined-update.d.ts +0 -17
  482. package/lib/generated-client/models/sync-play-group-left-update.d.ts +0 -14
  483. package/lib/generated-client/models/sync-play-group-update-message.d.ts +0 -14
  484. package/lib/generated-client/models/sync-play-library-access-denied-update.d.ts +0 -14
  485. package/lib/generated-client/models/sync-play-not-in-group-update.d.ts +0 -14
  486. package/lib/generated-client/models/sync-play-play-queue-update.d.ts +0 -17
  487. package/lib/generated-client/models/sync-play-queue-item.d.ts +0 -6
  488. package/lib/generated-client/models/sync-play-state-update.d.ts +0 -17
  489. package/lib/generated-client/models/sync-play-user-access-type.d.ts +0 -2
  490. package/lib/generated-client/models/sync-play-user-access-type.js +0 -2
  491. package/lib/generated-client/models/sync-play-user-joined-update.d.ts +0 -14
  492. package/lib/generated-client/models/sync-play-user-left-update.d.ts +0 -14
  493. package/lib/generated-client/models/system-info.d.ts +0 -62
  494. package/lib/generated-client/models/system-storage-dto.d.ts +8 -47
  495. package/lib/generated-client/models/task-completion-status.d.ts +0 -2
  496. package/lib/generated-client/models/task-completion-status.js +0 -2
  497. package/lib/generated-client/models/task-info.d.ts +0 -28
  498. package/lib/generated-client/models/task-result.d.ts +0 -21
  499. package/lib/generated-client/models/task-state.d.ts +0 -2
  500. package/lib/generated-client/models/task-state.js +0 -2
  501. package/lib/generated-client/models/task-trigger-info-type.d.ts +0 -2
  502. package/lib/generated-client/models/task-trigger-info-type.js +0 -2
  503. package/lib/generated-client/models/task-trigger-info.d.ts +0 -18
  504. package/lib/generated-client/models/theme-media-result.d.ts +0 -10
  505. package/lib/generated-client/models/timer-cancelled-message.d.ts +0 -14
  506. package/lib/generated-client/models/timer-created-message.d.ts +0 -14
  507. package/lib/generated-client/models/timer-event-info.d.ts +0 -15
  508. package/lib/generated-client/models/timer-info-dto-query-result.d.ts +0 -8
  509. package/lib/generated-client/models/timer-info-dto.d.ts +0 -76
  510. package/lib/generated-client/models/tonemapping-algorithm.d.ts +0 -2
  511. package/lib/generated-client/models/tonemapping-algorithm.js +0 -2
  512. package/lib/generated-client/models/tonemapping-mode.d.ts +0 -2
  513. package/lib/generated-client/models/tonemapping-mode.js +0 -2
  514. package/lib/generated-client/models/tonemapping-range.d.ts +0 -2
  515. package/lib/generated-client/models/tonemapping-range.js +0 -2
  516. package/lib/generated-client/models/trailer-info-remote-search-query.d.ts +0 -19
  517. package/lib/generated-client/models/trailer-info.d.ts +1 -37
  518. package/lib/generated-client/models/transcode-reason.d.ts +1 -5
  519. package/lib/generated-client/models/transcode-reason.js +2 -6
  520. package/lib/generated-client/models/transcode-seek-info.d.ts +1 -3
  521. package/lib/generated-client/models/transcode-seek-info.js +1 -3
  522. package/lib/generated-client/models/transcoding-info.d.ts +2 -34
  523. package/lib/generated-client/models/transcoding-profile.d.ts +3 -50
  524. package/lib/generated-client/models/transport-stream-timestamp.d.ts +1 -3
  525. package/lib/generated-client/models/transport-stream-timestamp.js +1 -3
  526. package/lib/generated-client/models/trickplay-info-dto.d.ts +0 -16
  527. package/lib/generated-client/models/trickplay-options.d.ts +1 -33
  528. package/lib/generated-client/models/trickplay-scan-behavior.d.ts +0 -2
  529. package/lib/generated-client/models/trickplay-scan-behavior.js +0 -2
  530. package/lib/generated-client/models/tuner-channel-mapping.d.ts +0 -25
  531. package/lib/generated-client/models/tuner-host-info.d.ts +0 -85
  532. package/lib/generated-client/models/type-options.d.ts +2 -35
  533. package/lib/generated-client/models/unrated-item.d.ts +0 -2
  534. package/lib/generated-client/models/unrated-item.js +0 -2
  535. package/lib/generated-client/models/update-library-options-dto.d.ts +0 -9
  536. package/lib/generated-client/models/update-media-path-request-dto.d.ts +0 -9
  537. package/lib/generated-client/models/update-playlist-dto.d.ts +0 -10
  538. package/lib/generated-client/models/update-playlist-user-dto.d.ts +0 -4
  539. package/lib/generated-client/models/update-user-item-data-dto.d.ts +0 -24
  540. package/lib/generated-client/models/update-user-password.d.ts +0 -10
  541. package/lib/generated-client/models/upload-subtitle-dto.d.ts +0 -12
  542. package/lib/generated-client/models/user-configuration.d.ts +0 -70
  543. package/lib/generated-client/models/user-data-change-info.d.ts +1 -7
  544. package/lib/generated-client/models/user-data-changed-message.d.ts +0 -14
  545. package/lib/generated-client/models/user-deleted-message.d.ts +0 -11
  546. package/lib/generated-client/models/user-dto.d.ts +6 -40
  547. package/lib/generated-client/models/user-item-data-dto.d.ts +1 -25
  548. package/lib/generated-client/models/user-policy.d.ts +0 -201
  549. package/lib/generated-client/models/user-updated-message.d.ts +0 -14
  550. package/lib/generated-client/models/utc-time-response.d.ts +0 -6
  551. package/lib/generated-client/models/validate-path-dto.d.ts +0 -8
  552. package/lib/generated-client/models/version-info.d.ts +0 -20
  553. package/lib/generated-client/models/video-range-type.d.ts +0 -2
  554. package/lib/generated-client/models/video-range-type.js +0 -2
  555. package/lib/generated-client/models/video-range.d.ts +0 -2
  556. package/lib/generated-client/models/video-range.js +0 -2
  557. package/lib/generated-client/models/video-type.d.ts +0 -2
  558. package/lib/generated-client/models/video-type.js +0 -2
  559. package/lib/generated-client/models/video3-dformat.d.ts +0 -5
  560. package/lib/generated-client/models/video3-dformat.js +0 -5
  561. package/lib/generated-client/models/virtual-folder-info.d.ts +0 -30
  562. package/lib/generated-client/models/web-socket-message.d.ts +0 -1
  563. package/lib/generated-client/models/xbmc-metadata-options.d.ts +0 -30
  564. package/lib/index.js +1 -1
  565. package/lib/models/api/image-request-parameters.d.ts +1 -1
  566. package/lib/models/device-info.d.ts +1 -0
  567. package/lib/utils/api/{videos-api.d.ts → artist-api.d.ts} +2 -2
  568. package/lib/utils/api/{movies-api.js → artist-api.js} +4 -4
  569. package/lib/utils/api/authentication-api.d.ts +8 -0
  570. package/lib/utils/api/authentication-api.js +35 -0
  571. package/lib/utils/api/{tmdb-api.d.ts → backup-api.d.ts} +2 -2
  572. package/lib/utils/api/backup-api.js +13 -0
  573. package/lib/utils/api/{artists-api.d.ts → channel-api.d.ts} +2 -2
  574. package/lib/utils/api/{artists-api.js → channel-api.js} +4 -4
  575. package/lib/utils/api/{movies-api.d.ts → device-api.d.ts} +2 -2
  576. package/lib/utils/api/{lyrics-api.js → device-api.js} +4 -4
  577. package/lib/utils/api/display-preference-api.d.ts +8 -0
  578. package/lib/utils/api/display-preference-api.js +12 -0
  579. package/lib/utils/api/{items-api.d.ts → genre-api.d.ts} +2 -2
  580. package/lib/utils/api/{items-api.js → genre-api.js} +4 -4
  581. package/lib/utils/api/index.d.ts +24 -38
  582. package/lib/utils/api/index.js +24 -38
  583. package/lib/utils/api/library-api.d.ts +14 -2
  584. package/lib/utils/api/library-api.js +17 -1
  585. package/lib/utils/api/{years-api.d.ts → lyric-api.d.ts} +2 -2
  586. package/lib/utils/api/{years-api.js → lyric-api.js} +4 -4
  587. package/lib/utils/api/{activity-log-api.d.ts → media-segment-api.d.ts} +2 -2
  588. package/lib/utils/api/{quick-connect-api.js → media-segment-api.js} +4 -4
  589. package/lib/utils/api/movie-api.d.ts +8 -0
  590. package/lib/utils/api/movie-api.js +12 -0
  591. package/lib/utils/api/{dynamic-hls-api.d.ts → music-genre-api.d.ts} +2 -2
  592. package/lib/utils/api/{dynamic-hls-api.js → music-genre-api.js} +4 -4
  593. package/lib/utils/api/{genres-api.d.ts → person-api.d.ts} +2 -2
  594. package/lib/utils/api/{genres-api.js → person-api.js} +4 -4
  595. package/lib/utils/api/{trailers-api.d.ts → playlist-api.d.ts} +2 -2
  596. package/lib/utils/api/{channels-api.js → playlist-api.js} +4 -4
  597. package/lib/utils/api/{lyrics-api.d.ts → plugin-api.d.ts} +2 -2
  598. package/lib/utils/api/{videos-api.js → plugin-api.js} +4 -4
  599. package/lib/utils/api/scheduled-task-api.d.ts +8 -0
  600. package/lib/utils/api/{configuration-api.js → scheduled-task-api.js} +4 -4
  601. package/lib/utils/api/session-api.js +3 -1
  602. package/lib/utils/api/show-api.d.ts +8 -0
  603. package/lib/utils/api/{tmdb-api.js → show-api.js} +4 -4
  604. package/lib/utils/api/studio-api.d.ts +8 -0
  605. package/lib/utils/api/studio-api.js +12 -0
  606. package/lib/utils/api/{hls-segment-api.d.ts → suggestion-api.d.ts} +2 -2
  607. package/lib/utils/api/{hls-segment-api.js → suggestion-api.js} +4 -4
  608. package/lib/utils/api/{package-api.d.ts → trailer-api.d.ts} +2 -2
  609. package/lib/utils/api/{devices-api.js → trailer-api.js} +4 -4
  610. package/lib/utils/api/{dashboard-api.d.ts → trick-play-api.d.ts} +2 -2
  611. package/lib/utils/api/{dashboard-api.js → trick-play-api.js} +4 -4
  612. package/lib/utils/api/user-api.js +1 -26
  613. package/lib/utils/api/{api-key-api.d.ts → user-data-api.d.ts} +2 -2
  614. package/lib/utils/api/{time-sync-api.js → user-data-api.js} +4 -4
  615. package/lib/utils/api/{channels-api.d.ts → user-view-api.d.ts} +2 -2
  616. package/lib/utils/api/{trailers-api.js → user-view-api.js} +4 -4
  617. package/lib/utils/api/video-api.d.ts +8 -0
  618. package/lib/utils/api/video-api.js +12 -0
  619. package/lib/utils/api/year-api.d.ts +8 -0
  620. package/lib/utils/api/year-api.js +12 -0
  621. package/lib/utils/index.js +2 -2
  622. package/lib/utils/url/index.d.ts +1 -0
  623. package/lib/utils/url/index.js +4 -1
  624. package/lib/utils/versioning.d.ts +12 -1
  625. package/lib/utils/versioning.js +44 -13
  626. package/lib/versions.d.ts +1 -1
  627. package/lib/versions.js +1 -1
  628. package/lib/websocket/constants.d.ts +24 -0
  629. package/lib/websocket/constants.js +42 -0
  630. package/lib/websocket/index.d.ts +8 -0
  631. package/lib/websocket/index.js +3 -0
  632. package/lib/{utils/api/client-log-api.d.ts → websocket/models.d.ts} +6 -3
  633. package/lib/websocket/models.js +16 -0
  634. package/lib/websocket/types.d.ts +37 -0
  635. package/lib/websocket/types.js +42 -0
  636. package/lib/websocket/websocket-service.d.ts +142 -0
  637. package/lib/websocket/websocket-service.js +296 -0
  638. package/package.json +20 -17
  639. package/lib/generated-client/api/activity-log-api.d.ts +0 -110
  640. package/lib/generated-client/api/activity-log-api.js +0 -135
  641. package/lib/generated-client/api/api-key-api.d.ts +0 -161
  642. package/lib/generated-client/api/api-key-api.js +0 -245
  643. package/lib/generated-client/api/client-log-api.d.ts +0 -86
  644. package/lib/generated-client/api/client-log-api.js +0 -117
  645. package/lib/generated-client/api/configuration-api.d.ts +0 -292
  646. package/lib/generated-client/api/configuration-api.js +0 -442
  647. package/lib/generated-client/api/dashboard-api.d.ts +0 -132
  648. package/lib/generated-client/api/dashboard-api.js +0 -182
  649. package/lib/generated-client/api/dlna-api.d.ts +0 -292
  650. package/lib/generated-client/api/dlna-server-api.d.ts +0 -784
  651. package/lib/generated-client/api/dynamic-hls-api.d.ts +0 -4261
  652. package/lib/generated-client/api/dynamic-hls-api.js +0 -3025
  653. package/lib/generated-client/api/hls-segment-api.d.ts +0 -325
  654. package/lib/generated-client/api/hls-segment-api.js +0 -415
  655. package/lib/generated-client/api/image-by-name-api.d.ts +0 -292
  656. package/lib/generated-client/api/item-refresh-api.d.ts +0 -126
  657. package/lib/generated-client/api/item-refresh-api.js +0 -143
  658. package/lib/generated-client/api/items-api.d.ts +0 -1052
  659. package/lib/generated-client/api/items-api.js +0 -835
  660. package/lib/generated-client/api/music-genres-api.d.ts +0 -286
  661. package/lib/generated-client/api/music-genres-api.js +0 -278
  662. package/lib/generated-client/api/notifications-api.d.ts +0 -332
  663. package/lib/generated-client/api/package-api.d.ts +0 -315
  664. package/lib/generated-client/api/package-api.js +0 -455
  665. package/lib/generated-client/api/playstate-api.d.ts +0 -679
  666. package/lib/generated-client/api/playstate-api.js +0 -789
  667. package/lib/generated-client/api/plugins-api.d.ts +0 -473
  668. package/lib/generated-client/api/plugins-api.js +0 -663
  669. package/lib/generated-client/api/quick-connect-api.d.ts +0 -198
  670. package/lib/generated-client/api/quick-connect-api.js +0 -305
  671. package/lib/generated-client/api/time-sync-api.d.ts +0 -69
  672. package/lib/generated-client/api/time-sync-api.js +0 -109
  673. package/lib/generated-client/api/tmdb-api.d.ts +0 -69
  674. package/lib/generated-client/api/tmdb-api.js +0 -111
  675. package/lib/generated-client/api/universal-audio-api.d.ts +0 -420
  676. package/lib/generated-client/api/universal-audio-api.js +0 -364
  677. package/lib/generated-client/api/user-library-api.d.ts +0 -657
  678. package/lib/generated-client/api/video-attachments-api.d.ts +0 -101
  679. package/lib/generated-client/api/video-attachments-api.js +0 -126
  680. package/lib/generated-client/models/admin-notification-dto.d.ts +0 -42
  681. package/lib/generated-client/models/base-item.d.ts +0 -84
  682. package/lib/generated-client/models/branding-options.d.ts +0 -35
  683. package/lib/generated-client/models/client-capabilities.d.ts +0 -76
  684. package/lib/generated-client/models/config-image-types.d.ts +0 -59
  685. package/lib/generated-client/models/control-response.d.ts +0 -37
  686. package/lib/generated-client/models/device-identification.d.ts +0 -72
  687. package/lib/generated-client/models/device-info-query-result.d.ts +0 -36
  688. package/lib/generated-client/models/device-info.d.ts +0 -84
  689. package/lib/generated-client/models/device-options.d.ts +0 -35
  690. package/lib/generated-client/models/device-profile-info.d.ts +0 -36
  691. package/lib/generated-client/models/device-profile-type.d.ts +0 -20
  692. package/lib/generated-client/models/dlna-options.d.ts +0 -83
  693. package/lib/generated-client/models/ffmpeg-location.d.ts +0 -22
  694. package/lib/generated-client/models/group-info-dto-group-update.d.ts +0 -37
  695. package/lib/generated-client/models/group-state-update-group-update.d.ts +0 -37
  696. package/lib/generated-client/models/hardware-encoding-type.d.ts +0 -25
  697. package/lib/generated-client/models/header-match-type.d.ts +0 -21
  698. package/lib/generated-client/models/http-header-info.d.ts +0 -36
  699. package/lib/generated-client/models/image-by-name-info.d.ts +0 -47
  700. package/lib/generated-client/models/media-encoder-path-dto.d.ts +0 -29
  701. package/lib/generated-client/models/notification-dto.d.ts +0 -66
  702. package/lib/generated-client/models/notification-option.d.ts +0 -54
  703. package/lib/generated-client/models/notification-options.d.ts +0 -24
  704. package/lib/generated-client/models/notification-result-dto.d.ts +0 -30
  705. package/lib/generated-client/models/notification-type-info.d.ts +0 -47
  706. package/lib/generated-client/models/notifications-summary-dto.d.ts +0 -30
  707. package/lib/generated-client/models/object-group-update.d.ts +0 -36
  708. package/lib/generated-client/models/play-queue-update-group-update.d.ts +0 -37
  709. package/lib/generated-client/models/response-profile.d.ts +0 -61
  710. package/lib/generated-client/models/send-to-user-type.d.ts +0 -21
  711. package/lib/generated-client/models/session-info.d.ts +0 -199
  712. package/lib/generated-client/models/string-group-update.d.ts +0 -36
  713. package/lib/generated-client/models/subtitle-options.d.ts +0 -71
  714. package/lib/generated-client/models/sync-play-group-update-command-message.d.ts +0 -37
  715. package/lib/generated-client/models/trickplay-info.d.ts +0 -65
  716. package/lib/generated-client/models/update-user-easy-password.d.ts +0 -35
  717. package/lib/generated-client/models/wake-on-lan-info.d.ts +0 -29
  718. package/lib/generated-client/models/xml-attribute.d.ts +0 -29
  719. package/lib/utils/api/activity-log-api.js +0 -12
  720. package/lib/utils/api/api-key-api.js +0 -12
  721. package/lib/utils/api/client-log-api.js +0 -12
  722. package/lib/utils/api/configuration-api.d.ts +0 -8
  723. package/lib/utils/api/devices-api.d.ts +0 -8
  724. package/lib/utils/api/display-preferences-api.d.ts +0 -8
  725. package/lib/utils/api/display-preferences-api.js +0 -12
  726. package/lib/utils/api/item-refresh-api.d.ts +0 -8
  727. package/lib/utils/api/item-refresh-api.js +0 -12
  728. package/lib/utils/api/media-segments-api.d.ts +0 -8
  729. package/lib/utils/api/media-segments-api.js +0 -12
  730. package/lib/utils/api/music-genres-api.d.ts +0 -8
  731. package/lib/utils/api/music-genres-api.js +0 -12
  732. package/lib/utils/api/package-api.js +0 -12
  733. package/lib/utils/api/persons-api.d.ts +0 -8
  734. package/lib/utils/api/persons-api.js +0 -12
  735. package/lib/utils/api/playlists-api.d.ts +0 -8
  736. package/lib/utils/api/playlists-api.js +0 -12
  737. package/lib/utils/api/playstate-api.d.ts +0 -8
  738. package/lib/utils/api/playstate-api.js +0 -12
  739. package/lib/utils/api/plugins-api.d.ts +0 -8
  740. package/lib/utils/api/plugins-api.js +0 -12
  741. package/lib/utils/api/quick-connect-api.d.ts +0 -8
  742. package/lib/utils/api/scheduled-tasks-api.d.ts +0 -8
  743. package/lib/utils/api/scheduled-tasks-api.js +0 -12
  744. package/lib/utils/api/studios-api.d.ts +0 -8
  745. package/lib/utils/api/studios-api.js +0 -12
  746. package/lib/utils/api/suggestions-api.d.ts +0 -8
  747. package/lib/utils/api/suggestions-api.js +0 -12
  748. package/lib/utils/api/time-sync-api.d.ts +0 -8
  749. package/lib/utils/api/trickplay-api.d.ts +0 -8
  750. package/lib/utils/api/trickplay-api.js +0 -12
  751. package/lib/utils/api/tv-shows-api.d.ts +0 -8
  752. package/lib/utils/api/tv-shows-api.js +0 -12
  753. package/lib/utils/api/universal-audio-api.d.ts +0 -8
  754. package/lib/utils/api/universal-audio-api.js +0 -12
  755. package/lib/utils/api/user-library-api.d.ts +0 -8
  756. package/lib/utils/api/user-library-api.js +0 -12
  757. package/lib/utils/api/user-views-api.d.ts +0 -8
  758. package/lib/utils/api/user-views-api.js +0 -12
  759. package/lib/utils/api/video-attachments-api.d.ts +0 -8
  760. package/lib/utils/api/video-attachments-api.js +0 -12
@@ -0,0 +1,12 @@
1
+ import { YearApi } from '../../generated-client/api/year-api.js';
2
+
3
+ /**
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ */
8
+ function getYearApi(api) {
9
+ return new YearApi(api.configuration, undefined, api.axiosInstance);
10
+ }
11
+
12
+ export { getYearApi };
@@ -1,8 +1,8 @@
1
1
  export { JF_HTTPS_PORT, JF_HTTP_PORT, getAddressCandidates } from './address-candidates.js';
2
2
  export { getAuthorizationHeader } from './authentication.js';
3
3
  export { getBrowserDeviceProfile } from './browser-profiles.js';
4
- export { copyUrl, getDefaultPort, hasProtocolAndPort, isDefaultPort, parseUrl } from './url/index.js';
5
- export { isVersionLess } from './versioning.js';
4
+ export { buildWebSocketUrl, copyUrl, getDefaultPort, hasProtocolAndPort, isDefaultPort, parseUrl } from './url/index.js';
5
+ export { compareVersions, getDisplayVersion, isVersionLess } from './versioning.js';
6
6
  export { HTTPS_PORT, HTTPS_PROTOCOL, HTTP_PORT, HTTP_PROTOCOL } from './url/constants.js';
7
7
 
8
8
  /**
@@ -36,3 +36,4 @@ export declare function isDefaultPort(url: URL): boolean;
36
36
  * @returns The URL object.
37
37
  */
38
38
  export declare function parseUrl(input: string): URL;
39
+ export declare function buildWebSocketUrl(uri: string): URL;
@@ -59,5 +59,8 @@ function parseUrl(input) {
59
59
  }
60
60
  return new URL(normalizeUrl(input));
61
61
  }
62
+ function buildWebSocketUrl(uri) {
63
+ return new URL(uri.replace(/^http/, 'ws'));
64
+ }
62
65
 
63
- export { HTTPS_PORT, HTTPS_PROTOCOL, HTTP_PORT, HTTP_PROTOCOL, copyUrl, getDefaultPort, hasProtocolAndPort, isDefaultPort, parseUrl };
66
+ export { HTTPS_PORT, HTTPS_PROTOCOL, HTTP_PORT, HTTP_PROTOCOL, buildWebSocketUrl, copyUrl, getDefaultPort, hasProtocolAndPort, isDefaultPort, parseUrl };
@@ -1,9 +1,20 @@
1
+ /**
2
+ * Compares two version strings (e.g., "1.2.3") and returns:
3
+ * -1 if a < b
4
+ * 1 if a > b
5
+ * 0 if a == b
6
+ *
7
+ * @throws If version is not in a numeric-only semver format
8
+ */
9
+ export declare function compareVersions(a?: string, b?: string): 1 | 0 | -1;
1
10
  /**
2
11
  * Check if given version is less than a baseline
3
12
  *
4
- * Versions must be in semver format: X.Y.Z (Major.Minor.Patch)
13
+ * @deprecated Use {@link compareVersions} instead
5
14
  * @throws If version is not in a numeric-only semver format
6
15
  * @param check - The version to check
7
16
  * @param baseline - The minimum version considered supported
8
17
  */
9
18
  export declare function isVersionLess(check: string, baseline: string): boolean;
19
+ /** Formats a version (e.g., "1.2.3") string for display. */
20
+ export declare function getDisplayVersion(version: string | null | undefined): string | undefined;
@@ -1,32 +1,63 @@
1
1
  /**
2
- * @returns - Array of 3 numbers or undefined
2
+ * @returns - Array of numbers or undefined
3
3
  * (if the passed string it's not in the MAJOR.MINOR.PATCH numeric-only format)
4
4
  */
5
5
  function parseVersion(version) {
6
6
  const arr = version.split('.').map(Number);
7
- if (arr.length === 3 && arr.every((n) => n >= 0)) {
7
+ if (arr.length && arr.every((n) => n >= 0)) {
8
8
  return arr;
9
9
  }
10
10
  }
11
+ /**
12
+ * Compares two version strings (e.g., "1.2.3") and returns:
13
+ * -1 if a < b
14
+ * 1 if a > b
15
+ * 0 if a == b
16
+ *
17
+ * @throws If version is not in a numeric-only semver format
18
+ */
19
+ function compareVersions(a = '', b = '') {
20
+ const aParts = parseVersion(a);
21
+ const bParts = parseVersion(b);
22
+ if (!aParts || !bParts) {
23
+ throw new TypeError("Version doesn't match a numeric-only semver format");
24
+ }
25
+ for (let i = 0, length = Math.max(aParts.length, bParts.length); i < length; i++) {
26
+ const aVal = aParts[i] || 0;
27
+ const bVal = bParts[i] || 0;
28
+ if (aVal < bVal) {
29
+ return -1;
30
+ }
31
+ if (aVal > bVal) {
32
+ return 1;
33
+ }
34
+ }
35
+ return 0;
36
+ }
11
37
  /**
12
38
  * Check if given version is less than a baseline
13
39
  *
14
- * Versions must be in semver format: X.Y.Z (Major.Minor.Patch)
40
+ * @deprecated Use {@link compareVersions} instead
15
41
  * @throws If version is not in a numeric-only semver format
16
42
  * @param check - The version to check
17
43
  * @param baseline - The minimum version considered supported
18
44
  */
19
45
  function isVersionLess(check, baseline) {
20
- const parsedCheck = parseVersion(check);
21
- const parsedBaseline = parseVersion(baseline);
22
- if (!parsedCheck || !parsedBaseline) {
23
- throw new TypeError("Version doesn't match a numeric-only semver format");
46
+ return compareVersions(check, baseline) < 0;
47
+ }
48
+ /** Formats a version (e.g., "1.2.3") string for display. */
49
+ function getDisplayVersion(version) {
50
+ if (!version)
51
+ return;
52
+ // For versions above 10.X, we switch to only showing MAJOR.MINOR to reflect the new versioning scheme.
53
+ const parts = parseVersion(version);
54
+ if (parts && compareVersions(version, '11') >= 0) {
55
+ // Just in case we have a patch version that isn't 0, we want to show it. This should not happen.
56
+ if (parts.length === 3 && parts[2] !== 0)
57
+ return version;
58
+ return parts.slice(0, 2).join('.');
24
59
  }
25
- const [majorCheck, minorCheck, patchCheck] = parsedCheck;
26
- const [majorBaseline, minorBaseline, patchBaseline] = parsedBaseline;
27
- return (majorCheck < majorBaseline ||
28
- (majorCheck === majorBaseline && minorCheck < minorBaseline) ||
29
- (majorCheck === majorBaseline && minorCheck === minorBaseline && patchCheck < patchBaseline));
60
+ return version;
30
61
  }
31
62
 
32
- export { isVersionLess };
63
+ export { compareVersions, getDisplayVersion, isVersionLess };
package/lib/versions.d.ts CHANGED
@@ -4,6 +4,6 @@
4
4
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
5
  */
6
6
  /** The current API version of the generated client. */
7
- export declare const API_VERSION = "10.11.1";
7
+ export declare const API_VERSION = "13.0.0";
8
8
  /** The minimum supported server version. */
9
9
  export declare const MINIMUM_VERSION = "10.10.0";
package/lib/versions.js CHANGED
@@ -4,7 +4,7 @@
4
4
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
5
  */
6
6
  /** The current API version of the generated client. */
7
- const API_VERSION = '10.11.1';
7
+ const API_VERSION = '13.0.0';
8
8
  /** The minimum supported server version. */
9
9
  const MINIMUM_VERSION = '10.10.0';
10
10
 
@@ -0,0 +1,24 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ import type { WebSocketSubscription } from './types';
7
+ import { OutboundWebSocketMessageType } from './types';
8
+ /**
9
+ * The URL path segment for websocket connections
10
+ */
11
+ export declare const WEBSOCKET_URL_PATH = "socket";
12
+ /**
13
+ * The initial timeout interval in milliseconds for exponential backoff reconnection
14
+ */
15
+ export declare const RECONNECT_INITIAL_DELAY = 1000;
16
+ /**
17
+ * The multiplier for exponential backoff on each reconnection attempt
18
+ */
19
+ export declare const RECONNECT_DELAY_FACTOR = 1.5;
20
+ /**
21
+ * The maximum timeout interval in milliseconds for reconnection attempts
22
+ */
23
+ export declare const RECONNECT_MAX_DELAY: number;
24
+ export declare const SUBSCRIPTION_REGISTRY: Partial<Record<OutboundWebSocketMessageType, WebSocketSubscription<OutboundWebSocketMessageType>>>;
@@ -0,0 +1,42 @@
1
+ import { OutboundWebSocketMessageType } from './types.js';
2
+
3
+ /**
4
+ * This Source Code Form is subject to the terms of the Mozilla Public
5
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
6
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
7
+ */
8
+ /**
9
+ * The URL path segment for websocket connections
10
+ */
11
+ const WEBSOCKET_URL_PATH = 'socket';
12
+ /**
13
+ * The initial timeout interval in milliseconds for exponential backoff reconnection
14
+ */
15
+ const RECONNECT_INITIAL_DELAY = 1000;
16
+ /**
17
+ * The multiplier for exponential backoff on each reconnection attempt
18
+ */
19
+ const RECONNECT_DELAY_FACTOR = 1.5;
20
+ /**
21
+ * The maximum timeout interval in milliseconds for reconnection attempts
22
+ */
23
+ const RECONNECT_MAX_DELAY = 60000 * 5;
24
+ const SUBSCRIPTION_REGISTRY = {
25
+ [OutboundWebSocketMessageType.Sessions]: {
26
+ messageType: OutboundWebSocketMessageType.Sessions,
27
+ createStartMessage: (interval) => ({ MessageType: 'SessionsStart', Data: interval.toString() }),
28
+ createStopMessage: () => ({ MessageType: 'SessionsStop' })
29
+ },
30
+ [OutboundWebSocketMessageType.ActivityLogEntry]: {
31
+ messageType: OutboundWebSocketMessageType.ActivityLogEntry,
32
+ createStartMessage: (interval) => ({ MessageType: 'ActivityLogEntryStart', Data: interval.toString() }),
33
+ createStopMessage: () => ({ MessageType: 'ActivityLogEntryStop' })
34
+ },
35
+ [OutboundWebSocketMessageType.ScheduledTasksInfo]: {
36
+ messageType: OutboundWebSocketMessageType.ScheduledTasksInfo,
37
+ createStartMessage: (interval) => ({ MessageType: 'ScheduledTasksInfoStart', Data: interval.toString() }),
38
+ createStopMessage: () => ({ MessageType: 'ScheduledTasksInfoStop' })
39
+ }
40
+ };
41
+
42
+ export { RECONNECT_DELAY_FACTOR, RECONNECT_INITIAL_DELAY, RECONNECT_MAX_DELAY, SUBSCRIPTION_REGISTRY, WEBSOCKET_URL_PATH };
@@ -0,0 +1,8 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ export * from './websocket-service';
7
+ export * from './types';
8
+ export * from './models';
@@ -0,0 +1,3 @@
1
+ export { WebSocketService } from './websocket-service.js';
2
+ export { OutboundWebSocketMessageType } from './types.js';
3
+ export { PeriodicListenerInterval } from './models.js';
@@ -3,6 +3,9 @@
3
3
  * License, v. 2.0. If a copy of the MPL was not distributed with this
4
4
  * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
5
  */
6
- import type { Api } from '../../api';
7
- import { ClientLogApi } from '../../generated-client/api/client-log-api';
8
- export declare function getClientLogApi(api: Api): ClientLogApi;
6
+ export declare class PeriodicListenerInterval {
7
+ initialDelay: number;
8
+ interval: number;
9
+ constructor(initialDelay: number, interval: number);
10
+ toString(): string;
11
+ }
@@ -0,0 +1,16 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ class PeriodicListenerInterval {
7
+ constructor(initialDelay, interval) {
8
+ this.initialDelay = initialDelay;
9
+ this.interval = interval;
10
+ }
11
+ toString() {
12
+ return `${this.initialDelay},${this.interval}`;
13
+ }
14
+ }
15
+
16
+ export { PeriodicListenerInterval };
@@ -0,0 +1,37 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ import type { InboundWebSocketMessage } from '../generated-client';
7
+ import type { OutboundWebSocketMessage } from '../generated-client/models/outbound-web-socket-message';
8
+ import type { PeriodicListenerInterval } from './models';
9
+ export type WebSocketStatus = WebSocket['readyState'] | 'disconnected';
10
+ export type SocketMessageHandler<T extends OutboundWebSocketMessageType> = (message: Extract<OutboundWebSocketMessage, {
11
+ MessageType: T;
12
+ }>) => void;
13
+ export type SocketStatusHandler = (status: WebSocket['readyState'] | 'disconnected') => void;
14
+ export type WebSocketSubscription<T extends OutboundWebSocketMessageType> = {
15
+ messageType: T;
16
+ createStartMessage: (interval: PeriodicListenerInterval) => InboundWebSocketMessage;
17
+ createStopMessage: () => InboundWebSocketMessage;
18
+ };
19
+ /**
20
+ * The different kinds of outbound messages sent by the WebSocket API.
21
+ * @export
22
+ * @enum {string}
23
+ */
24
+ export declare const OutboundWebSocketMessageType: {
25
+ [T in OutboundWebSocketMessageType]: T;
26
+ };
27
+ export type OutboundWebSocketMessageType = OutboundWebSocketMessage['MessageType'];
28
+ /**
29
+ * A mapping of outbound WebSocket message types to their respective periodic listener intervals.
30
+ *
31
+ * @example
32
+ * const intervals: WebSocketSubscriptionIntervals = {
33
+ * [OutboundWebSocketMessageType.ActivityLogEntry]: new PeriodicListenerInterval(0, 1000),
34
+ * [OutboundWebSocketMessageType.Sessions]: new PeriodicListenerInterval(0, 5000)
35
+ * };
36
+ */
37
+ export type WebSocketSubscriptionIntervals = Partial<Record<OutboundWebSocketMessageType, PeriodicListenerInterval>>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ /**
7
+ * The different kinds of outbound messages sent by the WebSocket API.
8
+ * @export
9
+ * @enum {string}
10
+ */
11
+ const OutboundWebSocketMessageType = {
12
+ ActivityLogEntry: 'ActivityLogEntry',
13
+ ForceKeepAlive: 'ForceKeepAlive',
14
+ GeneralCommand: 'GeneralCommand',
15
+ KeepAlive: 'KeepAlive',
16
+ LibraryChanged: 'LibraryChanged',
17
+ PackageInstallationCancelled: 'PackageInstallationCancelled',
18
+ PackageInstallationCompleted: 'PackageInstallationCompleted',
19
+ PackageInstallationFailed: 'PackageInstallationFailed',
20
+ PackageInstalling: 'PackageInstalling',
21
+ PackageUninstalled: 'PackageUninstalled',
22
+ Play: 'Play',
23
+ Playstate: 'Playstate',
24
+ RefreshProgress: 'RefreshProgress',
25
+ RestartRequired: 'RestartRequired',
26
+ ScheduledTaskEnded: 'ScheduledTaskEnded',
27
+ ScheduledTasksInfo: 'ScheduledTasksInfo',
28
+ SeriesTimerCancelled: 'SeriesTimerCancelled',
29
+ SeriesTimerCreated: 'SeriesTimerCreated',
30
+ ServerRestarting: 'ServerRestarting',
31
+ ServerShuttingDown: 'ServerShuttingDown',
32
+ Sessions: 'Sessions',
33
+ SyncPlayCommand: 'SyncPlayCommand',
34
+ SyncPlayGroupUpdate: 'SyncPlayGroupUpdate',
35
+ TimerCancelled: 'TimerCancelled',
36
+ TimerCreated: 'TimerCreated',
37
+ UserDataChanged: 'UserDataChanged',
38
+ UserDeleted: 'UserDeleted',
39
+ UserUpdated: 'UserUpdated'
40
+ };
41
+
42
+ export { OutboundWebSocketMessageType };
@@ -0,0 +1,142 @@
1
+ /**
2
+ * This Source Code Form is subject to the terms of the Mozilla Public
3
+ * License, v. 2.0. If a copy of the MPL was not distributed with this
4
+ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
5
+ */
6
+ import type { WebSocketSubscriptionIntervals } from './types';
7
+ import { OutboundWebSocketMessageType, type SocketMessageHandler, type SocketStatusHandler, type WebSocketStatus } from './types';
8
+ /**
9
+ * A class used for managing the lifecycle of websocket connections
10
+ * to Jellyfin
11
+ */
12
+ export declare class WebSocketService {
13
+ /**
14
+ * The URL to connect to.
15
+ *
16
+ * Created in the constructor (or later via {@link updateUrl}), using the fields from
17
+ * the authenticated Api instance. If undefined, the socket will not connect until
18
+ * a URL is provided via {@link updateUrl}.
19
+ */
20
+ private url;
21
+ /**
22
+ * The active websocket connection, if one exists.
23
+ */
24
+ private socket;
25
+ /**
26
+ * The keep-alive interval handle.
27
+ *
28
+ * Sends a keep-alive message for as long as the socket is open.
29
+ */
30
+ private keepAlive;
31
+ /**
32
+ * A map of message type subscriptions to their respective handlers
33
+ */
34
+ private readonly subscriptions;
35
+ private subscriptionIntervals?;
36
+ /**
37
+ * The number of consecutive reconnection attempts
38
+ */
39
+ private reconnectionAttempts;
40
+ /**
41
+ * The timeout handle for reconnection
42
+ */
43
+ private reconnectionTimeout;
44
+ /**
45
+ * Whether auto-reconnection is disabled (e.g., when token is cleared)
46
+ */
47
+ private autoReconnectDisabled;
48
+ /**
49
+ * Status change event listeners
50
+ */
51
+ private readonly statusListeners;
52
+ /**
53
+ * Current connection status
54
+ */
55
+ private currentStatus;
56
+ /**
57
+ * Constructs a new instance of the {@link WebSocketService}
58
+ *
59
+ * @param uri The full URI path with the Authorization Header included as a query parameter.
60
+ * May be omitted when no access token is available yet — subscriptions will be
61
+ * preserved and the socket will connect once {@link updateUrl} is called.
62
+ */
63
+ constructor(uri?: string);
64
+ /**
65
+ * Initializes the WebSocket connection and sets up event listeners
66
+ * if a valid URL is available. This function also establishes
67
+ * reconnection logic with exponential backoff if the connection is lost.
68
+ *
69
+ * This method is called internally when a new URL is provided or when
70
+ * the socket needs to be re-initialized.
71
+ *
72
+ * @returns void
73
+ */
74
+ private initSocket;
75
+ /**
76
+ * Calculates the exponential backoff delay for reconnection attempts
77
+ * @returns The delay in milliseconds, capped at the maximum
78
+ */
79
+ private calculateBackoffDelay;
80
+ /**
81
+ * Sends a keep-alive message to the server.
82
+ */
83
+ private sendKeepAlive;
84
+ /**
85
+ * Stops sending keep-alive messages.
86
+ */
87
+ private clearKeepAlive;
88
+ private sendMessage;
89
+ /**
90
+ * Internal method to update status and notify all listeners
91
+ */
92
+ private setStatus;
93
+ /**
94
+ * Gets the current status of the websocket connection
95
+ * @returns The connection status
96
+ */
97
+ get socketStatus(): WebSocketStatus | undefined;
98
+ /**
99
+ * Disconnects the WebSocket connection.
100
+ *
101
+ * Subscriptions are preserved and can be automatically restored
102
+ * when `updateUrl` is called with a new valid URL.
103
+ */
104
+ disconnect(): void;
105
+ /**
106
+ * Updates the WebSocket URL and reconnects if there are active subscriptions.
107
+ *
108
+ * This re-enables auto-reconnection if it was previously disabled.
109
+ *
110
+ * Also used to supply the initial URL when the service was constructed without one
111
+ * (e.g. when no access token was available at construction time). In that case any
112
+ * subscriptions that were registered while disconnected will be restored immediately.
113
+ */
114
+ updateUrl(uri: string): void;
115
+ /**
116
+ * Adds a listener for websocket status changes
117
+ *
118
+ * @param onStatusChange Callback invoked when the connection status changes
119
+ * @returns A function which can be invoked to remove the listener
120
+ */
121
+ onStatusChange(onStatusChange: SocketStatusHandler): () => void;
122
+ /**
123
+ * Adds message listeners for the provided message types.
124
+ *
125
+ * Adding a listener will establish a websocket connection if one does not already exist.
126
+ *
127
+ * Listeners will be automatically resubscribed if the connection is lost and re-established.
128
+ *
129
+ * Listeners can be removed by invoking the returned unsubscribe function.
130
+ *
131
+ * @param messageTypes Any array of {@link OutboundWebSocketMessage} message types to listen for
132
+ * @param onMessage The callback to invoke when a message is received
133
+ *
134
+ * @example
135
+ * const unsubscribe = api.webSocket.subscribe([OutboundWebSocketMessageType.Sessions], (message) => {
136
+ * console.log('Received session update:', message);
137
+ * });
138
+ *
139
+ * @returns A function which can be invoked to remove the added listeners
140
+ */
141
+ subscribe<T extends OutboundWebSocketMessageType>(messageTypes: T[], onMessage: SocketMessageHandler<T>, subscriptionIntervals?: WebSocketSubscriptionIntervals): () => void;
142
+ }