@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
package/.nvmrc ADDED
@@ -0,0 +1 @@
1
+ 24
@@ -0,0 +1,2 @@
1
+ # Disable documentation files
2
+ docs/*
package/CHANGELOG.md CHANGED
@@ -7,6 +7,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
7
7
 
8
8
  ## [Unreleased]
9
9
 
10
+ ## [1.0.0] - 2026-09-11
11
+
12
+ ### Added
13
+
14
+ * Added `getBackupApi` utility function ([#997](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/997)).
15
+ * `getLibraryApi` now returns an augmented class with a `getDownloadUrl` method ([#967](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/967)).
16
+ * The `Api` class now contains a `webSocket` field, of which `OutboundWebSocketMessageType`s can be subscribed to for handling WebSocket messages ([#966](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/968)).
17
+ * Added support for sending `Accept-Language` header with requests by including `languages` in `DeviceInfo` ([#1076](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/1076)).
18
+ * Added `compareVersions` and `getDisplayVersion` utility functions for comparing and formatting versions ([#1083](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/1083)).
19
+
20
+ ### Changed
21
+
22
+ * Any usages of `AUTHORIZATION_HEADER` and `AUTHORIZATION_PARAMETER` constants must be updated to be imported from `/constants` ([#966](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/968)).
23
+ * Update OpenAPI spec for Jellyfin 12.0 ([#1071](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/1071)).
24
+ Note that **A LOT** of the APIs were renamed or moved as part of this update.
25
+ Specific changes can be found in [#1072](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/1072).
26
+
27
+ ### Deprecated
28
+
29
+ * `isVersionLess` is deprecated in favor of `compareVersions` ([#1083](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/1083)).
30
+
10
31
  ## [0.13.0] - 2025-10-28
11
32
 
12
33
  ### Changed
@@ -15,7 +36,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
15
36
 
16
37
  ### Deprecated
17
38
 
18
- * Deprecate authentication helper methods in `Api` class ([#949](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/948)).
39
+ * Deprecate authentication helper methods in `Api` class ([#949](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/949)).
19
40
  Updating the `accessToken` is now handled transparently in `getUserApi` and `getSessionApi`. If you need to handle
20
41
  authentication manually, then you should manually create `UserApi` and `SessionApi` instances.
21
42
 
@@ -120,7 +141,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
120
141
 
121
142
  ## [0.1.0] - 2021-09-19
122
143
 
123
- [unreleased]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.13.0...HEAD
144
+ [unreleased]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v1.0.0...HEAD
145
+ [1.0.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.13.0...v1.0.0
124
146
  [0.13.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.12.0...v0.13.0
125
147
  [0.12.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.11.0...v0.12.0
126
148
  [0.11.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.10.0...v0.11.0
package/README.md CHANGED
@@ -17,8 +17,6 @@
17
17
 
18
18
  A TypeScript SDK for Jellyfin.
19
19
 
20
- > Warning: This project is under active development, so API changes may occur.
21
-
22
20
  ## Install
23
21
 
24
22
  ```sh
@@ -33,18 +31,15 @@ yarn add @jellyfin/sdk
33
31
 
34
32
  ### Supported Jellyfin Versions
35
33
 
36
- | SDK Version | Jellyfin Version |
37
- |:-:|:-:|
38
- | 0.13.0 | 10.11.x |
39
- | 0.12.0 | 10.11.x |
40
- | 0.11.0 | 10.10.x |
41
- | 0.10.0 | 10.9.x |
42
- | 0.9.0 | 10.9.x |
43
- | 0.8.2 - 0.6.0 | 10.8.1 - 10.8.13 |
44
- | 0.5.0 | 10.8.0 |
45
- | <0.5.0 | 10.7.x |
46
-
47
- > Note: Versions prior to 0.7.0 were published as `@thornbill/jellyfin-sdk`.
34
+ | SDK Version | Jellyfin Version |
35
+ |:-------------:|:----------------:|
36
+ | 1.0.0 | 12.x |
37
+ | 0.13.0 | 10.11.x |
38
+ | 0.12.0 | 10.11.x |
39
+ | 0.11.0 | 10.10.x |
40
+ | 0.10.0 | 10.9.x |
41
+ | 0.9.0 | 10.9.x |
42
+ | 0.8.2 - 0.7.0 | 10.8.1 - 10.8.13 |
48
43
 
49
44
  ### React Native
50
45
 
@@ -63,7 +58,8 @@ const jellyfin = new Jellyfin({
63
58
  },
64
59
  deviceInfo: {
65
60
  name: 'Device Name',
66
- id: 'unique-device-id'
61
+ id: 'unique-device-id',
62
+ languages: ['en-US']
67
63
  }
68
64
  });
69
65
 
@@ -94,7 +90,7 @@ const users = await getUserApi(api).getPublicUsers();
94
90
  console.log('Users =>', users.data);
95
91
 
96
92
  // Login with a username and password.
97
- const auth = await getUserApi(this).authenticateUserByName({ authenticateUserByName: { Username: 'demo', Pw: '' } });
93
+ const auth = await getAuthenticationApi(this).authenticateUserByName({ authenticateUserByName: { Username: 'demo', Pw: '' } });
98
94
  console.log('Auth =>', auth.data);
99
95
 
100
96
  // Authentication state is stored internally in the Api class, so now
@@ -106,17 +102,46 @@ console.log('Libraries =>', libraries.data);
106
102
  await getSessionApi(api).reportSessionEnded();
107
103
  ```
108
104
 
109
- ## Significant Changes
105
+ ## Development
110
106
 
111
- [See the CHANGELOG](./CHANGELOG.md)
107
+ If you want to build the SDK locally (for development, testing, or contributing), follow the steps below.
108
+
109
+ ### 1. Replace `openapi.json` file
110
+
111
+ Obtain the correct `openapi.json` file from the Jellyfin server repository.
112
+
113
+ - If working with merged changes, you can download it from the [Jellyfin API spec](https://api.jellyfin.org/openapi/jellyfin-openapi-unstable.json).
114
+ - If working with unmerged branch changes, download the `openapi.json` artifact generated from that specific branch build.
115
+
116
+ Once you have the correct file, replace the existing `openapi.json` in this repository with the new one.
117
+
118
+ ### 2. Build the project
119
+
120
+ You can now build the project by executing the following commands
121
+
122
+ ```sh
123
+ npm run fix-schema
124
+ npm run build
125
+ ```
112
126
 
113
- ## Roadmap to 1.0
127
+ This should then generate a compiled output in the `lib` folder
114
128
 
115
- * [x] Use custom generator templates for API versions [#231](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/231) (Currently uses sed to update the value could be improved.)
116
- * [x] Automate OpenAPI spec updates using GitHub [#351](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/351)
117
- * [x] Create branch tracking unstable Jellyfin builds with automated builds [#354](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/354)
118
- * [x] Fix authentication header escaping [#564](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/564)
119
- * [ ] Add WebSocket API support
120
- * [ ] Add example projects for different ecosystems [#186](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/186)
121
- * [ ] Add utility function for `getFile` [#164](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/164)
122
- * [ ] More complete device profile generation utilities
129
+ ### 3. Use the local build in another project
130
+
131
+ You can reference your local build in another repository using `npm link`:
132
+
133
+ ```sh
134
+ npm link
135
+ ```
136
+
137
+ Then, in the consuming project:
138
+
139
+ ```sh
140
+ npm link @jellyfin/sdk
141
+ ```
142
+
143
+ This allows you to test changes to the SDK without publishing it to npm.
144
+
145
+ ## Significant Changes
146
+
147
+ [See the CHANGELOG](./CHANGELOG.md)
@@ -0,0 +1,118 @@
1
+ import eslint from '@eslint/js';
2
+ import stylistic from '@stylistic/eslint-plugin';
3
+ import vitest from '@vitest/eslint-plugin';
4
+ import importPlugin from 'eslint-plugin-import';
5
+ import globals from 'globals';
6
+ import tseslint from 'typescript-eslint';
7
+
8
+ export default tseslint.config(
9
+ // Global ignores
10
+ {
11
+ ignores: [
12
+ 'dist/**',
13
+ 'docs/**',
14
+ 'src/generated-client/**',
15
+ 'lib/**',
16
+ 'node_modules/**'
17
+ ]
18
+ },
19
+
20
+ // Base config for all files
21
+ eslint.configs.recommended,
22
+ ...tseslint.configs.recommended,
23
+
24
+ // Main source files config
25
+ {
26
+ files: ['**/*.ts', '**/*.mjs', '**/*.js'],
27
+ plugins: {
28
+ '@stylistic': stylistic,
29
+ 'import': importPlugin
30
+ },
31
+ languageOptions: {
32
+ globals: {
33
+ ...globals.node
34
+ }
35
+ },
36
+ settings: {
37
+ 'import/resolver': {
38
+ typescript: true,
39
+ node: true
40
+ }
41
+ },
42
+ rules: {
43
+ 'import/order': ['error', {
44
+ 'alphabetize': { 'order': 'asc', 'caseInsensitive': true },
45
+ 'newlines-between': 'always-and-inside-groups'
46
+ }],
47
+
48
+ '@stylistic/type-annotation-spacing': ['error'],
49
+
50
+ '@typescript-eslint/consistent-type-imports': ['error'],
51
+
52
+ 'array-callback-return': ['error'],
53
+ 'arrow-spacing': ['error'],
54
+ 'block-spacing': ['error'],
55
+ 'brace-style': ['error', '1tbs', { 'allowSingleLine': true }],
56
+ 'comma-dangle': ['error', 'never'],
57
+ 'comma-spacing': ['error'],
58
+ 'curly': ['error', 'multi-line'],
59
+ 'eol-last': ['error'],
60
+ 'indent': ['error', 'tab', { 'SwitchCase': 1 }],
61
+ 'jsx-quotes': ['error', 'prefer-single'],
62
+ 'key-spacing': ['error'],
63
+ 'keyword-spacing': ['error'],
64
+ 'max-statements-per-line': ['error'],
65
+ 'no-floating-decimal': ['error'],
66
+ 'no-multi-spaces': ['error'],
67
+ 'no-multiple-empty-lines': ['error', { 'max': 1 }],
68
+ 'no-restricted-globals': ['error'],
69
+ 'no-trailing-spaces': ['error'],
70
+ 'no-unreachable': ['error'],
71
+ 'no-unused-expressions': ['error', { 'allowShortCircuit': true, 'allowTernary': true, 'allowTaggedTemplates': true }],
72
+ 'object-curly-spacing': ['error', 'always'],
73
+ 'one-var': ['error', 'never'],
74
+ 'padded-blocks': ['error', 'never'],
75
+ 'prefer-const': ['error', { 'destructuring': 'all' }],
76
+ 'quotes': ['error', 'single', { 'avoidEscape': true, 'allowTemplateLiterals': false }],
77
+ 'semi': ['error'],
78
+ 'no-var': ['error'],
79
+ 'space-before-blocks': ['error'],
80
+ 'space-before-function-paren': ['error', { 'anonymous': 'never', 'named': 'never', 'asyncArrow': 'always' }],
81
+ 'space-infix-ops': 'error',
82
+ 'yoda': 'error'
83
+ }
84
+ },
85
+
86
+ // Source files - browser environment
87
+ {
88
+ files: ['src/**/*.ts'],
89
+ languageOptions: {
90
+ globals: {
91
+ ...globals.browser
92
+ }
93
+ }
94
+ },
95
+
96
+ // Test files config
97
+ {
98
+ files: ['**/*.test.ts'],
99
+ plugins: {
100
+ vitest
101
+ },
102
+ languageOptions: {
103
+ globals: {
104
+ ...globals.node
105
+ }
106
+ },
107
+ rules: {
108
+ ...vitest.configs.recommended.rules,
109
+ 'vitest/consistent-test-it': ['error'],
110
+ 'vitest/prefer-lowercase-title': ['error', { 'ignoreTopLevelDescribe': true }],
111
+ 'vitest/require-top-level-describe': ['error'],
112
+ // Disable because we use custom `itIf` helper that the plugin doesn't recognize
113
+ 'vitest/no-standalone-expect': 'off',
114
+ // Disable rules that require type information (would need parserOptions.project)
115
+ 'vitest/valid-title': 'off'
116
+ }
117
+ }
118
+ );
package/lib/api.d.ts CHANGED
@@ -7,20 +7,24 @@ import type { AxiosInstance, AxiosResponse } from 'axios';
7
7
  import { Configuration } from './generated-client/configuration';
