musora-content-services 1.6.8 → 1.7.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 (71) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/docs/v2/ContentOrganization.html +2 -2
  3. package/docs/v2/Forums.html +3 -3
  4. package/docs/v2/Gamification.html +2 -2
  5. package/docs/v2/TestUser.html +260 -0
  6. package/docs/v2/UserManagementSystem.html +2 -2
  7. package/docs/v2/api_types.js.html +2 -2
  8. package/docs/v2/config.js.html +2 -2
  9. package/docs/v2/content-org_content-org.js.html +2 -2
  10. package/docs/v2/content-org_guided-courses.ts.html +2 -2
  11. package/docs/v2/content-org_learning-paths.ts.html +256 -0
  12. package/docs/v2/content-org_playlists-types.js.html +2 -2
  13. package/docs/v2/content-org_playlists.js.html +2 -2
  14. package/docs/v2/content.js.html +57 -54
  15. package/docs/v2/forums_categories.ts.html +2 -2
  16. package/docs/v2/forums_forums.ts.html +86 -3
  17. package/docs/v2/forums_posts.ts.html +120 -13
  18. package/docs/v2/forums_threads.ts.html +2 -2
  19. package/docs/v2/gamification_awards.ts.html +2 -2
  20. package/docs/v2/gamification_gamification.js.html +2 -2
  21. package/docs/v2/global.html +357 -2
  22. package/docs/v2/index.html +2 -2
  23. package/docs/v2/liveTesting.ts.html +103 -0
  24. package/docs/v2/module-Accounts.html +648 -25
  25. package/docs/v2/module-Awards.html +2 -2
  26. package/docs/v2/module-Config.html +2 -2
  27. package/docs/v2/module-Content-Services-V2.html +37 -318
  28. package/docs/v2/module-Forums.html +4161 -729
  29. package/docs/v2/module-GuidedCourses.html +2 -2
  30. package/docs/v2/module-Interests.html +2 -2
  31. package/docs/v2/module-LearningPaths.html +1330 -0
  32. package/docs/v2/module-Onboarding.html +858 -0
  33. package/docs/v2/module-Payments.html +148 -6
  34. package/docs/v2/module-Permissions.html +2 -2
  35. package/docs/v2/module-Playlists.html +2 -2
  36. package/docs/v2/module-ProgressRow.html +108 -0
  37. package/docs/v2/module-Railcontent-Services.html +6 -6
  38. package/docs/v2/module-Sanity-Services.html +339 -43
  39. package/docs/v2/module-Sessions.html +2 -2
  40. package/docs/v2/module-UserActivity.html +22 -22
  41. package/docs/v2/module-UserChat.html +2 -2
  42. package/docs/v2/module-UserManagement.html +448 -4
  43. package/docs/v2/module-UserMemberships.html +284 -11
  44. package/docs/v2/module-UserNotifications.html +2 -2
  45. package/docs/v2/module-UserProfile.html +2 -2
  46. package/docs/v2/progress-row_method-card.js.html +185 -0
  47. package/docs/v2/railcontent.js.html +2 -21
  48. package/docs/v2/sanity.js.html +135 -47
  49. package/docs/v2/userActivity.js.html +120 -64
  50. package/docs/v2/user_account.ts.html +84 -37
  51. package/docs/v2/user_chat.js.html +2 -2
  52. package/docs/v2/user_interests.js.html +2 -2
  53. package/docs/v2/user_management.js.html +42 -5
  54. package/docs/v2/user_memberships.js.html +2 -2
  55. package/docs/v2/user_memberships.ts.html +292 -0
  56. package/docs/v2/user_notifications.js.html +2 -2
  57. package/docs/v2/user_onboarding.ts.html +234 -0
  58. package/docs/v2/user_payments.ts.html +55 -6
  59. package/docs/v2/user_permissions.js.html +2 -2
  60. package/docs/v2/user_profile.js.html +2 -2
  61. package/docs/v2/user_sessions.js.html +2 -2
  62. package/docs/v2/user_types.js.html +8 -2
  63. package/docs/v2/user_user-management-system.js.html +2 -2
  64. package/package.json +1 -1
  65. package/src/contentTypeConfig.js +2 -0
  66. package/src/filterBuilder.js +3 -1
  67. package/src/services/imageSRCBuilder.js +1 -1
  68. package/src/services/imageSRCVerify.js +1 -1
  69. package/src/services/sanity.js +12 -3
  70. package/test/imageSRCBuilder.test.js +1 -1
  71. package/test/imageSRCVerify.test.js +4 -4
@@ -29,7 +29,7 @@
29
29
  <nav >
30
30
 
31
31
 
32
- <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-Accounts.html">Accounts</a><ul class='methods'><li data-type='method'><a href="module-Accounts.html#~confirmEmailChange">confirmEmailChange</a></li><li data-type='method'><a href="module-Accounts.html#~requestEmailChange">requestEmailChange</a></li><li data-type='method'><a href="module-Accounts.html#~resetPassword">resetPassword</a></li><li data-type='method'><a href="module-Accounts.html#~sendAccountSetupEmail">sendAccountSetupEmail</a></li><li data-type='method'><a href="module-Accounts.html#~sendPasswordResetEmail">sendPasswordResetEmail</a></li><li data-type='method'><a href="module-Accounts.html#~setupAccount">setupAccount</a></li><li data-type='method'><a href="module-Accounts.html#~status">status</a></li></ul></li><li><a href="module-Awards.html">Awards</a><ul class='methods'><li data-type='method'><a href="module-Awards.html#~fetchAwardsForUser">fetchAwardsForUser</a></li><li data-type='method'><a href="module-Awards.html#~fetchCertificate">fetchCertificate</a></li><li data-type='method'><a href="module-Awards.html#~getAwardDataForGuidedContent">getAwardDataForGuidedContent</a></li></ul></li><li><a href="module-Config.html">Config</a><ul class='methods'><li data-type='method'><a href="module-Config.html#.initializeService">initializeService</a></li></ul></li><li><a href="module-Content-Services-V2.html">Content-Services-V2</a><ul class='methods'><li data-type='method'><a href="module-Content-Services-V2.html#.getContentRows">getContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getNewAndUpcoming">getNewAndUpcoming</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecent">getRecent</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecentForTab">getRecentForTab</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecommendedForYou">getRecommendedForYou</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getScheduleContentRows">getScheduleContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getTabResults">getTabResults</a></li></ul></li><li><a href="module-Forums.html">Forums</a><ul class='methods'><li data-type='method'><a href="module-Forums.html#~createForumCategory">createForumCategory</a></li><li data-type='method'><a href="module-Forums.html#~createPost">createPost</a></li><li data-type='method'><a href="module-Forums.html#~createThread">createThread</a></li><li data-type='method'><a href="module-Forums.html#~deletePost">deletePost</a></li><li data-type='method'><a href="module-Forums.html#~deleteThread">deleteThread</a></li><li data-type='method'><a href="module-Forums.html#~fetchCommunityGuidelines">fetchCommunityGuidelines</a></li><li data-type='method'><a href="module-Forums.html#~fetchFollowedThreads">fetchFollowedThreads</a></li><li data-type='method'><a href="module-Forums.html#~fetchForumCategories">fetchForumCategories</a></li><li data-type='method'><a href="module-Forums.html#~fetchLatestThreads">fetchLatestThreads</a></li><li data-type='method'><a href="module-Forums.html#~fetchPosts">fetchPosts</a></li><li data-type='method'><a href="module-Forums.html#~fetchThreads">fetchThreads</a></li><li data-type='method'><a href="module-Forums.html#~followThread">followThread</a></li><li data-type='method'><a href="module-Forums.html#~lockThread">lockThread</a></li><li data-type='method'><a href="module-Forums.html#~pinThread">pinThread</a></li><li data-type='method'><a href="module-Forums.html#~unfollowThread">unfollowThread</a></li><li data-type='method'><a href="module-Forums.html#~unlockThread">unlockThread</a></li><li data-type='method'><a href="module-Forums.html#~unpinThread">unpinThread</a></li><li data-type='method'><a href="module-Forums.html#~updateForumCategory">updateForumCategory</a></li><li data-type='method'><a href="module-Forums.html#~updateThread">updateThread</a></li></ul></li><li></li><li></li><li><a href="module-GuidedCourses.html">GuidedCourses</a></li><li><a href="module-Interests.html">Interests</a><ul class='methods'><li data-type='method'><a href="module-Interests.html#.fetchInterests">fetchInterests</a></li><li data-type='method'><a href="module-Interests.html#.fetchUninterests">fetchUninterests</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsInterested">markContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsNotInterested">markContentAsNotInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsInterested">removeContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsNotInterested">removeContentAsNotInterested</a></li></ul></li><li><a href="module-Payments.html">Payments</a><ul class='methods'><li data-type='method'><a href="module-Payments.html#~fetchCustomerPayments">fetchCustomerPayments</a></li></ul></li><li><a href="module-Permissions.html">Permissions</a><ul class='methods'><li data-type='method'><a href="module-Permissions.html#.fetchUserPermissions">fetchUserPermissions</a></li><li data-type='method'><a href="module-Permissions.html#.reset">reset</a></li></ul></li><li><a href="module-Playlists.html">Playlists</a><ul class='methods'><li data-type='method'><a href="module-Playlists.html#.addItemToPlaylist">addItemToPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.createPlaylist">createPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.deletePlaylist">deletePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.duplicatePlaylist">duplicatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylist">fetchPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylistItems">fetchPlaylistItems</a></li><li data-type='method'><a href="module-Playlists.html#.fetchUserPlaylists">fetchUserPlaylists</a></li><li data-type='method'><a href="module-Playlists.html#.togglePlaylistPrivate">togglePlaylistPrivate</a></li><li data-type='method'><a href="module-Playlists.html#.undeletePlaylist">undeletePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.updatePlaylist">updatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~deleteItemsFromPlaylist">deleteItemsFromPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~likePlaylist">likePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~reportPlaylist">reportPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~restoreItemFromPlaylist">restoreItemFromPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~unlikePlaylist">unlikePlaylist</a></li></ul></li><li><a href="module-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.assignModeratorToComment">assignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.closeComment">closeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.createComment">createComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deleteComment">deleteComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.editComment">editComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCarouselCardData">fetchCarouselCardData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComment">fetchComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCommentRelies">fetchCommentRelies</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComments">fetchComments</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedContent">fetchCompletedContent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedState">fetchCompletedState</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentInProgress">fetchContentInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentPageUserData">fetchContentPageUserData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchNextContentDataForParent">fetchNextContentDataForParent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchRecentUserActivities">fetchRecentUserActivities</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchTopComment">fetchTopComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserAward">fetchUserAward</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserBadges">fetchUserBadges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserPracticeNotes">fetchUserPracticeNotes</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.likeComment">likeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.openComment">openComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentComplete">postContentComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentReset">postContentReset</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentRestore">postContentRestore</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentStart">postContentStart</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.replyToComment">replyToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.reportComment">reportComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.restoreComment">restoreComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.setStudentViewForUser">setStudentViewForUser</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unassignModeratorToComment">unassignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unlikeComment">unlikeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#~fetchLastInteractedChild">fetchLastInteractedChild</a></li></ul></li><li><a href="module-Sanity-Services.html">Sanity-Services</a><ul class='methods'><li data-type='method'><a href="module-Sanity-Services.html#.fetchAll">fetchAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllFilterOptions">fetchAllFilterOptions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllPacks">fetchAllPacks</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtistLessons">fetchArtistLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtists">fetchArtists</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentId">fetchByRailContentId</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentIds">fetchByRailContentIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByReference">fetchByReference</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCoachLessons">fetchCoachLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchComingSoon">fetchComingSoon</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCommentModContentData">fetchCommentModContentData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchFoundation">fetchFoundation</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchGenreLessons">fetchGenreLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLeaving">fetchLeaving</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonContent">fetchLessonContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonsFeaturingThisContent">fetchLessonsFeaturingThisContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMetadata">fetchMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethod">fetchMethod</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildren">fetchMethodChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildrenIds">fetchMethodChildrenIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodPreviousNextLesson">fetchMethodPreviousNextLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNewReleases">fetchNewReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNextPreviousLesson">fetchNextPreviousLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchOtherSongVersions">fetchOtherSongVersions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackAll">fetchPackAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackData">fetchPackData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedLessons">fetchRelatedLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedRecommendedContent">fetchRelatedRecommendedContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedSongs">fetchRelatedSongs</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchReturning">fetchReturning</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSanity">fetchSanity</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchScheduledReleases">fetchScheduledReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchShowsData">fetchShowsData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSiblingContent">fetchSiblingContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongArtistCount">fetchSongArtistCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongById">fetchSongById</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchUpcomingEvents">fetchUpcomingEvents</a></li><li data-type='method'><a href="module-Sanity-Services.html#.jumpToContinueContent">jumpToContinueContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#~fetchRelatedByLicense">fetchRelatedByLicense</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getQueryFromPage">getQueryFromPage</a></li></ul></li><li><a href="module-Sessions.html">Sessions</a><ul class='methods'><li data-type='method'><a href="module-Sessions.html#.login">login</a></li><li data-type='method'><a href="module-Sessions.html#.logout">logout</a></li></ul></li><li><a href="module-UserActivity.html">UserActivity</a><ul class='methods'><li data-type='method'><a href="module-UserActivity.html#.calculateLongestStreaks">calculateLongestStreaks</a></li><li data-type='method'><a href="module-UserActivity.html#.createPracticeNotes">createPracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.deletePracticeSession">deletePracticeSession</a></li><li data-type='method'><a href="module-UserActivity.html#.deleteUserActivity">deleteUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.getPracticeNotes">getPracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.getPracticeSessions">getPracticeSessions</a></li><li data-type='method'><a href="module-UserActivity.html#.getProgressRows">getProgressRows</a></li><li data-type='method'><a href="module-UserActivity.html#.getRecentActivity">getRecentActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.getUserMonthlyStats">getUserMonthlyStats</a></li><li data-type='method'><a href="module-UserActivity.html#.getUserWeeklyStats">getUserWeeklyStats</a></li><li data-type='method'><a href="module-UserActivity.html#.pinProgressRow">pinProgressRow</a></li><li data-type='method'><a href="module-UserActivity.html#.recordUserActivity">recordUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.recordUserPractice">recordUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.removeUserPractice">removeUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.restorePracticeSession">restorePracticeSession</a></li><li data-type='method'><a href="module-UserActivity.html#.restoreUserActivity">restoreUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.restoreUserPractice">restoreUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.unpinProgressRow">unpinProgressRow</a></li><li data-type='method'><a href="module-UserActivity.html#.updatePracticeNotes">updatePracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.updateUserPractice">updateUserPractice</a></li></ul></li><li><a href="module-UserChat.html">UserChat</a><ul class='methods'><li data-type='method'><a href="module-UserChat.html#.fetchChatSettings">fetchChatSettings</a></li></ul></li><li><a href="module-UserManagement.html">UserManagement</a><ul class='methods'><li data-type='method'><a href="module-UserManagement.html#.blockUser">blockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.blockedUsers">blockedUsers</a></li><li data-type='method'><a href="module-UserManagement.html#.deletePicture">deletePicture</a></li><li data-type='method'><a href="module-UserManagement.html#.getUserData">getUserData</a></li><li data-type='method'><a href="module-UserManagement.html#.isDisplayNameAvailable">isDisplayNameAvailable</a></li><li data-type='method'><a href="module-UserManagement.html#.unblockUser">unblockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.updateDisplayName">updateDisplayName</a></li><li data-type='method'><a href="module-UserManagement.html#.uploadPicture">uploadPicture</a></li><li data-type='method'><a href="module-UserManagement.html#.uploadPictureFromS3">uploadPictureFromS3</a></li></ul></li><li><a href="module-UserMemberships.html">UserMemberships</a><ul class='methods'><li data-type='method'><a href="module-UserMemberships.html#.fetchMemberships">fetchMemberships</a></li><li data-type='method'><a href="module-UserMemberships.html#.fetchRechargeTokens">fetchRechargeTokens</a></li><li data-type='method'><a href="module-UserMemberships.html#.upgradeSubscription">upgradeSubscription</a></li></ul></li><li><a href="module-UserNotifications.html">UserNotifications</a><ul class='methods'><li data-type='method'><a href="module-UserNotifications.html#.deleteNotification">deleteNotification</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchLiveEventPollingState">fetchLiveEventPollingState</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchNotificationSettings">fetchNotificationSettings</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchNotifications">fetchNotifications</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchUnreadCount">fetchUnreadCount</a></li><li data-type='method'><a href="module-UserNotifications.html#.markAllNotificationsAsRead">markAllNotificationsAsRead</a></li><li data-type='method'><a href="module-UserNotifications.html#.markNotificationAsRead">markNotificationAsRead</a></li><li data-type='method'><a href="module-UserNotifications.html#.markNotificationAsUnread">markNotificationAsUnread</a></li><li data-type='method'><a href="module-UserNotifications.html#.pauseLiveEventPolling">pauseLiveEventPolling</a></li><li data-type='method'><a href="module-UserNotifications.html#.restoreNotification">restoreNotification</a></li><li data-type='method'><a href="module-UserNotifications.html#.startLiveEventPolling">startLiveEventPolling</a></li><li data-type='method'><a href="module-UserNotifications.html#.updateNotificationSetting">updateNotificationSetting</a></li></ul></li><li><a href="module-UserProfile.html">UserProfile</a><ul class='methods'><li data-type='method'><a href="module-UserProfile.html#.deleteProfilePicture">deleteProfilePicture</a></li><li data-type='method'><a href="module-UserProfile.html#.otherStats">otherStats</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="ContentOrganization.html">ContentOrganization</a></li><li><a href="Forums.html">Forums</a></li><li><a href="Gamification.html">Gamification</a></li><li><a href="UserManagementSystem.html">UserManagementSystem</a></li></ul><h3><a href="global.html">Global</a></h3>
32
+ <h2><a href="index.html">Home</a></h2><h3>Modules</h3><ul><li><a href="module-Accounts.html">Accounts</a><ul class='methods'><li data-type='method'><a href="module-Accounts.html#~confirmEmailChange">confirmEmailChange</a></li><li data-type='method'><a href="module-Accounts.html#~deleteAccount">deleteAccount</a></li><li data-type='method'><a href="module-Accounts.html#~numberOfActiveUsers">numberOfActiveUsers</a></li><li data-type='method'><a href="module-Accounts.html#~requestEmailChange">requestEmailChange</a></li><li data-type='method'><a href="module-Accounts.html#~resetPassword">resetPassword</a></li><li data-type='method'><a href="module-Accounts.html#~sendAccountSetupEmail">sendAccountSetupEmail</a></li><li data-type='method'><a href="module-Accounts.html#~sendPasswordResetEmail">sendPasswordResetEmail</a></li><li data-type='method'><a href="module-Accounts.html#~setupAccount">setupAccount</a></li><li data-type='method'><a href="module-Accounts.html#~status">status</a></li></ul></li><li><a href="module-Awards.html">Awards</a><ul class='methods'><li data-type='method'><a href="module-Awards.html#~fetchAwardsForUser">fetchAwardsForUser</a></li><li data-type='method'><a href="module-Awards.html#~fetchCertificate">fetchCertificate</a></li><li data-type='method'><a href="module-Awards.html#~getAwardDataForGuidedContent">getAwardDataForGuidedContent</a></li></ul></li><li><a href="module-Config.html">Config</a><ul class='methods'><li data-type='method'><a href="module-Config.html#.initializeService">initializeService</a></li></ul></li><li><a href="module-Content-Services-V2.html">Content-Services-V2</a><ul class='methods'><li data-type='method'><a href="module-Content-Services-V2.html#.getContentRows">getContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getLegacyMethods">getLegacyMethods</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getNewAndUpcoming">getNewAndUpcoming</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecent">getRecent</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getRecommendedForYou">getRecommendedForYou</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getScheduleContentRows">getScheduleContentRows</a></li><li data-type='method'><a href="module-Content-Services-V2.html#.getTabResults">getTabResults</a></li></ul></li><li><a href="module-Forums.html">Forums</a><ul class='methods'><li data-type='method'><a href="module-Forums.html#~createForumCategory">createForumCategory</a></li><li data-type='method'><a href="module-Forums.html#~createPost">createPost</a></li><li data-type='method'><a href="module-Forums.html#~createThread">createThread</a></li><li data-type='method'><a href="module-Forums.html#~deletePost">deletePost</a></li><li data-type='method'><a href="module-Forums.html#~deleteThread">deleteThread</a></li><li data-type='method'><a href="module-Forums.html#~fetchCommunityGuidelines">fetchCommunityGuidelines</a></li><li data-type='method'><a href="module-Forums.html#~fetchFollowedThreads">fetchFollowedThreads</a></li><li data-type='method'><a href="module-Forums.html#~fetchForumCategories">fetchForumCategories</a></li><li data-type='method'><a href="module-Forums.html#~fetchLatestThreads">fetchLatestThreads</a></li><li data-type='method'><a href="module-Forums.html#~fetchPosts">fetchPosts</a></li><li data-type='method'><a href="module-Forums.html#~fetchThreads">fetchThreads</a></li><li data-type='method'><a href="module-Forums.html#~followThread">followThread</a></li><li data-type='method'><a href="module-Forums.html#~jumpToPost">jumpToPost</a></li><li data-type='method'><a href="module-Forums.html#~likePost">likePost</a></li><li data-type='method'><a href="module-Forums.html#~lockThread">lockThread</a></li><li data-type='method'><a href="module-Forums.html#~pinThread">pinThread</a></li><li data-type='method'><a href="module-Forums.html#~search">search</a></li><li data-type='method'><a href="module-Forums.html#~unfollowThread">unfollowThread</a></li><li data-type='method'><a href="module-Forums.html#~unlikePost">unlikePost</a></li><li data-type='method'><a href="module-Forums.html#~unlockThread">unlockThread</a></li><li data-type='method'><a href="module-Forums.html#~unpinThread">unpinThread</a></li><li data-type='method'><a href="module-Forums.html#~updateForumCategory">updateForumCategory</a></li><li data-type='method'><a href="module-Forums.html#~updatePost">updatePost</a></li><li data-type='method'><a href="module-Forums.html#~updateThread">updateThread</a></li></ul></li><li></li><li></li><li><a href="module-GuidedCourses.html">GuidedCourses</a></li><li><a href="module-Interests.html">Interests</a><ul class='methods'><li data-type='method'><a href="module-Interests.html#.fetchInterests">fetchInterests</a></li><li data-type='method'><a href="module-Interests.html#.fetchUninterests">fetchUninterests</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsInterested">markContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.markContentAsNotInterested">markContentAsNotInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsInterested">removeContentAsInterested</a></li><li data-type='method'><a href="module-Interests.html#.removeContentAsNotInterested">removeContentAsNotInterested</a></li></ul></li><li><a href="module-LearningPaths.html">LearningPaths</a><ul class='methods'><li data-type='method'><a href="module-LearningPaths.html#~fetchLearningPathLessons">fetchLearningPathLessons</a></li><li data-type='method'><a href="module-LearningPaths.html#~getActivePath">getActivePath</a></li><li data-type='method'><a href="module-LearningPaths.html#~getDailySession">getDailySession</a></li><li data-type='method'><a href="module-LearningPaths.html#~resetAllLearningPaths">resetAllLearningPaths</a></li><li data-type='method'><a href="module-LearningPaths.html#~startLearningPath">startLearningPath</a></li><li data-type='method'><a href="module-LearningPaths.html#~updateActivePath">updateActivePath</a></li><li data-type='method'><a href="module-LearningPaths.html#~updateDailySession">updateDailySession</a></li></ul></li><li><a href="module-Onboarding.html">Onboarding</a><ul class='methods'><li data-type='method'><a href="module-Onboarding.html#~getOnboardingRecommendedContent">getOnboardingRecommendedContent</a></li><li data-type='method'><a href="module-Onboarding.html#~startOnboarding">startOnboarding</a></li><li data-type='method'><a href="module-Onboarding.html#~updateOnboarding">updateOnboarding</a></li><li data-type='method'><a href="module-Onboarding.html#~userOnboardingForBrand">userOnboardingForBrand</a></li></ul></li><li><a href="module-Payments.html">Payments</a><ul class='methods'><li data-type='method'><a href="module-Payments.html#~fetchCustomerPayments">fetchCustomerPayments</a></li></ul></li><li><a href="module-Permissions.html">Permissions</a><ul class='methods'><li data-type='method'><a href="module-Permissions.html#.fetchUserPermissions">fetchUserPermissions</a></li><li data-type='method'><a href="module-Permissions.html#.reset">reset</a></li></ul></li><li><a href="module-Playlists.html">Playlists</a><ul class='methods'><li data-type='method'><a href="module-Playlists.html#.addItemToPlaylist">addItemToPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.createPlaylist">createPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.deletePlaylist">deletePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.duplicatePlaylist">duplicatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylist">fetchPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.fetchPlaylistItems">fetchPlaylistItems</a></li><li data-type='method'><a href="module-Playlists.html#.fetchUserPlaylists">fetchUserPlaylists</a></li><li data-type='method'><a href="module-Playlists.html#.togglePlaylistPrivate">togglePlaylistPrivate</a></li><li data-type='method'><a href="module-Playlists.html#.undeletePlaylist">undeletePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#.updatePlaylist">updatePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~deleteItemsFromPlaylist">deleteItemsFromPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~likePlaylist">likePlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~reportPlaylist">reportPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~restoreItemFromPlaylist">restoreItemFromPlaylist</a></li><li data-type='method'><a href="module-Playlists.html#~unlikePlaylist">unlikePlaylist</a></li></ul></li><li><a href="module-ProgressRow.html">ProgressRow</a></li><li><a href="module-Railcontent-Services.html">Railcontent-Services</a><ul class='methods'><li data-type='method'><a href="module-Railcontent-Services.html#.assignModeratorToComment">assignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.closeComment">closeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.createComment">createComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.deleteComment">deleteComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.editComment">editComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchAllCompletedStates">fetchAllCompletedStates</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCarouselCardData">fetchCarouselCardData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComment">fetchComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCommentRelies">fetchCommentRelies</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchComments">fetchComments</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedContent">fetchCompletedContent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchCompletedState">fetchCompletedState</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentInProgress">fetchContentInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchContentPageUserData">fetchContentPageUserData</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchNextContentDataForParent">fetchNextContentDataForParent</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchRecentUserActivities">fetchRecentUserActivities</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchSongsInProgress">fetchSongsInProgress</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchTopComment">fetchTopComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserAward">fetchUserAward</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserBadges">fetchUserBadges</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.fetchUserPracticeNotes">fetchUserPracticeNotes</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.likeComment">likeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.openComment">openComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentComplete">postContentComplete</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentReset">postContentReset</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentRestore">postContentRestore</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.postContentStart">postContentStart</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.replyToComment">replyToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.reportComment">reportComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.restoreComment">restoreComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.setStudentViewForUser">setStudentViewForUser</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unassignModeratorToComment">unassignModeratorToComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#.unlikeComment">unlikeComment</a></li><li data-type='method'><a href="module-Railcontent-Services.html#~fetchLastInteractedChild">fetchLastInteractedChild</a></li></ul></li><li><a href="module-Sanity-Services.html">Sanity-Services</a><ul class='methods'><li data-type='method'><a href="module-Sanity-Services.html#.fetchAll">fetchAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllFilterOptions">fetchAllFilterOptions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchAllPacks">fetchAllPacks</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtistLessons">fetchArtistLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchArtists">fetchArtists</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentId">fetchByRailContentId</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByRailContentIds">fetchByRailContentIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchByReference">fetchByReference</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCoachLessons">fetchCoachLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchComingSoon">fetchComingSoon</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchCommentModContentData">fetchCommentModContentData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchFoundation">fetchFoundation</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchGenreLessons">fetchGenreLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLeaving">fetchLeaving</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonContent">fetchLessonContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchLessonsFeaturingThisContent">fetchLessonsFeaturingThisContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMetadata">fetchMetadata</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethod">fetchMethod</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildren">fetchMethodChildren</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodChildrenIds">fetchMethodChildrenIds</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodPreviousNextLesson">fetchMethodPreviousNextLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodV2IntroVideo">fetchMethodV2IntroVideo</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchMethodV2Structure">fetchMethodV2Structure</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNewReleases">fetchNewReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchNextPreviousLesson">fetchNextPreviousLesson</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchOtherSongVersions">fetchOtherSongVersions</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackAll">fetchPackAll</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchPackData">fetchPackData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedLessons">fetchRelatedLessons</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedRecommendedContent">fetchRelatedRecommendedContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchRelatedSongs">fetchRelatedSongs</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchReturning">fetchReturning</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSanity">fetchSanity</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchScheduledReleases">fetchScheduledReleases</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchShowsData">fetchShowsData</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSiblingContent">fetchSiblingContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongArtistCount">fetchSongArtistCount</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchSongById">fetchSongById</a></li><li data-type='method'><a href="module-Sanity-Services.html#.fetchUpcomingEvents">fetchUpcomingEvents</a></li><li data-type='method'><a href="module-Sanity-Services.html#.jumpToContinueContent">jumpToContinueContent</a></li><li data-type='method'><a href="module-Sanity-Services.html#~fetchRelatedByLicense">fetchRelatedByLicense</a></li><li data-type='method'><a href="module-Sanity-Services.html#~getQueryFromPage">getQueryFromPage</a></li></ul></li><li><a href="module-Sessions.html">Sessions</a><ul class='methods'><li data-type='method'><a href="module-Sessions.html#.login">login</a></li><li data-type='method'><a href="module-Sessions.html#.logout">logout</a></li></ul></li><li><a href="module-UserActivity.html">UserActivity</a><ul class='methods'><li data-type='method'><a href="module-UserActivity.html#.calculateLongestStreaks">calculateLongestStreaks</a></li><li data-type='method'><a href="module-UserActivity.html#.createPracticeNotes">createPracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.deletePracticeSession">deletePracticeSession</a></li><li data-type='method'><a href="module-UserActivity.html#.deleteUserActivity">deleteUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.getPracticeNotes">getPracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.getPracticeSessions">getPracticeSessions</a></li><li data-type='method'><a href="module-UserActivity.html#.getProgressRows">getProgressRows</a></li><li data-type='method'><a href="module-UserActivity.html#.getRecentActivity">getRecentActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.getUserMonthlyStats">getUserMonthlyStats</a></li><li data-type='method'><a href="module-UserActivity.html#.getUserWeeklyStats">getUserWeeklyStats</a></li><li data-type='method'><a href="module-UserActivity.html#.pinProgressRow">pinProgressRow</a></li><li data-type='method'><a href="module-UserActivity.html#.recordUserActivity">recordUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.recordUserPractice">recordUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.removeUserPractice">removeUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.restorePracticeSession">restorePracticeSession</a></li><li data-type='method'><a href="module-UserActivity.html#.restoreUserActivity">restoreUserActivity</a></li><li data-type='method'><a href="module-UserActivity.html#.restoreUserPractice">restoreUserPractice</a></li><li data-type='method'><a href="module-UserActivity.html#.unpinProgressRow">unpinProgressRow</a></li><li data-type='method'><a href="module-UserActivity.html#.updatePracticeNotes">updatePracticeNotes</a></li><li data-type='method'><a href="module-UserActivity.html#.updateUserPractice">updateUserPractice</a></li></ul></li><li><a href="module-UserChat.html">UserChat</a><ul class='methods'><li data-type='method'><a href="module-UserChat.html#.fetchChatSettings">fetchChatSettings</a></li></ul></li><li><a href="module-UserManagement.html">UserManagement</a><ul class='methods'><li data-type='method'><a href="module-UserManagement.html#.blockUser">blockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.blockedUsers">blockedUsers</a></li><li data-type='method'><a href="module-UserManagement.html#.deletePicture">deletePicture</a></li><li data-type='method'><a href="module-UserManagement.html#.getUserData">getUserData</a></li><li data-type='method'><a href="module-UserManagement.html#.getUserSignature">getUserSignature</a></li><li data-type='method'><a href="module-UserManagement.html#.isUsernameAvailable">isUsernameAvailable</a></li><li data-type='method'><a href="module-UserManagement.html#.setUserSignature">setUserSignature</a></li><li data-type='method'><a href="module-UserManagement.html#.toggleSignaturePrivate">toggleSignaturePrivate</a></li><li data-type='method'><a href="module-UserManagement.html#.unblockUser">unblockUser</a></li><li data-type='method'><a href="module-UserManagement.html#.updateDisplayName">updateDisplayName</a></li><li data-type='method'><a href="module-UserManagement.html#.uploadPicture">uploadPicture</a></li><li data-type='method'><a href="module-UserManagement.html#.uploadPictureFromS3">uploadPictureFromS3</a></li></ul></li><li><a href="module-UserMemberships.html">UserMemberships</a><ul class='methods'><li data-type='method'><a href="module-UserMemberships.html#~fetchMemberships">fetchMemberships</a></li><li data-type='method'><a href="module-UserMemberships.html#~fetchRechargeTokens">fetchRechargeTokens</a></li><li data-type='method'><a href="module-UserMemberships.html#~restorePurchases">restorePurchases</a></li><li data-type='method'><a href="module-UserMemberships.html#~upgradeSubscription">upgradeSubscription</a></li></ul></li><li><a href="module-UserNotifications.html">UserNotifications</a><ul class='methods'><li data-type='method'><a href="module-UserNotifications.html#.deleteNotification">deleteNotification</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchLiveEventPollingState">fetchLiveEventPollingState</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchNotificationSettings">fetchNotificationSettings</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchNotifications">fetchNotifications</a></li><li data-type='method'><a href="module-UserNotifications.html#.fetchUnreadCount">fetchUnreadCount</a></li><li data-type='method'><a href="module-UserNotifications.html#.markAllNotificationsAsRead">markAllNotificationsAsRead</a></li><li data-type='method'><a href="module-UserNotifications.html#.markNotificationAsRead">markNotificationAsRead</a></li><li data-type='method'><a href="module-UserNotifications.html#.markNotificationAsUnread">markNotificationAsUnread</a></li><li data-type='method'><a href="module-UserNotifications.html#.pauseLiveEventPolling">pauseLiveEventPolling</a></li><li data-type='method'><a href="module-UserNotifications.html#.restoreNotification">restoreNotification</a></li><li data-type='method'><a href="module-UserNotifications.html#.startLiveEventPolling">startLiveEventPolling</a></li><li data-type='method'><a href="module-UserNotifications.html#.updateNotificationSetting">updateNotificationSetting</a></li></ul></li><li><a href="module-UserProfile.html">UserProfile</a><ul class='methods'><li data-type='method'><a href="module-UserProfile.html#.deleteProfilePicture">deleteProfilePicture</a></li><li data-type='method'><a href="module-UserProfile.html#.otherStats">otherStats</a></li></ul></li></ul><h3>Namespaces</h3><ul><li><a href="ContentOrganization.html">ContentOrganization</a></li><li><a href="Forums.html">Forums</a></li><li><a href="Gamification.html">Gamification</a></li><li><a href="UserManagementSystem.html">UserManagementSystem</a></li></ul><h3>Interfaces</h3><ul><li><a href="TestUser.html">TestUser</a></li></ul><h3>Global</h3><ul><li><a href="global.html#createTestUser">createTestUser</a></li></ul>
33
33
 
