musora-content-services 2.9.0 → 2.9.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 (121) 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/node.js.yml +0 -0
  5. package/.prettierignore +0 -0
  6. package/.prettierrc +0 -0
  7. package/.yarnrc.yml +1 -0
  8. package/CHANGELOG.md +4 -0
  9. package/README.md +0 -0
  10. package/babel.config.cjs +0 -0
  11. package/docs/Content-Organization.html +0 -0
  12. package/docs/UserManagement.html +0 -0
  13. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  14. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  15. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  16. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  17. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  18. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  19. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  20. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  21. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  22. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  23. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  24. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  25. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  26. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  27. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  28. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  29. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  30. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  31. package/docs/global.html#User +0 -0
  32. package/docs/module-Content-Services.html +763 -0
  33. package/docs/module-Notifications.html +0 -0
  34. package/docs/module-Session-Management.html +0 -0
  35. package/docs/module-User-Activity.html +0 -0
  36. package/docs/module-User-Management.html +0 -0
  37. package/docs/module-User-Permissions.html +0 -0
  38. package/docs/module-UserChat.html +410 -0
  39. package/docs/scripts/collapse.js +0 -0
  40. package/docs/scripts/commonNav.js +0 -0
  41. package/docs/scripts/linenumber.js +0 -0
  42. package/docs/scripts/nav.js +0 -0
  43. package/docs/scripts/polyfill.js +0 -0
  44. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  45. package/docs/scripts/prettify/lang-css.js +0 -0
  46. package/docs/scripts/prettify/prettify.js +0 -0
  47. package/docs/scripts/search.js +0 -0
  48. package/docs/styles/jsdoc.css +0 -0
  49. package/docs/styles/prettify.css +0 -0
  50. package/docs/types.js.html +0 -0
  51. package/docs/user_chat.js.html +98 -0
  52. package/docs/user_user-management.js.html +0 -0
  53. package/jest.config.js +0 -0
  54. package/jsdoc.json +0 -0
  55. package/package.json +1 -1
  56. package/src/contentMetaData.js +0 -0
  57. package/src/filterBuilder.js +0 -0
  58. package/src/index.d.ts +2 -0
  59. package/src/index.js +2 -0
  60. package/src/infrastructure/http/HttpClient.ts +0 -0
  61. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  62. package/src/infrastructure/http/index.ts +0 -0
  63. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  64. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  65. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  66. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  67. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  68. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  69. package/src/lib/httpHelper.js +0 -0
  70. package/src/lib/lastUpdated.js +0 -0
  71. package/src/services/api/types.js +0 -0
  72. package/src/services/config.js +0 -0
  73. package/src/services/content-org/content-org.js +0 -0
  74. package/src/services/content-org/playlists.js +23 -1
  75. package/src/services/content.js +0 -0
  76. package/src/services/contentAggregator.js +0 -0
  77. package/src/services/contentLikes.js +0 -0
  78. package/src/services/contentProgress.js +0 -0
  79. package/src/services/dataContext.js +0 -0
  80. package/src/services/dateUtils.js +0 -0
  81. package/src/services/forum.js +0 -0
  82. package/src/services/gamification/awards.js +0 -0
  83. package/src/services/gamification/gamification.js +0 -0
  84. package/src/services/gamification/types.js +0 -0
  85. package/src/services/imageSRCBuilder.js +0 -0
  86. package/src/services/imageSRCVerify.js +0 -0
  87. package/src/services/recommendations.js +0 -0
  88. package/src/services/types.js +0 -0
  89. package/src/services/user/interests.js +0 -0
  90. package/src/services/user/management.js +0 -0
  91. package/src/services/user/notifications.js +0 -0
  92. package/src/services/user/permissions.js +0 -0
  93. package/src/services/user/profile.js +0 -0
  94. package/src/services/user/sessions.js +0 -0
  95. package/src/services/user/types.js +0 -0
  96. package/src/services/user/user-management-system.js +0 -0
  97. package/src/services/userActivity.js +1 -1
  98. package/test/HttpClient.test.js +0 -0
  99. package/test/content.test.js +0 -0
  100. package/test/contentLikes.test.js +0 -0
  101. package/test/contentProgress.test.js +0 -0
  102. package/test/dataContext.test.js +0 -0
  103. package/test/forum.test.js +0 -0
  104. package/test/imageSRCBuilder.test.js +0 -0
  105. package/test/imageSRCVerify.test.js +0 -0
  106. package/test/initializeTests.js +0 -0
  107. package/test/lib/lastUpdated.test.js +0 -0
  108. package/test/live/contentProgressLive.test.js +0 -0
  109. package/test/live/railcontentLive.test.js +0 -0
  110. package/test/localStorageMock.js +0 -0
  111. package/test/log.js +0 -0
  112. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  113. package/test/mockData/mockData_progress_content.json +0 -0
  114. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  115. package/test/mockData/mockData_user_practices.json +0 -0
  116. package/test/progressRows.test.js +0 -0
  117. package/test/sanityQueryService.test.js +0 -0
  118. package/test/streakMessage.test.js +0 -0
  119. package/test/user/permissions.test.js +0 -0
  120. package/test/userActivity.test.js +0 -0
  121. package/tools/generate-index.cjs +0 -0
