musora-content-services 2.27.0 → 2.27.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 (164) 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 +14 -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/package.json +1 -1
  94. package/src/contentMetaData.js +0 -0
  95. package/src/filterBuilder.js +0 -0
  96. package/src/index.d.ts +2 -4
  97. package/src/index.js +2 -4
  98. package/src/infrastructure/http/HttpClient.ts +0 -0
  99. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  100. package/src/infrastructure/http/index.ts +0 -0
  101. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  102. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  103. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  104. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  105. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  106. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  107. package/src/lib/httpHelper.js +0 -0
  108. package/src/lib/lastUpdated.js +0 -0
  109. package/src/services/api/types.js +0 -0
  110. package/src/services/config.js +0 -0
  111. package/src/services/content-org/content-org.js +0 -0
  112. package/src/services/content-org/guided-courses.ts +0 -0
  113. package/src/services/content-org/playlists-types.js +0 -0
  114. package/src/services/content-org/playlists.js +0 -0
  115. package/src/services/content.js +0 -0
  116. package/src/services/contentAggregator.js +0 -0
  117. package/src/services/contentLikes.js +0 -0
  118. package/src/services/contentProgress.js +6 -26
  119. package/src/services/dataContext.js +0 -0
  120. package/src/services/dateUtils.js +0 -0
  121. package/src/services/forum.js +0 -0
  122. package/src/services/gamification/awards.js +0 -0
  123. package/src/services/gamification/gamification.js +0 -0
  124. package/src/services/gamification/types.js +0 -0
  125. package/src/services/imageSRCBuilder.js +0 -0
  126. package/src/services/railcontent.js +5 -0
  127. package/src/services/recommendations.js +0 -0
  128. package/src/services/types.js +0 -0
  129. package/src/services/user/account.ts +0 -0
  130. package/src/services/user/chat.js +0 -0
  131. package/src/services/user/interests.js +0 -0
  132. package/src/services/user/management.js +0 -0
  133. package/src/services/user/permissions.js +0 -0
  134. package/src/services/user/profile.js +0 -0
  135. package/src/services/user/sessions.js +0 -0
  136. package/src/services/user/types.js +0 -0
  137. package/src/services/user/user-management-system.js +0 -0
  138. package/src/services/userActivity.js +3 -1
  139. package/test/HttpClient.test.js +0 -0
  140. package/test/content.test.js +0 -0
  141. package/test/contentLikes.test.js +0 -0
  142. package/test/contentProgress.test.js +0 -0
  143. package/test/dataContext.test.js +0 -0
  144. package/test/forum.test.js +0 -0
  145. package/test/imageSRCBuilder.test.js +0 -0
  146. package/test/imageSRCVerify.test.js +0 -0
  147. package/test/initializeTests.js +0 -0
  148. package/test/lib/lastUpdated.test.js +0 -0
  149. package/test/live/contentProgressLive.test.js +0 -0
  150. package/test/live/railcontentLive.test.js +0 -0
  151. package/test/localStorageMock.js +0 -0
  152. package/test/log.js +0 -0
  153. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  154. package/test/mockData/mockData_progress_content.json +0 -0
  155. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  156. package/test/mockData/mockData_user_practices.json +0 -0
  157. package/test/notifications.test.js +0 -0
  158. package/test/progressRows.test.js +0 -0
  159. package/test/sanityQueryService.test.js +0 -0
  160. package/test/streakMessage.test.js +0 -0
  161. package/test/user/permissions.test.js +0 -0
  162. package/test/userActivity.test.js +0 -0
  163. package/tools/generate-index.cjs +0 -0
  164. 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,20 @@
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.27.2](https://github.com/railroadmedia/musora-content-services/compare/v2.27.1...v2.27.2) (2025-07-21)
6
+
7
+
8
+ ### Bug Fixes
9
+
10
+ * **last-engaged:** add playlist last engaged endpoint ([#361](https://github.com/railroadmedia/musora-content-services/issues/361)) ([3396207](https://github.com/railroadmedia/musora-content-services/commit/33962077500e47ff9cba93fb23fd28b63eb4112a))
11
+
12
+ ### [2.27.1](https://github.com/railroadmedia/musora-content-services/compare/v2.27.0...v2.27.1) (2025-07-17)
13
+
14
+
15
+ ### Bug Fixes
16
+
17
+ * **Userpractice:** add category_id and instrument_id to userPractice ([2c92c6f](https://github.com/railroadmedia/musora-content-services/commit/2c92c6f6adcb7fac657c3b12e1c3f5e927cff214))
18
+
5
19
  ## [2.27.0](https://github.com/railroadmedia/musora-content-services/compare/v2.24.0...v2.27.0) (2025-07-17)
6
20
 
7
21
 
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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.27.0",
3
+ "version": "2.27.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
package/src/index.d.ts CHANGED
@@ -55,8 +55,6 @@ import {
55
55
  } from './services/contentLikes.js';
56
56
 
57
57
  import {
58
- assignmentStatusCompleted,
59
- assignmentStatusReset,
60
58
  contentStatusCompleted,
61
59
  contentStatusReset,
62
60
  getAllCompleted,
@@ -160,6 +158,7 @@ import {
160
158
  postContentLiked,
161
159
  postContentReset,
162
160
  postContentUnliked,
161
+ postPlaylistContentEngaged,
163
162
  postRecordWatchSession,
164
163
  replyToComment,
165
164
  reportComment,
@@ -318,8 +317,6 @@ declare module 'musora-content-services' {
318
317
  applyCloudflareWrapper,
319
318
  applySanityTransformations,
320
319
  assignModeratorToComment,
321
- assignmentStatusCompleted,
322
- assignmentStatusReset,
323
320
  blockUser,
324
321
  buildImageSRC,
325
322
  calculateLongestStreaks,
@@ -506,6 +503,7 @@ declare module 'musora-content-services' {
506
503
  postContentLiked,
507
504
  postContentReset,
508
505
  postContentUnliked,
506
+ postPlaylistContentEngaged,
509
507
  postRecordWatchSession,
510
508
  rankCategories,
511
509
  rankItems,
package/src/index.js CHANGED
@@ -55,8 +55,6 @@ import {
55
55
  } from './services/contentLikes.js';
56
56
 
57
57
  import {
58
- assignmentStatusCompleted,
59
- assignmentStatusReset,
60
58
  contentStatusCompleted,
61
59
  contentStatusReset,
62
60
  getAllCompleted,
@@ -160,6 +158,7 @@ import {
160
158
  postContentLiked,
161
159
  postContentReset,
162
160
  postContentUnliked,
161
+ postPlaylistContentEngaged,
163
162
  postRecordWatchSession,
164
163
  replyToComment,
165
164
  reportComment,
@@ -317,8 +316,6 @@ export {
317
316
  applyCloudflareWrapper,
318
317
  applySanityTransformations,
319
318
  assignModeratorToComment,
320
- assignmentStatusCompleted,
321
- assignmentStatusReset,
322
319
  blockUser,
323
320
  buildImageSRC,
324
321
  calculateLongestStreaks,
@@ -505,6 +502,7 @@ export {
505
502
  postContentLiked,
506
503
  postContentReset,
507
504
  postContentUnliked,
505
+ postPlaylistContentEngaged,
508
506
  postRecordWatchSession,
509
507
  rankCategories,
510
508
  rankItems,
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
@@ -256,18 +256,6 @@ export async function getStartedOrCompletedProgressOnly({ brand = null} = {}) {
256
256
  return result
257
257
  }
258
258
 
259
- export async function assignmentStatusCompleted(assignmentId, parentContentId) {
260
- await dataContext.update(
261
- async function (localContext) {
262
- let hierarchy = await fetchHierarchy(parentContentId)
263
- completeStatusInLocalContext(localContext, assignmentId, hierarchy)
264
- },
265
- async function () {
266
- return postContentComplete(assignmentId)
267
- }
268
- )
269
- }
270
-
271
259
  export async function contentStatusCompleted(contentId) {
272
260
  return await dataContext.update(
273
261
  async function (localContext) {
@@ -324,18 +312,6 @@ function getChildrenToDepth(parentId, hierarchy, depth = 1) {
324
312
  return allChildrenIds
325
313
  }
326
314
 
327
- export async function assignmentStatusReset(assignmentId, contentId) {
328
- await dataContext.update(
329
- async function (localContext) {
330
- let hierarchy = await fetchHierarchy(contentId)
331
- resetStatusInLocalContext(localContext, assignmentId, hierarchy)
332
- },
333
- async function () {
334
- return postContentReset(contentId)
335
- }
336
- )
337
- }
338
-
339
315
  export async function contentStatusReset(contentId) {
340
316
  await dataContext.update(
341
317
  async function (localContext) {
@@ -371,6 +347,8 @@ function resetStatusInLocalContext(localContext, contentId, hierarchy) {
371
347
  * @param {int} currentSeconds
372
348
  * @param {int} secondsPlayed
373
349
  * @param {string} sessionId - This function records a sessionId to pass into future updates to progress on the same video
350
+ * @param {int} instrumentId - enum value of instrument id
351
+ * @param {int} categoryId - enum value of category id
374
352
  */
375
353
  export async function recordWatchSession(
376
354
  contentId,
@@ -379,7 +357,9 @@ export async function recordWatchSession(
379
357
  mediaLengthSeconds,
380
358
  currentSeconds,
381
359
  secondsPlayed,
382
- sessionId = null
360
+ sessionId = null,
361
+ instrumentId = null,
362
+ categoryId = null,
383
363
  ) {
384
364
  let mediaTypeId = getMediaTypeId(mediaType, mediaCategory)
385
365
  let updateLocalProgress = mediaTypeId === 1 || mediaTypeId === 2 //only update for video playback
@@ -391,7 +371,7 @@ export async function recordWatchSession(
391
371
  //TODO: Good enough for Alpha, Refine in reliability improvements
392
372
  sessionData[sessionId] = sessionData[sessionId] || {}
393
373
  const secondsSinceLastUpdate = Math.ceil(secondsPlayed - (sessionData[sessionId][contentId] ?? 0))
394
- await recordUserPractice({ content_id: contentId, duration_seconds: secondsSinceLastUpdate })
374
+ await recordUserPractice({ content_id: contentId, duration_seconds: secondsSinceLastUpdate, category_id: categoryId, instrument_id: instrumentId })
395
375
  } catch (error) {
396
376
  console.error('Failed to record user practice:', error)
397
377
  }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -323,6 +323,11 @@ export async function fetchContentProgress(currentVersion) {
323
323
  return fetchDataHandler(url, currentVersion)
324
324
  }
325
325
 
326
+ export async function postPlaylistContentEngaged(playlistItemId) {
327
+ let url = `/railtracker/v1/last-engaged/${playlistItemId}`
328
+ return postDataHandler(url)
329
+ }
330
+
326
331
  export async function postRecordWatchSession(
327
332
  contentId,
328
333
  mediaTypeId,
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
@@ -272,7 +272,9 @@ export async function getUserMonthlyStats(params = {}) {
272
272
  * auto: false,
273
273
  * category_id: 5,
274
274
  * title: "Guitar Warm-up",
275
- * thumbnail_url: "https://example.com/thumbnail.jpg"
275
+ * thumbnail_url: "https://example.com/thumbnail.jpg",
276
+ * instrument_id: 1,
277
+ * instrument_id: 2,
276
278
  * })
277
279
  * .then(response => console.log(response))
278
280
  * .catch(error => console.error(error));
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