musora-content-services 2.21.1 → 2.21.2

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 (160) 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/CHANGELOG.md +7 -0
  10. package/README.md +0 -0
  11. package/babel.config.cjs +0 -0
  12. package/docs/Content-Organization.html +0 -0
  13. package/docs/ContentOrganization.html +0 -0
  14. package/docs/Gamification.html +0 -0
  15. package/docs/UserManagement.html +0 -0
  16. package/docs/UserManagementSystem.html +0 -0
  17. package/docs/api_types.js.html +0 -0
  18. package/docs/config.js.html +0 -0
  19. package/docs/content-org_content-org.js.html +0 -0
  20. package/docs/content-org_playlists-types.js.html +0 -0
  21. package/docs/content-org_playlists.js.html +0 -0
  22. package/docs/content.js.html +0 -0
  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_gamification.js.html +0 -0
  43. package/docs/gamification_types.js.html +0 -0
  44. package/docs/global.html +0 -0
  45. package/docs/global.html#User +0 -0
  46. package/docs/index.html +0 -0
  47. package/docs/module-Awards.html +0 -0
  48. package/docs/module-Config.html +0 -0
  49. package/docs/module-Content-Services-V2.html +0 -0
  50. package/docs/module-Interests.html +0 -0
  51. package/docs/module-Notifications.html +0 -0
  52. package/docs/module-Permissions.html +0 -0
  53. package/docs/module-Playlists.html +0 -0
  54. package/docs/module-Railcontent-Services.html +0 -0
  55. package/docs/module-Sanity-Services.html +0 -0
  56. package/docs/module-Session-Management.html +0 -0
  57. package/docs/module-Sessions.html +0 -0
  58. package/docs/module-User-Activity.html +0 -0
  59. package/docs/module-User-Management.html +0 -0
  60. package/docs/module-User-Permissions.html +0 -0
  61. package/docs/module-UserActivity.html +0 -0
  62. package/docs/module-UserChat.html +0 -0
  63. package/docs/module-UserManagement.html +0 -0
  64. package/docs/module-UserNotifications.html +0 -0
  65. package/docs/module-UserProfile.html +0 -0
  66. package/docs/railcontent.js.html +0 -0
  67. package/docs/sanity.js.html +0 -0
  68. package/docs/scripts/collapse.js +0 -0
  69. package/docs/scripts/commonNav.js +0 -0
  70. package/docs/scripts/linenumber.js +0 -0
  71. package/docs/scripts/nav.js +0 -0
  72. package/docs/scripts/polyfill.js +0 -0
  73. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  74. package/docs/scripts/prettify/lang-css.js +0 -0
  75. package/docs/scripts/prettify/prettify.js +0 -0
  76. package/docs/scripts/search.js +0 -0
  77. package/docs/styles/jsdoc.css +0 -0
  78. package/docs/styles/prettify.css +0 -0
  79. package/docs/types.js.html +0 -0
  80. package/docs/userActivity.js.html +0 -0
  81. package/docs/user_chat.js.html +0 -0
  82. package/docs/user_interests.js.html +0 -0
  83. package/docs/user_management.js.html +0 -0
  84. package/docs/user_notifications.js.html +0 -0
  85. package/docs/user_permissions.js.html +0 -0
  86. package/docs/user_profile.js.html +0 -0
  87. package/docs/user_sessions.js.html +0 -0
  88. package/docs/user_types.js.html +0 -0
  89. package/docs/user_user-management-system.js.html +0 -0
  90. package/docs/user_user-management.js.html +0 -0
  91. package/jest.config.js +0 -0
  92. package/jsdoc.json +0 -0
  93. package/link_mcs.sh +0 -0
  94. package/package.json +1 -1
  95. package/src/contentMetaData.js +0 -0
  96. package/src/filterBuilder.js +0 -0
  97. package/src/infrastructure/http/HttpClient.ts +0 -0
  98. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  99. package/src/infrastructure/http/index.ts +0 -0
  100. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  101. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  102. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  103. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  104. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  105. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  106. package/src/lib/httpHelper.js +0 -0
  107. package/src/lib/lastUpdated.js +0 -0
  108. package/src/services/api/types.js +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/playlists-types.js +0 -0
  112. package/src/services/content-org/playlists.js +0 -0
  113. package/src/services/contentAggregator.js +3 -17
  114. package/src/services/contentLikes.js +0 -0
  115. package/src/services/contentProgress.js +6 -6
  116. package/src/services/dataContext.js +0 -0
  117. package/src/services/dateUtils.js +0 -0
  118. package/src/services/forum.js +0 -0
  119. package/src/services/gamification/awards.js +0 -0
  120. package/src/services/gamification/gamification.js +0 -0
  121. package/src/services/gamification/types.js +0 -0
  122. package/src/services/imageSRCBuilder.js +0 -0
  123. package/src/services/railcontent.js +0 -0
  124. package/src/services/types.js +0 -0
  125. package/src/services/user/account.ts +0 -0
  126. package/src/services/user/chat.js +0 -0
  127. package/src/services/user/interests.js +0 -0
  128. package/src/services/user/management.js +0 -0
  129. package/src/services/user/notifications.js +0 -0
  130. package/src/services/user/permissions.js +0 -0
  131. package/src/services/user/profile.js +0 -0
  132. package/src/services/user/sessions.js +0 -0
  133. package/src/services/user/types.js +0 -0
  134. package/src/services/user/user-management-system.js +0 -0
  135. package/test/HttpClient.test.js +0 -0
  136. package/test/content.test.js +0 -0
  137. package/test/contentLikes.test.js +0 -0
  138. package/test/contentProgress.test.js +0 -0
  139. package/test/dataContext.test.js +0 -0
  140. package/test/forum.test.js +0 -0
  141. package/test/imageSRCBuilder.test.js +0 -0
  142. package/test/imageSRCVerify.test.js +0 -0
  143. package/test/initializeTests.js +0 -0
  144. package/test/lib/lastUpdated.test.js +0 -0
  145. package/test/live/contentProgressLive.test.js +0 -0
  146. package/test/live/railcontentLive.test.js +0 -0
  147. package/test/localStorageMock.js +0 -0
  148. package/test/log.js +0 -0
  149. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  150. package/test/mockData/mockData_progress_content.json +0 -0
  151. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  152. package/test/mockData/mockData_user_practices.json +0 -0
  153. package/test/notifications.test.js +0 -0
  154. package/test/progressRows.test.js +0 -0
  155. package/test/sanityQueryService.test.js +0 -0
  156. package/test/streakMessage.test.js +0 -0
  157. package/test/user/permissions.test.js +0 -0
  158. package/test/userActivity.test.js +0 -0
  159. package/tools/generate-index.cjs +0 -0
  160. package/.yarnrc.yml +0 -1
