musora-content-services 2.84.0 → 2.85.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.
Files changed (219) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/.coderabbit.yaml +0 -0
  3. package/.editorconfig +0 -0
  4. package/.github/pull_request_template.md +0 -0
  5. package/.github/workflows/conventional-commits.yaml +0 -0
  6. package/.github/workflows/docs.js.yml +0 -0
  7. package/.github/workflows/node.js.yml +0 -0
  8. package/.prettierignore +0 -0
  9. package/.prettierrc +0 -0
  10. package/.yarnrc.yml +1 -0
  11. package/CHANGELOG.md +15 -0
  12. package/README.md +0 -0
  13. package/babel.config.cjs +0 -0
  14. package/docs/Content.html +0 -0
  15. package/docs/ContentOrganization.html +2 -2
  16. package/docs/Forums.html +2 -2
  17. package/docs/Gamification.html +2 -2
  18. package/docs/TestUser.html +2 -2
  19. package/docs/UserManagementSystem.html +2 -2
  20. package/docs/api_types.js.html +2 -2
  21. package/docs/config.js.html +2 -5
  22. package/docs/content-org_content-org.js.html +2 -2
  23. package/docs/content-org_guided-courses.ts.html +2 -2
  24. package/docs/content-org_learning-paths.ts.html +24 -126
  25. package/docs/content-org_playlists-types.js.html +2 -2
  26. package/docs/content-org_playlists.js.html +2 -2
  27. package/docs/content.js.html +10 -88
  28. package/docs/content_artist.ts.html +0 -0
  29. package/docs/content_content.ts.html +0 -0
  30. package/docs/content_genre.ts.html +0 -0
  31. package/docs/content_instructor.ts.html +0 -0
  32. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  33. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  34. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  35. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  36. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  37. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  38. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  39. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  42. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  43. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  44. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  45. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  46. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  47. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  48. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  49. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  50. package/docs/forums_categories.ts.html +3 -22
  51. package/docs/forums_discussions.js.html +0 -0
  52. package/docs/forums_forum.js.html +0 -0
  53. package/docs/forums_forums.ts.html +2 -2
  54. package/docs/forums_posts.ts.html +2 -2
  55. package/docs/forums_threads.ts.html +2 -2
  56. package/docs/gamification_awards.js.html +0 -0
  57. package/docs/gamification_awards.ts.html +12 -26
  58. package/docs/gamification_gamification.js.html +2 -2
  59. package/docs/gamification_types.js.html +0 -0
  60. package/docs/global.html +2 -2
  61. package/docs/index.html +2 -2
  62. package/docs/liveTesting.ts.html +2 -2
  63. package/docs/module-Accounts.html +14 -14
  64. package/docs/module-Artist.html +0 -0
  65. package/docs/module-Awards.html +6 -106
  66. package/docs/module-Categories.html +0 -0
  67. package/docs/module-Config.html +4 -5
  68. package/docs/module-Content-Services-V2.html +9 -440
  69. package/docs/module-ForumCategories.html +0 -0
  70. package/docs/module-ForumDiscussions.html +0 -0
  71. package/docs/module-Forums.html +43 -607
  72. package/docs/module-Genre.html +0 -0
  73. package/docs/module-GuidedCourses.html +2 -2
  74. package/docs/module-Instructor.html +0 -0
  75. package/docs/module-Interests.html +2 -2
  76. package/docs/module-LearningPaths.html +12 -640
  77. package/docs/module-Onboarding.html +2 -2
  78. package/docs/module-Payments.html +2 -2
  79. package/docs/module-Permissions.html +2 -2
  80. package/docs/module-Playlists.html +2 -2
  81. package/docs/module-ProgressRow.html +2 -2
  82. package/docs/module-Railcontent-Services.html +298 -31
  83. package/docs/module-Sanity-Services.html +1901 -530
  84. package/docs/module-Sessions.html +2 -2
  85. package/docs/module-Threads.html +0 -0
  86. package/docs/module-UserActivity.html +5 -5
  87. package/docs/module-UserChat.html +2 -2
  88. package/docs/module-UserManagement.html +2 -2
  89. package/docs/module-UserMemberships.html +2 -2
  90. package/docs/module-UserNotifications.html +2 -2
  91. package/docs/module-UserProfile.html +2 -2
  92. package/docs/progress-row_method-card.js.html +3 -3
  93. package/docs/railcontent.js.html +20 -8
  94. package/docs/sanity.js.html +313 -199
  95. package/docs/scripts/collapse.js +0 -0
  96. package/docs/scripts/commonNav.js +0 -0
  97. package/docs/scripts/linenumber.js +0 -0
  98. package/docs/scripts/nav.js +0 -0
  99. package/docs/scripts/polyfill.js +0 -0
  100. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  101. package/docs/scripts/prettify/lang-css.js +0 -0
  102. package/docs/scripts/prettify/prettify.js +0 -0
  103. package/docs/scripts/search.js +0 -0
  104. package/docs/styles/jsdoc.css +0 -0
  105. package/docs/styles/prettify.css +0 -0
  106. package/docs/userActivity.js.html +5 -17
  107. package/docs/user_account.ts.html +13 -14
  108. package/docs/user_chat.js.html +2 -2
  109. package/docs/user_interests.js.html +2 -2
  110. package/docs/user_management.js.html +2 -2
  111. package/docs/user_memberships.js.html +0 -0
  112. package/docs/user_memberships.ts.html +2 -2
  113. package/docs/user_notifications.js.html +2 -2
  114. package/docs/user_onboarding.ts.html +2 -2
  115. package/docs/user_payments.ts.html +2 -2
  116. package/docs/user_permissions.js.html +3 -3
  117. package/docs/user_profile.js.html +2 -2
  118. package/docs/user_sessions.js.html +2 -2
  119. package/docs/user_types.js.html +2 -2
  120. package/docs/user_user-management-system.js.html +2 -2
  121. package/jest.config.js +0 -0
  122. package/jsdoc.json +0 -0
  123. package/package.json +1 -1
  124. package/src/contentMetaData.js +0 -0
  125. package/src/filterBuilder.js +0 -0
  126. package/src/index.d.ts +2 -2
  127. package/src/index.js +2 -2
  128. package/src/infrastructure/http/HttpClient.ts +0 -0
  129. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  130. package/src/infrastructure/http/index.ts +0 -0
  131. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  132. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  133. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  134. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  135. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  136. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  137. package/src/lib/httpHelper.js +0 -0
  138. package/src/lib/lastUpdated.js +0 -0
  139. package/src/services/api/types.js +0 -0
  140. package/src/services/api/types.ts +0 -0
  141. package/src/services/config.js +0 -0
  142. package/src/services/content/artist.ts +0 -0
  143. package/src/services/content/content.ts +0 -0
  144. package/src/services/content/genre.ts +0 -0
  145. package/src/services/content/instructor.ts +0 -0
  146. package/src/services/content-org/content-org.js +0 -0
  147. package/src/services/content-org/guided-courses.ts +0 -0
  148. package/src/services/content-org/learning-paths.ts +0 -0
  149. package/src/services/content-org/playlists-types.js +0 -0
  150. package/src/services/content-org/playlists.js +0 -0
  151. package/src/services/content.js +0 -0
  152. package/src/services/contentAggregator.js +10 -23
  153. package/src/services/contentLikes.js +0 -0
  154. package/src/services/contentProgress.js +250 -147
  155. package/src/services/dataContext.js +0 -0
  156. package/src/services/dateUtils.js +0 -0
  157. package/src/services/eventsAPI.js +0 -0
  158. package/src/services/forums/categories.ts +0 -0
  159. package/src/services/forums/forums.ts +0 -0
  160. package/src/services/forums/posts.ts +0 -0
  161. package/src/services/forums/threads.ts +7 -7
  162. package/src/services/forums/types.ts +1 -0
  163. package/src/services/gamification/awards.ts +0 -0
  164. package/src/services/gamification/gamification.js +0 -0
  165. package/src/services/imageSRCBuilder.js +0 -0
  166. package/src/services/imageSRCVerify.js +0 -0
  167. package/src/services/liveTesting.ts +0 -0
  168. package/src/services/permissions/PermissionsAdapter.ts +0 -0
  169. package/src/services/permissions/PermissionsAdapterFactory.ts +0 -0
  170. package/src/services/permissions/PermissionsV1Adapter.ts +0 -0
  171. package/src/services/permissions/PermissionsV2Adapter.ts +0 -0
  172. package/src/services/permissions/README.md +0 -0
  173. package/src/services/permissions/index.ts +0 -0
  174. package/src/services/progress-row/method-card.js +0 -0
  175. package/src/services/railcontent.js +18 -6
  176. package/src/services/recommendations.js +0 -0
  177. package/src/services/sanity.js +18 -2
  178. package/src/services/types.js +0 -0
  179. package/src/services/user/account.ts +0 -0
  180. package/src/services/user/chat.js +0 -0
  181. package/src/services/user/interests.js +0 -0
  182. package/src/services/user/management.js +0 -0
  183. package/src/services/user/memberships.ts +0 -0
  184. package/src/services/user/notifications.js +0 -0
  185. package/src/services/user/onboarding.ts +0 -0
  186. package/src/services/user/payments.ts +0 -0
  187. package/src/services/user/permissions.js +0 -0
  188. package/src/services/user/profile.js +0 -0
  189. package/src/services/user/sessions.js +0 -0
  190. package/src/services/user/types.d.ts +0 -0
  191. package/src/services/user/types.js +0 -0
  192. package/src/services/user/user-management-system.js +0 -0
  193. package/src/services/userActivity.js +3 -14
  194. package/test/HttpClient.test.js +0 -0
  195. package/test/content.test.js +0 -0
  196. package/test/contentLikes.test.js +0 -0
  197. package/test/contentProgress.test.js +0 -0
  198. package/test/dataContext.test.js +0 -0
  199. package/test/forum.test.js +0 -0
  200. package/test/imageSRCBuilder.test.js +0 -0
  201. package/test/imageSRCVerify.test.js +0 -0
  202. package/test/initializeTests.js +0 -0
  203. package/test/learningPaths.test.js +0 -0
  204. package/test/lib/lastUpdated.test.js +0 -0
  205. package/test/live/contentProgressLive.test.js +0 -0
  206. package/test/live/railcontentLive.test.js +0 -0
  207. package/test/localStorageMock.js +0 -0
  208. package/test/log.js +0 -0
  209. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  210. package/test/mockData/mockData_progress_content.json +0 -0
  211. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  212. package/test/mockData/mockData_user_practices.json +0 -0
  213. package/test/notifications.test.js +0 -0
  214. package/test/progressRows.test.js +0 -0
  215. package/test/sanityQueryService.test.js +0 -0
  216. package/test/streakMessage.test.js +0 -0
  217. package/test/user/permissions.test.js +0 -0
  218. package/test/userActivity.test.js +0 -0
  219. package/tools/generate-index.cjs +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.84.0",
