musora-content-services 2.44.0 → 2.46.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 (179) hide show
  1. package/.claude/settings.local.json +8 -0
  2. package/.coderabbit.yaml +0 -0
  3. package/.editorconfig +0 -0
  4. package/.github/pull_request_template.md +0 -0
  5. package/.github/workflows/conventional-commits.yaml +0 -0
  6. package/.github/workflows/docs.js.yml +0 -0
  7. package/.github/workflows/node.js.yml +0 -0
  8. package/.prettierignore +0 -0
  9. package/.prettierrc +0 -0
  10. package/CHANGELOG.md +19 -0
  11. package/README.md +0 -0
  12. package/babel.config.cjs +0 -0
  13. package/docs/ContentOrganization.html +2 -2
  14. package/docs/Forums.html +2 -2
  15. package/docs/Gamification.html +2 -2
  16. package/docs/UserManagementSystem.html +2 -2
  17. package/docs/api_types.js.html +2 -2
  18. package/docs/config.js.html +2 -2
  19. package/docs/content-org_content-org.js.html +2 -2
  20. package/docs/content-org_guided-courses.ts.html +2 -2
  21. package/docs/content-org_playlists-types.js.html +2 -2
  22. package/docs/content-org_playlists.js.html +2 -2
  23. package/docs/content.js.html +2 -2
  24. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  25. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  26. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  27. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  28. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  29. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  30. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  31. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  32. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  33. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  34. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  35. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  36. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  37. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  38. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  39. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  40. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  41. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  42. package/docs/forums_categories.ts.html +2 -2
  43. package/docs/forums_discussions.js.html +0 -0
  44. package/docs/forums_forum.js.html +0 -0
  45. package/docs/forums_forums.ts.html +2 -2
  46. package/docs/forums_posts.ts.html +132 -0
  47. package/docs/forums_threads.ts.html +2 -2
  48. package/docs/gamification_awards.js.html +0 -0
  49. package/docs/gamification_awards.ts.html +2 -2
  50. package/docs/gamification_gamification.js.html +2 -2
  51. package/docs/gamification_types.js.html +0 -0
  52. package/docs/global.html +2 -2
  53. package/docs/index.html +2 -2
  54. package/docs/module-Accounts.html +2 -2
  55. package/docs/module-Awards.html +2 -2
  56. package/docs/module-Config.html +2 -2
  57. package/docs/module-Content-Services-V2.html +2 -2
  58. package/docs/module-ForumDiscussions.html +0 -0
  59. package/docs/module-Forums.html +4085 -202
  60. package/docs/module-GuidedCourses.html +2 -2
  61. package/docs/module-Interests.html +2 -2
  62. package/docs/module-Payments.html +2 -2
  63. package/docs/module-Permissions.html +2 -2
  64. package/docs/module-Playlists.html +2 -2
  65. package/docs/module-Railcontent-Services.html +2 -2
  66. package/docs/module-Sanity-Services.html +2 -2
  67. package/docs/module-Sessions.html +2 -2
  68. package/docs/module-UserActivity.html +2 -2
  69. package/docs/module-UserChat.html +2 -2
  70. package/docs/module-UserManagement.html +2 -2
  71. package/docs/module-UserMemberships.html +2 -2
  72. package/docs/module-UserNotifications.html +2 -2
  73. package/docs/module-UserProfile.html +2 -2
  74. package/docs/railcontent.js.html +2 -2
  75. package/docs/sanity.js.html +2 -2
  76. package/docs/scripts/collapse.js +0 -0
  77. package/docs/scripts/commonNav.js +0 -0
  78. package/docs/scripts/linenumber.js +0 -0
  79. package/docs/scripts/nav.js +0 -0
  80. package/docs/scripts/polyfill.js +0 -0
  81. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  82. package/docs/scripts/prettify/lang-css.js +0 -0
  83. package/docs/scripts/prettify/prettify.js +0 -0
  84. package/docs/scripts/search.js +0 -0
  85. package/docs/styles/jsdoc.css +0 -0
  86. package/docs/styles/prettify.css +0 -0
  87. package/docs/userActivity.js.html +2 -2
  88. package/docs/user_account.ts.html +2 -2
  89. package/docs/user_chat.js.html +2 -2
  90. package/docs/user_interests.js.html +2 -2
  91. package/docs/user_management.js.html +2 -2
  92. package/docs/user_memberships.js.html +2 -2
  93. package/docs/user_notifications.js.html +2 -2
  94. package/docs/user_payments.ts.html +2 -2
  95. package/docs/user_permissions.js.html +2 -2
  96. package/docs/user_profile.js.html +2 -2
  97. package/docs/user_sessions.js.html +5 -5
  98. package/docs/user_types.js.html +2 -2
  99. package/docs/user_user-management-system.js.html +2 -2
  100. package/jest.config.js +0 -0
  101. package/jsdoc.json +0 -0
  102. package/package.json +1 -1
  103. package/src/contentMetaData.js +31 -362
  104. package/src/contentTypeConfig.js +3 -2
  105. package/src/filterBuilder.js +0 -0
  106. package/src/index.d.ts +7 -2
  107. package/src/index.js +7 -2
  108. package/src/infrastructure/http/HttpClient.ts +0 -0
  109. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  110. package/src/infrastructure/http/index.ts +0 -0
  111. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  112. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  113. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  114. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  115. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  116. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  117. package/src/lib/httpHelper.js +0 -0
  118. package/src/lib/lastUpdated.js +0 -0
  119. package/src/services/api/types.js +0 -0
  120. package/src/services/api/types.ts +0 -0
  121. package/src/services/config.js +0 -0
  122. package/src/services/content-org/content-org.js +0 -0
  123. package/src/services/content-org/guided-courses.ts +0 -0
  124. package/src/services/content-org/playlists-types.js +0 -0
  125. package/src/services/content-org/playlists.js +0 -0
  126. package/src/services/content.js +0 -0
  127. package/src/services/contentAggregator.js +0 -0
  128. package/src/services/contentLikes.js +0 -0
  129. package/src/services/dataContext.js +0 -0
  130. package/src/services/dateUtils.js +0 -0
  131. package/src/services/eventsAPI.js +0 -0
  132. package/src/services/forum.js +0 -0
  133. package/src/services/forums/forums.ts +0 -0
  134. package/src/services/forums/posts.ts +60 -0
  135. package/src/services/forums/types.ts +2 -0
  136. package/src/services/gamification/gamification.js +0 -0
  137. package/src/services/imageSRCBuilder.js +0 -0
  138. package/src/services/imageSRCVerify.js +0 -0
  139. package/src/services/railcontent.js +0 -0
  140. package/src/services/recommendations.js +0 -0
  141. package/src/services/types.js +0 -0
  142. package/src/services/user/account.ts +0 -0
  143. package/src/services/user/chat.js +0 -0
  144. package/src/services/user/interests.js +0 -0
  145. package/src/services/user/management.js +0 -0
  146. package/src/services/user/notifications.js +0 -0
  147. package/src/services/user/payments.ts +0 -0
  148. package/src/services/user/permissions.js +0 -0
  149. package/src/services/user/profile.js +0 -0
  150. package/src/services/user/sessions.js +3 -3
  151. package/src/services/user/types.js +0 -0
  152. package/src/services/user/user-management-system.js +0 -0
  153. package/src/services/userActivity.js +1 -1
  154. package/test/HttpClient.test.js +0 -0
  155. package/test/content.test.js +0 -0
  156. package/test/contentLikes.test.js +0 -0
  157. package/test/contentProgress.test.js +0 -0
  158. package/test/dataContext.test.js +0 -0
  159. package/test/forum.test.js +0 -0
  160. package/test/imageSRCBuilder.test.js +0 -0
  161. package/test/imageSRCVerify.test.js +0 -0
  162. package/test/initializeTests.js +0 -0
  163. package/test/lib/lastUpdated.test.js +0 -0
  164. package/test/live/contentProgressLive.test.js +0 -0
  165. package/test/live/railcontentLive.test.js +0 -0
  166. package/test/localStorageMock.js +0 -0
  167. package/test/log.js +0 -0
  168. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  169. package/test/mockData/mockData_progress_content.json +0 -0
  170. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  171. package/test/mockData/mockData_user_practices.json +0 -0
  172. package/test/notifications.test.js +0 -0
  173. package/test/progressRows.test.js +0 -0
  174. package/test/sanityQueryService.test.js +0 -0
  175. package/test/streakMessage.test.js +0 -0
  176. package/test/user/permissions.test.js +0 -0
  177. package/test/userActivity.test.js +0 -0
  178. package/tools/generate-index.cjs +0 -0
  179. package/.yarnrc.yml +0 -1
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @module Forums
3
+ */
4
+ import { HttpClient } from '../../infrastructure/http/HttpClient'
5
+ import { globalConfig } from '../config.js'
6
+ import {ForumPost} from './types'
7
+ import { PaginatedResponse } from '../api/types'
8
+
9
+ const baseUrl = `/api/forums`
10
+
11
+ export interface CreatePostParams {
12
+ content: string
13
+ brand: string
14
+ }
15
+
16
+ /**
17
+ * Creates a new post under a forum thread.
18
+ *
19
+ * @param {CreatePostParams} params - The parameters for creating the post.
20
+ * @returns {Promise<ForumPost>} - A promise that resolves to the created post.
21
+ * @throws {HttpError} - If the request fails.
22
+ */
23
+ export async function createPost(
24
+ threadId: number,
25
+ params: CreatePostParams
26
+ ): Promise<ForumPost> {
27
+ const httpClient = new HttpClient(globalConfig.baseUrl)
28
+ return httpClient.post<ForumPost>(`${baseUrl}/v1/threads/${threadId}/posts`, params)
29
+ }
30
+
31
+ export interface FetchPostParams {
32
+ page?: number,
33
+ limit?: number,
34
+ /** Sort order: "-published_on" (default), "published_on", or "mine". */
35
+ sort?: '-published_on' | string
36
+ }
37
+ /**
38
+ * Fetches posts for the given thread.
39
+ *
40
+ * @param {number} threadId - The ID of the forum thread.
41
+ * @param {string} brand - The brand context (e.g., "drumeo", "singeo").
42
+ * @param {FetchPostParams} [params] - Optional parameters such as `page`, `limit`, and `sort`.
43
+ * @returns {Promise<PaginatedResponse<ForumPost>>} - Resolves to a paginated list of forum posts.
44
+ * @throws {HttpError} - If the request fails.
45
+ */
46
+ export async function fetchPosts(
47
+ threadId: number,
48
+ brand: string,
49
+ params: FetchPostParams = {}
50
+ ): Promise<PaginatedResponse<ForumPost>> {
51
+ const httpClient = new HttpClient(globalConfig.baseUrl)
52
+ const queryObj: Record<string, string> = { brand, ...Object.fromEntries(
53
+ Object.entries(params).filter(([_, v]) => v !== undefined && v !== null).map(([k, v]) => [k, String(v)])
54
+ )}
55
+ const query = new URLSearchParams(queryObj).toString()
56
+
57
+ const url = `${baseUrl}/v1/threads/${threadId}/posts?${query}`
58
+ return httpClient.get<PaginatedResponse<ForumPost>>(url)
59
+ }
60
+
@@ -10,6 +10,8 @@ export interface ForumPost {
10
10
  created_at: string
11
11
  created_at_human: string
12
12
  author: ForumUser | null
13
+ like_count: number
14
+ is_liked: boolean
13
15
  }
