musora-content-services 2.43.0 → 2.44.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 (178) 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 +12 -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_threads.ts.html +76 -5
  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 +24 -0
  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 +2271 -151
  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 +10 -175
  67. package/docs/module-Sessions.html +2 -2
  68. package/docs/module-Threads.html +176 -1
  69. package/docs/module-UserActivity.html +2 -2
  70. package/docs/module-UserChat.html +2 -2
  71. package/docs/module-UserManagement.html +2 -2
  72. package/docs/module-UserMemberships.html +2 -2
  73. package/docs/module-UserNotifications.html +2 -2
  74. package/docs/module-UserProfile.html +2 -2
  75. package/docs/railcontent.js.html +2 -2
  76. package/docs/sanity.js.html +3 -25
  77. package/docs/scripts/collapse.js +0 -0
  78. package/docs/scripts/commonNav.js +0 -0
  79. package/docs/scripts/linenumber.js +0 -0
  80. package/docs/scripts/nav.js +0 -0
  81. package/docs/scripts/polyfill.js +0 -0
  82. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  83. package/docs/scripts/prettify/lang-css.js +0 -0
  84. package/docs/scripts/prettify/prettify.js +0 -0
  85. package/docs/scripts/search.js +0 -0
  86. package/docs/styles/jsdoc.css +0 -0
  87. package/docs/styles/prettify.css +0 -0
  88. package/docs/userActivity.js.html +2 -2
  89. package/docs/user_account.ts.html +2 -2
  90. package/docs/user_chat.js.html +2 -2
  91. package/docs/user_interests.js.html +2 -2
  92. package/docs/user_management.js.html +2 -2
  93. package/docs/user_memberships.js.html +2 -2
  94. package/docs/user_notifications.js.html +2 -2
  95. package/docs/user_payments.ts.html +2 -2
  96. package/docs/user_permissions.js.html +2 -2
  97. package/docs/user_profile.js.html +2 -2
  98. package/docs/user_sessions.js.html +2 -2
  99. package/docs/user_types.js.html +2 -2
  100. package/docs/user_user-management-system.js.html +2 -2
  101. package/jest.config.js +0 -0
  102. package/jsdoc.json +0 -0
  103. package/package.json +1 -1
  104. package/src/contentMetaData.js +0 -0
  105. package/src/filterBuilder.js +0 -0
  106. package/src/index.d.ts +11 -1
  107. package/src/index.js +11 -1
  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/threads.ts +74 -3
  135. package/src/services/gamification/gamification.js +0 -0
  136. package/src/services/imageSRCBuilder.js +0 -0
  137. package/src/services/imageSRCVerify.js +0 -0
  138. package/src/services/railcontent.js +0 -0
  139. package/src/services/recommendations.js +0 -0
  140. package/src/services/types.js +0 -0
  141. package/src/services/user/account.ts +0 -0
  142. package/src/services/user/chat.js +0 -0
  143. package/src/services/user/interests.js +0 -0
  144. package/src/services/user/management.js +0 -0
  145. package/src/services/user/notifications.js +0 -0
  146. package/src/services/user/payments.ts +0 -0
  147. package/src/services/user/permissions.js +0 -0
  148. package/src/services/user/profile.js +0 -0
  149. package/src/services/user/sessions.js +0 -0
  150. package/src/services/user/types.js +0 -0
  151. package/src/services/user/user-management-system.js +0 -0
  152. package/src/services/userActivity.js +0 -0
  153. package/test/HttpClient.test.js +0 -0
  154. package/test/content.test.js +0 -0
  155. package/test/contentLikes.test.js +0 -0
  156. package/test/contentProgress.test.js +0 -0
  157. package/test/dataContext.test.js +0 -0
  158. package/test/forum.test.js +0 -0
  159. package/test/imageSRCBuilder.test.js +0 -0
  160. package/test/imageSRCVerify.test.js +0 -0
  161. package/test/initializeTests.js +0 -0
  162. package/test/lib/lastUpdated.test.js +0 -0
  163. package/test/live/contentProgressLive.test.js +0 -0
  164. package/test/live/railcontentLive.test.js +0 -0
  165. package/test/localStorageMock.js +0 -0
  166. package/test/log.js +0 -0
  167. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  168. package/test/mockData/mockData_progress_content.json +0 -0
  169. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  170. package/test/mockData/mockData_user_practices.json +0 -0
  171. package/test/notifications.test.js +0 -0
  172. package/test/progressRows.test.js +0 -0
  173. package/test/sanityQueryService.test.js +0 -0
  174. package/test/streakMessage.test.js +0 -0
  175. package/test/user/permissions.test.js +0 -0
  176. package/test/userActivity.test.js +0 -0
  177. package/tools/generate-index.cjs +0 -0
  178. package/.claude/settings.local.json +0 -8
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
@@ -9,9 +9,8 @@ import { PaginatedResponse } from '../api/types'
9
9
  const baseUrl = `/api/forums`