3
+ "version": "2.85.1",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
File without changes
File without changes
package/src/index.d.ts CHANGED
@@ -96,7 +96,6 @@ import {
96
96
  getAllStartedOrCompleted,
97
97
  getLastInteractedOf,
98
98
  getNavigateTo,
99
- getNextLesson,
100
99
  getProgressDateByIds,
101
100
  getProgressPercentage,
102
101
  getProgressPercentageByIds,
@@ -269,6 +268,7 @@ import {
269
268
  fetchMethodPreviousNextLesson,
270
269
  fetchMethodV2IntroVideo,
271
270
  fetchMethodV2Structure,
271
+ fetchMethodV2StructureFromId,
272
272
  fetchNewReleases,
273
273
  fetchNextPreviousLesson,
274
274
  fetchOtherSongVersions,
@@ -517,6 +517,7 @@ declare module 'musora-content-services' {
517
517
  fetchMethodPreviousNextLesson,
518
518
  fetchMethodV2IntroVideo,
519
519
  fetchMethodV2Structure,
520
+ fetchMethodV2StructureFromId,
520
521
  fetchNewReleases,
521
522
  fetchNextContentDataForParent,
522
523
  fetchNextPreviousLesson,
@@ -584,7 +585,6 @@ declare module 'musora-content-services' {
584
585
  getNavigateTo,
585
586
  getNavigateToForPlaylists,
586
587
  getNewAndUpcoming,
587
- getNextLesson,
588
588
  getOnboardingRecommendedContent,
589
589
  getOwnedContent,
590
590
  getPracticeNotes,
package/src/index.js CHANGED
@@ -96,7 +96,6 @@ import {
96
96
  getAllStartedOrCompleted,
97
97
  getLastInteractedOf,
98
98
  getNavigateTo,
99
- getNextLesson,
100
99
  getProgressDateByIds,
101
100
  getProgressPercentage,
102
101
  getProgressPercentageByIds,
@@ -269,6 +268,7 @@ import {
269
268
  fetchMethodPreviousNextLesson,
270
269
  fetchMethodV2IntroVideo,
271
270
  fetchMethodV2Structure,
271
+ fetchMethodV2StructureFromId,
272
272
  fetchNewReleases,
273
273
  fetchNextPreviousLesson,
274
274
  fetchOtherSongVersions,
@@ -516,6 +516,7 @@ export {
516
516
  fetchMethodPreviousNextLesson,
517
517
  fetchMethodV2IntroVideo,
518
518
  fetchMethodV2Structure,
519
+ fetchMethodV2StructureFromId,
519
520
  fetchNewReleases,
520
521
  fetchNextContentDataForParent,
521
522
  fetchNextPreviousLesson,
@@ -583,7 +584,6 @@ export {
583
584
  getNavigateTo,
584
585
  getNavigateToForPlaylists,
585
586
  getNewAndUpcoming,
586
- getNextLesson,
587
587
  getOnboardingRecommendedContent,
588
588
  getOwnedContent,
589
589
  getPracticeNotes,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -1,9 +1,6 @@
1
1
  import {
2
- getLastInteractedOf,
3
2
  getNavigateTo,
4
- getNextLesson,
5
3
  getProgressDateByIds,
6
- getProgressPercentageByIds,
7
4
  getProgressStateByIds,
8
5
  getResumeTimeSecondsByIds,
9
6
  } from './contentProgress'
@@ -32,8 +29,8 @@ import { fetchLastInteractedChild, fetchLikeCount } from './railcontent'
32
29
  * @param options.addProgressStatus - add progressStatus field
33
30
  * @param options.addProgressTimestamp - add progressTimestamp field
34
31
  * @param options.addResumeTimeSeconds - add resumeTimeSeconds field
35
- * @param options.addLastInteractedChild - add lastInteractedChild field. This may be different from nextLesson
36
- * @param options.addNextLesson - add nextLesson field. For collection type content. each collection has different logic for calculating this data
32
+ * @param options.addLastInteractedChild - add lastInteractedChild field. This may be different from navigateTo.id
33
+ * @param options.collection {object|null} - define collection parameter: collection = { id: <collection_id>, type: <collection_type> } . This is needed for different collection types like learning paths.
37
34
  *
38
35
  * @returns {Promise<{ data: Object[] } | false>} - A promise that resolves to the fetched content data + added data or `false` if no data is found.
39
36
  *
@@ -52,7 +49,7 @@ import { fetchLastInteractedChild, fetchLikeCount } from './railcontent'
52
49
  * dataField_parentIsArray: true,
53
50
  * addProgressStatus: true,
54
51
  * addProgressPercentage: true,
55
- * addNextLesson: true
52
+ * addNavigateTo: true
56
53
  * })
57
54
  *
58
55
  */
@@ -64,6 +61,7 @@ export async function addContextToContent(dataPromise, ...dataArgs) {
64
61
  const options = typeof lastArg === 'object' && !Array.isArray(lastArg) ? lastArg : {}
65
62
 
66
63
  const {
64
+ collection = null, // this is needed for different collection types like learning paths. has .id and .type
67
65
  dataField = null,
68
66
  dataField_includeParent = false,
69
67
  addProgressPercentage = false,
@@ -73,7 +71,6 @@ export async function addContextToContent(dataPromise, ...dataArgs) {
73
71
  addProgressTimestamp = false,
74
72
  addResumeTimeSeconds = false,
75
73
  addLastInteractedChild = false,
76
- addNextLesson = false,
77
74
  addNavigateTo = false,
78
75
  } = options
79
76
 
@@ -93,17 +90,14 @@ export async function addContextToContent(dataPromise, ...dataArgs) {
93
90
  isLikedData,
94
91
  resumeTimeData,
95
92
  lastInteractedChildData,
96
- nextLessonData,
97
93
  navigateToData,
98
- ] = await Promise.all([
94
+ ] = await Promise.all([ //for now assume these all return `collection = {type, id}`. it will be so when watermelon here
99
95
  addProgressPercentage || addProgressStatus || addProgressTimestamp
100
- ? getProgressDateByIds(ids)
101
- : Promise.resolve(null),
102
- addIsLiked ? isContentLikedByIds(ids) : Promise.resolve(null),
103
- addResumeTimeSeconds ? getResumeTimeSecondsByIds(ids) : Promise.resolve(null),
104
- addLastInteractedChild ? fetchLastInteractedChild(ids) : Promise.resolve(null),
105
- addNextLesson ? getNextLesson(items) : Promise.resolve(null),
106
- addNavigateTo ? getNavigateTo(items) : Promise.resolve(null),
96
+ ? getProgressDateByIds(ids, collection) : Promise.resolve(null),
97
+ addIsLiked ? isContentLikedByIds(ids, collection) : Promise.resolve(null),
98
+ addResumeTimeSeconds ? getResumeTimeSecondsByIds(ids, collection) : Promise.resolve(null),
99
+ addLastInteractedChild ? fetchLastInteractedChild(ids, collection) : Promise.resolve(null),
100
+ addNavigateTo ? getNavigateTo(items, collection) : Promise.resolve(null),
107
101
  ])
108
102
 
109
103
  const addContext = async (item) => ({
@@ -115,13 +109,6 @@ export async function addContextToContent(dataPromise, ...dataArgs) {
115
109
  ...(addLikeCount && ids.length === 1 ? { likeCount: await fetchLikeCount(item.id) } : {}),
116
110
  ...(addResumeTimeSeconds ? { resumeTime: resumeTimeData?.[item.id] } : {}),
117
111
  ...(addLastInteractedChild ? { lastInteractedChild: lastInteractedChildData?.[item.id] } : {}),
118
- ...(addNextLesson
119
- ? {
120
- nextLesson: nextLessonData?.[item.id], //deprecated
121
- next_lesson_id: nextLessonData?.[item.id],
122
- next_lesson: item?.children?.find((child) => child.id === nextLessonData?.[item.id]),
123
- }
124
- : {}),
125
112
  ...(addNavigateTo ? { navigateTo: navigateToData?.[item.id] } : {}),
126
113
  })
127
114
 
File without changes