@jellyfin/sdk 0.12.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 (759) hide show
  1. package/.nvmrc +1 -0
  2. package/.openapi-generator-ignore +2 -0
  3. package/CHANGELOG.md +40 -3
  4. package/README.md +55 -32
  5. package/eslint.config.mjs +118 -0
  6. package/lib/api.d.ts +33 -9
  7. package/lib/api.js +88 -26
  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 +18 -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/{api-key-api.d.ts → user-data-api.d.ts} +2 -2
  613. package/lib/utils/api/{time-sync-api.js → user-data-api.js} +4 -4
  614. package/lib/utils/api/{channels-api.d.ts → user-view-api.d.ts} +2 -2
  615. package/lib/utils/api/{trailers-api.js → user-view-api.js} +4 -4
  616. package/lib/utils/api/video-api.d.ts +8 -0
  617. package/lib/utils/api/video-api.js +12 -0
  618. package/lib/utils/api/year-api.d.ts +8 -0
  619. package/lib/utils/api/year-api.js +12 -0
  620. package/lib/utils/index.js +2 -2
  621. package/lib/utils/url/index.d.ts +1 -0
  622. package/lib/utils/url/index.js +4 -1
  623. package/lib/utils/versioning.d.ts +12 -1
  624. package/lib/utils/versioning.js +44 -13
  625. package/lib/versions.d.ts +1 -1
  626. package/lib/versions.js +1 -1
  627. package/lib/websocket/constants.d.ts +24 -0
  628. package/lib/websocket/constants.js +42 -0
  629. package/lib/websocket/index.d.ts +8 -0
  630. package/lib/websocket/index.js +3 -0
  631. package/lib/{utils/api/client-log-api.d.ts → websocket/models.d.ts} +6 -3
  632. package/lib/websocket/models.js +16 -0
  633. package/lib/websocket/types.d.ts +37 -0
  634. package/lib/websocket/types.js +42 -0
  635. package/lib/websocket/websocket-service.d.ts +142 -0
  636. package/lib/websocket/websocket-service.js +296 -0
  637. package/package.json +20 -16
  638. package/lib/generated-client/api/activity-log-api.d.ts +0 -110
  639. package/lib/generated-client/api/activity-log-api.js +0 -135
  640. package/lib/generated-client/api/api-key-api.d.ts +0 -161
  641. package/lib/generated-client/api/api-key-api.js +0 -245
  642. package/lib/generated-client/api/client-log-api.d.ts +0 -86
  643. package/lib/generated-client/api/client-log-api.js +0 -117
  644. package/lib/generated-client/api/configuration-api.d.ts +0 -292
  645. package/lib/generated-client/api/configuration-api.js +0 -442
  646. package/lib/generated-client/api/dashboard-api.d.ts +0 -132
  647. package/lib/generated-client/api/dashboard-api.js +0 -182
  648. package/lib/generated-client/api/dlna-api.d.ts +0 -292
  649. package/lib/generated-client/api/dlna-server-api.d.ts +0 -784
  650. package/lib/generated-client/api/dynamic-hls-api.d.ts +0 -4261
  651. package/lib/generated-client/api/dynamic-hls-api.js +0 -3025
  652. package/lib/generated-client/api/hls-segment-api.d.ts +0 -325
  653. package/lib/generated-client/api/hls-segment-api.js +0 -415
  654. package/lib/generated-client/api/image-by-name-api.d.ts +0 -292
  655. package/lib/generated-client/api/item-refresh-api.d.ts +0 -126
  656. package/lib/generated-client/api/item-refresh-api.js +0 -143
  657. package/lib/generated-client/api/items-api.d.ts +0 -1052
  658. package/lib/generated-client/api/items-api.js +0 -835
  659. package/lib/generated-client/api/music-genres-api.d.ts +0 -286
  660. package/lib/generated-client/api/music-genres-api.js +0 -278
  661. package/lib/generated-client/api/notifications-api.d.ts +0 -332
  662. package/lib/generated-client/api/package-api.d.ts +0 -315
  663. package/lib/generated-client/api/package-api.js +0 -455
  664. package/lib/generated-client/api/playstate-api.d.ts +0 -679
  665. package/lib/generated-client/api/playstate-api.js +0 -789
  666. package/lib/generated-client/api/plugins-api.d.ts +0 -473
  667. package/lib/generated-client/api/plugins-api.js +0 -663
  668. package/lib/generated-client/api/quick-connect-api.d.ts +0 -198
  669. package/lib/generated-client/api/quick-connect-api.js +0 -305
  670. package/lib/generated-client/api/time-sync-api.d.ts +0 -69
  671. package/lib/generated-client/api/time-sync-api.js +0 -109
  672. package/lib/generated-client/api/tmdb-api.d.ts +0 -69
  673. package/lib/generated-client/api/tmdb-api.js +0 -111
  674. package/lib/generated-client/api/universal-audio-api.d.ts +0 -420
  675. package/lib/generated-client/api/universal-audio-api.js +0 -364
  676. package/lib/generated-client/api/user-library-api.d.ts +0 -657
  677. package/lib/generated-client/api/video-attachments-api.d.ts +0 -101
  678. package/lib/generated-client/api/video-attachments-api.js +0 -126
  679. package/lib/generated-client/models/admin-notification-dto.d.ts +0 -42
  680. package/lib/generated-client/models/base-item.d.ts +0 -84
  681. package/lib/generated-client/models/branding-options.d.ts +0 -35
  682. package/lib/generated-client/models/client-capabilities.d.ts +0 -76
  683. package/lib/generated-client/models/config-image-types.d.ts +0 -59
  684. package/lib/generated-client/models/control-response.d.ts +0 -37
  685. package/lib/generated-client/models/device-identification.d.ts +0 -72
  686. package/lib/generated-client/models/device-info-query-result.d.ts +0 -36
  687. package/lib/generated-client/models/device-info.d.ts +0 -84
  688. package/lib/generated-client/models/device-options.d.ts +0 -35
  689. package/lib/generated-client/models/device-profile-info.d.ts +0 -36
  690. package/lib/generated-client/models/device-profile-type.d.ts +0 -20
  691. package/lib/generated-client/models/dlna-options.d.ts +0 -83
  692. package/lib/generated-client/models/ffmpeg-location.d.ts +0 -22
  693. package/lib/generated-client/models/group-info-dto-group-update.d.ts +0 -37
  694. package/lib/generated-client/models/group-state-update-group-update.d.ts +0 -37
  695. package/lib/generated-client/models/hardware-encoding-type.d.ts +0 -25
  696. package/lib/generated-client/models/header-match-type.d.ts +0 -21
  697. package/lib/generated-client/models/http-header-info.d.ts +0 -36
  698. package/lib/generated-client/models/image-by-name-info.d.ts +0 -47
  699. package/lib/generated-client/models/media-encoder-path-dto.d.ts +0 -29
  700. package/lib/generated-client/models/notification-dto.d.ts +0 -66
  701. package/lib/generated-client/models/notification-option.d.ts +0 -54
  702. package/lib/generated-client/models/notification-options.d.ts +0 -24
  703. package/lib/generated-client/models/notification-result-dto.d.ts +0 -30
  704. package/lib/generated-client/models/notification-type-info.d.ts +0 -47
  705. package/lib/generated-client/models/notifications-summary-dto.d.ts +0 -30
  706. package/lib/generated-client/models/object-group-update.d.ts +0 -36
  707. package/lib/generated-client/models/play-queue-update-group-update.d.ts +0 -37
  708. package/lib/generated-client/models/response-profile.d.ts +0 -61
  709. package/lib/generated-client/models/send-to-user-type.d.ts +0 -21
  710. package/lib/generated-client/models/session-info.d.ts +0 -199
  711. package/lib/generated-client/models/string-group-update.d.ts +0 -36
  712. package/lib/generated-client/models/subtitle-options.d.ts +0 -71
  713. package/lib/generated-client/models/sync-play-group-update-command-message.d.ts +0 -37
  714. package/lib/generated-client/models/trickplay-info.d.ts +0 -65
  715. package/lib/generated-client/models/update-user-easy-password.d.ts +0 -35
  716. package/lib/generated-client/models/wake-on-lan-info.d.ts +0 -29
  717. package/lib/generated-client/models/xml-attribute.d.ts +0 -29
  718. package/lib/utils/api/activity-log-api.js +0 -12
  719. package/lib/utils/api/api-key-api.js +0 -12
  720. package/lib/utils/api/client-log-api.js +0 -12
  721. package/lib/utils/api/configuration-api.d.ts +0 -8
  722. package/lib/utils/api/devices-api.d.ts +0 -8
  723. package/lib/utils/api/display-preferences-api.d.ts +0 -8
  724. package/lib/utils/api/display-preferences-api.js +0 -12
  725. package/lib/utils/api/item-refresh-api.d.ts +0 -8
  726. package/lib/utils/api/item-refresh-api.js +0 -12
  727. package/lib/utils/api/media-segments-api.d.ts +0 -8
  728. package/lib/utils/api/media-segments-api.js +0 -12
  729. package/lib/utils/api/music-genres-api.d.ts +0 -8
  730. package/lib/utils/api/music-genres-api.js +0 -12
  731. package/lib/utils/api/package-api.js +0 -12
  732. package/lib/utils/api/persons-api.d.ts +0 -8
  733. package/lib/utils/api/persons-api.js +0 -12
  734. package/lib/utils/api/playlists-api.d.ts +0 -8
  735. package/lib/utils/api/playlists-api.js +0 -12
  736. package/lib/utils/api/playstate-api.d.ts +0 -8
  737. package/lib/utils/api/playstate-api.js +0 -12
  738. package/lib/utils/api/plugins-api.d.ts +0 -8
  739. package/lib/utils/api/plugins-api.js +0 -12
  740. package/lib/utils/api/quick-connect-api.d.ts +0 -8
  741. package/lib/utils/api/scheduled-tasks-api.d.ts +0 -8
  742. package/lib/utils/api/scheduled-tasks-api.js +0 -12
  743. package/lib/utils/api/studios-api.d.ts +0 -8
  744. package/lib/utils/api/studios-api.js +0 -12
  745. package/lib/utils/api/suggestions-api.d.ts +0 -8
  746. package/lib/utils/api/suggestions-api.js +0 -12
  747. package/lib/utils/api/time-sync-api.d.ts +0 -8
  748. package/lib/utils/api/trickplay-api.d.ts +0 -8
  749. package/lib/utils/api/trickplay-api.js +0 -12
  750. package/lib/utils/api/tv-shows-api.d.ts +0 -8
  751. package/lib/utils/api/tv-shows-api.js +0 -12
  752. package/lib/utils/api/universal-audio-api.d.ts +0 -8
  753. package/lib/utils/api/universal-audio-api.js +0 -12
  754. package/lib/utils/api/user-library-api.d.ts +0 -8
  755. package/lib/utils/api/user-library-api.js +0 -12
  756. package/lib/utils/api/user-views-api.d.ts +0 -8
  757. package/lib/utils/api/user-views-api.js +0 -12
  758. package/lib/utils/api/video-attachments-api.d.ts +0 -8
  759. 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,11 +7,45 @@ 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