package/.coderabbit.yaml CHANGED
File without changes
package/.editorconfig CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
package/.prettierignore CHANGED
File without changes
package/.prettierrc CHANGED
File without changes
package/CHANGELOG.md CHANGED
@@ -2,6 +2,13 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
4
4
 
5
+ ### [2.21.2](https://github.com/railroadmedia/musora-content-services/compare/v2.21.1...v2.21.2) (2025-07-14)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **systest:** patch contentAggregator ([#342](https://github.com/railroadmedia/musora-content-services/issues/342)) ([4a1906e](https://github.com/railroadmedia/musora-content-services/commit/4a1906ed8e5cfc3cebf3e044d4eb35213d18ebe1))
11
+
5
12
  ### [2.21.1](https://github.com/railroadmedia/musora-content-services/compare/v2.21.0...v2.21.1) (2025-07-14)
6
13
 
7
14
 
package/README.md CHANGED
File without changes
package/babel.config.cjs 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
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
package/docs/global.html CHANGED
File without changes
File without changes
package/docs/index.html 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
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
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
package/jest.config.js CHANGED
File without changes
package/jsdoc.json CHANGED
File without changes
package/link_mcs.sh CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.21.1",
3
+ "version": "2.21.2",
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
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
@@ -33,15 +33,14 @@ export async function addContextToContent(dataPromise, ...dataArgs)
33
33
  if(!data) return false