34
34
  </nav>
35
35
 
@@ -56,6 +56,7 @@ import {
56
56
  descriptionField,
57
57
  resourcesField,
58
58
  contentTypeConfig,
59
+ getIntroVideoFields,
59
60
  DEFAULT_FIELDS,
60
61
  getFieldsForContentType,
61
62
  filtersToGroq,
@@ -66,7 +67,7 @@ import {
66
67
  getFieldsForContentTypeWithFilteredChildren,
67
68
  getChildFieldsForContentType,
68
69
  SONG_TYPES,
69
- recentTypes
70
+ SONG_TYPES_WITH_CHILDREN,
70
71
  } from '../contentTypeConfig.js'
71
72
  import {fetchSimilarItems, recommendations} from './recommendations.js'
72
73
  import { processMetadata, typeWithSortOrder } from '../contentMetaData.js'
@@ -421,7 +422,7 @@ export async function fetchUpcomingEvents(brand, { page = 1, limit = 10 } = {})
421
422
  live_event_end_time,
422
423
  "isLive": live_event_start_time &lt;= '${now}' &amp;&amp; live_event_end_time >= '${now}'`
423
424
  const query = buildRawQuery(
424
- `defined(live_event_start_time) &amp;&amp; (!defined(live_event_end_time) || live_event_end_time >= '${now}' ) &amp;&amp; brand == '${brand}' &amp;&amp; published_on > '${now}' &amp;&amp; status == 'scheduled'`,
425
+ `defined(live_event_start_time) &amp;&amp; live_event_start_time >= '${now}' &amp;&amp; (!defined(live_event_end_time) || live_event_end_time >= '${now}' ) &amp;&amp; brand == '${brand}' &amp;&amp; status == 'scheduled'`,
425
426
  fields,
426
427
  {
427
428
  sortOrder: 'published_on asc',
@@ -486,13 +487,11 @@ export async function fetchScheduledReleases(brand, { page = 1, limit = 10 }) {
486
487
  * .catch(error => console.error(error));
487
488
  */
488
489
  export async function fetchByRailContentId(id, contentType) {
489
- const fields = await getFieldsForContentTypeWithFilteredChildren(contentType)
490
- const lessonFields = getChildFieldsForContentType(contentType)
490
+ const fields = await getFieldsForContentTypeWithFilteredChildren(contentType, true)
491
491
  const childrenFilter = await new FilterBuilder(``, { isChildrenFilter: true }).buildFilter()
492
492
  const entityFieldsString = ` ${fields}
493
- 'child_count': coalesce(count(child[${childrenFilter}]->), 0) ,
494
- "lessons": child[${childrenFilter}]->{${lessonFields}},
495
- 'length_in_seconds': coalesce(
493
+ 'child_count': coalesce(count(child[${childrenFilter}]->), 0) ,
494
+ 'length_in_seconds': coalesce(
496
495
  math::sum(
497
496
  select(
498
497
  child[${childrenFilter}]->length_in_seconds
@@ -543,6 +542,8 @@ export async function fetchByRailContentIds(ids, contentType = undefined, brand
543
542
  live_event_start_time,
544
543
  live_event_end_time,
545
544
  }`
545
+
546
+ console.log('ids query', query)
546
547
  const customPostProcess = (results) => {
547
548
  const now = getSanityDate(new Date(), false);
548
549
  const liveProcess = (result) => {
@@ -710,7 +711,7 @@ export async function fetchAll(
710
711
  'head_shot_picture_url': thumbnail_url.asset->url,
711
712
  'web_url_path': '/${brand}/${webUrlPath}/'+name+'?included_fieds[]=type,${type}',
712
713
  'all_lessons_count': count(*[${lessonsFilterWithRestrictions}]._id),
713
- 'lessons': *[${lessonsFilterWithRestrictions}]{
714
+ 'children': *[${lessonsFilterWithRestrictions}]{
714
715
  ${fieldsString},
715
716
  ${groupBy}
716
717
  }[0...20]
@@ -730,7 +731,7 @@ export async function fetchAll(
730
731
  'head_shot_picture_url': thumbnail_url.asset->url,
731
732
  'web_url_path': select(defined(web_url_path)=> web_url_path +'?included_fieds[]=type,${type}',!defined(web_url_path)=> '/${brand}${webUrlPath}/'+name+'/${webUrlPathType}'),
732
733
  'all_lessons_count': count(*[${lessonsFilterWithRestrictions}]._id),
733
- 'lessons': *[${lessonsFilterWithRestrictions}]{
734
+ 'children': *[${lessonsFilterWithRestrictions}]{
734
735
  ${fieldsString},
735
736
  'lesson_count': coalesce(count(child[${childrenFilter}]->), 0) ,
736
737
  ${groupBy}
@@ -740,8 +741,8 @@ export async function fetchAll(
740
741
  filter = `brand == "${brand}" ${typeFilter} ${searchFilter} ${includedFieldsFilter} ${progressFilter} ${customFilter}`
741
742
  const childrenFilter = await new FilterBuilder(``, { isChildrenFilter: true }).buildFilter()
742
743
  entityFieldsString = ` ${fieldsString},
743
- 'lesson_count': coalesce(count(child[${childrenFilter}]->), 0) ,
744
- 'length_in_seconds': coalesce(
744
+ 'lesson_count': coalesce(count(child[${childrenFilter}]->), 0) ,
745
+ 'length_in_seconds': coalesce(
745
746
  math::sum(
746
747
  select(
747
748
  child[${childrenFilter}]->length_in_seconds
@@ -795,17 +796,17 @@ async function getProgressFilter(progress, progressIds) {
795
796
  }
796
797
 
797
798
  export function getSortOrder(sort = '-published_on', brand, groupBy) {
798
- // Determine the sort order
799
+ const sanitizedSort = sort?.trim() || '-published_on'
800
+ let isDesc = sanitizedSort.startsWith('-')
801
+ const sortField = isDesc ? sanitizedSort.substring(1) : sanitizedSort
802
+
799
803
  let sortOrder = ''
800
- let isDesc = sort.startsWith('-')
801
- sort = isDesc ? sort.substring(1) : sort
802
- switch (sort) {
804
+
805
+ switch (sortField) {
803
806
  case 'slug':
804
807
  sortOrder = groupBy ? 'name' : '!defined(title), lower(title)'
805
808
  break
806
- case 'name':
807
- sortOrder = sort
808
- break
809
+
809
810
  case 'popularity':
810
811
  if (groupBy == 'artist' || groupBy == 'genre') {
811
812
  sortOrder = isDesc ? `coalesce(popularity.${brand}, -1)` : 'popularity'
@@ -813,15 +814,17 @@ export function getSortOrder(sort = '-published_on', brand, groupBy) {
813
814
  sortOrder = isDesc ? 'coalesce(popularity, -1)' : 'popularity'
814
815
  }
815
816
  break
817
+
816
818
  case 'recommended':
817
819
  sortOrder = 'published_on'
818
820
  isDesc = true
819
821
  break
820
- case 'published_on':
822
+
821
823
  default:
822
- sortOrder = 'published_on'
824
+ sortOrder = sortField
823
825
  break
824
826
  }
827
+
825
828
  sortOrder += isDesc ? ' desc' : ' asc'
826
829
  return sortOrder
827
830
  }
@@ -1187,8 +1190,8 @@ export async function fetchLessonContent(railContentId, { addParent = false } =
1187
1190
  defined(live_event_start_time) => {
1188
1191
  "live_event_start_time": live_event_start_time,
1189
1192
  "live_event_end_time": live_event_end_time,
1190
- "live_event_youtube_id": live_event_youtube_id,
1191
- "videoId": coalesce(live_event_youtube_id, video.external_id),
1193
+ "live_event_stream_id": live_event_stream_id,
1194
+ "videoId": coalesce(live_event_stream_id, video.external_id),
1192
1195
  "live_event_is_global": live_global_event == true
1193
1196
  }
1194
1197
  )
@@ -1389,12 +1392,10 @@ export async function fetchAllPacks(
1389
1392
  const sortOrder = getSortOrder(sort, brand)
1390
1393
  const filter = `(_type == 'pack' || _type == 'semester-pack') &amp;&amp; brand == '${brand}' &amp;&amp; title match "${searchTerm}*"`
1391
1394
  const filterParams = {}
1392
- const fields = getFieldsForContentType('pack')
1393
1395
  const start = (page - 1) * limit
1394
1396
  const end = start + limit
1395
1397
 
1396
- const query = await buildQuery(filter, filterParams, getFieldsForContentType('pack'), {
1397
- logo_image_url: 'logo_image_url.asset->url',
1398
+ const query = await buildQuery(filter, filterParams, await getFieldsForContentTypeWithFilteredChildren('pack'), {
1398
1399
  sortOrder: sortOrder,
1399
1400
  start,
1400
1401
  end,
@@ -1450,7 +1451,7 @@ export async function fetchLiveEvent(brand, forcedContentId = null) {
1450
1451
  'id': railcontent_id,
1451
1452
  live_event_start_time,
1452
1453
  live_event_end_time,
1453
- live_event_youtube_id,
1454
+ live_event_stream_id,
1454
1455
  railcontent_id,
1455
1456
  published_on,
1456
1457
  'event_coach_url' : instructor[0]->web_url_path,
@@ -1460,14 +1461,14 @@ export async function fetchLiveEvent(brand, forcedContentId = null) {
1460
1461
  ${artistOrInstructorName()},
1461
1462
  difficulty_string,
1462
1463
  "instructors": ${instructorField},
1463
- 'videoId': coalesce(live_event_youtube_id, video.external_id),
1464
+ 'videoId': coalesce(live_event_stream_id, video.external_id),
1464
1465
  } | order(live_event_start_time)[0...1]`
1465
1466
  : `*[status == 'scheduled' &amp;&amp; brand == '${brand}' &amp;&amp; defined(live_event_start_time) &amp;&amp; live_event_start_time &lt;= '${getSanityDate(startDateTemp, false)}' &amp;&amp; live_event_end_time >= '${getSanityDate(endDateTemp, false)}']{
1466
1467
  'slug': slug.current,
1467
1468
  'id': railcontent_id,
1468
1469
  live_event_start_time,
1469
1470
  live_event_end_time,
1470
- live_event_youtube_id,
1471
+ live_event_stream_id,
1471
1472
  railcontent_id,
1472
1473
  published_on,
1473
1474
  'event_coach_url' : instructor[0]->web_url_path,
@@ -1480,7 +1481,7 @@ export async function fetchLiveEvent(brand, forcedContentId = null) {
1480
1481
  name,
1481
1482
  web_url_path,
1482
1483
  },
1483
- 'videoId': coalesce(live_event_youtube_id, video.external_id),
1484
+ 'videoId': coalesce(live_event_stream_id, video.external_id),
1484
1485
  } | order(live_event_start_time)[0...1]`
1485
1486
 
1486
1487
  return await fetchSanity(query, false, { processNeedAccess: false })
@@ -1866,6 +1867,7 @@ export async function fetchSanity(
1866
1867
  results = processNeedAccess
1867
1868
  ? await needsAccessDecorator(results, userPermissions, isAdmin)
1868
1869
  : results
1870
+ results = pageTypeDecorator(results)
1869
1871
  return customPostProcess ? customPostProcess(results) : results
1870
1872
  } else {
1871
1873
  throw new Error('No results found')
@@ -1876,37 +1878,46 @@ export async function fetchSanity(
1876
1878
  }
1877
1879
  }
1878
1880
 
1879
- function needsAccessDecorator(results, userPermissions, isAdmin) {
1880
- if (globalConfig.sanityConfig.useDummyRailContentMethods) return results
1881
-
1882
- userPermissions = new Set(userPermissions)
1883
-
1881
+ function contentResultsDecorator(results, fieldName, callback)
1882
+ {
1884
1883
  if (Array.isArray(results)) {
1885
1884
  results.forEach((result) => {
1886
- result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin)
1885
+ result[fieldName] = callback(result)
1887
1886
  })
1888
1887
  } else if (results.entity &amp;&amp; Array.isArray(results.entity)) {
1889
1888
  // Group By
1890
1889
  results.entity.forEach((result) => {
1891
1890
  if (result.lessons) {
1892
1891
  result.lessons.forEach((lesson) => {
1893
- lesson['need_access'] = doesUserNeedAccessToContent(lesson, userPermissions, isAdmin) // Updated to check lesson access
1892
+ lesson[fieldName] = callback(lesson) // Updated to check lesson access
1894
1893
  })
1895
1894
  } else {
1896
- result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin)
1895
+ result[fieldName] = callback(result)
1897
1896
  }
1898
1897
  })
1899
1898
  } else if (results.related_lessons &amp;&amp; Array.isArray(results.related_lessons)) {
1900
1899
  results.related_lessons.forEach((result) => {
1901
- result['need_access'] = doesUserNeedAccessToContent(result, userPermissions, isAdmin)
1900
+ result[fieldName] = callback(result)
1902
1901
  })
1903
1902
  } else {
1904
- results['need_access'] = doesUserNeedAccessToContent(results, userPermissions, isAdmin)
1903
+ results[fieldName] = callback(results)
1905
1904
  }
1906
1905
 
1907
1906
  return results
1908
1907
  }
1909
1908
 
1909
+ function pageTypeDecorator(results)
1910
+ {
1911
+ return contentResultsDecorator(results, 'page_type', function(content) { return SONG_TYPES_WITH_CHILDREN.includes(content['type']) ? 'song' : 'lesson'})
1912
+ }
1913
+
1914
+
1915
+ function needsAccessDecorator(results, userPermissions, isAdmin) {
1916
+ if (globalConfig.sanityConfig.useDummyRailContentMethods) return results
1917
+ userPermissions = new Set(userPermissions)
1918
+ return contentResultsDecorator(results, 'need_access', function (content) { return doesUserNeedAccessToContent(content, userPermissions, isAdmin) })
1919
+ }
1920
+
1910
1921
  function doesUserNeedAccessToContent(result, userPermissions, isAdmin) {
1911
1922
  if (isAdmin ?? false) {
1912
1923
  return false
@@ -2066,10 +2077,10 @@ async function buildQuery(
2066
2077
  function buildEntityAndTotalQuery(
2067
2078
  filter = '',
2068
2079
  fields = '...',
2069
- { sortOrder = 'published_on desc', start = 0, end = 10, isSingle = false }
2080
+ { sortOrder = 'published_on desc', start = 0, end = 10, isSingle = false, withoutPagination = false }
2070
2081
  ) {
2071
2082
  const sortString = sortOrder ? ` | order(${sortOrder})` : ''
2072
- const countString = isSingle ? '[0...1]' : `[${start}...${end}]`
2083
+ const countString = isSingle ? '[0...1]' : (withoutPagination ? ``: `[${start}...${end}]`)
2073
2084
  const query = `{
2074
2085
  "entity": *[${filter}] ${sortString}${countString}
2075
2086
  {
@@ -2183,7 +2194,9 @@ export async function fetchTabData(
2183
2194
  page = 1,
2184
2195
  limit = 10,
2185
2196
  sort = '-published_on',
2186
- includedFields = []
2197
+ includedFields = [],
2198
+ progressIds = undefined,
2199
+ progress = 'all',
2187
2200
  } = {}
2188
2201
  ) {
2189
2202
  const start = (page - 1) * limit
@@ -2194,6 +2207,23 @@ export async function fetchTabData(
2194
2207
 
2195
2208
  let sortOrder = getSortOrder(sort, brand, '')
2196
2209
 
2210
+ switch (progress) {
2211
+ case 'recent':
2212
+ progressIds = await getAllStartedOrCompleted({ brand, onlyIds: true });
2213
+ sortOrder = null;
2214
+ break;
2215
+ case 'incomplete':
2216
+ progressIds = await getAllStarted();
2217
+ sortOrder = null;
2218
+ break;
2219
+ case 'completed':
2220
+ progressIds = await getAllCompleted();
2221
+ sortOrder = null;
2222
+ break;
2223
+ }
2224
+
2225
+ // limits the results to supplied progressIds for started &amp; completed filters
2226
+ const progressFilter = await getProgressFilter(progress, progressIds)
2197
2227
  const fieldsString = getFieldsForContentType('tab-data');
2198
2228
  const now = getSanityDate(new Date())
2199
2229
 
@@ -2202,8 +2232,8 @@ export async function fetchTabData(
2202
2232
  let entityFieldsString = ''
2203
2233
  let filter = ''
2204
2234
 
2205
- filter = `brand == "${brand}" ${includedFieldsFilter}`
2206
- const childrenFilter = await new FilterBuilder(``, { isChildrenFilter: true, pullFutureContent: true }).buildFilter()
2235
+ filter = `brand == "${brand}" &amp;&amp; (defined(railcontent_id)) ${includedFieldsFilter} ${progressFilter}`
2236
+ const childrenFilter = await new FilterBuilder(``, { isChildrenFilter: true }).buildFilter()
2207
2237
  const childrenFields = await getChildFieldsForContentType('tab-data')
2208
2238
  const lessonCountFilter = await new FilterBuilder(`_id in ^.child[]._ref`).buildFilter()
2209
2239
  entityFieldsString =
@@ -2228,9 +2258,36 @@ export async function fetchTabData(
2228
2258
 
2229
2259
  let results = await fetchSanity(query, true);
2230
2260
 
2261
+ if (['recent', 'incomplete', 'completed'].includes(progress) &amp;&amp; results.entity.length > 1) {
2262
+ const orderMap = new Map(progressIds.map((id, index) => [id, index]))
2263
+ results.entity = results.entity
2264
+ .sort((a, b) => {
2265
+ const aIdx = orderMap.get(a.id) ?? Number.MAX_SAFE_INTEGER;
2266
+ const bIdx = orderMap.get(b.id) ?? Number.MAX_SAFE_INTEGER;
2267
+ return aIdx - bIdx || new Date(b.published_on) - new Date(a.published_on);
2268
+ })
2269
+ .slice(start, end);
2270
+ }
2271
+
2231
2272
  return results;
2232
2273
  }
2233
2274
 
2275
+ export async function fetchRecent(
2276
+ brand,
2277
+ pageName,
2278
+ { page = 1, limit = 10, sort = '-published_on', includedFields = [], progress = 'recent' } = {}
2279
+ ) {
2280
+ const mergedIncludedFields = [...includedFields, `tab,all`]
2281
+ const results = await fetchTabData(brand, pageName, {
2282
+ page,
2283
+ limit,
2284
+ sort,
2285
+ includedFields: mergedIncludedFields,
2286
+ progress: progress.toLowerCase(),
2287
+ })
2288
+ return results.entity
2289
+ }
2290
+
2234
2291
  export async function fetchScheduledAndNewReleases(
2235
2292
  brand,
2236
2293
  { page = 1, limit = 20, sort = '-published_on' } = {}
@@ -2247,7 +2304,7 @@ export async function fetchScheduledAndNewReleases(
2247
2304
  const sortOrder = getSortOrder(sort, brand)
2248
2305
 
2249
2306
  const query = `
2250
- *[_type in [${typesString}] &amp;&amp; brand == '${brand}' &amp;&amp; ((status in ['published','scheduled'] &amp;&amp; published_on > '${now}')||(show_in_new_feed == true)) ]
2307
+ *[_type in [${typesString}] &amp;&amp; brand == '${brand}' &amp;&amp; ((status in ['published','scheduled'] )||(show_in_new_feed == true)) ]
2251
2308
  [${start}...${end}]
2252
2309
  | order(published_on asc) {
2253
2310
  "id": railcontent_id,
@@ -2280,6 +2337,37 @@ export async function fetchShows(brand, type, sort = 'sort') {
2280
2337
  })
2281
2338
  return fetchSanity(query, true)
2282
2339
  }
2340
+
2341
+ /**
2342
+ * Fetch the method intro video for a given brand.
2343
+ * @param brand
2344
+ * @returns {Promise&lt;*|null>}
2345
+ */
2346
+ export async function fetchMethodV2IntroVideo(brand) {
2347
+ const type = "method-intro";
2348
+ const filter = `_type == '${type}' &amp;&amp; brand == '${brand}'`;
2349
+ const fields = getIntroVideoFields();
2350
+
2351
+ const query = `*[${filter}] { ${fields.join(", ")} }`;
2352
+ return fetchSanity(query, false);
2353
+ }
2354
+
2355
+ /**
2356
+ * Fetch the structure (just ids) of the Method for a given brand.
2357
+ * @param brand
2358
+ * @returns {Promise&lt;*|null>}
2359
+ */
2360
+ export async function fetchMethodV2Structure(brand) {
2361
+ const _type = "method-v2";
2362
+ const query = `*[_type == '${_type}' &amp;&amp; brand == '${brand}'][0...1]{
2363
+ 'sanity_id': _id,
2364
+ 'learningPaths': child[]->{
2365
+ 'id': railcontent_id,
2366
+ 'children': child[]->railcontent_id
2367
+ }
2368
+ }`;
2369
+ return await fetchSanity(query, false);
2370
+ }
2283
2371
  </code></pre>
2284
2372
  </article>
2285
2373
  </section>
@@ -2294,7 +2382,7 @@ export async function fetchShows(brand, type, sort = 'sort') {
2294
2382
  <br class="clear">
2295
2383
 
2296
2384
  <footer>
2297
- Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Thu Oct 02 2025 11:46:05 GMT+0300 (Eastern European Summer Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
2385
+ Documentation generated by <a href="https://github.com/jsdoc3/jsdoc">JSDoc 4.0.3</a> on Mon Nov 10 2025 16:22:45 GMT+0000 (Coordinated Universal Time) using the <a href="https://github.com/clenemt/docdash">docdash</a> theme.
2298
2386
  </footer>
2299
2387
 
2300
2388
  <script>prettyPrint();</script>