14
16
 
15
17
  export interface ForumThread {
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
@@ -45,8 +45,8 @@ export async function login(email, password, deviceName, deviceToken, platform)
45
45
  }),
46
46
  })
47
47
  }
48
-
49
- export async function loginWithProvider(provider, providerIdToken, deviceToken, deviceName, platform) {
48
+ //Removing 3rdParty OAuth2 for now => https://musora.atlassian.net/browse/BEH-624?focusedCommentId=21492
49
+ /*export async function loginWithProvider(provider, providerIdToken, deviceToken, deviceName, platform) {
50
50
  const baseUrl = `${globalConfig.baseUrl}/api/user-management-system`
51
51
 
52
52
  try {
@@ -74,7 +74,7 @@ export async function loginWithProvider(provider, providerIdToken, deviceToken,
74
74
  console.error('loginWithProvider failed', err)
75
75
  throw err
76
76
  }
77
- }
77
+ }*/
78
78
 
79
79
  /**
80
80
  * Logs the user out of the current session.
File without changes
File without changes
@@ -1118,7 +1118,7 @@ async function processContentItem(content) {
1118
1118
  })
1119
1119
  content.time_remaining_seconds = timeRemaining.totalSeconds
1120
1120
  ctaText = 'Next lesson in ' + timeRemaining.formatted
1121
- } else if (!content.progressStatus || content.progressStatus === 'not-started') {
1121
+ } else if (!content.progressStatus || content.progressStatus === 'not-started' || content.progressPercentage === 0) {
1122
1122
  ctaText = 'Start Course'
1123
1123
  }
1124
1124
  }
File without changes
File without changes
File without changes
File without changes
File without changes
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