8
8
  import type { AuthenticationResult } from './generated-client/models/authentication-result';
9
9
  import type { ClientInfo, DeviceInfo } from './models';
10
- /** The authorization header field name. */
11
- export declare const AUTHORIZATION_HEADER = "Authorization";
10
+ import type { OutboundWebSocketMessageType, SocketMessageHandler } from './websocket';
12
11
  /** Class representing the Jellyfin API. */
13
12
  export declare class Api {
14
- basePath: string;
15
- clientInfo: ClientInfo;
16
- deviceInfo: DeviceInfo;
17
- accessToken: string;
18
- axiosInstance: AxiosInstance;
13
+ private _basePath;
14
+ private _clientInfo;
15
+ private _deviceInfo;
16
+ private _accessToken;
17
+ readonly axiosInstance: AxiosInstance;
18
+ private webSocket;
19
19
  constructor(basePath: string, clientInfo: ClientInfo, deviceInfo: DeviceInfo, accessToken?: string, axiosInstance?: AxiosInstance);
20
+ get accessToken(): string;
21
+ get basePath(): string;
22
+ get clientInfo(): ClientInfo;
23
+ get deviceInfo(): DeviceInfo;
20
24
  get configuration(): Configuration;
21
25
  /**
22
26
  * Convenience method for authenticating a user by name.
23
- * @deprecated Use `getUserApi().authenticateUserByName()` instead.
27
+ * @deprecated Use `getAuthenticationApi().authenticateUserByName()` instead.
24
28
  * @param username The username.
25
29
  * @param password The user password if required.
26
30
  */
@@ -37,5 +41,23 @@ export declare class Api {
37
41
  * @deprecated Use `getSessionApi().reportSessionEnded()` instead.
38
42
  */
39
43
  logout(): Promise<AxiosResponse<never> | AxiosResponse<void>>;
44
+ /**
45
+ * Updates this {@link Api} instance with new data.
46
+ *
47
+ * If the access token is cleared, any existing WebSocket connection will be closed.
48
+ *
49
+ * If the base path or access token changes while a WebSocket connection is active,
50
+ * the connection will be reconnected with the new credentials.
51
+ *
52
+ * @param data The data to update.
53
+ */
54
+ update(data: Partial<{
55
+ basePath: string;
56
+ clientInfo: ClientInfo;
57
+ deviceInfo: DeviceInfo;
58
+ accessToken: string;
59
+ }>): void;
40
60
  get authorizationHeader(): string;
61
+ get acceptLanguageHeader(): string | undefined;
62
+ subscribe<T extends OutboundWebSocketMessageType>(messageTypes: T[], onMessage: SocketMessageHandler<T>): () => void;
41
63
  }
package/lib/api.js CHANGED
@@ -1,39 +1,53 @@
1
1
  import globalAxios from 'axios';
2
+ import { ACCEPT_LANGUAGE_HEADER, AUTHORIZATION_HEADER, AUTHORIZATION_PARAMETER } from './constants.js';
2
3
  import { Configuration } from './generated-client/configuration.js';
3
4
  import { getAuthorizationHeader } from './utils/authentication.js';
5
+ import { getAuthenticationApi } from './utils/api/authentication-api.js';
4
6
  import { getSessionApi } from './utils/api/session-api.js';
5
- import { getUserApi } from './utils/api/user-api.js';
7
+ import { WebSocketService } from './websocket/websocket-service.js';
8
+ import { WEBSOCKET_URL_PATH } from './websocket/constants.js';
6
9
 
7
- /** The authorization header field name. */
8
- const AUTHORIZATION_HEADER = 'Authorization';
9
10
  /** Class representing the Jellyfin API. */
10
11
  class Api {
11
12
  constructor(basePath, clientInfo, deviceInfo, accessToken = '', axiosInstance = globalAxios) {
12
13
  // Remove trailing slash if present
13
- this.basePath = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
14
- this.clientInfo = clientInfo;
15
- this.deviceInfo = deviceInfo;
16
- this.accessToken = accessToken;
14
+ this._basePath = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
15
+ this._clientInfo = clientInfo;
16
+ this._deviceInfo = deviceInfo;
17
+ this._accessToken = accessToken;
17
18
  this.axiosInstance = axiosInstance;
18
19
  }
20
+ get accessToken() {
21
+ return this._accessToken;
22
+ }
23
+ get basePath() {
24
+ return this._basePath;
25
+ }
26
+ get clientInfo() {
27
+ return this._clientInfo;
28
+ }
29
+ get deviceInfo() {
30
+ return this._deviceInfo;
31
+ }
19
32
  get configuration() {
20
33
  return new Configuration({
21
- basePath: this.basePath,
34
+ basePath: this._basePath,
22
35
  baseOptions: {
23
36
  headers: {
24
- [AUTHORIZATION_HEADER]: this.authorizationHeader
37
+ [AUTHORIZATION_HEADER]: this.authorizationHeader,
38
+ [ACCEPT_LANGUAGE_HEADER]: this.acceptLanguageHeader
25
39
  }
26
40
  }
27
41
  });
28
42
  }
29
43
  /**
30
44
  * Convenience method for authenticating a user by name.
31
- * @deprecated Use `getUserApi().authenticateUserByName()` instead.
45
+ * @deprecated Use `getAuthenticationApi().authenticateUserByName()` instead.
32
46
  * @param username The username.
33
47
  * @param password The user password if required.
34
48
  */
35
49
  authenticateUserByName(username, password) {
36
- return getUserApi(this).authenticateUserByName(
50
+ return getAuthenticationApi(this).authenticateUserByName(
37
51
  // The axios client does some strange wrapping of the param object
38
52
  { authenticateUserByName: { Username: username, Pw: password } });
39
53
  }
@@ -45,7 +59,7 @@ class Api {
45
59
  */
46
60
  getUri(url, params) {
47
61
  return this.axiosInstance.getUri({
48
- baseURL: this.basePath,
62
+ baseURL: this._basePath,
49
63
  url,
50
64
  params
51
65
  });
@@ -57,9 +71,60 @@ class Api {
57
71
  logout() {
58
72
  return getSessionApi(this).reportSessionEnded();
59
73
  }
74
+ /**
75
+ * Updates this {@link Api} instance with new data.
76
+ *
77
+ * If the access token is cleared, any existing WebSocket connection will be closed.
78
+ *
79
+ * If the base path or access token changes while a WebSocket connection is active,
80
+ * the connection will be reconnected with the new credentials.
81
+ *
82
+ * @param data The data to update.
83
+ */
84
+ update(data) {
85
+ var _a, _b;
86
+ if (data.basePath) {
87
+ this._basePath = data.basePath;
88
+ }
89
+ if (data.clientInfo) {
90
+ this._clientInfo = data.clientInfo;
91
+ }
92
+ if (data.deviceInfo) {
93
+ this._deviceInfo = data.deviceInfo;
94
+ }
95
+ if (data.accessToken !== undefined) {
96
+ this._accessToken = data.accessToken;
97
+ }
98
+ if (data.basePath ||
99
+ (data.accessToken && data.accessToken !== '')) {
100
+ (_a = this.webSocket) === null || _a === void 0 ? void 0 : _a.updateUrl(this.getUri(WEBSOCKET_URL_PATH, {
101
+ [AUTHORIZATION_PARAMETER]: this.accessToken
102
+ }));
103
+ }
104
+ else if (data.accessToken === '') {
105
+ // Token was cleared, dispose of WebSocket
106
+ (_b = this.webSocket) === null || _b === void 0 ? void 0 : _b.disconnect();
107
+ }
108
+ }
60
109
  get authorizationHeader() {
61
- return getAuthorizationHeader(this.clientInfo, this.deviceInfo, this.accessToken);
110
+ return getAuthorizationHeader(this._clientInfo, this._deviceInfo, this._accessToken);
111
+ }
112
+ get acceptLanguageHeader() {
113
+ const languages = this._deviceInfo.languages;
114
+ return (languages === null || languages === void 0 ? void 0 : languages.length) ? languages.join(',') : undefined;
115
+ }
116
+ subscribe(messageTypes, onMessage) {
117
+ if (!this.webSocket) {
118
+ // Pass undefined when there is no access token so subscriptions are stored
119
+ // but no connection attempt is made until updateUrl() is called later.
120
+ this.webSocket = new WebSocketService(this.accessToken
121
+ ? this.getUri(WEBSOCKET_URL_PATH, {
122
+ [AUTHORIZATION_PARAMETER]: this.accessToken
123
+ })
124
+ : undefined);
125
+ }
126
+ return this.webSocket.subscribe(messageTypes, onMessage);
62
127
  }
63
128
  }
64
129
 
65
- export { AUTHORIZATION_HEADER, Api };
130
+ export { Api };
@@ -0,0 +1,11 @@
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
+ /** The authorization header field name. */
7
+ export declare const AUTHORIZATION_HEADER = "Authorization";
8
+ /** The accept language header field name. */
9
+ export declare const ACCEPT_LANGUAGE_HEADER = "Accept-Language";
10
+ /** The authorization query parameter name. */
11
+ export declare const AUTHORIZATION_PARAMETER = "ApiKey";
@@ -0,0 +1,13 @@
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
+ /** The authorization header field name. */
7
+ const AUTHORIZATION_HEADER = 'Authorization';
8
+ /** The accept language header field name. */
9
+ const ACCEPT_LANGUAGE_HEADER = 'Accept-Language';
10
+ /** The authorization query parameter name. */
11
+ const AUTHORIZATION_PARAMETER = 'ApiKey';
12
+
13
+ export { ACCEPT_LANGUAGE_HEADER, AUTHORIZATION_HEADER, AUTHORIZATION_PARAMETER };