@jellyfin/sdk 0.11.0 → 0.13.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 (183) hide show
  1. package/CHANGELOG.md +142 -0
  2. package/README.md +8 -53
  3. package/lib/api.d.ts +11 -2
  4. package/lib/api.js +23 -13
  5. package/lib/generated-client/api/activity-log-api.d.ts +1 -1
  6. package/lib/generated-client/api/api-key-api.d.ts +3 -3
  7. package/lib/generated-client/api/artists-api.d.ts +3 -3
  8. package/lib/generated-client/api/audio-api.d.ts +10 -10
  9. package/lib/generated-client/api/audio-api.js +4 -4
  10. package/lib/generated-client/api/backup-api.d.ts +209 -0
  11. package/lib/generated-client/api/backup-api.js +311 -0
  12. package/lib/generated-client/api/branding-api.d.ts +6 -6
  13. package/lib/generated-client/api/channels-api.d.ts +5 -5
  14. package/lib/generated-client/api/client-log-api.d.ts +1 -1
  15. package/lib/generated-client/api/collection-api.d.ts +3 -3
  16. package/lib/generated-client/api/configuration-api.d.ts +52 -5
  17. package/lib/generated-client/api/configuration-api.js +68 -1
  18. package/lib/generated-client/api/dashboard-api.d.ts +2 -2
  19. package/lib/generated-client/api/dashboard-api.js +1 -1
  20. package/lib/generated-client/api/devices-api.d.ts +5 -5
  21. package/lib/generated-client/api/devices-api.js +1 -1
  22. package/lib/generated-client/api/display-preferences-api.d.ts +2 -2
  23. package/lib/generated-client/api/display-preferences-api.js +1 -1
  24. package/lib/generated-client/api/dlna-api.d.ts +6 -6
  25. package/lib/generated-client/api/dlna-server-api.d.ts +16 -16
  26. package/lib/generated-client/api/dynamic-hls-api.d.ts +9 -9
  27. package/lib/generated-client/api/environment-api.d.ts +6 -6
  28. package/lib/generated-client/api/environment-api.js +1 -1
  29. package/lib/generated-client/api/filter-api.d.ts +2 -2
  30. package/lib/generated-client/api/genres-api.d.ts +2 -2
  31. package/lib/generated-client/api/genres-api.js +1 -1
  32. package/lib/generated-client/api/hls-segment-api.d.ts +5 -5
  33. package/lib/generated-client/api/hls-segment-api.js +1 -1
  34. package/lib/generated-client/api/image-api.d.ts +43 -331
  35. package/lib/generated-client/api/image-api.js +16 -196
  36. package/lib/generated-client/api/image-by-name-api.d.ts +6 -6
  37. package/lib/generated-client/api/instant-mix-api.d.ts +8 -8
  38. package/lib/generated-client/api/item-lookup-api.d.ts +11 -11
  39. package/lib/generated-client/api/item-refresh-api.d.ts +11 -3
  40. package/lib/generated-client/api/item-refresh-api.js +10 -5
  41. package/lib/generated-client/api/item-update-api.d.ts +3 -3
  42. package/lib/generated-client/api/items-api.d.ts +4 -4
  43. package/lib/generated-client/api/items-api.js +1 -1
  44. package/lib/generated-client/api/library-api.d.ts +25 -25
  45. package/lib/generated-client/api/library-api.js +1 -1
  46. package/lib/generated-client/api/library-structure-api.d.ts +8 -8
  47. package/lib/generated-client/api/live-tv-api.d.ts +55 -47
  48. package/lib/generated-client/api/live-tv-api.js +15 -10
  49. package/lib/generated-client/api/localization-api.d.ts +4 -4
  50. package/lib/generated-client/api/lyrics-api.d.ts +6 -6
  51. package/lib/generated-client/api/lyrics-api.js +1 -1
  52. package/lib/generated-client/api/media-info-api.d.ts +5 -5
  53. package/lib/generated-client/api/media-info-api.js +1 -1
  54. package/lib/generated-client/api/media-segments-api.d.ts +1 -1
  55. package/lib/generated-client/api/movies-api.d.ts +1 -1
  56. package/lib/generated-client/api/music-genres-api.d.ts +2 -2
  57. package/lib/generated-client/api/music-genres-api.js +1 -1
  58. package/lib/generated-client/api/notifications-api.d.ts +7 -7
  59. package/lib/generated-client/api/package-api.d.ts +6 -6
  60. package/lib/generated-client/api/package-api.js +1 -1
  61. package/lib/generated-client/api/persons-api.d.ts +2 -2
  62. package/lib/generated-client/api/persons-api.js +1 -1
  63. package/lib/generated-client/api/playlists-api.d.ts +11 -11
  64. package/lib/generated-client/api/playlists-api.js +1 -1
  65. package/lib/generated-client/api/playstate-api.d.ts +21 -9
  66. package/lib/generated-client/api/playstate-api.js +13 -1
  67. package/lib/generated-client/api/plugins-api.d.ts +9 -9
  68. package/lib/generated-client/api/quick-connect-api.d.ts +4 -4
  69. package/lib/generated-client/api/quick-connect-api.js +1 -1
  70. package/lib/generated-client/api/remote-image-api.d.ts +3 -3
  71. package/lib/generated-client/api/scheduled-tasks-api.d.ts +5 -5
  72. package/lib/generated-client/api/scheduled-tasks-api.js +1 -1
  73. package/lib/generated-client/api/search-api.d.ts +1 -1
  74. package/lib/generated-client/api/session-api.d.ts +16 -16
  75. package/lib/generated-client/api/startup-api.d.ts +7 -7
  76. package/lib/generated-client/api/startup-api.js +1 -1
  77. package/lib/generated-client/api/studios-api.d.ts +2 -2
  78. package/lib/generated-client/api/studios-api.js +1 -1
  79. package/lib/generated-client/api/subtitle-api.d.ts +10 -10
  80. package/lib/generated-client/api/subtitle-api.js +1 -1
  81. package/lib/generated-client/api/suggestions-api.d.ts +1 -1
  82. package/lib/generated-client/api/sync-play-api.d.ts +69 -23
  83. package/lib/generated-client/api/sync-play-api.js +67 -1
  84. package/lib/generated-client/api/system-api.d.ts +18 -22
  85. package/lib/generated-client/api/system-api.js +13 -17
  86. package/lib/generated-client/api/time-sync-api.d.ts +1 -1
  87. package/lib/generated-client/api/tmdb-api.d.ts +1 -1
  88. package/lib/generated-client/api/trailers-api.d.ts +1 -1
  89. package/lib/generated-client/api/trickplay-api.d.ts +2 -2
  90. package/lib/generated-client/api/tv-shows-api.d.ts +4 -4
  91. package/lib/generated-client/api/tv-shows-api.js +1 -1
  92. package/lib/generated-client/api/universal-audio-api.d.ts +2 -2
  93. package/lib/generated-client/api/user-api.d.ts +14 -14
  94. package/lib/generated-client/api/user-api.js +1 -1
  95. package/lib/generated-client/api/user-library-api.d.ts +10 -10
  96. package/lib/generated-client/api/user-views-api.d.ts +2 -2
  97. package/lib/generated-client/api/video-attachments-api.d.ts +1 -1
  98. package/lib/generated-client/api/videos-api.d.ts +7 -7
  99. package/lib/generated-client/api/years-api.d.ts +2 -2
  100. package/lib/generated-client/api/years-api.js +1 -1
  101. package/lib/generated-client/api.d.ts +1 -0
  102. package/lib/generated-client/common.d.ts +1 -1
  103. package/lib/generated-client/index.js +3 -0
  104. package/lib/generated-client/models/backup-manifest-dto.d.ts +48 -0
  105. package/lib/generated-client/models/backup-options-dto.d.ts +41 -0
  106. package/lib/generated-client/models/backup-restore-request-dto.d.ts +23 -0
  107. package/lib/generated-client/models/base-item-dto.d.ts +3 -3
  108. package/lib/generated-client/models/branding-options-dto.d.ts +35 -0
  109. package/lib/generated-client/models/custom-database-option.d.ts +29 -0
  110. package/lib/generated-client/models/custom-database-options.d.ts +42 -0
  111. package/lib/generated-client/models/database-configuration-options.d.ts +37 -0
  112. package/lib/generated-client/models/database-locking-behavior-types.d.ts +21 -0
  113. package/lib/generated-client/models/database-locking-behavior-types.js +24 -0
  114. package/lib/generated-client/models/external-id-info.d.ts +0 -7
  115. package/lib/generated-client/models/external-id-media-type.d.ts +1 -0
  116. package/lib/generated-client/models/external-id-media-type.js +2 -1
  117. package/lib/generated-client/models/folder-storage-dto.d.ts +47 -0
  118. package/lib/generated-client/models/group-update-type.d.ts +0 -2
  119. package/lib/generated-client/models/group-update-type.js +0 -2
  120. package/lib/generated-client/models/group-update.d.ts +19 -14
  121. package/lib/generated-client/models/index.d.ts +25 -8
  122. package/lib/generated-client/models/index.js +2 -0
  123. package/lib/generated-client/models/item-fields.d.ts +0 -11
  124. package/lib/generated-client/models/item-fields.js +0 -11
  125. package/lib/generated-client/models/item-sort-by.d.ts +0 -2
  126. package/lib/generated-client/models/item-sort-by.js +1 -3
  127. package/lib/generated-client/models/library-options-result-dto.d.ts +6 -0
  128. package/lib/generated-client/models/library-options.d.ts +1 -1
  129. package/lib/generated-client/models/library-storage-dto.d.ts +36 -0
  130. package/lib/generated-client/models/lyric-line-cue.d.ts +41 -0
  131. package/lib/generated-client/models/lyric-line.d.ts +7 -0
  132. package/lib/generated-client/models/media-segment-type.d.ts +1 -1
  133. package/lib/generated-client/models/media-segment-type.js +1 -1
  134. package/lib/generated-client/models/media-stream.d.ts +6 -0
  135. package/lib/generated-client/models/metadata-editor-info.d.ts +6 -6
  136. package/lib/generated-client/models/network-configuration.d.ts +1 -0
  137. package/lib/generated-client/models/open-live-stream-dto.d.ts +1 -1
  138. package/lib/generated-client/models/outbound-web-socket-message.d.ts +2 -2
  139. package/lib/generated-client/models/parental-rating-score.d.ts +29 -0
  140. package/lib/generated-client/models/parental-rating.d.ts +8 -1
  141. package/lib/generated-client/models/playback-info-dto.d.ts +1 -1
  142. package/lib/generated-client/models/plugin-status.d.ts +1 -0
  143. package/lib/generated-client/models/plugin-status.js +1 -0
  144. package/lib/generated-client/models/profile-condition-value.d.ts +1 -0
  145. package/lib/generated-client/models/profile-condition-value.js +2 -1
  146. package/lib/generated-client/models/server-configuration.d.ts +21 -9
  147. package/lib/generated-client/models/startup-configuration-dto.d.ts +6 -0
  148. package/lib/generated-client/models/startup-remote-access-dto.d.ts +1 -0
  149. package/lib/generated-client/models/sync-play-group-does-not-exist-update.d.ts +36 -0
  150. package/lib/generated-client/models/sync-play-group-joined-update.d.ts +37 -0
  151. package/lib/generated-client/models/sync-play-group-left-update.d.ts +36 -0
  152. package/lib/generated-client/models/sync-play-group-update-message.d.ts +37 -0
  153. package/lib/generated-client/models/sync-play-library-access-denied-update.d.ts +36 -0
  154. package/lib/generated-client/models/sync-play-not-in-group-update.d.ts +36 -0
  155. package/lib/generated-client/models/sync-play-play-queue-update.d.ts +37 -0
  156. package/lib/generated-client/models/sync-play-state-update.d.ts +37 -0
  157. package/lib/generated-client/models/sync-play-user-joined-update.d.ts +36 -0
  158. package/lib/generated-client/models/sync-play-user-left-update.d.ts +36 -0
  159. package/lib/generated-client/models/system-info.d.ts +7 -0
  160. package/lib/generated-client/models/system-storage-dto.d.ts +67 -0
  161. package/lib/generated-client/models/task-trigger-info-type.d.ts +22 -0
  162. package/lib/generated-client/models/task-trigger-info-type.js +25 -0
  163. package/lib/generated-client/models/task-trigger-info.d.ts +4 -3
  164. package/lib/generated-client/models/transcode-reason.d.ts +1 -0
  165. package/lib/generated-client/models/transcode-reason.js +2 -1
  166. package/lib/generated-client/models/transcoding-info.d.ts +1 -1
  167. package/lib/generated-client/models/transcoding-profile.d.ts +1 -1
  168. package/lib/generated-client/models/trickplay-info-dto.d.ts +59 -0
  169. package/lib/generated-client/models/trickplay-info.d.ts +7 -1
  170. package/lib/generated-client/models/tuner-host-info.d.ts +6 -0
  171. package/lib/generated-client/models/user-policy.d.ts +6 -0
  172. package/lib/generated-client/models/video-range-type.d.ts +4 -0
  173. package/lib/generated-client/models/video-range-type.js +4 -0
  174. package/lib/models/api/image-request-parameters.d.ts +0 -1
  175. package/lib/models/api/index.d.ts +0 -1
  176. package/lib/models/api/index.js +1 -1
  177. package/lib/utils/api/session-api.js +16 -1
  178. package/lib/utils/api/user-api.js +26 -1
  179. package/lib/versions.d.ts +2 -2
  180. package/lib/versions.js +2 -2
  181. package/package.json +18 -16
  182. package/lib/models/api/item-sort-by.d.ts +0 -40
  183. package/lib/models/api/item-sort-by.js +0 -43
