musora-content-services 2.33.6 → 2.34.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 (166) hide show
  1. package/.coderabbit.yaml +0 -0
  2. package/.editorconfig +0 -0
  3. package/.github/pull_request_template.md +0 -0
  4. package/.github/workflows/conventional-commits.yaml +0 -0
  5. package/.github/workflows/docs.js.yml +0 -0
  6. package/.github/workflows/node.js.yml +0 -0
  7. package/.prettierignore +0 -0
  8. package/.prettierrc +0 -0
  9. package/.yarnrc.yml +1 -0
  10. package/CHANGELOG.md +30 -0
  11. package/README.md +0 -0
  12. package/babel.config.cjs +0 -0
  13. package/docs/ContentOrganization.html +2 -2
  14. package/docs/Gamification.html +2 -2
  15. package/docs/UserManagementSystem.html +2 -2
  16. package/docs/api_types.js.html +2 -2
  17. package/docs/config.js.html +2 -2
  18. package/docs/content-org_content-org.js.html +2 -2
  19. package/docs/content-org_guided-courses.ts.html +2 -2
  20. package/docs/content-org_playlists-types.js.html +2 -2
  21. package/docs/content-org_playlists.js.html +2 -2
  22. package/docs/content.js.html +2 -2
  23. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  24. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  25. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  26. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  29. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  31. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  32. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  33. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  34. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  41. package/docs/gamification_awards.js.html +0 -0
  42. package/docs/gamification_awards.ts.html +2 -2
  43. package/docs/gamification_gamification.js.html +2 -2
  44. package/docs/gamification_types.js.html +0 -0
  45. package/docs/global.html +2 -2
  46. package/docs/index.html +2 -2
  47. package/docs/module-Accounts.html +2 -2
  48. package/docs/module-Awards.html +2 -2
  49. package/docs/module-Config.html +2 -2
  50. package/docs/module-Content-Services-V2.html +2 -2
  51. package/docs/module-GuidedCourses.html +2 -2
  52. package/docs/module-Interests.html +2 -2
  53. package/docs/module-Permissions.html +2 -2
  54. package/docs/module-Playlists.html +2 -2
  55. package/docs/module-Railcontent-Services.html +2 -2
  56. package/docs/module-Sanity-Services.html +2 -2
  57. package/docs/module-Sessions.html +2 -2
  58. package/docs/module-UserActivity.html +4 -4
  59. package/docs/module-UserChat.html +2 -2
  60. package/docs/module-UserManagement.html +2 -2
  61. package/docs/module-UserMemberships.html +406 -0
  62. package/docs/module-UserNotifications.html +14 -14
  63. package/docs/module-UserProfile.html +2 -2
  64. package/docs/railcontent.js.html +2 -2
  65. package/docs/sanity.js.html +5 -4
  66. package/docs/scripts/collapse.js +0 -0
  67. package/docs/scripts/commonNav.js +0 -0
  68. package/docs/scripts/linenumber.js +0 -0
  69. package/docs/scripts/nav.js +0 -0
  70. package/docs/scripts/polyfill.js +0 -0
  71. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  72. package/docs/scripts/prettify/lang-css.js +0 -0
  73. package/docs/scripts/prettify/prettify.js +0 -0
  74. package/docs/scripts/search.js +0 -0
  75. package/docs/styles/jsdoc.css +0 -0
  76. package/docs/styles/prettify.css +0 -0
  77. package/docs/userActivity.js.html +15 -6
  78. package/docs/user_account.ts.html +2 -2
  79. package/docs/user_chat.js.html +2 -2
  80. package/docs/user_interests.js.html +2 -2
  81. package/docs/user_management.js.html +2 -2
  82. package/docs/user_memberships.js.html +122 -0
  83. package/docs/user_notifications.js.html +7 -5
  84. package/docs/user_permissions.js.html +2 -2
  85. package/docs/user_profile.js.html +2 -2
  86. package/docs/user_sessions.js.html +2 -2
  87. package/docs/user_types.js.html +2 -2
  88. package/docs/user_user-management-system.js.html +2 -2
  89. package/jest.config.js +0 -0
  90. package/jsdoc.json +0 -0
  91. package/package.json +1 -1
  92. package/src/contentMetaData.js +0 -0
  93. package/src/filterBuilder.js +0 -0
  94. package/src/index.d.ts +13 -0
  95. package/src/index.js +13 -0
  96. package/src/infrastructure/http/HttpClient.ts +0 -0
  97. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  98. package/src/infrastructure/http/index.ts +0 -0
  99. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  100. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  101. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  102. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  103. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  104. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  105. package/src/lib/httpHelper.js +0 -0
  106. package/src/lib/lastUpdated.js +0 -0
  107. package/src/services/api/types.js +0 -0
  108. package/src/services/api/types.ts +0 -0
  109. package/src/services/config.js +0 -0
  110. package/src/services/content-org/content-org.js +0 -0
  111. package/src/services/content-org/guided-courses.ts +0 -0
  112. package/src/services/content-org/playlists-types.js +0 -0
  113. package/src/services/content-org/playlists.js +0 -0
  114. package/src/services/content.js +0 -0
  115. package/src/services/contentAggregator.js +0 -0
  116. package/src/services/contentLikes.js +0 -0
  117. package/src/services/contentProgress.js +1 -0
  118. package/src/services/dataContext.js +1 -0
  119. package/src/services/dateUtils.js +0 -0
  120. package/src/services/eventsAPI.js +154 -0
  121. package/src/services/forum.js +0 -0
  122. package/src/services/gamification/awards.ts +0 -0
  123. package/src/services/gamification/gamification.js +0 -0
  124. package/src/services/imageSRCBuilder.js +0 -0
  125. package/src/services/imageSRCVerify.js +0 -0
  126. package/src/services/railcontent.js +0 -0
  127. package/src/services/recommendations.js +0 -0
  128. package/src/services/sanity.js +3 -2
  129. package/src/services/types.js +0 -0
  130. package/src/services/user/account.ts +0 -0
  131. package/src/services/user/chat.js +0 -0
  132. package/src/services/user/interests.js +0 -0
  133. package/src/services/user/management.js +0 -0
  134. package/src/services/user/memberships.js +50 -0
  135. package/src/services/user/notifications.js +5 -3
  136. package/src/services/user/permissions.js +0 -0
  137. package/src/services/user/profile.js +0 -0
  138. package/src/services/user/sessions.js +0 -0
  139. package/src/services/user/types.js +0 -0
  140. package/src/services/user/user-management-system.js +0 -0
  141. package/src/services/userActivity.js +13 -4
  142. package/test/HttpClient.test.js +0 -0
  143. package/test/content.test.js +0 -0
  144. package/test/contentLikes.test.js +0 -0
  145. package/test/contentProgress.test.js +0 -0
  146. package/test/dataContext.test.js +0 -0
  147. package/test/forum.test.js +0 -0
  148. package/test/imageSRCBuilder.test.js +0 -0
  149. package/test/imageSRCVerify.test.js +0 -0
  150. package/test/initializeTests.js +0 -0
  151. package/test/lib/lastUpdated.test.js +0 -0
  152. package/test/live/contentProgressLive.test.js +0 -0
  153. package/test/live/railcontentLive.test.js +0 -0
  154. package/test/localStorageMock.js +0 -0
  155. package/test/log.js +0 -0
  156. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  157. package/test/mockData/mockData_progress_content.json +0 -0
  158. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  159. package/test/mockData/mockData_user_practices.json +0 -0
  160. package/test/notifications.test.js +0 -0
  161. package/test/progressRows.test.js +0 -0
  162. package/test/sanityQueryService.test.js +0 -0
  163. package/test/streakMessage.test.js +0 -0
  164. package/test/user/permissions.test.js +0 -0
  165. package/test/userActivity.test.js +0 -0
  166. package/tools/generate-index.cjs +8 -0
@@ -13,7 +13,7 @@ import {
13
13
  import { DataContext, UserActivityVersionKey } from './dataContext.js'
14
14
  import { fetchByRailContentId, fetchByRailContentIds, fetchShows } from './sanity'
15
15
  import { fetchPlaylist, fetchUserPlaylists } from './content-org/playlists'
16
- import { pinnedGuidedCourses } from './content-org/guided-courses'
16
+ import {guidedCourses, pinnedGuidedCourses} from './content-org/guided-courses'
17
17
  import {
18
18
  getMonday,
19
19
  getWeekNumber,
@@ -1051,13 +1051,19 @@ function generateContentsMap(contents, playlistsContents) {
1051
1051
  */
1052
1052
  export async function getProgressRows({ brand = null, limit = 8 } = {}) {
1053
1053
  // TODO slice progress to a reasonable number, say 100
1054
- const [recentPlaylists, progressContents, allPinnedGuidedCourse, userPinnedItem] =
1054
+
1055
+ const [recentPlaylists, progressContents, allPinnedGuidedCourse, userPinnedItem, enrolledGuidedCourses] =
1055
1056
  await Promise.all([
1056
1057
  fetchUserPlaylists(brand, { sort: '-last_progress', limit: limit }),
1057
1058
  getAllStartedOrCompleted({ onlyIds: false, brand: brand }),
1058
1059
  pinnedGuidedCourses(brand),
1059
1060
  getUserPinnedItem(brand),
1061
+ guidedCourses()
1060
1062
  ])
1063
+
1064
+ const enrolledGuidedCoursesIds = enrolledGuidedCourses.map(course => String(course.content_id));
1065
+
1066
+ const mergedGuidedCourses = 1 //get all cuigded courses, incl no progress.
1061
1067
  let pinnedGuidedCourse = allPinnedGuidedCourse?.[0] ?? null
1062
1068
 
1063
1069
  const playlists = recentPlaylists?.data || []
@@ -1067,12 +1073,15 @@ export async function getProgressRows({ brand = null, limit = 8 } = {}) {
1067
1073
  )
1068
1074
 
1069
1075
  const nonPlaylistContentIds = Object.keys(progressContents)
1070
- if (pinnedGuidedCourse) {
1071
- nonPlaylistContentIds.push(pinnedGuidedCourse.content_id)
1076
+ if (enrolledGuidedCoursesIds.length > 0) {
1077
+ nonPlaylistContentIds.push(...enrolledGuidedCoursesIds)
1072
1078
  }
1073
1079
  if (userPinnedItem?.progressType === 'content') {
1074
1080
  nonPlaylistContentIds.push(userPinnedItem.id)
1075
1081
  }
1082
+ console.log("nonPlaylistContentIds",nonPlaylistContentIds)
1083
+
1084
+
1076
1085
  const [playlistsContents, contents] = await Promise.all([
1077
1086
  playlistEngagedOnContents ? addContextToContent(fetchByRailContentIds, playlistEngagedOnContents, 'progress-tracker', {
1078
1087
  addNextLesson: true,
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
package/test/log.js CHANGED
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
@@ -89,11 +89,15 @@ Object.entries(fileExports).forEach(([file, functionNames]) => {
89
89
  content += `\nimport {\n\t${functionNames.join(',\n\t')}\n} from './services/${file}';\n`
90
90
  })
91
91
 
92
+ content += `\nimport {\n\t default as EventsAPI \n} from './services/eventsAPI';\n`
93
+
92
94
  const allFunctionNames = Object.values(fileExports).flat().sort()
93
95
  content += '\nexport {\n'
94
96
  content += `\t${allFunctionNames.join(',\n\t')},\n`
95
97
  content += '};\n'
96
98
 
99
+ content += '\nexport default EventsAPI\n'
100
+
97
101
  // write the generated content to index.js
98
102
  const outputPath = path.join(__dirname, '../src/index.js')
99
103
  fs.writeFileSync(outputPath, content)
@@ -108,12 +112,16 @@ Object.entries(fileExports).forEach(([file, functionNames]) => {
108
112
  dtsContent += `\nimport {\n\t${functionNames.join(',\n\t')}\n} from './services/${file}';\n`
109
113
  })
110
114
 
115
+ dtsContent += `\nimport {\n\t default as EventsAPI \n} from './services/eventsAPI';\n`
116
+
111
117
  dtsContent += "\ndeclare module 'musora-content-services' {\n"
112
118
  dtsContent += '\texport {\n'
113
119
  dtsContent += `\t\t${allFunctionNames.join(',\n\t\t')},\n`
114
120
  dtsContent += '\t}\n'
115
121
  dtsContent += '}\n'
116
122
 
123
+ dtsContent += '\nexport default EventsAPI\n'
124
+
117
125
  // write the generated content to index.d.ts
118
126
  const outputDtsPath = path.join(__dirname, '../src/index.d.ts')
119
127
  fs.writeFileSync(outputDtsPath, dtsContent)