10
10
 
11
11
  export interface CreateThreadParams {
12
- name: string
13
- description: string
14
- weight: number
12
+ title: string
13
+ first_post_content: string
15
14
  brand: string
16
15
  }
17
16
 
@@ -30,6 +29,26 @@ export async function createThread(
30
29
  return httpClient.post<ForumThread>(`${baseUrl}/v1/categories/${categoryId}/threads`, params)
31
30
  }
32
31
 
32
+ export interface UpdateThreadParams {
33
+ title: string
34
+ brand: string
35
+ }
36
+ /**
37
+ * Updates an existing thread under a forum category.
38
+ *
39
+ * @param {number} threadId - The ID of the thread to update.
40
+ * @param {UpdateThreadParams} params - The parameters for updating the thread.
41
+ * @returns {Promise<ForumThread>} - A promise that resolves to the updated thread.
42
+ * @throws {HttpError} - If the request fails.
43
+ */
44
+ export async function updateThread(
45
+ threadId: number,
46
+ params: UpdateThreadParams
47
+ ): Promise<ForumThread> {
48
+ const httpClient = new HttpClient(globalConfig.baseUrl)
49
+ return httpClient.put<ForumThread>(`${baseUrl}/v1/threads/${threadId}`, params)
50
+ }
51
+
33
52
  /**
34
53
  * Follow a thread.
35
54
  *
@@ -86,3 +105,55 @@ export async function fetchThreads(
86
105
  return httpClient.get<PaginatedResponse<ForumThread>>(url)
87
106
  }
88
107
 
108
+ /**
109
+ * Pins a thread to the top of its category.
110
+ *
111
+ * @param {number} threadId - The ID of the thread to pin.
112
+ * @param {string} brand - The brand context (e.g., "drumeo", "singeo").
113
+ * @return {Promise<void>} - A promise that resolves when the thread is pinned.
114
+ * @throws {HttpError} - If the request fails.
115
+ */
116
+ export async function pinThread(threadId: number, brand: string): Promise<void> {
117
+ const httpClient = new HttpClient(globalConfig.baseUrl)
118
+ return httpClient.post<void>(`${baseUrl}/v1/threads/${threadId}/pin`, { brand })
119
+ }
120
+
121
+ /**
122
+ * Unpins a thread from the top of its category.
123
+ *
124
+ * @param {number} threadId - The ID of the thread to unpin.
125
+ * @param {string} brand - The brand context (e.g., "drumeo", "singeo").
126
+ * @return {Promise<void>} - A promise that resolves when the thread is unpinned.
127
+ * @throws {HttpError} - If the request fails.
128
+ */
129
+ export async function unpinThread(threadId: number, brand: string): Promise<void> {
130
+ const httpClient = new HttpClient(globalConfig.baseUrl)
131
+ return httpClient.delete<void>(`${baseUrl}/v1/threads/${threadId}/pin?brand=${brand}`)
132
+ }
133
+
134
+ /**
135
+ * Locks a thread to prevent further posts.
136
+ *
137
+ * @param {number} threadId - The ID of the thread to lock.
138
+ * @param {string} brand - The brand context (e.g., "drumeo", "singeo").
139
+ * @return {Promise<void>} - A promise that resolves when the thread is locked.
140
+ * @throws {HttpError} - If the request fails.
141
+ */
142
+ export async function lockThread(threadId: number, brand: string): Promise<void> {
143
+ const httpClient = new HttpClient(globalConfig.baseUrl)
144
+ return httpClient.post<void>(`${baseUrl}/v1/threads/${threadId}/unlock`, { brand })
145
+ }
146
+
147
+ /**
148
+ * Unlock a thread to allow further posts.
149
+ *
150
+ * @param {number} threadId - The ID of the thread to unlock.
151
+ * @param {string} brand - The brand context (e.g., "drumeo", "singeo").
152
+ * @return {Promise<void>} - A promise that resolves when the thread is unlocked.
153
+ * @throws {HttpError} - If the request fails.
154
+ */
155
+ export async function unlockThread(threadId: number, brand: string): Promise<void> {
156
+ const httpClient = new HttpClient(globalConfig.baseUrl)
157
+ return httpClient.delete<void>(`${baseUrl}/v1/threads/${threadId}/lock?brand=${brand}`)
158
+ }
159
+
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/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
@@ -1,8 +0,0 @@
1
- {
2
- "permissions": {
3
- "allow": [
4
- "Bash(rg:*)"
5
- ],
6
- "deny": []
7
- }
8
- }