package/CHANGELOG.md ADDED
@@ -0,0 +1,142 @@
1
+ <!-- markdownlint-disable MD024 -->
2
+ # Changelog
3
+
4
+ All notable changes to this project will be documented in this file.
5
+
6
+ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
7
+
8
+ ## [Unreleased]
9
+
10
+ ## [0.13.0] - 2025-10-28
11
+
12
+ ### Changed
13
+
14
+ * Ensure `Authorization` header is sent for all requests ([#948](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/948)).
15
+
16
+ ### Deprecated
17
+
18
+ * Deprecate authentication helper methods in `Api` class ([#949](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/948)).
19
+ Updating the `accessToken` is now handled transparently in `getUserApi` and `getSessionApi`. If you need to handle
20
+ authentication manually, then you should manually create `UserApi` and `SessionApi` instances.
21
+
22
+ ## [0.12.0] - 2025-10-21
23
+
24
+ ### Security
25
+
26
+ * Bumped axios peer dependency version ([#939](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/939)).
27
+ Note that this axios vulnerability only affected applications running in node.js.
28
+
29
+ ### Added
30
+
31
+ * `getUri` utility method ([#867](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/867)).
32
+
33
+ ### Changed
34
+
35
+ * Updated minimum Jellyfin version to 10.10.0 ([#942](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/942)).
36
+ * Updated OpenAPI spec for Jellyfin 10.11.0 ([#931](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/931)).
37
+
38
+ ### Removed
39
+
40
+ * Duplicate `ItemSortBy` enum ([#842](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/842)).
41
+ * `addPlayedIndicator` from `ImageRequestParameters` ([#841](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/841)).
42
+
43
+ ## [0.11.0] - 2024-10-28
44
+
45
+ ### Changed
46
+
47
+ * Updated OpenAPI spec for Jellyfin 10.10.0 ([#816](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/816)).
48
+
49
+ ### Removed
50
+
51
+ * Deprecated image url function ([#731](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/731)).
52
+
53
+ ## [0.10.0] - 2024-06-03
54
+
55
+ ### Changed
56
+
57
+ * Update build target to ES2018 ([#712](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/712)).
58
+
59
+ ## [0.9.0] - 2024-05-14
60
+
61
+ ### Changed
62
+
63
+ * Update OpenAPI spec for Jellyfin 10.9.1 ([#694](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/694)).
64
+
65
+ ## [0.8.2] - 2023-04-12
66
+
67
+ ## [0.8.1] - 2023-03-31
68
+
69
+ ## [0.8.0] - 2023-03-30
70
+
71
+ ### Changed
72
+
73
+ * Fully target ES6/ES2015 ([#341](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/341)).
74
+ * Axios major version upgrade ([#300](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/300)).
75
+
76
+ ## [0.7.0] - 2023-09-16
77
+
78
+ ### Changed
79
+
80
+ * Rename package to @jellyfin/sdk ([#262](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/262)).
81
+
82
+ ## [0.6.0] - 2022-07-14
83
+
84
+ ### Changed
85
+
86
+ * Update OpenAPI spec for Jellyfin 10.8.1 ([#208](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/208)).
87
+
88
+ ## [0.5.0] - 2022-06-17
89
+
90
+ ### Changed
91
+
92
+ * Build directory is now `lib` instead of `dist`.
93
+ Any imports used that were previously in `dist` will need updated ([#147](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/147)).
94
+ * API classes are no longer exposed via getters.
95
+ Instead you need to call a function passing the `Api` instance as a parameter.
96
+ For example: `getSystemApi(api)`.
97
+ While I do feel this is a slightly worse developer experience, it was a necessary change to support tree-shaking
98
+ ([#149](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/149)).
99
+ * `BaseItemKind` is now included in the generated client.
100
+ Imports will need updated ([#187](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/187)).
101
+
102
+ ### Removed
103
+
104
+ * Duplicated exports were removed.
105
+ Any imports may need updated if you referenced one of the duplicates ([#148](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/148)).
106
+
107
+ ## [0.4.1] - 2022-02-17
108
+
109
+ ## [0.4.0] - 2022-02-17
110
+
111
+ ## [0.3.1] - 2022-02-03
112
+
113
+ ## [0.3.0] - 2021-10-18
114
+
115
+ ## [0.2.0] - 2021-10-08
116
+
117
+ ## [0.1.2] - 2021-09-19
118
+
119
+ ## [0.1.1] - 2021-09-19
120
+
121
+ ## [0.1.0] - 2021-09-19
122
+
123
+ [unreleased]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.13.0...HEAD
124
+ [0.13.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.12.0...v0.13.0
125
+ [0.12.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.11.0...v0.12.0
126
+ [0.11.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.10.0...v0.11.0
127
+ [0.10.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.9.0...v0.10.0
128
+ [0.9.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.8.2...v0.9.0
129
+ [0.8.2]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.8.1...v0.8.2
130
+ [0.8.1]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.8.0...v0.8.1
131
+ [0.8.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.7.0...v0.8.0
132
+ [0.7.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.6.0...v0.7.0
133
+ [0.6.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.5.0...v0.6.0
134
+ [0.5.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.4.1...v0.5.0
135
+ [0.4.1]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.4.0...v0.4.1
136
+ [0.4.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.3.1...v0.4.0
137
+ [0.3.1]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.3.0...v0.3.1
138
+ [0.3.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.2.0...v0.3.0
139
+ [0.2.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.1.2...v0.2.0
140
+ [0.1.2]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.1.1...v0.1.2
141
+ [0.1.1]: https://github.com/jellyfin/jellyfin-sdk-typescript/compare/v0.1.0...v0.1.1
142
+ [0.1.0]: https://github.com/jellyfin/jellyfin-sdk-typescript/releases/tag/v0.1.0
package/README.md CHANGED
@@ -35,6 +35,8 @@ yarn add @jellyfin/sdk
35
35
 
36
36
  | SDK Version | Jellyfin Version |
37
37
  |:-:|:-:|
38
+ | 0.13.0 | 10.11.x |
39
+ | 0.12.0 | 10.11.x |
38
40
  | 0.11.0 | 10.10.x |
39
41
  | 0.10.0 | 10.9.x |
40
42
  | 0.9.0 | 10.9.x |
@@ -91,10 +93,8 @@ console.log('Info =>', info.data);
91
93
  const users = await getUserApi(api).getPublicUsers();
92
94
  console.log('Users =>', users.data);
93
95
 
94
- // A helper method for authentication has been added to the SDK because
95
- // the default method exposed in the generated Axios client is rather
96
- // cumbersome to use.
97
- const auth = await api.authenticateUserByName('demo', '');
96
+ // Login with a username and password.
97
+ const auth = await getUserApi(this).authenticateUserByName({ authenticateUserByName: { Username: 'demo', Pw: '' } });
98
98
  console.log('Auth =>', auth.data);
99
99
 
100
100
  // Authentication state is stored internally in the Api class, so now
@@ -102,58 +102,13 @@ console.log('Auth =>', auth.data);
102
102
  const libraries = await getLibraryApi(api).getMediaFolders();
103
103
  console.log('Libraries =>', libraries.data);
104
104
 
105
- // A helper method for logging out the current user has been added to the
106
- // SDK so the internal state is updated correctly.
107
- await api.logout();
105
+ // Logout the current user.
106
+ await getSessionApi(api).reportSessionEnded();
108
107
  ```
109
108
 
110
- ## Breaking Changes
109
+ ## Significant Changes
111
110
 
112
- ### v0.11.0
113
-
114
- * Updated OpenAPI spec for Jellyfin 10.10.0. [#816](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/816)
115
-
116
- ### v0.10.0
117
-
118
- * Updated build target to ES2018. [#712](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/712)
119
-
120
- ### v0.9.0
121
-
122
- * Updated OpenAPI spec for Jellyfin 10.9.1. [#694](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/694)
123
-
124
- ### v0.8.0
125
-
126
- * The library is now fully targeted to ES6/ES2015.
127
- [#341](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/341)
128
- * Axios received a major version upgrade.
129
- [#300](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/300)
130
-
131
- ### v0.7.0
132
-
133
- * Renamed package to @jellyfin/sdk.
134
- [#262](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/262)
135
-
136
- ### v0.6.0
137
-
138
- * Updated OpenAPI spec for Jellyfin 10.8.1.
139
- [#208](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/208)
140
-
141
- ### v0.5.0
142
-
143
- * Build directory is now `lib` instead of `dist`.
144
- Any imports used that were previously in `dist` will need updated.
145
- [#147](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/147)
146
- * Duplicated exports were removed.
147
- Any imports may need updated if you referenced one of the duplicates.
148
- [#148](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/148)
149
- * API classes are no longer exposed via getters.
150
- Instead you need to call a function passing the `Api` instance as a parameter.
151
- For example: `getSystemApi(api)`.
152
- While I do feel this is a slightly worse developer experience, it was a necessary change to support tree-shaking.
153
- [#149](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/149)
154
- * `BaseItemKind` is now included in the generated client.
155
- Imports will need updated.
156
- [#187](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/187)
111
+ [See the CHANGELOG](./CHANGELOG.md)
157
112
 
158
113
  ## Roadmap to 1.0
159
114
 
package/lib/api.d.ts CHANGED
@@ -19,13 +19,22 @@ export declare class Api {
19
19
  constructor(basePath: string, clientInfo: ClientInfo, deviceInfo: DeviceInfo, accessToken?: string, axiosInstance?: AxiosInstance);
20
20
  get configuration(): Configuration;
21
21
  /**
22
- * Convenience method for authenticating a user by name and updating the internal state.
22
+ * Convenience method for authenticating a user by name.
23
+ * @deprecated Use `getUserApi().authenticateUserByName()` instead.
23
24
  * @param username The username.
24
25
  * @param password The user password if required.
25
26
  */
26
27
  authenticateUserByName(username: string, password?: string): Promise<AxiosResponse<AuthenticationResult>>;
27
28
  /**
28
- * Convenience method for logging out and updating the internal state.
29
+ * Gets a full URI for a relative URL to the Jellyfin server for a given SDK Api instance.
30
+ * @param url The relative URL.
31
+ * @param params Any URL parameters.
32
+ * @returns The complete URI with protocol, host, and base URL (if any).
33
+ */
34
+ getUri(url: string, params?: object): string;
35
+ /**
36
+ * Convenience method for logging out.
37
+ * @deprecated Use `getSessionApi().reportSessionEnded()` instead.
29
38
  */
30
39
  logout(): Promise<AxiosResponse<never> | AxiosResponse<void>>;
31
40
  get authorizationHeader(): string;
package/lib/api.js CHANGED
@@ -19,33 +19,43 @@ class Api {
19
19
  get configuration() {
20
20
  return new Configuration({
21
21
  basePath: this.basePath,
22
- apiKey: this.authorizationHeader
22
+ baseOptions: {
23
+ headers: {
24
+ [AUTHORIZATION_HEADER]: this.authorizationHeader
25
+ }
26
+ }
23
27
  });
24
28
  }
25
29
  /**
26
- * Convenience method for authenticating a user by name and updating the internal state.
30
+ * Convenience method for authenticating a user by name.
31
+ * @deprecated Use `getUserApi().authenticateUserByName()` instead.
27
32
  * @param username The username.
28
33
  * @param password The user password if required.
29
34
  */
30
35
  authenticateUserByName(username, password) {
31
36
  return getUserApi(this).authenticateUserByName(
32
37
  // 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;
38
+ { authenticateUserByName: { Username: username, Pw: password } });
39
+ }
40
+ /**
41
+ * Gets a full URI for a relative URL to the Jellyfin server for a given SDK Api instance.
42
+ * @param url The relative URL.
43
+ * @param params Any URL parameters.
44
+ * @returns The complete URI with protocol, host, and base URL (if any).
45
+ */
46
+ getUri(url, params) {
47
+ return this.axiosInstance.getUri({
48
+ baseURL: this.basePath,
49
+ url,
50
+ params
39
51
  });
40
52
  }
41
53
  /**
42
- * Convenience method for logging out and updating the internal state.
54
+ * Convenience method for logging out.
55
+ * @deprecated Use `getSessionApi().reportSessionEnded()` instead.
43
56
  */
44
57
  logout() {
45
- return getSessionApi(this).reportSessionEnded().then(response => {
46
- this.accessToken = '';
47
- return response;
48
- });
58
+ return getSessionApi(this).reportSessionEnded();
49
59
  }
50
60
  get authorizationHeader() {
51
61
  return getAuthorizationHeader(this.clientInfo, this.deviceInfo, this.accessToken);
@@ -106,5 +106,5 @@ export declare class ActivityLogApi extends BaseAPI {
106
106
  * @throws {RequiredError}
107
107
  * @memberof ActivityLogApi
108
108
  */
109
- getLogEntries(requestParameters?: ActivityLogApiGetLogEntriesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ActivityLogEntryQueryResult, any>>;
109
+ getLogEntries(requestParameters?: ActivityLogApiGetLogEntriesRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<ActivityLogEntryQueryResult, any, {}>>;
110
110
  }
@@ -140,7 +140,7 @@ export declare class ApiKeyApi extends BaseAPI {
140
140
  * @throws {RequiredError}
141
141
  * @memberof ApiKeyApi
142
142
  */
143
- createKey(requestParameters: ApiKeyApiCreateKeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
143
+ createKey(requestParameters: ApiKeyApiCreateKeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
144
144
  /**
145
145
  *
146
146
  * @summary Get all keys.
@@ -148,7 +148,7 @@ export declare class ApiKeyApi extends BaseAPI {
148
148
  * @throws {RequiredError}
149
149
  * @memberof ApiKeyApi
150
150
  */
151
- getKeys(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AuthenticationInfoQueryResult, any>>;
151
+ getKeys(options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<AuthenticationInfoQueryResult, any, {}>>;
152
152
  /**
153
153
  *
154
154
  * @summary Remove an api key.
@@ -157,5 +157,5 @@ export declare class ApiKeyApi extends BaseAPI {
157
157
  * @throws {RequiredError}
158
158
  * @memberof ApiKeyApi
159
159
  */
160
- revokeKey(requestParameters: ApiKeyApiRevokeKeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any>>;
160
+ revokeKey(requestParameters: ApiKeyApiRevokeKeyRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<void, any, {}>>;
161
161
  }
@@ -668,7 +668,7 @@ export declare class ArtistsApi extends BaseAPI {
668
668
  * @throws {RequiredError}
669
669
  * @memberof ArtistsApi
670
670
  */
671
- getAlbumArtists(requestParameters?: ArtistsApiGetAlbumArtistsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDtoQueryResult, any>>;
671
+ getAlbumArtists(requestParameters?: ArtistsApiGetAlbumArtistsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDtoQueryResult, any, {}>>;
672
672
  /**
673
673
  *
674
674
  * @summary Gets an artist by name.
@@ -677,7 +677,7 @@ export declare class ArtistsApi extends BaseAPI {
677
677
  * @throws {RequiredError}
678
678
  * @memberof ArtistsApi
679
679
  */
680
- getArtistByName(requestParameters: ArtistsApiGetArtistByNameRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDto, any>>;
680
+ getArtistByName(requestParameters: ArtistsApiGetArtistByNameRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDto, any, {}>>;
681
681
  /**
682
682
  *
683
683
  * @summary Gets all artists from a given item, folder, or the entire library.
@@ -686,5 +686,5 @@ export declare class ArtistsApi extends BaseAPI {
686
686
  * @throws {RequiredError}
687
687
  * @memberof ArtistsApi
688
688
  */
689
- getArtists(requestParameters?: ArtistsApiGetArtistsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDtoQueryResult, any>>;
689
+ getArtists(requestParameters?: ArtistsApiGetArtistsRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<BaseItemDtoQueryResult, any, {}>>;
690
690
  }
@@ -117,7 +117,7 @@ export declare const AudioApiAxiosParamCreator: (configuration?: Configuration)
117
117
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
118
118
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
119
119
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
120
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
120
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
121
121
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
122
122
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
123
123
  * @param {string} [liveStreamId] The live stream id.
@@ -235,7 +235,7 @@ export declare const AudioApiAxiosParamCreator: (configuration?: Configuration)
235
235
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
236
236
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
237
237
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
238
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
238
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
239
239
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
240
240
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
241
241
  * @param {string} [liveStreamId] The live stream id.
@@ -359,7 +359,7 @@ export declare const AudioApiFp: (configuration?: Configuration) => {
359
359
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
360
360
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
361
361
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
362
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
362
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
363
363
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
364
364
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
365
365
  * @param {string} [liveStreamId] The live stream id.
@@ -477,7 +477,7 @@ export declare const AudioApiFp: (configuration?: Configuration) => {
477
477
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
478
478
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
479
479
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
480
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
480
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
481
481
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
482
482
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
483
483
  * @param {string} [liveStreamId] The live stream id.
@@ -1073,7 +1073,7 @@ export interface AudioApiGetAudioStreamByContainerRequest {
1073
1073
  */
1074
1074
  readonly deInterlace?: boolean;
1075
1075
  /**
1076
- * Optional. Whether to require a non anamporphic stream.
1076
+ * Optional. Whether to require a non anamorphic stream.
1077
1077
  * @type {boolean}
1078
1078
  * @memberof AudioApiGetAudioStreamByContainer
1079
1079
  */
@@ -1691,7 +1691,7 @@ export interface AudioApiHeadAudioStreamByContainerRequest {
1691
1691
  */
1692
1692
  readonly deInterlace?: boolean;
1693
1693
  /**
1694
- * Optional. Whether to require a non anamporphic stream.
1694
+ * Optional. Whether to require a non anamorphic stream.
1695
1695
  * @type {boolean}
1696
1696
  * @memberof AudioApiHeadAudioStreamByContainer
1697
1697
  */
@@ -1786,7 +1786,7 @@ export declare class AudioApi extends BaseAPI {
1786
1786
  * @throws {RequiredError}
1787
1787
  * @memberof AudioApi
1788
1788
  */
1789
- getAudioStream(requestParameters: AudioApiGetAudioStreamRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any>>;
1789
+ getAudioStream(requestParameters: AudioApiGetAudioStreamRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
1790
1790
  /**
1791
1791
  *
1792
1792
  * @summary Gets an audio stream.
@@ -1795,7 +1795,7 @@ export declare class AudioApi extends BaseAPI {
1795
1795
  * @throws {RequiredError}
1796
1796
  * @memberof AudioApi
1797
1797
  */
1798
- getAudioStreamByContainer(requestParameters: AudioApiGetAudioStreamByContainerRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any>>;
1798
+ getAudioStreamByContainer(requestParameters: AudioApiGetAudioStreamByContainerRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
1799
1799
  /**
1800
1800
  *
1801
1801
  * @summary Gets an audio stream.
@@ -1804,7 +1804,7 @@ export declare class AudioApi extends BaseAPI {
1804
1804
  * @throws {RequiredError}
1805
1805
  * @memberof AudioApi
1806
1806
  */
1807
- headAudioStream(requestParameters: AudioApiHeadAudioStreamRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any>>;
1807
+ headAudioStream(requestParameters: AudioApiHeadAudioStreamRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
1808
1808
  /**
1809
1809
  *
1810
1810
  * @summary Gets an audio stream.
@@ -1813,5 +1813,5 @@ export declare class AudioApi extends BaseAPI {
1813
1813
  * @throws {RequiredError}
1814
1814
  * @memberof AudioApi
1815
1815
  */
1816
- headAudioStreamByContainer(requestParameters: AudioApiHeadAudioStreamByContainerRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any>>;
1816
+ headAudioStreamByContainer(requestParameters: AudioApiHeadAudioStreamByContainerRequest, options?: RawAxiosRequestConfig): Promise<import("axios").AxiosResponse<File, any, {}>>;
1817
1817
  }
@@ -287,7 +287,7 @@ const AudioApiAxiosParamCreator = function (configuration) {
287
287
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
288
288
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
289
289
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
290
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
290
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
291
291
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
292
292
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
293
293
  * @param {string} [liveStreamId] The live stream id.
@@ -741,7 +741,7 @@ const AudioApiAxiosParamCreator = function (configuration) {
741
741
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
742
742
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
743
743
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
744
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
744
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
745
745
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
746
746
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
747
747
  * @param {string} [liveStreamId] The live stream id.
@@ -1040,7 +1040,7 @@ const AudioApiFp = function (configuration) {
1040
1040
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
1041
1041
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
1042
1042
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
1043
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
1043
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
1044
1044
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
1045
1045
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
1046
1046
  * @param {string} [liveStreamId] The live stream id.
@@ -1166,7 +1166,7 @@ const AudioApiFp = function (configuration) {
1166
1166
  * @param {number} [maxVideoBitDepth] Optional. The maximum video bit depth.
1167
1167
  * @param {boolean} [requireAvc] Optional. Whether to require avc.
1168
1168
  * @param {boolean} [deInterlace] Optional. Whether to deinterlace the video.
1169
- * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamporphic stream.
1169
+ * @param {boolean} [requireNonAnamorphic] Optional. Whether to require a non anamorphic stream.
1170
1170
  * @param {number} [transcodingMaxAudioChannels] Optional. The maximum number of audio channels to transcode.
1171
1171
  * @param {number} [cpuCoreLimit] Optional. The limit of how many cpu cores to use.
1172
1172
  * @param {string} [liveStreamId] The live stream id.