34
34
 
35
35
  let items = []
36
- let dataMap = []
37
36
 
38
37
  if (dataField && (data?.[dataField] || iterateDataFieldOnEachArrayElement)) {
39
38
  if (iterateDataFieldOnEachArrayElement && Array.isArray(data)) {
40
39
  for(const parent of data) {
41
- ids = [...ids, ...parent[dataField].map(item => item?.id).filter(Boolean)]
40
+ items = [...items, ...parent[dataField]]
42
41
  }
43
42
  } else {
44
- ids = data[dataField].map(item => item?.id).filter(Boolean);
43
+ items = data[dataField]
45
44
  }
46
45
  } else if (Array.isArray(data)) {
47
46
  items = data;
@@ -51,19 +50,6 @@ export async function addContextToContent(dataPromise, ...dataArgs)
51
50
 
52
51
  const ids = items.map(item => item?.id).filter(Boolean)
53
52
 
54
- //create data structure for common use by functions
55
- if (addNextLesson) {
56
- items.forEach((item) => {
57
- if (item?.id) {
58
- dataMap.push({
59
- 'children': item.children?.map(child => child.id) ?? [],
60
- 'type': item.type,
61
- 'id': item.id,
62
- })
63
- }
64
- })
65
- }
66
-
67
53
  if(ids.length === 0) return false
68
54
 
69
55
  const [progressPercentageData, progressStatusData, isLikedData, resumeTimeData, lastInteractedChildData, nextLessonData] = await Promise.all([
@@ -72,7 +58,7 @@ export async function addContextToContent(dataPromise, ...dataArgs)
72
58
  addIsLiked ? isContentLikedByIds(ids) : Promise.resolve(null),
73
59
  addResumeTimeSeconds ? getResumeTimeSecondsByIds(ids) : Promise.resolve(null),
74
60
  addLastInteractedChild ? fetchLastInteractedChild(ids) : Promise.resolve(null),
75
- (addNextLesson || addLastInteractedParent) ? getNextLesson(dataMap) : Promise.resolve(null),
61
+ (addNextLesson || addLastInteractedParent) ? getNextLesson(items) : Promise.resolve(null),
76
62
  ])
77
63
 
78
64
  const addContext = async (item) => ({
File without changes
@@ -44,12 +44,12 @@ export async function getResumeTimeSecondsByIds(contentIds) {
44
44
  return getByIds(contentIds, DATA_KEY_RESUME_TIME, 0)
45
45
  }
46
46
 
47
- export async function getNextLesson(dataMap)
47
+ export async function getNextLesson(data)
48
48
  {
49
49
  let nextLessonData = {}
50
50
 
51
- for (const content of dataMap) {
52
-
51
+ for (const content of data) {
52
+ const children = content.children?.map(child => child.id) ?? []
53
53
  //only calculate nextLesson if needed, based on content type
54
54
  if (!getNextLessonLessonParentTypes.includes(content.type)) {
55
55
  nextLessonData[content.id] = null
@@ -58,15 +58,15 @@ export async function getNextLesson(dataMap)
58
58
  //return first child if parent-content is complete or no progress
59
59
  const contentState = await getProgressState(content.id)
60
60
  if (contentState !== STATE_STARTED) {
61
- nextLessonData[content.id] = content.children[0]
61
+ nextLessonData[content.id] = children[0]
62
62
 
63
63
  } else {
64
64
  //if content in progress
65
65
 
66
- const childrenStates = await getProgressStateByIds(content.children)
66
+ const childrenStates = await getProgressStateByIds(children)
67
67
 
68
68
  //calculate last_engaged
69
- const lastInteracted = await getLastInteractedOf(content.children)
69
+ const lastInteracted = await getLastInteractedOf(children)
70
70
  const lastInteractedStatus = childrenStates[lastInteracted]
71
71
 
72
72
  //different nextLesson behaviour for different content types
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
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
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
File without changes
package/.yarnrc.yml DELETED
@@ -1 +0,0 @@
1
- nodeLinker: node-modules