musora-content-services 2.85.1 → 2.86.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 (219) 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 +12 -0
  10. package/README.md +0 -0
  11. package/babel.config.cjs +0 -0
  12. package/docs/Content.html +0 -0
  13. package/docs/ContentOrganization.html +0 -0
  14. package/docs/Forums.html +0 -0
  15. package/docs/Gamification.html +0 -0
  16. package/docs/TestUser.html +0 -0
  17. package/docs/UserManagementSystem.html +0 -0
  18. package/docs/api_types.js.html +0 -0
  19. package/docs/config.js.html +0 -0
  20. package/docs/content-org_content-org.js.html +0 -0
  21. package/docs/content-org_guided-courses.ts.html +0 -0
  22. package/docs/content-org_learning-paths.ts.html +0 -0
  23. package/docs/content-org_playlists-types.js.html +0 -0
  24. package/docs/content-org_playlists.js.html +0 -0
  25. package/docs/content.js.html +0 -0
  26. package/docs/content_artist.ts.html +0 -0
  27. package/docs/content_content.ts.html +0 -0
  28. package/docs/content_genre.ts.html +0 -0
  29. package/docs/content_instructor.ts.html +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  31. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  32. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  33. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  34. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  35. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  36. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  37. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  42. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  43. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  44. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  45. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  46. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  47. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  48. package/docs/forums_categories.ts.html +0 -0
  49. package/docs/forums_discussions.js.html +0 -0
  50. package/docs/forums_forum.js.html +0 -0
  51. package/docs/forums_forums.ts.html +0 -0
  52. package/docs/forums_posts.ts.html +0 -0
  53. package/docs/forums_threads.ts.html +0 -0
  54. package/docs/gamification_awards.js.html +0 -0
  55. package/docs/gamification_awards.ts.html +0 -0
  56. package/docs/gamification_gamification.js.html +0 -0
  57. package/docs/gamification_types.js.html +0 -0
  58. package/docs/global.html +0 -0
  59. package/docs/index.html +0 -0
  60. package/docs/liveTesting.ts.html +0 -0
  61. package/docs/module-Accounts.html +0 -0
  62. package/docs/module-Artist.html +0 -0
  63. package/docs/module-Awards.html +0 -0
  64. package/docs/module-Categories.html +0 -0
  65. package/docs/module-Config.html +0 -0
  66. package/docs/module-Content-Services-V2.html +0 -0
  67. package/docs/module-ForumCategories.html +0 -0
  68. package/docs/module-ForumDiscussions.html +0 -0
  69. package/docs/module-Forums.html +0 -0
  70. package/docs/module-Genre.html +0 -0
  71. package/docs/module-GuidedCourses.html +0 -0
  72. package/docs/module-Instructor.html +0 -0
  73. package/docs/module-Interests.html +0 -0
  74. package/docs/module-LearningPaths.html +0 -0
  75. package/docs/module-Onboarding.html +0 -0
  76. package/docs/module-Payments.html +0 -0
  77. package/docs/module-Permissions.html +0 -0
  78. package/docs/module-Playlists.html +0 -0
  79. package/docs/module-ProgressRow.html +0 -0
  80. package/docs/module-Railcontent-Services.html +0 -0
  81. package/docs/module-Sanity-Services.html +0 -0
  82. package/docs/module-Sessions.html +0 -0
  83. package/docs/module-Threads.html +0 -0
  84. package/docs/module-UserActivity.html +0 -0
  85. package/docs/module-UserChat.html +0 -0
  86. package/docs/module-UserManagement.html +0 -0
  87. package/docs/module-UserMemberships.html +0 -0
  88. package/docs/module-UserNotifications.html +0 -0
  89. package/docs/module-UserProfile.html +0 -0
  90. package/docs/progress-row_method-card.js.html +0 -0
  91. package/docs/railcontent.js.html +0 -0
  92. package/docs/sanity.js.html +0 -0
  93. package/docs/scripts/collapse.js +0 -0
  94. package/docs/scripts/commonNav.js +0 -0
  95. package/docs/scripts/linenumber.js +0 -0
  96. package/docs/scripts/nav.js +0 -0
  97. package/docs/scripts/polyfill.js +0 -0
  98. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  99. package/docs/scripts/prettify/lang-css.js +0 -0
  100. package/docs/scripts/prettify/prettify.js +0 -0
  101. package/docs/scripts/search.js +0 -0
  102. package/docs/styles/jsdoc.css +0 -0
  103. package/docs/styles/prettify.css +0 -0
  104. package/docs/userActivity.js.html +0 -0
  105. package/docs/user_account.ts.html +0 -0
  106. package/docs/user_chat.js.html +0 -0
  107. package/docs/user_interests.js.html +0 -0
  108. package/docs/user_management.js.html +0 -0
  109. package/docs/user_memberships.js.html +0 -0
  110. package/docs/user_memberships.ts.html +0 -0
  111. package/docs/user_notifications.js.html +0 -0
  112. package/docs/user_onboarding.ts.html +0 -0
  113. package/docs/user_payments.ts.html +0 -0
  114. package/docs/user_permissions.js.html +0 -0
  115. package/docs/user_profile.js.html +0 -0
  116. package/docs/user_sessions.js.html +0 -0
  117. package/docs/user_types.js.html +0 -0
  118. package/docs/user_user-management-system.js.html +0 -0
  119. package/jest.config.js +0 -0
  120. package/jsdoc.json +0 -0
  121. package/package.json +1 -1
  122. package/src/contentMetaData.js +0 -0
  123. package/src/filterBuilder.js +0 -0
  124. package/src/index.d.ts +0 -0
  125. package/src/index.js +0 -0
  126. package/src/infrastructure/http/HttpClient.ts +0 -0
  127. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  128. package/src/infrastructure/http/index.ts +0 -0
  129. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  130. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  131. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  132. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  133. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  134. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  135. package/src/lib/httpHelper.js +0 -0
  136. package/src/lib/lastUpdated.js +0 -0
  137. package/src/services/api/types.js +0 -0
  138. package/src/services/api/types.ts +0 -0
  139. package/src/services/config.js +0 -0
  140. package/src/services/content/artist.ts +0 -0
  141. package/src/services/content/content.ts +0 -0
  142. package/src/services/content/genre.ts +0 -0
  143. package/src/services/content/instructor.ts +0 -0
  144. package/src/services/content-org/content-org.js +0 -0
  145. package/src/services/content-org/guided-courses.ts +0 -0
  146. package/src/services/content-org/learning-paths.ts +4 -4
  147. package/src/services/content-org/playlists-types.js +0 -0
  148. package/src/services/content-org/playlists.js +0 -0
  149. package/src/services/content.js +0 -0
  150. package/src/services/contentAggregator.js +5 -1
  151. package/src/services/contentLikes.js +0 -0
  152. package/src/services/contentProgress.js +6 -6
  153. package/src/services/dataContext.js +0 -0
  154. package/src/services/dateUtils.js +0 -0
  155. package/src/services/eventsAPI.js +0 -0
  156. package/src/services/forums/categories.ts +0 -0
  157. package/src/services/forums/forums.ts +0 -0
  158. package/src/services/forums/posts.ts +0 -0
  159. package/src/services/forums/threads.ts +0 -0
  160. package/src/services/forums/types.ts +0 -0
  161. package/src/services/gamification/awards.ts +0 -0
  162. package/src/services/gamification/gamification.js +0 -0
  163. package/src/services/imageSRCBuilder.js +0 -0
  164. package/src/services/imageSRCVerify.js +0 -0
  165. package/src/services/liveTesting.ts +0 -0
  166. package/src/services/permissions/PermissionsAdapter.ts +0 -0
  167. package/src/services/permissions/PermissionsAdapterFactory.ts +0 -0
  168. package/src/services/permissions/PermissionsV1Adapter.ts +0 -0
  169. package/src/services/permissions/PermissionsV2Adapter.ts +0 -0
  170. package/src/services/permissions/README.md +0 -0
  171. package/src/services/permissions/index.ts +0 -0
  172. package/src/services/progress-row/method-card.js +0 -0
  173. package/src/services/railcontent.js +0 -0
  174. package/src/services/recommendations.js +0 -0
  175. package/src/services/sanity.js +18 -19
  176. package/src/services/types.js +0 -0
  177. package/src/services/user/account.ts +0 -0
  178. package/src/services/user/chat.js +0 -0
  179. package/src/services/user/interests.js +0 -0
  180. package/src/services/user/management.js +0 -0
  181. package/src/services/user/memberships.ts +0 -0
  182. package/src/services/user/notifications.js +0 -0
  183. package/src/services/user/onboarding.ts +0 -0
  184. package/src/services/user/payments.ts +0 -0
  185. package/src/services/user/permissions.js +0 -0
  186. package/src/services/user/profile.js +0 -0
  187. package/src/services/user/sessions.js +0 -0
  188. package/src/services/user/types.d.ts +0 -0
  189. package/src/services/user/types.js +0 -0
  190. package/src/services/user/user-management-system.js +0 -0
  191. package/src/services/userActivity.js +1 -1
  192. package/test/HttpClient.test.js +0 -0
  193. package/test/content.test.js +0 -0
  194. package/test/contentLikes.test.js +0 -0
  195. package/test/contentProgress.test.js +0 -0
  196. package/test/dataContext.test.js +0 -0
  197. package/test/forum.test.js +0 -0
  198. package/test/imageSRCBuilder.test.js +0 -0
  199. package/test/imageSRCVerify.test.js +0 -0
  200. package/test/initializeTests.js +0 -0
  201. package/test/learningPaths.test.js +0 -0
  202. package/test/lib/lastUpdated.test.js +0 -0
  203. package/test/live/contentProgressLive.test.js +0 -0
  204. package/test/live/railcontentLive.test.js +0 -0
  205. package/test/localStorageMock.js +0 -0
  206. package/test/log.js +0 -0
  207. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  208. package/test/mockData/mockData_progress_content.json +0 -0
  209. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  210. package/test/mockData/mockData_user_practices.json +0 -0
  211. package/test/notifications.test.js +0 -0
  212. package/test/progressRows.test.js +0 -0
  213. package/test/sanityQueryService.test.js +0 -0
  214. package/test/streakMessage.test.js +0 -0
  215. package/test/user/permissions.test.js +0 -0
  216. package/test/userActivity.test.js +0 -0
  217. package/tools/generate-index.cjs +0 -0
  218. package/.claude/settings.local.json +0 -14
  219. 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,18 @@
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.86.0](https://github.com/railroadmedia/musora-content-services/compare/v2.85.1...v2.86.0) (2025-11-25)
6
+
7
+
8
+ ### Features
9
+
10
+ * **BEH-1266:** Update fetchHierarchy to use parent_content_data ([#586](https://github.com/railroadmedia/musora-content-services/issues/586)) ([4d44fea](https://github.com/railroadmedia/musora-content-services/commit/4d44fea55c5094fd35bbac98f282a996d455be03))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * content aggregator and fetch learnig path ([#587](https://github.com/railroadmedia/musora-content-services/issues/587)) ([f8af202](https://github.com/railroadmedia/musora-content-services/commit/f8af2024f147680b60b66e440c164cfd6ff0922b))
16
+
5
17
  ### [2.85.1](https://github.com/railroadmedia/musora-content-services/compare/v2.85.0...v2.85.1) (2025-11-24)
6
18
 
7
19
 
package/README.md CHANGED
File without changes
package/babel.config.cjs CHANGED
File without changes
package/docs/Content.html CHANGED
File without changes
File without changes
package/docs/Forums.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
package/docs/global.html CHANGED
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
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.85.1",
3
+ "version": "2.86.0",
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
File without changes
package/src/index.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
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -101,22 +101,22 @@ export async function resetAllLearningPaths() {
101
101
  * @returns {Promise<Object>} Learning path with enriched lesson data
102
102
  */
103
103
  export async function getEnrichedLearningPath(learningPathId) {
104
- // TODO: replace addNextLesson with addNaviageTo
105
104
  const response = (await addContextToContent(
106
105
  fetchByRailContentId,
107
106
  learningPathId,
108
107
  'learning-path-v2',
109
108
  {
109
+ collection: { id: learningPathId, type: 'learning-path-v2' },
110
110
  dataField: 'children',
111
111
  dataField_includeParent: true,
112
112
  addProgressStatus: true,
113
113
  addProgressPercentage: true,
114
114
  addProgressTimestamp: true,
115
- addNextLesson: true,
115
+ addNavigateTo: true,
116
116
  }
117
117
  )) as any
118
118
  if (!response) return response
119
-
119
+
120
120
  response.children = mapContentToParent(
121
121
  response.children,
122
122
  'learning-path-lesson-v2',
@@ -222,7 +222,7 @@ export async function fetchLearningPathLessons(
222
222
  nextLPLessons = await getLearningPathLessonsByIds(nextContentIds, nextLearningPathId)
223
223
  }
224
224
 
225
-
225
+
226
226
 
227
227
  return {
228
228
  ...learningPath,
File without changes
File without changes
File without changes
@@ -173,7 +173,11 @@ function extractItemsFromData(data, dataField, isParentArray, includeParent) {
173
173
  if (includeParent) {
174
174
  if (isParentArray) {
175
175
  for (const parent of data) {
176
- items = [...items, ...parent]
176
+ if(Array.isArray(parent)){
177
+ items = [...items, ...parent]
178
+ } else {
179
+ items = [...items, parent]
180
+ }
177
181
  }
178
182
  } else {
179
183
  items = [...items, data]
File without changes
@@ -410,7 +410,7 @@ function setStartedOrCompletedStatusInLocalContext(
410
410
 
411
411
  if (!hierarchy) return
412
412
 
413
- if (collection && collection.type === 'learning-path') {
413
+ if (collection && collection.type === 'learning-path-v2') {
414
414
  bubbleOrTrickleLearningPathProgress(hierarchy, contentId, localContext, isCompleted, collection)
415
415
  return
416
416
  }
@@ -453,7 +453,7 @@ function resetStatusInLocalContext(localContext, contentId, hierarchy, collectio
453
453
  let allChildIds
454
454
  let learningPathId = null
455
455
  let childrenIds = []
456
- if (collection && collection.type === 'learning-path') {
456
+ if (collection && collection.type === 'learning-path-v2') {
457
457
  [learningPathId, childrenIds] = findLearningPathAndChildren(hierarchy, contentId)
458
458
  allChildIds = (learningPathId === contentId) ? childrenIds : []
459
459
  } else {
@@ -471,7 +471,7 @@ function resetStatusInLocalContext(localContext, contentId, hierarchy, collectio
471
471
  delete localContext.data[key]
472
472
  }
473
473
  })
474
- if (collection && collection.type === 'learning-path') { // manual bubbling for LP
474
+ if (collection && collection.type === 'learning-path-v2') { // manual bubbling for LP
475
475
  if (learningPathId !== contentId) {
476
476
  bubbleLearningPathProgress(hierarchy, contentId, localContext, collection)
477
477
  }
@@ -492,7 +492,7 @@ function resetStatusInLocalContext(localContext, contentId, hierarchy, collectio
492
492
  * @param {string} sessionId - This function records a sessionId to pass into future updates to progress on the same video
493
493
  * @param {int} instrumentId - enum value of instrument id
494
494
  * @param {int} categoryId - enum value of category id
495
- * @param {object|null} collection - optional collection info { type: 'learning-path', id: 123 }
495
+ * @param {object|null} collection - optional collection info { type: 'learning-path-v2', id: 123 }
496
496
  */
497
497
  // NOTE: have not set up collection because its not super important for testing and this will change soon with watermelon
498
498
  export async function recordWatchSession(
@@ -507,7 +507,7 @@ export async function recordWatchSession(
507
507
  categoryId = null,
508
508
  collection = null
509
509
  ) {
510
- if (collection && collection.type === 'learning-path') {
510
+ if (collection && collection.type === 'learning-path-v2') {
511
511
  console.log('Learning Path lesson watch sessions are not set up yet without watermelon')
512
512
  return sessionId
513
513
  }
@@ -640,7 +640,7 @@ function extractContentIdFromRecordKey(key) {
640
640
  }
641
641
 
642
642
  async function getContentHierarchy(contentId, collection = null) {
643
- if (collection && collection.type === 'learning-path') {
643
+ if (collection && collection.type === 'learning-path-v2') {
644
644
  return fetchMethodV2StructureFromId(contentId)
645
645
  }
646
646
  return await fetchHierarchy(contentId)
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
@@ -1480,35 +1480,34 @@ export async function fetchByReference(
1480
1480
  return fetchSanity(query, true)
1481
1481
  }
1482
1482
 
1483
+ /**
1484
+ *
1485
+ * Return the top level parent content railcontent_id.
1486
+ * Ignores learning-path-v2 parents.
1487
+ * ex: if railcontentId is of type 'skill-pack-lesson', return the corresponding 'skill-pack' railcontent_id
1488
+ *
1489
+ * @param {int} railcontentId
1490
+ * @returns {Promise<int|null>}
1491
+ */
1483
1492
  export async function fetchTopLevelParentId(railcontentId) {
1493
+ const parentFilter = "railcontent_id in [...(^.parent_content_data[].id)]"
1484
1494
  const statusFilter = "&& status in ['scheduled', 'published', 'archived', 'unlisted']"
1485
1495
 
1486
1496
  const query = `*[railcontent_id == ${railcontentId}]{
1487
1497
  railcontent_id,
1488
- 'parents': *[^._id in child[]._ref ${statusFilter}]{
1489
- railcontent_id,
1490
- 'parents': *[^._id in child[]._ref ${statusFilter}]{
1491
- railcontent_id,
1492
- 'parents': *[^._id in child[]._ref ${statusFilter}]{
1493
- railcontent_id,
1494
- 'parents': *[^._id in child[]._ref ${statusFilter}]{
1495
- railcontent_id,
1496
- }
1497
- }
1498
- }
1498
+ 'parents': *[${parentFilter} ${statusFilter}]{
1499
+ railcontent_id
1499
1500
  }
1500
1501
  }`
1501
1502
  let response = await fetchSanity(query, false, { processNeedAccess: false })
1502
1503
  if (!response) return null
1503
- let currentLevel = response
1504
- for (let i = 0; i < 4; i++) {
1505
- if (currentLevel['parents'].length > 0) {
1506
- currentLevel = currentLevel['parents'][0]
1507
- } else {
1508
- return currentLevel['railcontent_id']
1509
- }
1504
+ let parents = response['parents']
1505
+ let parentsLength = parents ? response['parents'].length : 0
1506
+ if (parentsLength > 0) {
1507
+ // return the last parent
1508
+ return parents[parentsLength - 1]['railcontent_id']
1510
1509
  }
1511
- return null
1510
+ return response['railcontent_id']
1512
1511
  }
1513
1512
 
1514
1513
  export async function fetchHierarchy(railcontentId) {
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
@@ -1347,7 +1347,7 @@ function mergeAndSortItems(items, limit) {
1347
1347
 
1348
1348
  export function findIncompleteLesson(progressOnItems, currentContentId, contentType) {
1349
1349
  const ids = Object.keys(progressOnItems).map(Number)
1350
- if (contentType === 'guided-course' || contentType === 'learning-path') {
1350
+ if (contentType === 'guided-course' || contentType === 'learning-path-v2') {
1351
1351
  // Return first incomplete lesson
1352
1352
  return ids.find((id) => progressOnItems[id] !== 'completed') || ids.at(0)
1353
1353
  }
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
@@ -1,14 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Read(//app/musora-platform-backend/**)",
5
- "Read(//app/musora-platform-frontend/**)",
6
- "Bash(find:*)",
7
- "Bash(sed:*)",
8
- "Read(//app/**)",
9
- "Bash(cat:*)"
10
- ],
11
- "deny": [],
12
- "ask": []
13
- }
14
- }
package/.yarnrc.yml DELETED
@@ -1 +0,0 @@
1
- nodeLinker: node-modules