+
31
+ ## [0.13.0] - 2025-10-28
32
+
33
+ ### Changed
34
+
35
+ * Ensure `Authorization` header is sent for all requests ([#948](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/948)).
36
+
37
+ ### Deprecated
38
+
39
+ * Deprecate authentication helper methods in `Api` class ([#949](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/949)).
40
+ Updating the `accessToken` is now handled transparently in `getUserApi` and `getSessionApi`. If you need to handle
41
+ authentication manually, then you should manually create `UserApi` and `SessionApi` instances.
42
+
10
43
  ## [0.12.0] - 2025-10-21
11
44
 
12
45
  ### Security
13
46
 
14
- * Bumped axios peer dependency version ([#939](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/939)). Note that this axios vulnerability only affected applications running in node.js.
47
+ * Bumped axios peer dependency version ([#939](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/939)).
48
+ Note that this axios vulnerability only affected applications running in node.js.
15
49
 
16
50
  ### Added
17
51
 
@@ -81,7 +115,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
81
115
  * API classes are no longer exposed via getters.
82
116
  Instead you need to call a function passing the `Api` instance as a parameter.
83
117
  For example: `getSystemApi(api)`.
84
- While I do feel this is a slightly worse developer experience, it was a necessary change to support tree-shaking ([#149](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/149)).
118
+ While I do feel this is a slightly worse developer experience, it was a necessary change to support tree-shaking
119
+ ([#149](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/149)).
85
120
  * `BaseItemKind` is now included in the generated client.
86
121
  Imports will need updated ([#187](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/187)).
87
122
 
@@ -106,7 +141,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
106
141
 
107
142
  ## [0.1.0] - 2021-09-19
108
143
 
109
- [unreleased]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.12.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
146
+ [0.13.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.12.0...v0.13.0
110
147
  [0.12.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.11.0...v0.12.0
111
148
  [0.11.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.10.0...v0.11.0
112
149
  [0.10.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.9.0...v0.10.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,17 +31,15 @@ yarn add @jellyfin/sdk
33
31
 
34
32
  ### Supported Jellyfin Versions
35
33
 
36
- | SDK Version | Jellyfin Version |
37
- |:-:|:-:|
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.6.0 | 10.8.1 - 10.8.13 |
43
- | 0.5.0 | 10.8.0 |
44
- | <0.5.0 | 10.7.x |
45
-
46
- > 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 |
47
43
 
48
44
  ### React Native
49
45
 
@@ -62,7 +58,8 @@ const jellyfin = new Jellyfin({
62
58
  },
63
59
  deviceInfo: {
64
60
  name: 'Device Name',
65
- id: 'unique-device-id'
61
+ id: 'unique-device-id',
62
+ languages: ['en-US']
66
63
  }
67
64
  });
68
65
 
@@ -92,10 +89,8 @@ console.log('Info =>', info.data);
92
89
  const users = await getUserApi(api).getPublicUsers();
93
90
  console.log('Users =>', users.data);
94
91
 
95
- // A helper method for authentication has been added to the SDK because
96
- // the default method exposed in the generated Axios client is rather
97
- // cumbersome to use.
98
- const auth = await api.authenticateUserByName('demo', '');
92
+ // Login with a username and password.
93
+ const auth = await getAuthenticationApi(this).authenticateUserByName({ authenticateUserByName: { Username: 'demo', Pw: '' } });
99
94
  console.log('Auth =>', auth.data);
100
95
 
101
96
  // Authentication state is stored internally in the Api class, so now
@@ -103,22 +98,50 @@ console.log('Auth =>', auth.data);
103
98
  const libraries = await getLibraryApi(api).getMediaFolders();
104
99
  console.log('Libraries =>', libraries.data);
105
100
 
106
- // A helper method for logging out the current user has been added to the
107
- // SDK so the internal state is updated correctly.
108
- await api.logout();
101
+ // Logout the current user.
102
+ await getSessionApi(api).reportSessionEnded();
109
103
  ```
110
104
 
111
- ## Breaking Changes
105
+ ## Development
112
106
 
113
- [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
+ ```
114
126
 
115
- ## Roadmap to 1.0
127
+ This should then generate a compiled output in the `lib` folder
116
128
 
117
- * [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.)
118
- * [x] Automate OpenAPI spec updates using GitHub [#351](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/351)
119
- * [x] Create branch tracking unstable Jellyfin builds with automated builds [#354](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/354)
120
- * [x] Fix authentication header escaping [#564](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/564)
121
- * [ ] Add WebSocket API support
122
- * [ ] Add example projects for different ecosystems [#186](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/186)
123
- * [ ] Add utility function for `getFile` [#164](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/164)
124
- * [ ] 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,19 +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
- * Convenience method for authenticating a user by name and updating the internal state.
26
+ * Convenience method for authenticating a user by name.
27
+ * @deprecated Use `getAuthenticationApi().authenticateUserByName()` instead.
23
28
  * @param username The username.
24
29
  * @param password The user password if required.
25
30
  */
@@ -32,8 +37,27 @@ export declare class Api {
32
37
  */
33
38
  getUri(url: string, params?: object): string;
34
39
  /**
35
- * Convenience method for logging out and updating the internal state.
40
+ * Convenience method for logging out.
41
+ * @deprecated Use `getSessionApi().reportSessionEnded()` instead.
36
42
  */
37
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;
38
60
  get authorizationHeader(): string;
61
+ get acceptLanguageHeader(): string | undefined;
62
+ subscribe<T extends OutboundWebSocketMessageType>(messageTypes: T[], onMessage: SocketMessageHandler<T>): () => void;
39
63
  }
package/lib/api.js CHANGED
@@ -1,42 +1,55 @@
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,
22
- apiKey: this.authorizationHeader
34
+ basePath: this._basePath,
35
+ baseOptions: {
36
+ headers: {
37
+ [AUTHORIZATION_HEADER]: this.authorizationHeader,
38
+ [ACCEPT_LANGUAGE_HEADER]: this.acceptLanguageHeader
39
+ }
40
+ }
23
41
  });
24
42
  }
25
43
  /**
26
- * Convenience method for authenticating a user by name and updating the internal state.
44
+ * Convenience method for authenticating a user by name.
45
+ * @deprecated Use `getAuthenticationApi().authenticateUserByName()` instead.
27
46
  * @param username The username.
28
47
  * @param password The user password if required.
29
48
  */
30
49
  authenticateUserByName(username, password) {
31
- return getUserApi(this).authenticateUserByName(
50
+ return getAuthenticationApi(this).authenticateUserByName(
32
51
  // The axios client does some strange wrapping of the param object
33
- { authenticateUserByName: { Username: username, Pw: password } },
34
- // The authorization header is required for the request to succeed
35
- { headers: { [AUTHORIZATION_HEADER]: this.authorizationHeader } }).then(response => {
36
- // Update the current token and configuration object
37
- this.accessToken = response.data.AccessToken || '';
38
- return response;
39
- });
52
+ { authenticateUserByName: { Username: username, Pw: password } });
40
53
  }
41
54
  /**
42
55
  * Gets a full URI for a relative URL to the Jellyfin server for a given SDK Api instance.
@@ -46,23 +59,72 @@ class Api {
46
59
  */
47
60
  getUri(url, params) {
48
61
  return this.axiosInstance.getUri({
49
- baseURL: this.basePath,
62
+ baseURL: this._basePath,
50
63
  url,
51
64
  params
52
65
  });
53
66
  }
54
67
  /**
55
- * Convenience method for logging out and updating the internal state.
68
+ * Convenience method for logging out.
69
+ * @deprecated Use `getSessionApi().reportSessionEnded()` instead.
56
70
  */
57
71
  logout() {
58
- return getSessionApi(this).reportSessionEnded().then(response => {
59
- this.accessToken = '';
60
- return response;
61
- });
72
+ return getSessionApi(this).reportSessionEnded();
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
+ }
62
108
  }
63
109
  get authorizationHeader() {
64
- 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);
65
127
  }
66
128
  }
67
129
 
68
- 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 };