File without changes
File without changes
package/src/index.d.ts CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  fetchUserPlaylists,
17
17
  likePlaylist,
18
18
  reportPlaylist,
19
+ restoreItemFromPlaylist,
19
20
  togglePlaylistPrivate,
20
21
  undeletePlaylist,
21
22
  unlikePlaylist,
@@ -466,6 +467,7 @@ declare module 'musora-content-services' {
466
467
  reportPlaylist,
467
468
  reset,
468
469
  restoreComment,
470
+ restoreItemFromPlaylist,
469
471
  restorePracticeSession,
470
472
  restoreUserPractice,
471
473
  setStudentViewForUser,
package/src/index.js CHANGED
@@ -16,6 +16,7 @@ import {
16
16
  fetchUserPlaylists,
17
17
  likePlaylist,
18
18
  reportPlaylist,
19
+ restoreItemFromPlaylist,
19
20
  togglePlaylistPrivate,
20
21
  undeletePlaylist,
21
22
  unlikePlaylist,
@@ -465,6 +466,7 @@ export {
465
466
  reportPlaylist,
466
467
  reset,
467
468
  restoreComment,
469
+ restoreItemFromPlaylist,
468
470
  restorePracticeSession,
469
471
  restoreUserPractice,
470
472
  setStudentViewForUser,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -263,7 +263,7 @@ export async function updatePlaylist(playlistId, {
263
263
  * Delete Items from playlist
264
264
  *
265
265
  * @async
266
- * @function togglePlaylistPrivate
266
+ * @function deleteItemsFromPlaylist
267
267
  * @param {string|number} playlistId - The unique identifier of the playlist to update.
268
268
  * @param {array} deleted_items - list of playlist ids to delete (user_playlist_item_id, not the railcontent_id)
269
269
  *
@@ -281,6 +281,28 @@ export async function deleteItemsFromPlaylist(playlistId, deleted_items) {
281
281
  return await updatePlaylist(playlistId, {deleted_items})
282
282
  }
283
283
 
284
+ /**
285
+ * Restore items
286
+ *
287
+ * @async
288
+ * @function restoreItemFromPlaylist
289
+ * @param {string|number} playlistItemId - The unique identifier of the playlist ite to restore.
290
+ *
291
+ * @returns {Promise<Object>}
292
+ *
293
+ * @example
294
+ * // Restore item 8462221
295
+ * try {
296
+ * const response = await restoreItemFromPlaylist(8462221);
297
+ * } catch (error) {
298
+ * console.error('Failed to restore playlist item:', error);
299
+ * }
300
+ */
301
+ export async function restoreItemFromPlaylist(playlistItemId) {
302
+ const url = `${BASE_PATH}/v1/user/playlists/items/undelete/${playlistItemId}`
303
+ return await fetchHandler(url, 'POST')
304
+ }
305
+
284
306
  /**
285
307
  * Duplicates a playlist and playlist items for the provided playlistID for the authorized user
286
308
  *
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -189,7 +189,7 @@ export async function getUserMonthlyStats(params = {}) {
189
189
  weeklyStats[weekKey] = { key: weekKey, inStreak: false }
190
190
  }
191
191
 
192
- if (dayActivity !== null) {
192
+ if (dayActivity !== null && firstDayOfMonth <= day && day <= endOfMonth) {
193
193
  practiceDuration += dayActivity.reduce((sum, entry) => sum + entry.duration_seconds, 0)
194
194
  daysPracticed++
195
195
  }
File without changes
File without changes
File without changes
File without changes
File without changes
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