@jellyfin/sdk 0.7.0 → 0.8.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +23 -9
- package/lib/api.d.ts +4 -4
- package/lib/api.js +38 -68
- package/lib/discovery/discovery-service.d.ts +3 -1
- package/lib/discovery/discovery-service.js +27 -68
- package/lib/discovery/index.js +3 -18
- package/lib/discovery/recommended-server-discovery.d.ts +3 -1
- package/lib/discovery/recommended-server-discovery.js +56 -102
- package/lib/generated-client/api/activity-log-api.d.ts +4 -4
- package/lib/generated-client/api/activity-log-api.js +58 -165
- package/lib/generated-client/api/api-key-api.d.ts +10 -10
- package/lib/generated-client/api/api-key-api.js +112 -254
- package/lib/generated-client/api/artists-api.d.ts +10 -10
- package/lib/generated-client/api/artists-api.js +302 -446
- package/lib/generated-client/api/audio-api.d.ts +13 -13
- package/lib/generated-client/api/audio-api.js +714 -850
- package/lib/generated-client/api/branding-api.d.ts +10 -10
- package/lib/generated-client/api/branding-api.js +98 -222
- package/lib/generated-client/api/channels-api.d.ts +16 -16
- package/lib/generated-client/api/channels-api.js +230 -410
- package/lib/generated-client/api/client-log-api.d.ts +4 -4
- package/lib/generated-client/api/client-log-api.js +46 -153
- package/lib/generated-client/api/collection-api.d.ts +10 -10
- package/lib/generated-client/api/collection-api.js +132 -275
- package/lib/generated-client/api/configuration-api.d.ts +19 -19
- package/lib/generated-client/api/configuration-api.js +212 -408
- package/lib/generated-client/api/dashboard-api.d.ts +7 -7
- package/lib/generated-client/api/dashboard-api.js +78 -198
- package/lib/generated-client/api/devices-api.d.ts +16 -16
- package/lib/generated-client/api/devices-api.js +194 -373
- package/lib/generated-client/api/display-preferences-api.d.ts +7 -7
- package/lib/generated-client/api/display-preferences-api.js +104 -228
- package/lib/generated-client/api/dlna-api.d.ts +19 -19
- package/lib/generated-client/api/dlna-api.js +207 -404
- package/lib/generated-client/api/dlna-server-api.d.ts +49 -49
- package/lib/generated-client/api/dlna-server-api.js +545 -921
- package/lib/generated-client/api/dynamic-hls-api.d.ts +28 -28
- package/lib/generated-client/api/dynamic-hls-api.js +1686 -1936
- package/lib/generated-client/api/environment-api.d.ts +19 -19
- package/lib/generated-client/api/environment-api.js +214 -410
- package/lib/generated-client/api/filter-api.d.ts +7 -7
- package/lib/generated-client/api/filter-api.js +116 -242
- package/lib/generated-client/api/genres-api.d.ts +7 -7
- package/lib/generated-client/api/genres-api.js +134 -259
- package/lib/generated-client/api/hls-segment-api.d.ts +16 -16
- package/lib/generated-client/api/hls-segment-api.js +198 -358
- package/lib/generated-client/api/image-api.d.ts +124 -124
- package/lib/generated-client/api/image-api.js +2914 -3568
- package/lib/generated-client/api/image-by-name-api.d.ts +19 -19
- package/lib/generated-client/api/image-by-name-api.js +206 -384
- package/lib/generated-client/api/instant-mix-api.d.ts +25 -25
- package/lib/generated-client/api/instant-mix-api.js +450 -682
- package/lib/generated-client/api/item-lookup-api.d.ts +34 -34
- package/lib/generated-client/api/item-lookup-api.js +393 -679
- package/lib/generated-client/api/item-refresh-api.d.ts +4 -4
- package/lib/generated-client/api/item-refresh-api.js +59 -165
- package/lib/generated-client/api/item-update-api.d.ts +10 -10
- package/lib/generated-client/api/item-update-api.js +120 -262
- package/lib/generated-client/api/items-api.d.ts +10 -10
- package/lib/generated-client/api/items-api.js +675 -818
- package/lib/generated-client/api/library-api.d.ts +76 -76
- package/lib/generated-client/api/library-api.js +939 -1485
- package/lib/generated-client/api/library-structure-api.d.ts +25 -25
- package/lib/generated-client/api/library-structure-api.js +305 -542
- package/lib/generated-client/api/live-tv-api.d.ts +124 -124
- package/lib/generated-client/api/live-tv-api.js +1674 -2509
- package/lib/generated-client/api/localization-api.d.ts +13 -13
- package/lib/generated-client/api/localization-api.js +134 -294
- package/lib/generated-client/api/media-info-api.d.ts +16 -16
- package/lib/generated-client/api/media-info-api.js +262 -442
- package/lib/generated-client/api/movies-api.d.ts +4 -4
- package/lib/generated-client/api/movies-api.js +59 -166
- package/lib/generated-client/api/music-genres-api.d.ts +7 -7
- package/lib/generated-client/api/music-genres-api.js +134 -259
- package/lib/generated-client/api/notifications-api.d.ts +22 -22
- package/lib/generated-client/api/notifications-api.js +240 -454
- package/lib/generated-client/api/package-api.d.ts +19 -19
- package/lib/generated-client/api/package-api.js +219 -415
- package/lib/generated-client/api/persons-api.d.ts +7 -7
- package/lib/generated-client/api/persons-api.js +119 -244
- package/lib/generated-client/api/playlists-api.d.ts +16 -16
- package/lib/generated-client/api/playlists-api.js +231 -410
- package/lib/generated-client/api/playstate-api.d.ts +28 -28
- package/lib/generated-client/api/playstate-api.js +399 -652
- package/lib/generated-client/api/plugins-api.d.ts +28 -28
- package/lib/generated-client/api/plugins-api.js +320 -570
- package/lib/generated-client/api/quick-connect-api.d.ts +13 -13
- package/lib/generated-client/api/quick-connect-api.js +138 -280
- package/lib/generated-client/api/remote-image-api.d.ts +10 -10
- package/lib/generated-client/api/remote-image-api.js +136 -278
- package/lib/generated-client/api/scheduled-tasks-api.d.ts +16 -16
- package/lib/generated-client/api/scheduled-tasks-api.js +186 -365
- package/lib/generated-client/api/search-api.d.ts +4 -4
- package/lib/generated-client/api/search-api.js +100 -206
- package/lib/generated-client/api/session-api.d.ts +49 -49
- package/lib/generated-client/api/session-api.js +632 -1010
- package/lib/generated-client/api/startup-api.d.ts +22 -22
- package/lib/generated-client/api/startup-api.js +234 -449
- package/lib/generated-client/api/studios-api.d.ts +7 -7
- package/lib/generated-client/api/studios-api.js +131 -256
- package/lib/generated-client/api/subtitle-api.d.ts +31 -31
- package/lib/generated-client/api/subtitle-api.js +433 -689
- package/lib/generated-client/api/suggestions-api.d.ts +4 -4
- package/lib/generated-client/api/suggestions-api.js +62 -168
- package/lib/generated-client/api/sync-play-api.d.ts +64 -64
- package/lib/generated-client/api/sync-play-api.js +708 -1174
- package/lib/generated-client/api/system-api.d.ts +31 -31
- package/lib/generated-client/api/system-api.js +313 -563
- package/lib/generated-client/api/time-sync-api.d.ts +4 -4
- package/lib/generated-client/api/time-sync-api.js +42 -142
- package/lib/generated-client/api/tmdb-api.d.ts +4 -4
- package/lib/generated-client/api/tmdb-api.js +44 -150
- package/lib/generated-client/api/trailers-api.d.ts +4 -4
- package/lib/generated-client/api/trailers-api.js +304 -411
- package/lib/generated-client/api/tv-shows-api.d.ts +13 -13
- package/lib/generated-client/api/tv-shows-api.js +280 -442
- package/lib/generated-client/api/universal-audio-api.d.ts +7 -7
- package/lib/generated-client/api/universal-audio-api.js +182 -306
- package/lib/generated-client/api/user-api.d.ts +49 -49
- package/lib/generated-client/api/user-api.js +560 -901
- package/lib/generated-client/api/user-library-api.d.ts +31 -31
- package/lib/generated-client/api/user-library-api.js +401 -669
- package/lib/generated-client/api/user-views-api.d.ts +7 -7
- package/lib/generated-client/api/user-views-api.js +89 -213
- package/lib/generated-client/api/video-attachments-api.d.ts +4 -4
- package/lib/generated-client/api/video-attachments-api.js +51 -151
- package/lib/generated-client/api/videos-api.d.ts +22 -22
- package/lib/generated-client/api/videos-api.js +842 -1032
- package/lib/generated-client/api/years-api.d.ts +7 -7
- package/lib/generated-client/api/years-api.js +125 -250
- package/lib/generated-client/base.d.ts +2 -2
- package/lib/generated-client/base.js +14 -64
- package/lib/generated-client/common.d.ts +2 -2
- package/lib/generated-client/common.js +28 -184
- package/lib/generated-client/configuration.js +8 -12
- package/lib/generated-client/index.js +136 -31
- package/lib/generated-client/models/access-schedule.d.ts +5 -5
- package/lib/generated-client/models/activity-log-entry-query-result.d.ts +3 -3
- package/lib/generated-client/models/activity-log-entry.d.ts +10 -10
- package/lib/generated-client/models/add-virtual-folder-dto.d.ts +1 -1
- package/lib/generated-client/models/admin-notification-dto.d.ts +4 -4
- package/lib/generated-client/models/album-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/album-info.d.ts +14 -14
- package/lib/generated-client/models/all-theme-media-result.d.ts +3 -3
- package/lib/generated-client/models/architecture.d.ts +9 -8
- package/lib/generated-client/models/architecture.js +10 -12
- package/lib/generated-client/models/artist-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/artist-info.d.ts +12 -12
- package/lib/generated-client/models/authenticate-user-by-name.d.ts +3 -3
- package/lib/generated-client/models/authentication-info-query-result.d.ts +3 -3
- package/lib/generated-client/models/authentication-info.d.ts +12 -12
- package/lib/generated-client/models/authentication-result.d.ts +4 -4
- package/lib/generated-client/models/base-item-dto-image-blur-hashes.d.ts +13 -13
- package/lib/generated-client/models/base-item-dto-query-result.d.ts +3 -3
- package/lib/generated-client/models/base-item-dto.d.ts +151 -151
- package/lib/generated-client/models/base-item-kind.d.ts +40 -39
- package/lib/generated-client/models/base-item-kind.js +41 -43
- package/lib/generated-client/models/base-item-person-image-blur-hashes.d.ts +13 -13
- package/lib/generated-client/models/base-item-person.d.ts +6 -6
- package/lib/generated-client/models/base-item.d.ts +11 -11
- package/lib/generated-client/models/book-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/book-info.d.ts +12 -12
- package/lib/generated-client/models/box-set-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/box-set-info.d.ts +11 -11
- package/lib/generated-client/models/branding-options.d.ts +3 -3
- package/lib/generated-client/models/buffer-request-dto.d.ts +4 -4
- package/lib/generated-client/models/channel-features.d.ts +12 -12
- package/lib/generated-client/models/channel-item-sort-field.d.ts +10 -9
- package/lib/generated-client/models/channel-item-sort-field.js +11 -13
- package/lib/generated-client/models/channel-mapping-options-dto.d.ts +4 -4
- package/lib/generated-client/models/channel-media-content-type.d.ts +11 -10
- package/lib/generated-client/models/channel-media-content-type.js +12 -14
- package/lib/generated-client/models/channel-media-type.d.ts +6 -5
- package/lib/generated-client/models/channel-media-type.js +7 -9
- package/lib/generated-client/models/channel-type.d.ts +5 -4
- package/lib/generated-client/models/channel-type.js +6 -8
- package/lib/generated-client/models/chapter-info.d.ts +5 -5
- package/lib/generated-client/models/client-capabilities-dto.d.ts +10 -10
- package/lib/generated-client/models/client-capabilities.d.ts +10 -10
- package/lib/generated-client/models/client-log-document-response-dto.d.ts +1 -1
- package/lib/generated-client/models/codec-profile.d.ts +5 -5
- package/lib/generated-client/models/codec-type.d.ts +6 -5
- package/lib/generated-client/models/codec-type.js +7 -9
- package/lib/generated-client/models/collection-creation-result.d.ts +1 -1
- package/lib/generated-client/models/collection-type-options.d.ts +11 -10
- package/lib/generated-client/models/collection-type-options.js +12 -14
- package/lib/generated-client/models/config-image-types.d.ts +7 -7
- package/lib/generated-client/models/configuration-page-info.d.ts +6 -6
- package/lib/generated-client/models/container-profile.d.ts +3 -3
- package/lib/generated-client/models/control-response.d.ts +3 -3
- package/lib/generated-client/models/country-info.d.ts +4 -4
- package/lib/generated-client/models/create-playlist-dto.d.ts +4 -4
- package/lib/generated-client/models/create-user-by-name.d.ts +2 -2
- package/lib/generated-client/models/culture-dto.d.ts +5 -5
- package/lib/generated-client/models/day-of-week.d.ts +10 -9
- package/lib/generated-client/models/day-of-week.js +11 -13
- package/lib/generated-client/models/day-pattern.d.ts +6 -5
- package/lib/generated-client/models/day-pattern.js +7 -9
- package/lib/generated-client/models/default-directory-browser-info-dto.d.ts +1 -1
- package/lib/generated-client/models/device-identification.d.ts +9 -9
- package/lib/generated-client/models/device-info-query-result.d.ts +3 -3
- package/lib/generated-client/models/device-info.d.ts +10 -10
- package/lib/generated-client/models/device-options-dto.d.ts +3 -3
- package/lib/generated-client/models/device-options.d.ts +3 -3
- package/lib/generated-client/models/device-profile-info.d.ts +3 -3
- package/lib/generated-client/models/device-profile-type.d.ts +5 -4
- package/lib/generated-client/models/device-profile-type.js +6 -8
- package/lib/generated-client/models/device-profile.d.ts +39 -39
- package/lib/generated-client/models/direct-play-profile.d.ts +4 -4
- package/lib/generated-client/models/display-preferences-dto.d.ts +14 -14
- package/lib/generated-client/models/dlna-options.d.ts +11 -11
- package/lib/generated-client/models/dlna-profile-type.d.ts +7 -6
- package/lib/generated-client/models/dlna-profile-type.js +8 -10
- package/lib/generated-client/models/dynamic-day-of-week.d.ts +13 -12
- package/lib/generated-client/models/dynamic-day-of-week.js +14 -16
- package/lib/generated-client/models/embedded-subtitle-options.d.ts +7 -6
- package/lib/generated-client/models/embedded-subtitle-options.js +8 -10
- package/lib/generated-client/models/encoding-context.d.ts +5 -4
- package/lib/generated-client/models/encoding-context.js +6 -8
- package/lib/generated-client/models/encoding-options.d.ts +38 -38
- package/lib/generated-client/models/end-point-info.d.ts +2 -2
- package/lib/generated-client/models/external-id-info.d.ts +4 -4
- package/lib/generated-client/models/external-id-media-type.d.ts +15 -14
- package/lib/generated-client/models/external-id-media-type.js +16 -18
- package/lib/generated-client/models/external-url.d.ts +2 -2
- package/lib/generated-client/models/ffmpeg-location.d.ts +7 -6
- package/lib/generated-client/models/ffmpeg-location.js +8 -10
- package/lib/generated-client/models/file-system-entry-info.d.ts +3 -3
- package/lib/generated-client/models/file-system-entry-type.d.ts +7 -6
- package/lib/generated-client/models/file-system-entry-type.js +8 -10
- package/lib/generated-client/models/font-file.d.ts +4 -4
- package/lib/generated-client/models/forgot-password-action.d.ts +6 -5
- package/lib/generated-client/models/forgot-password-action.js +7 -9
- package/lib/generated-client/models/forgot-password-dto.d.ts +1 -1
- package/lib/generated-client/models/forgot-password-pin-dto.d.ts +1 -1
- package/lib/generated-client/models/forgot-password-result.d.ts +3 -3
- package/lib/generated-client/models/general-command-type.d.ts +45 -44
- package/lib/generated-client/models/general-command-type.js +46 -48
- package/lib/generated-client/models/general-command.d.ts +3 -3
- package/lib/generated-client/models/get-programs-dto.d.ts +27 -27
- package/lib/generated-client/models/group-info-dto.d.ts +5 -5
- package/lib/generated-client/models/group-queue-mode.d.ts +5 -4
- package/lib/generated-client/models/group-queue-mode.js +6 -8
- package/lib/generated-client/models/group-repeat-mode.d.ts +6 -5
- package/lib/generated-client/models/group-repeat-mode.js +7 -9
- package/lib/generated-client/models/group-shuffle-mode.d.ts +5 -4
- package/lib/generated-client/models/group-shuffle-mode.js +6 -8
- package/lib/generated-client/models/group-state-type.d.ts +7 -6
- package/lib/generated-client/models/group-state-type.js +8 -10
- package/lib/generated-client/models/group-update-type.d.ts +14 -13
- package/lib/generated-client/models/group-update-type.js +15 -17
- package/lib/generated-client/models/guide-info.d.ts +2 -2
- package/lib/generated-client/models/hardware-encoding-type.d.ts +9 -8
- package/lib/generated-client/models/hardware-encoding-type.js +10 -12
- package/lib/generated-client/models/header-match-type.d.ts +6 -5
- package/lib/generated-client/models/header-match-type.js +7 -9
- package/lib/generated-client/models/http-header-info.d.ts +3 -3
- package/lib/generated-client/models/ignore-wait-request-dto.d.ts +1 -1
- package/lib/generated-client/models/image-by-name-info.d.ts +5 -5
- package/lib/generated-client/models/image-format.d.ts +8 -7
- package/lib/generated-client/models/image-format.js +9 -11
- package/lib/generated-client/models/image-info.d.ts +8 -8
- package/lib/generated-client/models/image-option.d.ts +3 -3
- package/lib/generated-client/models/image-orientation.d.ts +11 -10
- package/lib/generated-client/models/image-orientation.js +12 -14
- package/lib/generated-client/models/image-provider-info.d.ts +2 -2
- package/lib/generated-client/models/image-saving-convention.d.ts +5 -4
- package/lib/generated-client/models/image-saving-convention.js +6 -8
- package/lib/generated-client/models/image-type.d.ts +16 -15
- package/lib/generated-client/models/image-type.js +17 -19
- package/lib/generated-client/models/index.d.ts +1 -0
- package/lib/generated-client/models/index.js +74 -300
- package/lib/generated-client/models/installation-info.d.ts +7 -7
- package/lib/generated-client/models/iplugin.d.ts +7 -7
- package/lib/generated-client/models/iso-type.d.ts +5 -4
- package/lib/generated-client/models/iso-type.js +6 -8
- package/lib/generated-client/models/item-counts.d.ts +12 -12
- package/lib/generated-client/models/item-fields.d.ts +64 -63
- package/lib/generated-client/models/item-fields.js +65 -67
- package/lib/generated-client/models/item-filter.d.ts +12 -11
- package/lib/generated-client/models/item-filter.js +13 -15
- package/lib/generated-client/models/join-group-request-dto.d.ts +1 -1
- package/lib/generated-client/models/keep-until.d.ts +7 -6
- package/lib/generated-client/models/keep-until.js +8 -10
- package/lib/generated-client/models/library-option-info-dto.d.ts +2 -2
- package/lib/generated-client/models/library-options-result-dto.d.ts +4 -4
- package/lib/generated-client/models/library-options.d.ts +27 -27
- package/lib/generated-client/models/library-type-options-dto.d.ts +5 -5
- package/lib/generated-client/models/library-update-info.d.ts +7 -7
- package/lib/generated-client/models/listings-provider-info.d.ts +18 -18
- package/lib/generated-client/models/live-stream-response.d.ts +1 -1
- package/lib/generated-client/models/live-tv-info.d.ts +3 -3
- package/lib/generated-client/models/live-tv-options.d.ts +13 -13
- package/lib/generated-client/models/live-tv-service-info.d.ts +8 -8
- package/lib/generated-client/models/live-tv-service-status.d.ts +5 -4
- package/lib/generated-client/models/live-tv-service-status.js +6 -8
- package/lib/generated-client/models/localization-option.d.ts +2 -2
- package/lib/generated-client/models/location-type.d.ts +7 -6
- package/lib/generated-client/models/location-type.js +8 -10
- package/lib/generated-client/models/log-file.d.ts +4 -4
- package/lib/generated-client/models/log-level.d.ts +10 -9
- package/lib/generated-client/models/log-level.js +11 -13
- package/lib/generated-client/models/media-attachment.d.ts +7 -7
- package/lib/generated-client/models/media-encoder-path-dto.d.ts +2 -2
- package/lib/generated-client/models/media-path-dto.d.ts +3 -3
- package/lib/generated-client/models/media-path-info.d.ts +2 -2
- package/lib/generated-client/models/media-protocol.d.ts +10 -9
- package/lib/generated-client/models/media-protocol.js +11 -13
- package/lib/generated-client/models/media-source-info.d.ts +42 -42
- package/lib/generated-client/models/media-source-type.d.ts +6 -5
- package/lib/generated-client/models/media-source-type.js +7 -9
- package/lib/generated-client/models/media-stream-type.d.ts +8 -6
- package/lib/generated-client/models/media-stream-type.js +9 -10
- package/lib/generated-client/models/media-stream.d.ts +58 -58
- package/lib/generated-client/models/media-update-info-dto.d.ts +1 -1
- package/lib/generated-client/models/media-update-info-path-dto.d.ts +2 -2
- package/lib/generated-client/models/media-url.d.ts +2 -2
- package/lib/generated-client/models/message-command.d.ts +3 -3
- package/lib/generated-client/models/metadata-configuration.d.ts +1 -1
- package/lib/generated-client/models/metadata-editor-info.d.ts +6 -6
- package/lib/generated-client/models/metadata-field.d.ts +12 -11
- package/lib/generated-client/models/metadata-field.js +13 -15
- package/lib/generated-client/models/metadata-options.d.ts +7 -7
- package/lib/generated-client/models/metadata-refresh-mode.d.ts +7 -6
- package/lib/generated-client/models/metadata-refresh-mode.js +8 -10
- package/lib/generated-client/models/move-playlist-item-request-dto.d.ts +2 -2
- package/lib/generated-client/models/movie-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/movie-info.d.ts +11 -11
- package/lib/generated-client/models/music-video-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/music-video-info.d.ts +12 -12
- package/lib/generated-client/models/name-guid-pair.d.ts +2 -2
- package/lib/generated-client/models/name-id-pair.d.ts +2 -2
- package/lib/generated-client/models/name-value-pair.d.ts +2 -2
- package/lib/generated-client/models/network-configuration.d.ts +34 -34
- package/lib/generated-client/models/new-group-request-dto.d.ts +1 -1
- package/lib/generated-client/models/next-item-request-dto.d.ts +1 -1
- package/lib/generated-client/models/notification-dto.d.ts +8 -8
- package/lib/generated-client/models/notification-level.d.ts +6 -5
- package/lib/generated-client/models/notification-level.js +7 -9
- package/lib/generated-client/models/notification-option.d.ts +6 -6
- package/lib/generated-client/models/notification-options.d.ts +1 -1
- package/lib/generated-client/models/notification-result-dto.d.ts +2 -2
- package/lib/generated-client/models/notification-type-info.d.ts +5 -5
- package/lib/generated-client/models/notifications-summary-dto.d.ts +2 -2
- package/lib/generated-client/models/object-group-update.d.ts +3 -3
- package/lib/generated-client/models/open-live-stream-dto.d.ts +13 -13
- package/lib/generated-client/models/package-info.d.ts +8 -8
- package/lib/generated-client/models/parental-rating.d.ts +2 -2
- package/lib/generated-client/models/path-substitution.d.ts +2 -2
- package/lib/generated-client/models/person-lookup-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/person-lookup-info.d.ts +11 -11
- package/lib/generated-client/models/pin-redeem-result.d.ts +2 -2
- package/lib/generated-client/models/ping-request-dto.d.ts +1 -1
- package/lib/generated-client/models/play-access.d.ts +5 -4
- package/lib/generated-client/models/play-access.js +6 -8
- package/lib/generated-client/models/play-command.d.ts +8 -7
- package/lib/generated-client/models/play-command.js +9 -11
- package/lib/generated-client/models/play-method.d.ts +6 -5
- package/lib/generated-client/models/play-method.js +7 -9
- package/lib/generated-client/models/play-request-dto.d.ts +3 -3
- package/lib/generated-client/models/play-request.d.ts +8 -8
- package/lib/generated-client/models/playback-error-code.d.ts +6 -5
- package/lib/generated-client/models/playback-error-code.js +7 -9
- package/lib/generated-client/models/playback-info-dto.d.ts +15 -15
- package/lib/generated-client/models/playback-info-response.d.ts +3 -3
- package/lib/generated-client/models/playback-progress-info.d.ts +20 -20
- package/lib/generated-client/models/playback-start-info.d.ts +20 -20
- package/lib/generated-client/models/playback-stop-info.d.ts +11 -11
- package/lib/generated-client/models/player-state-info.d.ts +11 -11
- package/lib/generated-client/models/playlist-creation-result.d.ts +1 -1
- package/lib/generated-client/models/playstate-command.d.ts +12 -11
- package/lib/generated-client/models/playstate-command.js +13 -15
- package/lib/generated-client/models/playstate-request.d.ts +3 -3
- package/lib/generated-client/models/plugin-info.d.ts +8 -8
- package/lib/generated-client/models/plugin-status.d.ts +10 -9
- package/lib/generated-client/models/plugin-status.js +11 -13
- package/lib/generated-client/models/previous-item-request-dto.d.ts +1 -1
- package/lib/generated-client/models/problem-details.d.ts +5 -5
- package/lib/generated-client/models/profile-condition-type.d.ts +8 -7
- package/lib/generated-client/models/profile-condition-type.js +9 -11
- package/lib/generated-client/models/profile-condition-value.d.ts +27 -26
- package/lib/generated-client/models/profile-condition-value.js +28 -30
- package/lib/generated-client/models/profile-condition.d.ts +4 -4
- package/lib/generated-client/models/program-audio.d.ts +9 -8
- package/lib/generated-client/models/program-audio.js +10 -12
- package/lib/generated-client/models/public-system-info.d.ts +7 -7
- package/lib/generated-client/models/query-filters-legacy.d.ts +4 -4
- package/lib/generated-client/models/query-filters.d.ts +2 -2
- package/lib/generated-client/models/queue-item.d.ts +2 -2
- package/lib/generated-client/models/queue-request-dto.d.ts +2 -2
- package/lib/generated-client/models/quick-connect-dto.d.ts +1 -1
- package/lib/generated-client/models/quick-connect-result.d.ts +8 -8
- package/lib/generated-client/models/rating-type.d.ts +5 -4
- package/lib/generated-client/models/rating-type.js +6 -8
- package/lib/generated-client/models/ready-request-dto.d.ts +4 -4
- package/lib/generated-client/models/recommendation-dto.d.ts +4 -4
- package/lib/generated-client/models/recommendation-type.d.ts +9 -8
- package/lib/generated-client/models/recommendation-type.js +10 -12
- package/lib/generated-client/models/recording-status.d.ts +10 -9
- package/lib/generated-client/models/recording-status.js +11 -13
- package/lib/generated-client/models/remote-image-info.d.ts +10 -10
- package/lib/generated-client/models/remote-image-result.d.ts +3 -3
- package/lib/generated-client/models/remote-search-result.d.ts +12 -12
- package/lib/generated-client/models/remote-subtitle-info.d.ts +11 -11
- package/lib/generated-client/models/remove-from-playlist-request-dto.d.ts +3 -3
- package/lib/generated-client/models/repeat-mode.d.ts +6 -5
- package/lib/generated-client/models/repeat-mode.js +7 -9
- package/lib/generated-client/models/repository-info.d.ts +3 -3
- package/lib/generated-client/models/response-profile.d.ts +7 -7
- package/lib/generated-client/models/scroll-direction.d.ts +5 -4
- package/lib/generated-client/models/scroll-direction.js +6 -8
- package/lib/generated-client/models/search-hint-result.d.ts +2 -2
- package/lib/generated-client/models/search-hint.d.ts +29 -29
- package/lib/generated-client/models/seek-request-dto.d.ts +1 -1
- package/lib/generated-client/models/send-command-type.d.ts +7 -6
- package/lib/generated-client/models/send-command-type.js +8 -10
- package/lib/generated-client/models/send-command.d.ts +6 -6
- package/lib/generated-client/models/send-to-user-type.d.ts +6 -5
- package/lib/generated-client/models/send-to-user-type.js +7 -9
- package/lib/generated-client/models/series-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/series-info.d.ts +11 -11
- package/lib/generated-client/models/series-status.d.ts +5 -4
- package/lib/generated-client/models/series-status.js +6 -8
- package/lib/generated-client/models/series-timer-info-dto-query-result.d.ts +3 -3
- package/lib/generated-client/models/series-timer-info-dto.d.ts +35 -35
- package/lib/generated-client/models/server-configuration.d.ts +48 -48
- package/lib/generated-client/models/server-discovery-info.d.ts +4 -4
- package/lib/generated-client/models/session-info.d.ts +29 -29
- package/lib/generated-client/models/session-message-type.d.ts +37 -36
- package/lib/generated-client/models/session-message-type.js +38 -40
- package/lib/generated-client/models/session-user-info.d.ts +2 -2
- package/lib/generated-client/models/set-channel-mapping-dto.d.ts +3 -3
- package/lib/generated-client/models/set-playlist-item-request-dto.d.ts +1 -1
- package/lib/generated-client/models/set-repeat-mode-request-dto.d.ts +1 -1
- package/lib/generated-client/models/set-shuffle-mode-request-dto.d.ts +1 -1
- package/lib/generated-client/models/song-info.d.ts +14 -14
- package/lib/generated-client/models/sort-order.d.ts +5 -4
- package/lib/generated-client/models/sort-order.js +6 -8
- package/lib/generated-client/models/special-view-option-dto.d.ts +2 -2
- package/lib/generated-client/models/startup-configuration-dto.d.ts +3 -3
- package/lib/generated-client/models/startup-remote-access-dto.d.ts +2 -2
- package/lib/generated-client/models/startup-user-dto.d.ts +2 -2
- package/lib/generated-client/models/subtitle-delivery-method.d.ts +8 -7
- package/lib/generated-client/models/subtitle-delivery-method.js +9 -11
- package/lib/generated-client/models/subtitle-options.d.ts +9 -9
- package/lib/generated-client/models/subtitle-playback-mode.d.ts +8 -7
- package/lib/generated-client/models/subtitle-playback-mode.js +9 -11
- package/lib/generated-client/models/subtitle-profile.d.ts +5 -5
- package/lib/generated-client/models/sync-play-user-access-type.d.ts +6 -5
- package/lib/generated-client/models/sync-play-user-access-type.js +7 -9
- package/lib/generated-client/models/system-info.d.ts +26 -26
- package/lib/generated-client/models/task-completion-status.d.ts +7 -6
- package/lib/generated-client/models/task-completion-status.js +8 -10
- package/lib/generated-client/models/task-info.d.ts +10 -10
- package/lib/generated-client/models/task-result.d.ts +8 -8
- package/lib/generated-client/models/task-state.d.ts +6 -5
- package/lib/generated-client/models/task-state.js +7 -9
- package/lib/generated-client/models/task-trigger-info.d.ts +5 -5
- package/lib/generated-client/models/theme-media-result.d.ts +4 -4
- package/lib/generated-client/models/timer-event-info.d.ts +2 -2
- package/lib/generated-client/models/timer-info-dto-query-result.d.ts +3 -3
- package/lib/generated-client/models/timer-info-dto.d.ts +28 -28
- package/lib/generated-client/models/trailer-info-remote-search-query.d.ts +4 -4
- package/lib/generated-client/models/trailer-info.d.ts +11 -11
- package/lib/generated-client/models/transcode-reason.d.ts +43 -0
- package/lib/generated-client/models/transcode-reason.js +46 -0
- package/lib/generated-client/models/transcode-seek-info.d.ts +5 -4
- package/lib/generated-client/models/transcode-seek-info.js +6 -8
- package/lib/generated-client/models/transcoding-info.d.ts +15 -45
- package/lib/generated-client/models/transcoding-profile.d.ts +16 -16
- package/lib/generated-client/models/transport-stream-timestamp.d.ts +6 -5
- package/lib/generated-client/models/transport-stream-timestamp.js +7 -9
- package/lib/generated-client/models/tuner-channel-mapping.d.ts +4 -4
- package/lib/generated-client/models/tuner-host-info.d.ts +11 -11
- package/lib/generated-client/models/type-options.d.ts +6 -6
- package/lib/generated-client/models/unrated-item.d.ts +12 -11
- package/lib/generated-client/models/unrated-item.js +13 -15
- package/lib/generated-client/models/update-library-options-dto.d.ts +2 -2
- package/lib/generated-client/models/update-media-path-request-dto.d.ts +2 -2
- package/lib/generated-client/models/update-user-easy-password.d.ts +3 -3
- package/lib/generated-client/models/update-user-password.d.ts +4 -4
- package/lib/generated-client/models/upload-subtitle-dto.d.ts +4 -4
- package/lib/generated-client/models/user-configuration.d.ts +15 -15
- package/lib/generated-client/models/user-dto.d.ts +14 -14
- package/lib/generated-client/models/user-item-data-dto.d.ts +11 -11
- package/lib/generated-client/models/user-policy.d.ts +39 -39
- package/lib/generated-client/models/utc-time-response.d.ts +2 -2
- package/lib/generated-client/models/validate-path-dto.d.ts +3 -3
- package/lib/generated-client/models/version-info.d.ts +9 -9
- package/lib/generated-client/models/video-type.d.ts +7 -6
- package/lib/generated-client/models/video-type.js +8 -10
- package/lib/generated-client/models/video3-dformat.d.ts +8 -7
- package/lib/generated-client/models/video3-dformat.js +9 -11
- package/lib/generated-client/models/virtual-folder-info.d.ts +8 -8
- package/lib/generated-client/models/wake-on-lan-info.d.ts +2 -2
- package/lib/generated-client/models/xbmc-metadata-options.d.ts +5 -5
- package/lib/generated-client/models/xml-attribute.d.ts +2 -2
- package/lib/index.js +9 -39
- package/lib/jellyfin.d.ts +5 -7
- package/lib/jellyfin.js +12 -18
- package/lib/models/api/image-request-parameters.d.ts +1 -1
- package/lib/models/api/index.js +1 -23
- package/lib/models/api/item-sort-by.js +3 -4
- package/lib/models/index.js +2 -25
- package/lib/models/recommended-server-info.d.ts +2 -2
- package/lib/models/recommended-server-info.js +3 -4
- package/lib/models/recommended-server-issue.js +31 -77
- package/lib/node_modules/tslib/tslib.es6.js +26 -0
- package/lib/utils/address-candidates.js +30 -30
- package/lib/utils/api/activity-log-api.d.ts +1 -1
- package/lib/utils/api/activity-log-api.js +5 -6
- package/lib/utils/api/api-key-api.d.ts +1 -1
- package/lib/utils/api/api-key-api.js +5 -6
- package/lib/utils/api/artists-api.d.ts +1 -1
- package/lib/utils/api/artists-api.js +5 -6
- package/lib/utils/api/audio-api.d.ts +1 -1
- package/lib/utils/api/audio-api.js +5 -6
- package/lib/utils/api/branding-api.d.ts +1 -1
- package/lib/utils/api/branding-api.js +5 -6
- package/lib/utils/api/channels-api.d.ts +1 -1
- package/lib/utils/api/channels-api.js +5 -6
- package/lib/utils/api/client-log-api.d.ts +1 -1
- package/lib/utils/api/client-log-api.js +5 -6
- package/lib/utils/api/collection-api.d.ts +1 -1
- package/lib/utils/api/collection-api.js +5 -6
- package/lib/utils/api/configuration-api.d.ts +1 -1
- package/lib/utils/api/configuration-api.js +5 -6
- package/lib/utils/api/dashboard-api.d.ts +1 -1
- package/lib/utils/api/dashboard-api.js +5 -6
- package/lib/utils/api/devices-api.d.ts +1 -1
- package/lib/utils/api/devices-api.js +5 -6
- package/lib/utils/api/display-preferences-api.d.ts +1 -1
- package/lib/utils/api/display-preferences-api.js +5 -6
- package/lib/utils/api/dlna-api.d.ts +1 -1
- package/lib/utils/api/dlna-api.js +5 -6
- package/lib/utils/api/dlna-server-api.d.ts +1 -1
- package/lib/utils/api/dlna-server-api.js +5 -6
- package/lib/utils/api/dynamic-hls-api.d.ts +1 -1
- package/lib/utils/api/dynamic-hls-api.js +5 -6
- package/lib/utils/api/environment-api.d.ts +1 -1
- package/lib/utils/api/environment-api.js +5 -6
- package/lib/utils/api/filter-api.d.ts +1 -1
- package/lib/utils/api/filter-api.js +5 -6
- package/lib/utils/api/genres-api.d.ts +1 -1
- package/lib/utils/api/genres-api.js +5 -6
- package/lib/utils/api/hls-segment-api.d.ts +1 -1
- package/lib/utils/api/hls-segment-api.js +5 -6
- package/lib/utils/api/image-api.d.ts +1 -1
- package/lib/utils/api/image-api.js +5 -6
- package/lib/utils/api/image-by-name-api.d.ts +1 -1
- package/lib/utils/api/image-by-name-api.js +5 -6
- package/lib/utils/api/index.d.ts +66 -0
- package/lib/utils/api/index.js +61 -0
- package/lib/utils/api/instant-mix-api.d.ts +1 -1
- package/lib/utils/api/instant-mix-api.js +5 -6
- package/lib/utils/api/item-lookup-api.d.ts +1 -1
- package/lib/utils/api/item-lookup-api.js +5 -6
- package/lib/utils/api/item-refresh-api.d.ts +1 -1
- package/lib/utils/api/item-refresh-api.js +5 -6
- package/lib/utils/api/item-update-api.d.ts +1 -1
- package/lib/utils/api/item-update-api.js +5 -6
- package/lib/utils/api/items-api.d.ts +1 -1
- package/lib/utils/api/items-api.js +5 -6
- package/lib/utils/api/library-api.d.ts +1 -1
- package/lib/utils/api/library-api.js +5 -6
- package/lib/utils/api/library-structure-api.d.ts +1 -1
- package/lib/utils/api/library-structure-api.js +5 -6
- package/lib/utils/api/live-tv-api.d.ts +1 -1
- package/lib/utils/api/live-tv-api.js +5 -6
- package/lib/utils/api/localization-api.d.ts +1 -1
- package/lib/utils/api/localization-api.js +5 -6
- package/lib/utils/api/media-info-api.d.ts +1 -1
- package/lib/utils/api/media-info-api.js +5 -6
- package/lib/utils/api/movies-api.d.ts +1 -1
- package/lib/utils/api/movies-api.js +5 -6
- package/lib/utils/api/music-genres-api.d.ts +1 -1
- package/lib/utils/api/music-genres-api.js +5 -6
- package/lib/utils/api/notifications-api.d.ts +1 -1
- package/lib/utils/api/notifications-api.js +5 -6
- package/lib/utils/api/package-api.d.ts +1 -1
- package/lib/utils/api/package-api.js +5 -6
- package/lib/utils/api/persons-api.d.ts +1 -1
- package/lib/utils/api/persons-api.js +5 -6
- package/lib/utils/api/playlists-api.d.ts +1 -1
- package/lib/utils/api/playlists-api.js +5 -6
- package/lib/utils/api/playstate-api.d.ts +1 -1
- package/lib/utils/api/playstate-api.js +5 -6
- package/lib/utils/api/plugins-api.d.ts +1 -1
- package/lib/utils/api/plugins-api.js +5 -6
- package/lib/utils/api/quick-connect-api.d.ts +1 -1
- package/lib/utils/api/quick-connect-api.js +5 -6
- package/lib/utils/api/remote-image-api.d.ts +1 -1
- package/lib/utils/api/remote-image-api.js +5 -6
- package/lib/utils/api/scheduled-tasks-api.d.ts +1 -1
- package/lib/utils/api/scheduled-tasks-api.js +5 -6
- package/lib/utils/api/search-api.d.ts +1 -1
- package/lib/utils/api/search-api.js +5 -6
- package/lib/utils/api/session-api.d.ts +1 -1
- package/lib/utils/api/session-api.js +5 -6
- package/lib/utils/api/startup-api.d.ts +1 -1
- package/lib/utils/api/startup-api.js +5 -6
- package/lib/utils/api/studios-api.d.ts +1 -1
- package/lib/utils/api/studios-api.js +5 -6
- package/lib/utils/api/subtitle-api.d.ts +1 -1
- package/lib/utils/api/subtitle-api.js +5 -6
- package/lib/utils/api/suggestions-api.d.ts +1 -1
- package/lib/utils/api/suggestions-api.js +5 -6
- package/lib/utils/api/sync-play-api.d.ts +1 -1
- package/lib/utils/api/sync-play-api.js +5 -6
- package/lib/utils/api/system-api.d.ts +1 -1
- package/lib/utils/api/system-api.js +5 -6
- package/lib/utils/api/time-sync-api.d.ts +1 -1
- package/lib/utils/api/time-sync-api.js +5 -6
- package/lib/utils/api/tmdb-api.d.ts +1 -1
- package/lib/utils/api/tmdb-api.js +5 -6
- package/lib/utils/api/trailers-api.d.ts +1 -1
- package/lib/utils/api/trailers-api.js +5 -6
- package/lib/utils/api/tv-shows-api.d.ts +1 -1
- package/lib/utils/api/tv-shows-api.js +5 -6
- package/lib/utils/api/universal-audio-api.d.ts +1 -1
- package/lib/utils/api/universal-audio-api.js +5 -6
- package/lib/utils/api/user-api.d.ts +1 -1
- package/lib/utils/api/user-api.js +5 -6
- package/lib/utils/api/user-library-api.d.ts +1 -1
- package/lib/utils/api/user-library-api.js +5 -6
- package/lib/utils/api/user-views-api.d.ts +1 -1
- package/lib/utils/api/user-views-api.js +5 -6
- package/lib/utils/api/video-attachments-api.d.ts +1 -1
- package/lib/utils/api/video-attachments-api.js +5 -6
- package/lib/utils/api/videos-api.d.ts +1 -1
- package/lib/utils/api/videos-api.js +5 -6
- package/lib/utils/api/years-api.d.ts +1 -1
- package/lib/utils/api/years-api.js +5 -6
- package/lib/utils/authentication.d.ts +1 -1
- package/lib/utils/authentication.js +8 -11
- package/lib/utils/browser-profiles.d.ts +1 -1
- package/lib/utils/browser-profiles.js +11 -12
- package/lib/utils/index.js +6 -20
- package/lib/utils/url/constants.d.ts +13 -0
- package/lib/utils/url/constants.js +15 -0
- package/lib/utils/{url.d.ts → url/index.d.ts} +2 -8
- package/lib/utils/url/index.js +41 -0
- package/lib/utils/{normalize-url.js → url/normalize-url.js} +16 -16
- package/lib/{models/api/image-request-parameters.js → versions.d.ts} +4 -2
- package/lib/{models/client-info.js → versions.js} +6 -2
- package/package.json +21 -17
- package/.gitattributes +0 -5
- package/lib/generated-client/api.js +0 -89
- package/lib/generated-client/models/access-schedule.js +0 -14
- package/lib/generated-client/models/activity-log-entry-query-result.js +0 -14
- package/lib/generated-client/models/activity-log-entry.js +0 -14
- package/lib/generated-client/models/add-virtual-folder-dto.js +0 -14
- package/lib/generated-client/models/admin-notification-dto.js +0 -14
- package/lib/generated-client/models/album-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/album-info.js +0 -14
- package/lib/generated-client/models/all-theme-media-result.js +0 -14
- package/lib/generated-client/models/artist-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/artist-info.js +0 -14
- package/lib/generated-client/models/authenticate-user-by-name.js +0 -14
- package/lib/generated-client/models/authentication-info-query-result.js +0 -14
- package/lib/generated-client/models/authentication-info.js +0 -14
- package/lib/generated-client/models/authentication-result.js +0 -14
- package/lib/generated-client/models/base-item-dto-image-blur-hashes.js +0 -14
- package/lib/generated-client/models/base-item-dto-query-result.js +0 -14
- package/lib/generated-client/models/base-item-dto.js +0 -14
- package/lib/generated-client/models/base-item-person-image-blur-hashes.js +0 -14
- package/lib/generated-client/models/base-item-person.js +0 -14
- package/lib/generated-client/models/base-item.js +0 -14
- package/lib/generated-client/models/book-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/book-info.js +0 -14
- package/lib/generated-client/models/box-set-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/box-set-info.js +0 -14
- package/lib/generated-client/models/branding-options.js +0 -14
- package/lib/generated-client/models/buffer-request-dto.js +0 -14
- package/lib/generated-client/models/channel-features.js +0 -14
- package/lib/generated-client/models/channel-mapping-options-dto.js +0 -14
- package/lib/generated-client/models/chapter-info.js +0 -14
- package/lib/generated-client/models/client-capabilities-dto.js +0 -14
- package/lib/generated-client/models/client-capabilities.js +0 -14
- package/lib/generated-client/models/client-log-document-response-dto.js +0 -14
- package/lib/generated-client/models/codec-profile.js +0 -14
- package/lib/generated-client/models/collection-creation-result.js +0 -14
- package/lib/generated-client/models/config-image-types.js +0 -14
- package/lib/generated-client/models/configuration-page-info.js +0 -14
- package/lib/generated-client/models/container-profile.js +0 -14
- package/lib/generated-client/models/control-response.js +0 -14
- package/lib/generated-client/models/country-info.js +0 -14
- package/lib/generated-client/models/create-playlist-dto.js +0 -14
- package/lib/generated-client/models/create-user-by-name.js +0 -14
- package/lib/generated-client/models/culture-dto.js +0 -14
- package/lib/generated-client/models/default-directory-browser-info-dto.js +0 -14
- package/lib/generated-client/models/device-identification.js +0 -14
- package/lib/generated-client/models/device-info-query-result.js +0 -14
- package/lib/generated-client/models/device-info.js +0 -14
- package/lib/generated-client/models/device-options-dto.js +0 -14
- package/lib/generated-client/models/device-options.js +0 -14
- package/lib/generated-client/models/device-profile-info.js +0 -14
- package/lib/generated-client/models/device-profile.js +0 -14
- package/lib/generated-client/models/direct-play-profile.js +0 -14
- package/lib/generated-client/models/display-preferences-dto.js +0 -14
- package/lib/generated-client/models/dlna-options.js +0 -14
- package/lib/generated-client/models/encoding-options.js +0 -14
- package/lib/generated-client/models/end-point-info.js +0 -14
- package/lib/generated-client/models/external-id-info.js +0 -14
- package/lib/generated-client/models/external-url.js +0 -14
- package/lib/generated-client/models/file-system-entry-info.js +0 -14
- package/lib/generated-client/models/font-file.js +0 -14
- package/lib/generated-client/models/forgot-password-dto.js +0 -14
- package/lib/generated-client/models/forgot-password-pin-dto.js +0 -14
- package/lib/generated-client/models/forgot-password-result.js +0 -14
- package/lib/generated-client/models/general-command.js +0 -14
- package/lib/generated-client/models/get-programs-dto.js +0 -14
- package/lib/generated-client/models/group-info-dto.js +0 -14
- package/lib/generated-client/models/guide-info.js +0 -14
- package/lib/generated-client/models/http-header-info.js +0 -14
- package/lib/generated-client/models/ignore-wait-request-dto.js +0 -14
- package/lib/generated-client/models/image-by-name-info.js +0 -14
- package/lib/generated-client/models/image-info.js +0 -14
- package/lib/generated-client/models/image-option.js +0 -14
- package/lib/generated-client/models/image-provider-info.js +0 -14
- package/lib/generated-client/models/installation-info.js +0 -14
- package/lib/generated-client/models/iplugin.js +0 -14
- package/lib/generated-client/models/item-counts.js +0 -14
- package/lib/generated-client/models/join-group-request-dto.js +0 -14
- package/lib/generated-client/models/library-option-info-dto.js +0 -14
- package/lib/generated-client/models/library-options-result-dto.js +0 -14
- package/lib/generated-client/models/library-options.js +0 -14
- package/lib/generated-client/models/library-type-options-dto.js +0 -14
- package/lib/generated-client/models/library-update-info.js +0 -14
- package/lib/generated-client/models/listings-provider-info.js +0 -14
- package/lib/generated-client/models/live-stream-response.js +0 -14
- package/lib/generated-client/models/live-tv-info.js +0 -14
- package/lib/generated-client/models/live-tv-options.js +0 -14
- package/lib/generated-client/models/live-tv-service-info.js +0 -14
- package/lib/generated-client/models/localization-option.js +0 -14
- package/lib/generated-client/models/log-file.js +0 -14
- package/lib/generated-client/models/media-attachment.js +0 -14
- package/lib/generated-client/models/media-encoder-path-dto.js +0 -14
- package/lib/generated-client/models/media-path-dto.js +0 -14
- package/lib/generated-client/models/media-path-info.js +0 -14
- package/lib/generated-client/models/media-source-info.js +0 -14
- package/lib/generated-client/models/media-stream.js +0 -14
- package/lib/generated-client/models/media-update-info-dto.js +0 -14
- package/lib/generated-client/models/media-update-info-path-dto.js +0 -14
- package/lib/generated-client/models/media-url.js +0 -14
- package/lib/generated-client/models/message-command.js +0 -14
- package/lib/generated-client/models/metadata-configuration.js +0 -14
- package/lib/generated-client/models/metadata-editor-info.js +0 -14
- package/lib/generated-client/models/metadata-options.js +0 -14
- package/lib/generated-client/models/move-playlist-item-request-dto.js +0 -14
- package/lib/generated-client/models/movie-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/movie-info.js +0 -14
- package/lib/generated-client/models/music-video-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/music-video-info.js +0 -14
- package/lib/generated-client/models/name-guid-pair.js +0 -14
- package/lib/generated-client/models/name-id-pair.js +0 -14
- package/lib/generated-client/models/name-value-pair.js +0 -14
- package/lib/generated-client/models/network-configuration.js +0 -14
- package/lib/generated-client/models/new-group-request-dto.js +0 -14
- package/lib/generated-client/models/next-item-request-dto.js +0 -14
- package/lib/generated-client/models/notification-dto.js +0 -14
- package/lib/generated-client/models/notification-option.js +0 -14
- package/lib/generated-client/models/notification-options.js +0 -14
- package/lib/generated-client/models/notification-result-dto.js +0 -14
- package/lib/generated-client/models/notification-type-info.js +0 -14
- package/lib/generated-client/models/notifications-summary-dto.js +0 -14
- package/lib/generated-client/models/object-group-update.js +0 -14
- package/lib/generated-client/models/open-live-stream-dto.js +0 -14
- package/lib/generated-client/models/package-info.js +0 -14
- package/lib/generated-client/models/parental-rating.js +0 -14
- package/lib/generated-client/models/path-substitution.js +0 -14
- package/lib/generated-client/models/person-lookup-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/person-lookup-info.js +0 -14
- package/lib/generated-client/models/pin-redeem-result.js +0 -14
- package/lib/generated-client/models/ping-request-dto.js +0 -14
- package/lib/generated-client/models/play-request-dto.js +0 -14
- package/lib/generated-client/models/play-request.js +0 -14
- package/lib/generated-client/models/playback-info-dto.js +0 -14
- package/lib/generated-client/models/playback-info-response.js +0 -14
- package/lib/generated-client/models/playback-progress-info.js +0 -14
- package/lib/generated-client/models/playback-start-info.js +0 -14
- package/lib/generated-client/models/playback-stop-info.js +0 -14
- package/lib/generated-client/models/player-state-info.js +0 -14
- package/lib/generated-client/models/playlist-creation-result.js +0 -14
- package/lib/generated-client/models/playstate-request.js +0 -14
- package/lib/generated-client/models/plugin-info.js +0 -14
- package/lib/generated-client/models/previous-item-request-dto.js +0 -14
- package/lib/generated-client/models/problem-details.js +0 -14
- package/lib/generated-client/models/profile-condition.js +0 -14
- package/lib/generated-client/models/public-system-info.js +0 -14
- package/lib/generated-client/models/query-filters-legacy.js +0 -14
- package/lib/generated-client/models/query-filters.js +0 -14
- package/lib/generated-client/models/queue-item.js +0 -14
- package/lib/generated-client/models/queue-request-dto.js +0 -14
- package/lib/generated-client/models/quick-connect-dto.js +0 -14
- package/lib/generated-client/models/quick-connect-result.js +0 -14
- package/lib/generated-client/models/ready-request-dto.js +0 -14
- package/lib/generated-client/models/recommendation-dto.js +0 -14
- package/lib/generated-client/models/remote-image-info.js +0 -14
- package/lib/generated-client/models/remote-image-result.js +0 -14
- package/lib/generated-client/models/remote-search-result.js +0 -14
- package/lib/generated-client/models/remote-subtitle-info.js +0 -14
- package/lib/generated-client/models/remove-from-playlist-request-dto.js +0 -14
- package/lib/generated-client/models/repository-info.js +0 -14
- package/lib/generated-client/models/response-profile.js +0 -14
- package/lib/generated-client/models/search-hint-result.js +0 -14
- package/lib/generated-client/models/search-hint.js +0 -14
- package/lib/generated-client/models/seek-request-dto.js +0 -14
- package/lib/generated-client/models/send-command.js +0 -14
- package/lib/generated-client/models/series-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/series-info.js +0 -14
- package/lib/generated-client/models/series-timer-info-dto-query-result.js +0 -14
- package/lib/generated-client/models/series-timer-info-dto.js +0 -14
- package/lib/generated-client/models/server-configuration.js +0 -14
- package/lib/generated-client/models/server-discovery-info.js +0 -14
- package/lib/generated-client/models/session-info.js +0 -14
- package/lib/generated-client/models/session-user-info.js +0 -14
- package/lib/generated-client/models/set-channel-mapping-dto.js +0 -14
- package/lib/generated-client/models/set-playlist-item-request-dto.js +0 -14
- package/lib/generated-client/models/set-repeat-mode-request-dto.js +0 -14
- package/lib/generated-client/models/set-shuffle-mode-request-dto.js +0 -14
- package/lib/generated-client/models/song-info.js +0 -14
- package/lib/generated-client/models/special-view-option-dto.js +0 -14
- package/lib/generated-client/models/startup-configuration-dto.js +0 -14
- package/lib/generated-client/models/startup-remote-access-dto.js +0 -14
- package/lib/generated-client/models/startup-user-dto.js +0 -14
- package/lib/generated-client/models/subtitle-options.js +0 -14
- package/lib/generated-client/models/subtitle-profile.js +0 -14
- package/lib/generated-client/models/system-info.js +0 -14
- package/lib/generated-client/models/task-info.js +0 -14
- package/lib/generated-client/models/task-result.js +0 -14
- package/lib/generated-client/models/task-trigger-info.js +0 -14
- package/lib/generated-client/models/theme-media-result.js +0 -14
- package/lib/generated-client/models/timer-event-info.js +0 -14
- package/lib/generated-client/models/timer-info-dto-query-result.js +0 -14
- package/lib/generated-client/models/timer-info-dto.js +0 -14
- package/lib/generated-client/models/trailer-info-remote-search-query.js +0 -14
- package/lib/generated-client/models/trailer-info.js +0 -14
- package/lib/generated-client/models/transcoding-info.js +0 -47
- package/lib/generated-client/models/transcoding-profile.js +0 -14
- package/lib/generated-client/models/tuner-channel-mapping.js +0 -14
- package/lib/generated-client/models/tuner-host-info.js +0 -14
- package/lib/generated-client/models/type-options.js +0 -14
- package/lib/generated-client/models/update-library-options-dto.js +0 -14
- package/lib/generated-client/models/update-media-path-request-dto.js +0 -14
- package/lib/generated-client/models/update-user-easy-password.js +0 -14
- package/lib/generated-client/models/update-user-password.js +0 -14
- package/lib/generated-client/models/upload-subtitle-dto.js +0 -14
- package/lib/generated-client/models/user-configuration.js +0 -14
- package/lib/generated-client/models/user-dto.js +0 -14
- package/lib/generated-client/models/user-item-data-dto.js +0 -14
- package/lib/generated-client/models/user-policy.js +0 -14
- package/lib/generated-client/models/utc-time-response.js +0 -14
- package/lib/generated-client/models/validate-path-dto.js +0 -14
- package/lib/generated-client/models/version-info.js +0 -14
- package/lib/generated-client/models/virtual-folder-info.js +0 -14
- package/lib/generated-client/models/wake-on-lan-info.js +0 -14
- package/lib/generated-client/models/xbmc-metadata-options.js +0 -14
- package/lib/generated-client/models/xml-attribute.js +0 -14
- package/lib/models/device-info.js +0 -7
- package/lib/utils/url.js +0 -54
- package/openapi-templates/licenseInfo.mustache +0 -10
- package/tsconfig.json +0 -25
- /package/lib/utils/{normalize-url.d.ts → url/normalize-url.d.ts} +0 -0
package/README.md
CHANGED
|
@@ -35,8 +35,10 @@ yarn add @jellyfin/sdk
|
|
|
35
35
|
|
|
36
36
|
| SDK Version | Jellyfin Version |
|
|
37
37
|
|:-:|:-:|
|
|
38
|
-
| 0.
|
|
39
|
-
| 0.
|
|
38
|
+
| 0.8.1 | 10.8.1 - 10.8.9 |
|
|
39
|
+
| 0.8.0 | 10.8.1 - 10.8.9 |
|
|
40
|
+
| 0.7.0 | 10.8.1 - 10.8.9 |
|
|
41
|
+
| 0.6.0 | 10.8.1 - 10.8.9 |
|
|
40
42
|
| 0.5.0 | 10.8.0 |
|
|
41
43
|
| <0.5.0 | 10.7.x |
|
|
42
44
|
|
|
@@ -73,9 +75,13 @@ const best = jellyfin.discovery.findBestServer(servers);
|
|
|
73
75
|
// Create an API instance
|
|
74
76
|
const api = jellyfin.createApi(best.address);
|
|
75
77
|
|
|
76
|
-
// Each API endpoint is
|
|
77
|
-
//
|
|
78
|
-
//
|
|
78
|
+
// Each API endpoint is represented by a class in the generated client.
|
|
79
|
+
// Helper utility functions are provided under `/lib/utils/api/` to create an
|
|
80
|
+
// instance of a specific Jellyfin API using the shared Configuration and Axios
|
|
81
|
+
// instance from the `api` object created above.
|
|
82
|
+
|
|
83
|
+
// For example, the SystemApi can be generated using the `getSystemApi`
|
|
84
|
+
// function in `/lib/utils/api/system-api`.
|
|
79
85
|
|
|
80
86
|
// Fetch the public system info
|
|
81
87
|
const info = await getSystemApi(api).getPublicSystemInfo();
|
|
@@ -103,6 +109,13 @@ await api.logout();
|
|
|
103
109
|
|
|
104
110
|
## Breaking Changes
|
|
105
111
|
|
|
112
|
+
### v0.8.0
|
|
113
|
+
|
|
114
|
+
* The library is now fully targeted to ES6/ES2015.
|
|
115
|
+
[#341](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/341)
|
|
116
|
+
* Axios received a major version upgrade.
|
|
117
|
+
[#300](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/300)
|
|
118
|
+
|
|
106
119
|
### v0.7.0
|
|
107
120
|
|
|
108
121
|
* Renamed package to @jellyfin/sdk.
|
|
@@ -132,10 +145,11 @@ await api.logout();
|
|
|
132
145
|
|
|
133
146
|
## Roadmap to 1.0
|
|
134
147
|
|
|
135
|
-
* [ ] More complete device profile generation utilities
|
|
136
148
|
* [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.)
|
|
137
|
-
* [x] Automate OpenAPI spec updates using GitHub
|
|
138
|
-
* [
|
|
149
|
+
* [x] Automate OpenAPI spec updates using GitHub [#351](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/351)
|
|
150
|
+
* [x] Create branch tracking unstable Jellyfin builds with automated builds [#354](https://github.com/jellyfin/jellyfin-sdk-typescript/pull/354)
|
|
139
151
|
* [ ] Fix authentication header escaping
|
|
140
|
-
* [ ] Add
|
|
152
|
+
* [ ] Add WebSocket API support
|
|
153
|
+
* [ ] Add example projects for different ecosystems [#186](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/186)
|
|
141
154
|
* [ ] Add utility function for `getFile` [#164](https://github.com/jellyfin/jellyfin-sdk-typescript/issues/164)
|
|
155
|
+
* [ ] More complete device profile generation utilities
|
package/lib/api.d.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
4
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import { AxiosInstance, AxiosResponse } from 'axios';
|
|
6
|
+
import type { AxiosInstance, AxiosResponse } from 'axios';
|
|
7
7
|
import { Configuration } from './generated-client/configuration';
|
|
8
|
-
import { AuthenticationResult } from './generated-client/models/authentication-result';
|
|
8
|
+
import type { AuthenticationResult } from './generated-client/models/authentication-result';
|
|
9
9
|
import { ImageType } from './generated-client/models/image-type';
|
|
10
|
-
import { ClientInfo, DeviceInfo } from './models';
|
|
11
|
-
import { ImageRequestParameters } from './models/api/image-request-parameters';
|
|
10
|
+
import type { ClientInfo, DeviceInfo } from './models';
|
|
11
|
+
import type { ImageRequestParameters } from './models/api/image-request-parameters';
|
|
12
12
|
/** The authorization header field name. */
|
|
13
13
|
export declare const AUTHORIZATION_HEADER = "Authorization";
|
|
14
14
|
/** Class representing the Jellyfin API. */
|
package/lib/api.js
CHANGED
|
@@ -1,73 +1,53 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
9
|
-
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
10
|
-
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
11
|
-
*/
|
|
12
|
-
var axios_1 = __importDefault(require("axios"));
|
|
13
|
-
var configuration_1 = require("./generated-client/configuration");
|
|
14
|
-
var image_type_1 = require("./generated-client/models/image-type");
|
|
15
|
-
var utils_1 = require("./utils");
|
|
16
|
-
var session_api_1 = require("./utils/api/session-api");
|
|
17
|
-
var user_api_1 = require("./utils/api/user-api");
|
|
18
|
-
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
19
|
-
var buildFullPath = require('axios/lib/core/buildFullPath');
|
|
1
|
+
import globalAxios from 'axios';
|
|
2
|
+
import { Configuration } from './generated-client/configuration.js';
|
|
3
|
+
import { ImageType } from './generated-client/models/image-type.js';
|
|
4
|
+
import { getAuthorizationHeader } from './utils/authentication.js';
|
|
5
|
+
import { getSessionApi } from './utils/api/session-api.js';
|
|
6
|
+
import { getUserApi } from './utils/api/user-api.js';
|
|
7
|
+
|
|
20
8
|
/** The authorization header field name. */
|
|
21
|
-
|
|
9
|
+
const AUTHORIZATION_HEADER = 'Authorization';
|
|
22
10
|
/** Class representing the Jellyfin API. */
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
this.basePath = basePath;
|
|
11
|
+
class Api {
|
|
12
|
+
constructor(basePath, clientInfo, deviceInfo, accessToken = '', axiosInstance = globalAxios) {
|
|
13
|
+
// Remove trailing slash if present
|
|
14
|
+
this.basePath = basePath.endsWith('/') ? basePath.slice(0, -1) : basePath;
|
|
28
15
|
this.clientInfo = clientInfo;
|
|
29
16
|
this.deviceInfo = deviceInfo;
|
|
30
17
|
this.accessToken = accessToken;
|
|
31
18
|
this.axiosInstance = axiosInstance;
|
|
32
19
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
},
|
|
40
|
-
enumerable: false,
|
|
41
|
-
configurable: true
|
|
42
|
-
});
|
|
20
|
+
get configuration() {
|
|
21
|
+
return new Configuration({
|
|
22
|
+
basePath: this.basePath,
|
|
23
|
+
apiKey: this.authorizationHeader
|
|
24
|
+
});
|
|
25
|
+
}
|
|
43
26
|
/**
|
|
44
27
|
* Convenience method for authenticating a user by name and updating the internal state.
|
|
45
28
|
* @param username The username.
|
|
46
29
|
* @param password The user password if required.
|
|
47
30
|
*/
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
var _this = this;
|
|
51
|
-
return (0, user_api_1.getUserApi)(this).authenticateUserByName(
|
|
31
|
+
authenticateUserByName(username, password) {
|
|
32
|
+
return getUserApi(this).authenticateUserByName(
|
|
52
33
|
// The axios client does some strange wrapping of the param object
|
|
53
34
|
{ authenticateUserByName: { Username: username, Pw: password } },
|
|
54
35
|
// The authorization header is required for the request to succeed
|
|
55
|
-
{ headers:
|
|
36
|
+
{ headers: { [AUTHORIZATION_HEADER]: this.authorizationHeader } }).then(response => {
|
|
56
37
|
// Update the current token and configuration object
|
|
57
|
-
|
|
38
|
+
this.accessToken = response.data.AccessToken || '';
|
|
58
39
|
return response;
|
|
59
40
|
});
|
|
60
|
-
}
|
|
41
|
+
}
|
|
61
42
|
/**
|
|
62
43
|
* Convenience method for logging out and updating the internal state.
|
|
63
44
|
*/
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
_this.accessToken = '';
|
|
45
|
+
logout() {
|
|
46
|
+
return getSessionApi(this).reportSessionEnded().then(response => {
|
|
47
|
+
this.accessToken = '';
|
|
68
48
|
return response;
|
|
69
49
|
});
|
|
70
|
-
}
|
|
50
|
+
}
|
|
71
51
|
/**
|
|
72
52
|
* Get an item image URL.
|
|
73
53
|
* @param itemId The Item ID.
|
|
@@ -75,25 +55,15 @@ var Api = /** @class */ (function () {
|
|
|
75
55
|
* @param params Additional request parameters.
|
|
76
56
|
* @returns The image URL.
|
|
77
57
|
*/
|
|
78
|
-
|
|
79
|
-
if (imageType === void 0) { imageType = image_type_1.ImageType.Primary; }
|
|
80
|
-
if (params === void 0) { params = {}; }
|
|
58
|
+
getItemImageUrl(itemId, imageType = ImageType.Primary, params = {}) {
|
|
81
59
|
// TODO: We could probably use ImageApiAxiosParamCreator to make this more robust
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
return (0, utils_1.getAuthorizationHeader)(this.clientInfo, this.deviceInfo, this.accessToken);
|
|
93
|
-
},
|
|
94
|
-
enumerable: false,
|
|
95
|
-
configurable: true
|
|
96
|
-
});
|
|
97
|
-
return Api;
|
|
98
|
-
}());
|
|
99
|
-
exports.Api = Api;
|
|
60
|
+
return globalAxios.create({
|
|
61
|
+
baseURL: this.basePath
|
|
62
|
+
}).getUri({ url: `/Items/${itemId}/Images/${imageType}`, params });
|
|
63
|
+
}
|
|
64
|
+
get authorizationHeader() {
|
|
65
|
+
return getAuthorizationHeader(this.clientInfo, this.deviceInfo, this.accessToken);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export { AUTHORIZATION_HEADER, Api };
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
4
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import { Jellyfin
|
|
6
|
+
import type { Jellyfin } from '../jellyfin';
|
|
7
|
+
import type { RecommendedServerInfo } from '../models/recommended-server-info';
|
|
8
|
+
import { RecommendedServerInfoScore } from '../models/recommended-server-info';
|
|
7
9
|
/** Class used for discovering recommended servers. */
|
|
8
10
|
export declare class DiscoveryService {
|
|
9
11
|
private jellyfin;
|
|
@@ -1,84 +1,47 @@
|
|
|
1
|
-
|
|
1
|
+
import { __awaiter } from '../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import { RecommendedServerInfoScore } from '../models/recommended-server-info.js';
|
|
3
|
+
import { getAddressCandidates } from '../utils/address-candidates.js';
|
|
4
|
+
import { RecommendedServerDiscovery } from './recommended-server-discovery.js';
|
|
5
|
+
|
|
2
6
|
/**
|
|
3
7
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
8
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
9
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
10
|
*/
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
17
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
18
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
19
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
20
|
-
function step(op) {
|
|
21
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
22
|
-
while (_) try {
|
|
23
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
24
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
25
|
-
switch (op[0]) {
|
|
26
|
-
case 0: case 1: t = op; break;
|
|
27
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
28
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
29
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
30
|
-
default:
|
|
31
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
32
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
33
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
34
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
35
|
-
if (t[2]) _.ops.pop();
|
|
36
|
-
_.trys.pop(); continue;
|
|
37
|
-
}
|
|
38
|
-
op = body.call(thisArg, _);
|
|
39
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
40
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.DiscoveryService = void 0;
|
|
45
|
-
var __1 = require("..");
|
|
46
|
-
var utils_1 = require("../utils");
|
|
47
|
-
var recommended_server_discovery_1 = require("./recommended-server-discovery");
|
|
48
11
|
/** Class used for discovering recommended servers. */
|
|
49
|
-
|
|
50
|
-
|
|
12
|
+
class DiscoveryService {
|
|
13
|
+
constructor(jellyfin) {
|
|
51
14
|
this.jellyfin = jellyfin;
|
|
52
|
-
this.recommendedServerDiscovery = new
|
|
15
|
+
this.recommendedServerDiscovery = new RecommendedServerDiscovery(this.jellyfin);
|
|
53
16
|
}
|
|
54
17
|
/**
|
|
55
18
|
* Finds the best server from a list of recommended servers by score.
|
|
56
19
|
* @param servers A list of recommended servers.
|
|
57
20
|
* @returns The best scoring recommended server.
|
|
58
21
|
*/
|
|
59
|
-
|
|
22
|
+
findBestServer(servers) {
|
|
60
23
|
// First look for GREAT scores
|
|
61
|
-
|
|
24
|
+
let best = servers.find(server => server.score === RecommendedServerInfoScore.GREAT);
|
|
62
25
|
// If no GREAT scores, look for GOOD scores
|
|
63
26
|
if (!best) {
|
|
64
|
-
best = servers.find(
|
|
27
|
+
best = servers.find(server => server.score === RecommendedServerInfoScore.GOOD);
|
|
65
28
|
}
|
|
66
29
|
// If no GREAT or GOOD scores, look for OK scores
|
|
67
30
|
if (!best) {
|
|
68
|
-
best = servers.find(
|
|
31
|
+
best = servers.find(server => server.score === RecommendedServerInfoScore.OK);
|
|
69
32
|
}
|
|
70
33
|
// Do NOT return any BAD scores
|
|
71
34
|
return best;
|
|
72
|
-
}
|
|
35
|
+
}
|
|
73
36
|
/**
|
|
74
37
|
* Gets a list of address candidates url strings
|
|
75
38
|
* from a provided url address string.
|
|
76
39
|
* @param input A server url address string.
|
|
77
40
|
* @returns A list of potential server addresses.
|
|
78
41
|
*/
|
|
79
|
-
|
|
80
|
-
return
|
|
81
|
-
}
|
|
42
|
+
getAddressCandidates(input) {
|
|
43
|
+
return getAddressCandidates(input);
|
|
44
|
+
}
|
|
82
45
|
/**
|
|
83
46
|
* Gets a list of recommended server information from a provided
|
|
84
47
|
* list of possible server addresses.
|
|
@@ -86,13 +49,11 @@ var DiscoveryService = /** @class */ (function () {
|
|
|
86
49
|
* @param minimumScore The minimum server score to include in the results.
|
|
87
50
|
* @returns A list of RecommendedServerInfo from the possible server addresses.
|
|
88
51
|
*/
|
|
89
|
-
|
|
90
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
91
|
-
return
|
|
92
|
-
return [2 /*return*/, this.recommendedServerDiscovery.discover(servers, minimumScore)];
|
|
93
|
-
});
|
|
52
|
+
getRecommendedServers(servers, minimumScore) {
|
|
53
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
54
|
+
return this.recommendedServerDiscovery.discover(servers, minimumScore);
|
|
94
55
|
});
|
|
95
|
-
}
|
|
56
|
+
}
|
|
96
57
|
/**
|
|
97
58
|
* Gets a list of recommended server information from the address
|
|
98
59
|
* candidates of a potential server address.
|
|
@@ -100,13 +61,11 @@ var DiscoveryService = /** @class */ (function () {
|
|
|
100
61
|
* @param minimumScore The minimum server score to include in the results.
|
|
101
62
|
* @returns A list of RecommendedServerInfo from the address candidates.
|
|
102
63
|
*/
|
|
103
|
-
|
|
104
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
105
|
-
return
|
|
106
|
-
return [2 /*return*/, this.getRecommendedServers(this.getAddressCandidates(input), minimumScore)];
|
|
107
|
-
});
|
|
64
|
+
getRecommendedServerCandidates(input, minimumScore) {
|
|
65
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
66
|
+
return this.getRecommendedServers(this.getAddressCandidates(input), minimumScore);
|
|
108
67
|
});
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export { DiscoveryService };
|
package/lib/discovery/index.js
CHANGED
|
@@ -1,23 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
export { DiscoveryService } from './discovery-service.js';
|
|
2
|
+
export { RecommendedServerDiscovery } from './recommended-server-discovery.js';
|
|
3
|
+
|
|
2
4
|
/**
|
|
3
5
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
6
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
7
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
8
|
*/
|
|
7
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
8
|
-
if (k2 === undefined) k2 = k;
|
|
9
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
10
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
11
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
12
|
-
}
|
|
13
|
-
Object.defineProperty(o, k2, desc);
|
|
14
|
-
}) : (function(o, m, k, k2) {
|
|
15
|
-
if (k2 === undefined) k2 = k;
|
|
16
|
-
o[k2] = m[k];
|
|
17
|
-
}));
|
|
18
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
19
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
20
|
-
};
|
|
21
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
22
|
-
__exportStar(require("./discovery-service"), exports);
|
|
23
|
-
__exportStar(require("./recommended-server-discovery"), exports);
|
|
@@ -3,7 +3,9 @@
|
|
|
3
3
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
4
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
5
|
*/
|
|
6
|
-
import { Jellyfin
|
|
6
|
+
import type { Jellyfin } from '../jellyfin';
|
|
7
|
+
import type { RecommendedServerInfo } from '../models/recommended-server-info';
|
|
8
|
+
import { RecommendedServerInfoScore } from '../models/recommended-server-info';
|
|
7
9
|
/** Class to discover and evaluate potential servers. */
|
|
8
10
|
export declare class RecommendedServerDiscovery {
|
|
9
11
|
private jellyfin;
|
|
@@ -1,108 +1,72 @@
|
|
|
1
|
-
|
|
1
|
+
import { __awaiter } from '../node_modules/tslib/tslib.es6.js';
|
|
2
|
+
import { compare } from 'compare-versions';
|
|
3
|
+
import { RecommendedServerInfoScore } from '../models/recommended-server-info.js';
|
|
4
|
+
import { SystemInfoIssue, ProductNameIssue, VersionMissingIssue, VersionUnsupportedIssue, VersionOutdatedIssue, SlowResponseIssue } from '../models/recommended-server-issue.js';
|
|
5
|
+
import { getSystemApi } from '../utils/api/system-api.js';
|
|
6
|
+
import { MINIMUM_VERSION, API_VERSION } from '../versions.js';
|
|
7
|
+
|
|
2
8
|
/**
|
|
3
9
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
4
10
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
5
11
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
6
12
|
*/
|
|
7
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
8
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
9
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
10
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
11
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
12
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
13
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
14
|
-
});
|
|
15
|
-
};
|
|
16
|
-
var __generator = (this && this.__generator) || function (thisArg, body) {
|
|
17
|
-
var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
|
|
18
|
-
return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
|
|
19
|
-
function verb(n) { return function (v) { return step([n, v]); }; }
|
|
20
|
-
function step(op) {
|
|
21
|
-
if (f) throw new TypeError("Generator is already executing.");
|
|
22
|
-
while (_) try {
|
|
23
|
-
if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
|
|
24
|
-
if (y = 0, t) op = [op[0] & 2, t.value];
|
|
25
|
-
switch (op[0]) {
|
|
26
|
-
case 0: case 1: t = op; break;
|
|
27
|
-
case 4: _.label++; return { value: op[1], done: false };
|
|
28
|
-
case 5: _.label++; y = op[1]; op = [0]; continue;
|
|
29
|
-
case 7: op = _.ops.pop(); _.trys.pop(); continue;
|
|
30
|
-
default:
|
|
31
|
-
if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
|
|
32
|
-
if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
|
|
33
|
-
if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
|
|
34
|
-
if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
|
|
35
|
-
if (t[2]) _.ops.pop();
|
|
36
|
-
_.trys.pop(); continue;
|
|
37
|
-
}
|
|
38
|
-
op = body.call(thisArg, _);
|
|
39
|
-
} catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
|
|
40
|
-
if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
|
|
41
|
-
}
|
|
42
|
-
};
|
|
43
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
44
|
-
exports.RecommendedServerDiscovery = void 0;
|
|
45
|
-
var compare_versions_1 = require("compare-versions");
|
|
46
|
-
var __1 = require("..");
|
|
47
|
-
var system_api_1 = require("../utils/api/system-api");
|
|
48
13
|
/** The expected product name in system info. */
|
|
49
|
-
|
|
14
|
+
const PRODUCT_NAME = 'Jellyfin Server';
|
|
50
15
|
/** Requests taking longer than 3s are considered slow. */
|
|
51
|
-
|
|
16
|
+
const SLOW_RESPONSE_TIME = 3000;
|
|
52
17
|
/** System info request timeout. */
|
|
53
|
-
|
|
18
|
+
const HTTP_TIMEOUT = 5000;
|
|
54
19
|
/** Get the minimum RecommendedServerInfoScore from an array. */
|
|
55
|
-
function getMinScore(scores, defaultScore) {
|
|
56
|
-
|
|
57
|
-
return scores.length > 0 ? Math.min.apply(Math, scores) : defaultScore;
|
|
20
|
+
function getMinScore(scores, defaultScore = RecommendedServerInfoScore.GREAT) {
|
|
21
|
+
return scores.length > 0 ? Math.min(...scores) : defaultScore;
|
|
58
22
|
}
|
|
59
23
|
/** Builds a RecommendedServerInfo from a SystemInfoResult. */
|
|
60
24
|
function toRecommendedServerInfo(result) {
|
|
61
25
|
var _a, _b, _c;
|
|
62
|
-
|
|
63
|
-
|
|
26
|
+
const issues = [];
|
|
27
|
+
const scores = [];
|
|
64
28
|
if (!((_a = result.response) === null || _a === void 0 ? void 0 : _a.data) || result.error) {
|
|
65
29
|
// The response did not return valid data or returned an error
|
|
66
|
-
issues.push(new
|
|
67
|
-
scores.push(
|
|
30
|
+
issues.push(new SystemInfoIssue(result.error));
|
|
31
|
+
scores.push(RecommendedServerInfoScore.BAD);
|
|
68
32
|
}
|
|
69
33
|
else if (result.response.data.ProductName !== PRODUCT_NAME) {
|
|
70
34
|
// The product name returned was invalid
|
|
71
|
-
issues.push(new
|
|
72
|
-
scores.push(
|
|
35
|
+
issues.push(new ProductNameIssue(result.response.data.ProductName));
|
|
36
|
+
scores.push(RecommendedServerInfoScore.BAD);
|
|
73
37
|
}
|
|
74
|
-
|
|
38
|
+
const version = (_b = result.response) === null || _b === void 0 ? void 0 : _b.data.Version;
|
|
75
39
|
if (!version) {
|
|
76
40
|
// No version was returned
|
|
77
|
-
issues.push(new
|
|
78
|
-
scores.push(
|
|
41
|
+
issues.push(new VersionMissingIssue());
|
|
42
|
+
scores.push(RecommendedServerInfoScore.BAD);
|
|
79
43
|
}
|
|
80
|
-
else if (
|
|
44
|
+
else if (compare(version, MINIMUM_VERSION, '<')) {
|
|
81
45
|
// Version is less than the minimum supported
|
|
82
|
-
issues.push(new
|
|
83
|
-
scores.push(
|
|
46
|
+
issues.push(new VersionUnsupportedIssue(version));
|
|
47
|
+
scores.push(RecommendedServerInfoScore.OK);
|
|
84
48
|
}
|
|
85
|
-
else if (
|
|
49
|
+
else if (compare(version, API_VERSION, '<')) {
|
|
86
50
|
// Version is less than the generated client, but above the minimum
|
|
87
|
-
issues.push(new
|
|
88
|
-
scores.push(
|
|
51
|
+
issues.push(new VersionOutdatedIssue(version));
|
|
52
|
+
scores.push(RecommendedServerInfoScore.GOOD);
|
|
89
53
|
}
|
|
90
54
|
if (result.responseTime > SLOW_RESPONSE_TIME) {
|
|
91
55
|
// Response was slow
|
|
92
|
-
issues.push(new
|
|
93
|
-
scores.push(
|
|
56
|
+
issues.push(new SlowResponseIssue(result.responseTime));
|
|
57
|
+
scores.push(RecommendedServerInfoScore.GOOD);
|
|
94
58
|
}
|
|
95
59
|
return {
|
|
96
60
|
address: result.address,
|
|
97
61
|
responseTime: result.responseTime,
|
|
98
62
|
score: getMinScore(scores),
|
|
99
|
-
issues
|
|
63
|
+
issues,
|
|
100
64
|
systemInfo: (_c = result.response) === null || _c === void 0 ? void 0 : _c.data
|
|
101
65
|
};
|
|
102
66
|
}
|
|
103
67
|
/** Class to discover and evaluate potential servers. */
|
|
104
|
-
|
|
105
|
-
|
|
68
|
+
class RecommendedServerDiscovery {
|
|
69
|
+
constructor(jellyfin) {
|
|
106
70
|
this.jellyfin = jellyfin;
|
|
107
71
|
}
|
|
108
72
|
/**
|
|
@@ -110,44 +74,34 @@ var RecommendedServerDiscovery = /** @class */ (function () {
|
|
|
110
74
|
* @param address The server address.
|
|
111
75
|
* @returns The resulting RecommendedServerInfo.
|
|
112
76
|
*/
|
|
113
|
-
|
|
114
|
-
return __awaiter(this, void 0, void 0, function () {
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
}); })
|
|
130
|
-
.then(function (result) { return toRecommendedServerInfo(result); })];
|
|
131
|
-
});
|
|
77
|
+
fetchRecommendedServerInfo(address) {
|
|
78
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
79
|
+
const api = this.jellyfin.createApi(address);
|
|
80
|
+
const startTime = Date.now();
|
|
81
|
+
return getSystemApi(api).getPublicSystemInfo({ timeout: HTTP_TIMEOUT })
|
|
82
|
+
.then(response => ({
|
|
83
|
+
address,
|
|
84
|
+
response,
|
|
85
|
+
responseTime: Date.now() - startTime
|
|
86
|
+
}))
|
|
87
|
+
.catch(error => ({
|
|
88
|
+
address,
|
|
89
|
+
error,
|
|
90
|
+
responseTime: Date.now() - startTime
|
|
91
|
+
}))
|
|
92
|
+
.then(result => toRecommendedServerInfo(result));
|
|
132
93
|
});
|
|
133
|
-
}
|
|
94
|
+
}
|
|
134
95
|
/**
|
|
135
96
|
* Fetches the RecommendedServerInfo for multiple server addresses.
|
|
136
97
|
* @param servers An array of server addresses.
|
|
137
98
|
* @returns The RecommendedServerInfo for each address.
|
|
138
99
|
*/
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
var _this = this;
|
|
143
|
-
return __generator(this, function (_a) {
|
|
144
|
-
switch (_a.label) {
|
|
145
|
-
case 0: return [4 /*yield*/, Promise.all(servers.map(function (server) { return _this.fetchRecommendedServerInfo(server); }))];
|
|
146
|
-
case 1: return [2 /*return*/, (_a.sent()).filter(function (serverInfo) { return serverInfo.score >= minimumScore; })];
|
|
147
|
-
}
|
|
148
|
-
});
|
|
100
|
+
discover(servers, minimumScore = RecommendedServerInfoScore.BAD) {
|
|
101
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
102
|
+
return (yield Promise.all(servers.map(server => this.fetchRecommendedServerInfo(server)))).filter(serverInfo => serverInfo.score >= minimumScore);
|
|
149
103
|
});
|
|
150
|
-
}
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export { RecommendedServerDiscovery };
|