musora-content-services 2.3.5 → 2.3.7

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 (131) hide show
  1. package/.coderabbit.yaml +22 -0
  2. package/.editorconfig +0 -0
  3. package/.github/workflows/node.js.yml +0 -0
  4. package/.prettierignore +0 -0
  5. package/.prettierrc +0 -0
  6. package/.yarnrc.yml +1 -0
  7. package/CHANGELOG.md +4 -0
  8. package/README.md +0 -0
  9. package/babel.config.cjs +0 -0
  10. package/docs/Content-Organization.html +0 -0
  11. package/docs/ContentOrganization.html +0 -0
  12. package/docs/Gamification.html +0 -0
  13. package/docs/UserManagement.html +0 -0
  14. package/docs/UserManagementSystem.html +0 -0
  15. package/docs/api_types.js.html +0 -0
  16. package/docs/config.js.html +0 -0
  17. package/docs/content-org_content-org.js.html +0 -0
  18. package/docs/content-org_playlists-types.js.html +0 -0
  19. package/docs/content-org_playlists.js.html +0 -0
  20. package/docs/content.js.html +0 -0
  21. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  22. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  23. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  24. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  25. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  26. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  29. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  30. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  31. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  32. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  33. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  34. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  39. package/docs/gamification_awards.js.html +0 -0
  40. package/docs/gamification_gamification.js.html +0 -0
  41. package/docs/gamification_types.js.html +0 -0
  42. package/docs/global.html +0 -0
  43. package/docs/global.html#User +0 -0
  44. package/docs/index.html +0 -0
  45. package/docs/module-Awards.html +0 -0
  46. package/docs/module-Config.html +0 -0
  47. package/docs/module-Content-Services-V2.html +0 -0
  48. package/docs/module-Content-Services.html +763 -0
  49. package/docs/module-Permissions.html +0 -0
  50. package/docs/module-Playlists.html +0 -0
  51. package/docs/module-Railcontent-Services.html +0 -0
  52. package/docs/module-Sanity-Services.html +0 -0
  53. package/docs/module-Session-Management.html +0 -0
  54. package/docs/module-Sessions.html +0 -0
  55. package/docs/module-User-Management.html +0 -0
  56. package/docs/module-User-Permissions.html +0 -0
  57. package/docs/module-UserManagement.html +0 -0
  58. package/docs/railcontent.js.html +0 -0
  59. package/docs/sanity.js.html +0 -0
  60. package/docs/scripts/collapse.js +0 -0
  61. package/docs/scripts/commonNav.js +0 -0
  62. package/docs/scripts/linenumber.js +0 -0
  63. package/docs/scripts/nav.js +0 -0
  64. package/docs/scripts/polyfill.js +0 -0
  65. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  66. package/docs/scripts/prettify/lang-css.js +0 -0
  67. package/docs/scripts/prettify/prettify.js +0 -0
  68. package/docs/scripts/search.js +0 -0
  69. package/docs/styles/jsdoc.css +0 -0
  70. package/docs/styles/prettify.css +0 -0
  71. package/docs/types.js.html +0 -0
  72. package/docs/user_management.js.html +0 -0
  73. package/docs/user_permissions.js.html +0 -0
  74. package/docs/user_sessions.js.html +0 -0
  75. package/docs/user_types.js.html +0 -0
  76. package/docs/user_user-management-system.js.html +0 -0
  77. package/docs/user_user-management.js.html +0 -0
  78. package/jest.config.js +0 -0
  79. package/jsdoc.json +0 -0
  80. package/package.json +1 -1
  81. package/src/contentMetaData.js +0 -0
  82. package/src/filterBuilder.js +0 -0
  83. package/src/index.d.ts +0 -0
  84. package/src/index.js +0 -0
  85. package/src/lib/httpHelper.js +0 -0
  86. package/src/lib/lastUpdated.js +0 -0
  87. package/src/services/api/types.js +0 -0
  88. package/src/services/config.js +0 -0
  89. package/src/services/content-org/content-org.js +0 -0
  90. package/src/services/content-org/playlists-types.js +0 -0
  91. package/src/services/content-org/playlists.js +0 -0
  92. package/src/services/content.js +0 -0
  93. package/src/services/contentLikes.js +0 -0
  94. package/src/services/contentProgress.js +0 -0
  95. package/src/services/dataContext.js +0 -0
  96. package/src/services/forum.js +0 -0
  97. package/src/services/gamification/awards.js +0 -0
  98. package/src/services/gamification/gamification.js +0 -0
  99. package/src/services/gamification/types.js +0 -0
  100. package/src/services/imageSRCBuilder.js +0 -0
  101. package/src/services/imageSRCVerify.js +0 -0
  102. package/src/services/railcontent.js +16 -3
  103. package/src/services/recommendations.js +0 -0
  104. package/src/services/sanity.js +1 -0
  105. package/src/services/types.js +0 -0
  106. package/src/services/user/management.js +0 -0
  107. package/src/services/user/permissions.js +0 -0
  108. package/src/services/user/sessions.js +0 -0
  109. package/src/services/user/types.js +0 -0
  110. package/src/services/user/user-management-system.js +0 -0
  111. package/src/services/userActivity.js +301 -90
  112. package/test/content.test.js +0 -0
  113. package/test/contentLikes.test.js +0 -0
  114. package/test/contentProgress.test.js +0 -0
  115. package/test/dataContext.test.js +0 -0
  116. package/test/forum.test.js +0 -0
  117. package/test/imageSRCBuilder.test.js +0 -0
  118. package/test/imageSRCVerify.test.js +0 -0
  119. package/test/initializeTests.js +0 -0
  120. package/test/lib/lastUpdated.test.js +0 -0
  121. package/test/live/contentProgressLive.test.js +0 -0
  122. package/test/live/railcontentLive.test.js +0 -0
  123. package/test/localStorageMock.js +0 -0
  124. package/test/log.js +0 -0
  125. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  126. package/test/mockData/mockData_user_practices.json +9 -0
  127. package/test/sanityQueryService.test.js +11 -1
  128. package/test/streakMessage.test.js +263 -0
  129. package/test/user/permissions.test.js +0 -0
  130. package/test/userActivity.test.js +6 -6
  131. package/tools/generate-index.cjs +0 -0
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
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.3.5",
3
+ "version": "2.3.7",
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
File without changes
File without changes
File without changes
@@ -1181,13 +1181,26 @@ export async function fetchUserPractices(currentVersion) {
1181
1181
  const userPractices = data
1182
1182
 
1183
1183
  let formattedPractices = userPractices.reduce((acc, practice) => {
1184
+ // Convert UTC date to user's local timezone
1185
+ let utcDate = new Date(practice.day); // `practice.day` is in ISO format, e.g., "2025-04-01T10:42:17.000000Z"
1186
+
1187
+ // Extract the local date string (ignoring time) in user's timezone
1188
+ let localDate = new Date(utcDate.toLocaleString('en-US', {
1189
+ timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone
1190
+ }));
1191
+
1192
+ // Format the date as Y-m-d (2025-03-31)
1193
+ let userTimeZoneDay = localDate.getFullYear() + '-' +
1194
+ (localDate.getMonth() + 1).toString().padStart(2, '0') + '-' +
1195
+ localDate.getDate().toString().padStart(2, '0');
1196
+
1184
1197
  // Initialize the array if the day does not exist
1185
- if (!acc[practice.day]) {
1186
- acc[practice.day] = []
1198
+ if (!acc[userTimeZoneDay]) {
1199
+ acc[userTimeZoneDay] = []
1187
1200
  }
1188
1201
 
1189
1202
  // Push the practice entry into the array
1190
- acc[practice.day].push({ id: practice.id, duration_seconds: practice.duration_seconds })
1203
+ acc[userTimeZoneDay].push({ id:practice.id, duration_seconds: practice.duration_seconds })
1191
1204
 
1192
1205
  return acc
1193
1206
  }, {})
File without changes
@@ -1273,6 +1273,7 @@ export async function fetchLessonContent(railContentId) {
1273
1273
  chapter_timecode,
1274
1274
  "chapter_thumbnail_url": chapter_thumbnail_url.asset->url
1275
1275
  },
1276
+ artist->,
1276
1277
  "instructors":instructor[]->name,
1277
1278
  "instructor": instructor[]->{
1278
1279
  "id":railcontent_id,
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes