musora-content-services 2.39.5 → 2.40.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 (183) 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/.yarnrc.yml +1 -0
  10. package/CHANGELOG.md +23 -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 +28 -4
  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 +26 -3
  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 +4 -3
  46. package/docs/forums_threads.ts.html +102 -0
  47. package/docs/gamification_awards.js.html +0 -0
  48. package/docs/gamification_awards.ts.html +2 -2
  49. package/docs/gamification_gamification.js.html +2 -2
  50. package/docs/gamification_types.js.html +0 -0
  51. package/docs/global.html +2 -2
  52. package/docs/index.html +2 -2
  53. package/docs/module-Accounts.html +2 -2
  54. package/docs/module-Awards.html +2 -2
  55. package/docs/module-Categories.html +679 -0
  56. package/docs/module-Config.html +2 -2
  57. package/docs/module-Content-Services-V2.html +2 -2
  58. package/docs/module-ForumCategories.html +198 -2
  59. package/docs/module-ForumDiscussions.html +0 -0
  60. package/docs/module-Forums.html +0 -0
  61. package/docs/module-GuidedCourses.html +2 -2
  62. package/docs/module-Interests.html +2 -2
  63. package/docs/module-Payments.html +2 -2
  64. package/docs/module-Permissions.html +2 -2
  65. package/docs/module-Playlists.html +2 -2
  66. package/docs/module-Railcontent-Services.html +2 -2
  67. package/docs/module-Sanity-Services.html +2 -2
  68. package/docs/module-Sessions.html +3 -3
  69. package/docs/module-Threads.html +300 -0
  70. package/docs/module-UserActivity.html +2 -2
  71. package/docs/module-UserChat.html +2 -2
  72. package/docs/module-UserManagement.html +2 -2
  73. package/docs/module-UserMemberships.html +152 -2
  74. package/docs/module-UserNotifications.html +2 -2
  75. package/docs/module-UserProfile.html +2 -2
  76. package/docs/railcontent.js.html +2 -2
  77. package/docs/sanity.js.html +2 -2
  78. package/docs/scripts/collapse.js +0 -0
  79. package/docs/scripts/commonNav.js +0 -0
  80. package/docs/scripts/linenumber.js +0 -0
  81. package/docs/scripts/nav.js +0 -0
  82. package/docs/scripts/polyfill.js +0 -0
  83. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  84. package/docs/scripts/prettify/lang-css.js +0 -0
  85. package/docs/scripts/prettify/prettify.js +0 -0
  86. package/docs/scripts/search.js +0 -0
  87. package/docs/styles/jsdoc.css +0 -0
  88. package/docs/styles/prettify.css +0 -0
  89. package/docs/userActivity.js.html +2 -2
  90. package/docs/user_account.ts.html +2 -2
  91. package/docs/user_chat.js.html +2 -2
  92. package/docs/user_interests.js.html +2 -2
  93. package/docs/user_management.js.html +2 -2
  94. package/docs/user_memberships.js.html +24 -2
  95. package/docs/user_notifications.js.html +2 -2
  96. package/docs/user_payments.ts.html +2 -2
  97. package/docs/user_permissions.js.html +2 -2
  98. package/docs/user_profile.js.html +2 -2
  99. package/docs/user_sessions.js.html +3 -2
  100. package/docs/user_types.js.html +2 -2
  101. package/docs/user_user-management-system.js.html +2 -2
  102. package/jest.config.js +0 -0
  103. package/jsdoc.json +0 -0
  104. package/package.json +1 -1
  105. package/src/contentMetaData.js +0 -0
  106. package/src/filterBuilder.js +0 -0
  107. package/src/index.d.ts +11 -2
  108. package/src/index.js +11 -2
  109. package/src/infrastructure/http/HttpClient.ts +0 -0
  110. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  111. package/src/infrastructure/http/index.ts +0 -0
  112. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  113. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  114. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  115. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  116. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  117. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  118. package/src/lib/httpHelper.js +0 -0
  119. package/src/lib/lastUpdated.js +0 -0
  120. package/src/services/api/types.js +0 -0
  121. package/src/services/api/types.ts +0 -0
  122. package/src/services/config.js +0 -0
  123. package/src/services/content-org/content-org.js +0 -0
  124. package/src/services/content-org/guided-courses.ts +0 -0
  125. package/src/services/content-org/playlists-types.js +0 -0
  126. package/src/services/content-org/playlists.js +0 -0
  127. package/src/services/content.js +0 -0
  128. package/src/services/contentAggregator.js +0 -0
  129. package/src/services/contentLikes.js +0 -0
  130. package/src/services/contentProgress.js +0 -0
  131. package/src/services/dataContext.js +0 -0
  132. package/src/services/dateUtils.js +0 -0
  133. package/src/services/eventsAPI.js +0 -0
  134. package/src/services/forum.js +0 -0
  135. package/src/services/forums/categories.ts +24 -1
  136. package/src/services/forums/forums.ts +2 -1
  137. package/src/services/forums/threads.ts +30 -0
  138. package/src/services/forums/types.ts +13 -0
  139. package/src/services/gamification/awards.ts +0 -0
  140. package/src/services/gamification/gamification.js +0 -0
  141. package/src/services/imageSRCBuilder.js +0 -0
  142. package/src/services/imageSRCVerify.js +0 -0
  143. package/src/services/railcontent.js +0 -0
  144. package/src/services/recommendations.js +0 -0
  145. package/src/services/types.js +0 -0
  146. package/src/services/user/account.ts +0 -0
  147. package/src/services/user/chat.js +0 -0
  148. package/src/services/user/interests.js +0 -0
  149. package/src/services/user/management.js +0 -0
  150. package/src/services/user/memberships.js +22 -0
  151. package/src/services/user/notifications.js +0 -0
  152. package/src/services/user/payments.ts +0 -0
  153. package/src/services/user/permissions.js +0 -0
  154. package/src/services/user/profile.js +0 -0
  155. package/src/services/user/sessions.js +0 -0
  156. package/src/services/user/types.js +0 -0
  157. package/src/services/user/user-management-system.js +0 -0
  158. package/src/services/userActivity.js +0 -0
  159. package/test/HttpClient.test.js +0 -0
  160. package/test/content.test.js +0 -0
  161. package/test/contentLikes.test.js +0 -0
  162. package/test/contentProgress.test.js +0 -0
  163. package/test/dataContext.test.js +0 -0
  164. package/test/forum.test.js +0 -0
  165. package/test/imageSRCBuilder.test.js +0 -0
  166. package/test/imageSRCVerify.test.js +0 -0
  167. package/test/initializeTests.js +0 -0
  168. package/test/lib/lastUpdated.test.js +0 -0
  169. package/test/live/contentProgressLive.test.js +0 -0
  170. package/test/live/railcontentLive.test.js +0 -0
  171. package/test/localStorageMock.js +0 -0
  172. package/test/log.js +0 -0
  173. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  174. package/test/mockData/mockData_progress_content.json +0 -0
  175. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  176. package/test/mockData/mockData_user_practices.json +0 -0
  177. package/test/notifications.test.js +0 -0
  178. package/test/progressRows.test.js +0 -0
  179. package/test/sanityQueryService.test.js +0 -0
  180. package/test/streakMessage.test.js +0 -0
  181. package/test/user/permissions.test.js +0 -0
  182. package/test/userActivity.test.js +0 -0
  183. 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
@@ -1,5 +1,5 @@
1
1
  /**
2
- * @module ForumCategories
2
+ * @module Categories
3
3
  */
4
4
  import { HttpClient } from '../../infrastructure/http/HttpClient'
5
5
  import { globalConfig } from '../config.js'
@@ -40,3 +40,26 @@ export async function createForumCategory(
40
40
  const httpClient = new HttpClient(globalConfig.baseUrl)
41
41
  return httpClient.post<ForumCategory>(`${baseUrl}/v1/categories`, params)
42
42
  }
43
+
44
+ export interface UpdateForumCategoryParams {
45
+ id: number
46
+ brand: number
47
+ name: string
48
+ weight: number
49
+ description?: string
50
+ icon?: string
51
+ }
52
+
53
+ /**
54
+ * Creates a new forum category.
55
+ *
56
+ * @param {UpdateForumCategoryParams} params - The parameters for creating the forum category.
57
+ * @returns {Promise<ForumCategory>} - A promise that resolves to the created forum category.
58
+ * @throws {HttpError} - If the request fails.
59
+ */
60
+ export async function updateForumCategory(
61
+ params: UpdateForumCategoryParams
62
+ ): Promise<ForumCategory> {
63
+ const httpClient = new HttpClient(globalConfig.baseUrl)
64
+ return httpClient.put<ForumCategory>(`${baseUrl}/v1/categories/${params.id}`, params)
65
+ }
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * @namespace Forums
3
- * @property {module:ForumCategories} ForumCategories
3
+ * @property {module:Categories} Categories
4
+ * @property {module:Threads} Threads
4
5
  */
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @module Threads
3
+ */
4
+ import { HttpClient } from '../../infrastructure/http/HttpClient'
5
+ import { globalConfig } from '../config.js'
6
+ import { ForumThread } from './types'
7
+
8
+ const baseUrl = `/api/forums`
9
+
10
+ export interface CreateThreadParams {
11
+ name: string
12
+ description: string
13
+ weight: number
14
+ brand: string
15
+ }
16
+
17
+ /**
18
+ * Creates a new thread under a forum category.
19
+ *
20
+ * @param {CreateThreadParams} params - The parameters for creating the thread.
21
+ * @returns {Promise<ForumThread>} - A promise that resolves to the created thread.
22
+ * @throws {HttpError} - If the request fails.
23
+ */
24
+ export async function createThread(
25
+ categoryId: number,
26
+ params: CreateThreadParams
27
+ ): Promise<ForumThread> {
28
+ const httpClient = new HttpClient(globalConfig.baseUrl)
29
+ return httpClient.post<ForumThread>(`${baseUrl}/v1/categories/${categoryId}/threads`, params)
30
+ }
@@ -12,6 +12,19 @@ export interface ForumPost {
12
12
  author: ForumUser | null
13
13
  }
14
14
 
15
+ export interface ForumThread {
16
+ id: number
17
+ slug: string
18
+ title: string
19
+ locked: boolean
20
+ pinned: boolean
21
+ state: string
22
+ author: ForumUser | null
23
+ category_id: number
24
+ post_count: number
25
+ last_post: ForumPost | null
26
+ }
27
+
15
28
  export interface ForumCategory {
16
29
  id: number
17
30
  brand: string
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
@@ -44,6 +44,28 @@ export async function fetchRechargeTokens() {
44
44
  return fetchHandler(url, 'get')
45
45
  }
46
46
 
47
+ /**
48
+ * Upgrades the user's subscription or provides a prefilled add-to-cart URL.
49
+ *
50
+ * @returns {Promise<Object>} A promise that resolves to an object containing either:
51
+ * - {string} action - The action performed (e.g., 'instant_upgrade').
52
+ * - {string} message - Success message if the subscription was upgraded immediately.
53
+ * OR
54
+ * - {string} action - The action performed (e.g., 'shopify').
55
+ * - {string} url - URL to the ecommerce store with prefilled add-to-cart parameters.
56
+ *
57
+ * @throws {Error} Throws an error if the request fails.
58
+ *
59
+ * @example
60
+ * upgradeSubscription()
61
+ * .then(response => console.log(response))
62
+ * .catch(error => console.error(error));
63
+ */
64
+ export async function upgradeSubscription() {
65
+ const url = `${baseUrl}/v1/update-subscription`
66
+ return fetchHandler(url, 'get')
67
+ }
68
+
47
69
 
48
70
 
49
71
 
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/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