musora-content-services 2.19.0 → 2.19.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.
- package/.coderabbit.yaml +0 -0
- package/.editorconfig +0 -0
- package/.github/pull_request_template.md +0 -0
- package/.github/workflows/conventional-commits.yaml +0 -0
- package/.github/workflows/docs.js.yml +0 -0
- package/.github/workflows/node.js.yml +0 -0
- package/.prettierignore +0 -0
- package/.prettierrc +0 -0
- package/CHANGELOG.md +10 -0
- package/README.md +0 -0
- package/babel.config.cjs +0 -0
- package/docs/Content-Organization.html +0 -0
- package/docs/ContentOrganization.html +0 -0
- package/docs/Gamification.html +0 -0
- package/docs/UserManagement.html +0 -0
- package/docs/UserManagementSystem.html +0 -0
- package/docs/api_types.js.html +0 -0
- package/docs/config.js.html +0 -0
- package/docs/content-org_content-org.js.html +0 -0
- package/docs/content-org_playlists-types.js.html +0 -0
- package/docs/content-org_playlists.js.html +0 -0
- package/docs/content.js.html +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
- package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
- package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
- package/docs/gamification_awards.js.html +0 -0
- package/docs/gamification_gamification.js.html +0 -0
- package/docs/gamification_types.js.html +0 -0
- package/docs/global.html +0 -0
- package/docs/global.html#User +0 -0
- package/docs/index.html +0 -0
- package/docs/module-Awards.html +0 -0
- package/docs/module-Config.html +0 -0
- package/docs/module-Content-Services-V2.html +0 -0
- package/docs/module-Interests.html +0 -0
- package/docs/module-Notifications.html +0 -0
- package/docs/module-Permissions.html +0 -0
- package/docs/module-Playlists.html +0 -0
- package/docs/module-Railcontent-Services.html +0 -0
- package/docs/module-Sanity-Services.html +0 -0
- package/docs/module-Session-Management.html +0 -0
- package/docs/module-Sessions.html +0 -0
- package/docs/module-User-Activity.html +0 -0
- package/docs/module-User-Management.html +0 -0
- package/docs/module-User-Permissions.html +0 -0
- package/docs/module-UserActivity.html +0 -0
- package/docs/module-UserChat.html +0 -0
- package/docs/module-UserManagement.html +0 -0
- package/docs/module-UserNotifications.html +0 -0
- package/docs/module-UserProfile.html +0 -0
- package/docs/railcontent.js.html +0 -0
- package/docs/sanity.js.html +0 -0
- package/docs/scripts/collapse.js +0 -0
- package/docs/scripts/commonNav.js +0 -0
- package/docs/scripts/linenumber.js +0 -0
- package/docs/scripts/nav.js +0 -0
- package/docs/scripts/polyfill.js +0 -0
- package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
- package/docs/scripts/prettify/lang-css.js +0 -0
- package/docs/scripts/prettify/prettify.js +0 -0
- package/docs/scripts/search.js +0 -0
- package/docs/styles/jsdoc.css +0 -0
- package/docs/styles/prettify.css +0 -0
- package/docs/types.js.html +0 -0
- package/docs/userActivity.js.html +0 -0
- package/docs/user_chat.js.html +0 -0
- package/docs/user_interests.js.html +0 -0
- package/docs/user_management.js.html +0 -0
- package/docs/user_notifications.js.html +0 -0
- package/docs/user_permissions.js.html +0 -0
- package/docs/user_profile.js.html +0 -0
- package/docs/user_sessions.js.html +0 -0
- package/docs/user_types.js.html +0 -0
- package/docs/user_user-management-system.js.html +0 -0
- package/docs/user_user-management.js.html +0 -0
- package/jest.config.js +0 -0
- package/jsdoc.json +0 -0
- package/link_mcs.sh +0 -0
- package/package.json +1 -1
- package/src/contentMetaData.js +0 -0
- package/src/contentTypeConfig.js +1 -2
- package/src/filterBuilder.js +0 -0
- package/src/index.d.ts +13 -0
- package/src/index.js +13 -0
- package/src/infrastructure/http/HttpClient.ts +0 -0
- package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
- package/src/infrastructure/http/index.ts +0 -0
- package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
- package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
- package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
- package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
- package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
- package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
- package/src/lib/httpHelper.js +0 -0
- package/src/lib/lastUpdated.js +0 -0
- package/src/services/api/types.js +0 -0
- package/src/services/config.js +0 -0
- package/src/services/content-org/content-org.js +0 -0
- package/src/services/content-org/guided-courses.ts +0 -0
- package/src/services/content-org/playlists-types.js +0 -0
- package/src/services/content-org/playlists.js +0 -0
- package/src/services/content.js +0 -0
- package/src/services/contentAggregator.js +0 -0
- package/src/services/contentLikes.js +0 -0
- package/src/services/contentProgress.js +0 -0
- package/src/services/dataContext.js +0 -0
- package/src/services/dateUtils.js +0 -0
- package/src/services/forum.js +0 -0
- package/src/services/gamification/awards.js +0 -0
- package/src/services/gamification/gamification.js +0 -0
- package/src/services/gamification/types.js +0 -0
- package/src/services/imageSRCBuilder.js +0 -0
- package/src/services/imageSRCVerify.js +0 -0
- package/src/services/railcontent.js +0 -0
- package/src/services/recommendations.js +0 -0
- package/src/services/types.js +0 -0
- package/src/services/user/account.ts +66 -0
- package/src/services/user/chat.js +0 -0
- package/src/services/user/interests.js +0 -0
- package/src/services/user/management.js +0 -0
- package/src/services/user/permissions.js +0 -0
- package/src/services/user/profile.js +0 -0
- package/src/services/user/types.js +0 -0
- package/src/services/user/user-management-system.js +0 -0
- package/src/services/userActivity.js +1 -1
- package/test/HttpClient.test.js +0 -0
- package/test/content.test.js +0 -0
- package/test/contentLikes.test.js +0 -0
- package/test/contentProgress.test.js +0 -0
- package/test/dataContext.test.js +0 -0
- package/test/forum.test.js +0 -0
- package/test/imageSRCBuilder.test.js +0 -0
- package/test/imageSRCVerify.test.js +0 -0
- package/test/initializeTests.js +0 -0
- package/test/lib/lastUpdated.test.js +0 -0
- package/test/live/contentProgressLive.test.js +0 -0
- package/test/live/railcontentLive.test.js +0 -0
- package/test/localStorageMock.js +0 -0
- package/test/log.js +0 -0
- package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
- package/test/mockData/mockData_progress_content.json +0 -0
- package/test/mockData/mockData_sanity_progress_content.json +0 -0
- package/test/mockData/mockData_user_practices.json +0 -0
- package/test/notifications.test.js +0 -0
- package/test/progressRows.test.js +0 -0
- package/test/sanityQueryService.test.js +0 -0
- package/test/streakMessage.test.js +0 -0
- package/test/user/permissions.test.js +0 -0
- package/test/userActivity.test.js +0 -0
- package/tools/generate-index.cjs +0 -0
- package/.yarnrc.yml +0 -1
package/.coderabbit.yaml
CHANGED
|
File without changes
|
package/.editorconfig
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/.prettierignore
CHANGED
|
File without changes
|
package/.prettierrc
CHANGED
|
File without changes
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,16 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [2.19.2](https://github.com/railroadmedia/musora-content-services/compare/v2.19.1...v2.19.2) (2025-07-09)
|
|
6
|
+
|
|
7
|
+
### [2.19.1](https://github.com/railroadmedia/musora-content-services/compare/v2.19.0...v2.19.1) (2025-07-09)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### Bug Fixes
|
|
11
|
+
|
|
12
|
+
* **MU2-766:** Song Tutorials should not be showing in lesson collections ([8ce6bcd](https://github.com/railroadmedia/musora-content-services/commit/8ce6bcda634efffb15871e8a07d8cdc8ea8c665e))
|
|
13
|
+
* **sign-in:** add account status and setup email functions ([#331](https://github.com/railroadmedia/musora-content-services/issues/331)) ([fa94a22](https://github.com/railroadmedia/musora-content-services/commit/fa94a22f83f4c011ae152f6b5b5f00249c91c051))
|
|
14
|
+
|
|
5
15
|
## [2.19.0](https://github.com/railroadmedia/musora-content-services/compare/v2.18.0...v2.19.0) (2025-07-08)
|
|
6
16
|
|
|
7
17
|
|
package/README.md
CHANGED
|
File without changes
|
package/babel.config.cjs
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/Gamification.html
CHANGED
|
File without changes
|
package/docs/UserManagement.html
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/api_types.js.html
CHANGED
|
File without changes
|
package/docs/config.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/content.js.html
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/global.html
CHANGED
|
File without changes
|
package/docs/global.html#User
CHANGED
|
File without changes
|
package/docs/index.html
CHANGED
|
File without changes
|
package/docs/module-Awards.html
CHANGED
|
File without changes
|
package/docs/module-Config.html
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
|
package/docs/railcontent.js.html
CHANGED
|
File without changes
|
package/docs/sanity.js.html
CHANGED
|
File without changes
|
package/docs/scripts/collapse.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/scripts/nav.js
CHANGED
|
File without changes
|
package/docs/scripts/polyfill.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/scripts/search.js
CHANGED
|
File without changes
|
package/docs/styles/jsdoc.css
CHANGED
|
File without changes
|
package/docs/styles/prettify.css
CHANGED
|
File without changes
|
package/docs/types.js.html
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/user_chat.js.html
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/docs/user_types.js.html
CHANGED
|
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/link_mcs.sh
CHANGED
|
File without changes
|
package/package.json
CHANGED
package/src/contentMetaData.js
CHANGED
|
File without changes
|
package/src/contentTypeConfig.js
CHANGED
|
@@ -158,8 +158,7 @@ export const coursesLessonTypes = ['course', 'pack','spotlight', 'guided-course'
|
|
|
158
158
|
export const showsLessonTypes = ['diy-drum-experiment','exploring-beats','in-rhythm', 'rhythmic-adventures-of-captain-carson','rhythms-from-another-planet','study-the-greats'];
|
|
159
159
|
export const collectionLessonTypes = [
|
|
160
160
|
...coursesLessonTypes,
|
|
161
|
-
...showsLessonTypes
|
|
162
|
-
'song-tutorial',
|
|
161
|
+
...showsLessonTypes
|
|
163
162
|
];
|
|
164
163
|
|
|
165
164
|
export const lessonTypesMapping = {
|
package/src/filterBuilder.js
CHANGED
|
File without changes
|
package/src/index.d.ts
CHANGED
|
@@ -225,6 +225,14 @@ import {
|
|
|
225
225
|
jumpToContinueContent
|
|
226
226
|
} from './services/sanity.js';
|
|
227
227
|
|
|
228
|
+
import {
|
|
229
|
+
resetPassword,
|
|
230
|
+
sendAccountSetupEmail,
|
|
231
|
+
sendPasswordResetEmail,
|
|
232
|
+
setupAccount,
|
|
233
|
+
status
|
|
234
|
+
} from './services/user/account.ts';
|
|
235
|
+
|
|
228
236
|
import {
|
|
229
237
|
fetchChatSettings
|
|
230
238
|
} from './services/user/chat.js';
|
|
@@ -495,11 +503,16 @@ declare module 'musora-content-services' {
|
|
|
495
503
|
reportComment,
|
|
496
504
|
reportPlaylist,
|
|
497
505
|
reset,
|
|
506
|
+
resetPassword,
|
|
498
507
|
restoreComment,
|
|
499
508
|
restoreItemFromPlaylist,
|
|
500
509
|
restorePracticeSession,
|
|
501
510
|
restoreUserPractice,
|
|
511
|
+
sendAccountSetupEmail,
|
|
512
|
+
sendPasswordResetEmail,
|
|
502
513
|
setStudentViewForUser,
|
|
514
|
+
setupAccount,
|
|
515
|
+
status,
|
|
503
516
|
togglePlaylistPrivate,
|
|
504
517
|
unEnrollUserInGuidedCourse,
|
|
505
518
|
unPinGuidedCourse,
|
package/src/index.js
CHANGED
|
@@ -225,6 +225,14 @@ import {
|
|
|
225
225
|
jumpToContinueContent
|
|
226
226
|
} from './services/sanity.js';
|
|
227
227
|
|
|
228
|
+
import {
|
|
229
|
+
resetPassword,
|
|
230
|
+
sendAccountSetupEmail,
|
|
231
|
+
sendPasswordResetEmail,
|
|
232
|
+
setupAccount,
|
|
233
|
+
status
|
|
234
|
+
} from './services/user/account.ts';
|
|
235
|
+
|
|
228
236
|
import {
|
|
229
237
|
fetchChatSettings
|
|
230
238
|
} from './services/user/chat.js';
|
|
@@ -494,11 +502,16 @@ export {
|
|
|
494
502
|
reportComment,
|
|
495
503
|
reportPlaylist,
|
|
496
504
|
reset,
|
|
505
|
+
resetPassword,
|
|
497
506
|
restoreComment,
|
|
498
507
|
restoreItemFromPlaylist,
|
|
499
508
|
restorePracticeSession,
|
|
500
509
|
restoreUserPractice,
|
|
510
|
+
sendAccountSetupEmail,
|
|
511
|
+
sendPasswordResetEmail,
|
|
501
512
|
setStudentViewForUser,
|
|
513
|
+
setupAccount,
|
|
514
|
+
status,
|
|
502
515
|
togglePlaylistPrivate,
|
|
503
516
|
unEnrollUserInGuidedCourse,
|
|
504
517
|
unPinGuidedCourse,
|
|
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/src/lib/httpHelper.js
CHANGED
|
File without changes
|
package/src/lib/lastUpdated.js
CHANGED
|
File without changes
|
|
File without changes
|
package/src/services/config.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/services/content.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/src/services/forum.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
|
package/src/services/types.js
CHANGED
|
File without changes
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @module Accounts
|
|
3
|
+
*/
|
|
4
|
+
import { HttpClient } from '../../infrastructure/http/HttpClient'
|
|
5
|
+
import { HttpError } from '../../infrastructure/http/interfaces/HttpError'
|
|
6
|
+
import { globalConfig } from '../config.js'
|
|
7
|
+
|
|
8
|
+
export interface PasswordResetProps {
|
|
9
|
+
email: string
|
|
10
|
+
password: string
|
|
11
|
+
passwordConfirmation: string
|
|
12
|
+
token: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export async function status(email: string): Promise<{ requires_setup: boolean } | HttpError> {
|
|
16
|
+
const httpClient = new HttpClient(globalConfig.baseUrl)
|
|
17
|
+
const response = await httpClient.get<{ requires_setup: boolean }>(
|
|
18
|
+
`/api/user-management-system/v1/accounts/${encodeURIComponent(email)}/status`
|
|
19
|
+
)
|
|
20
|
+
return response
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export async function sendAccountSetupEmail(email: string): Promise<void | HttpError> {
|
|
24
|
+
const httpClient = new HttpClient(globalConfig.baseUrl)
|
|
25
|
+
return httpClient.post<void>(
|
|
26
|
+
`/api/user-management-system/v1/accounts/${encodeURIComponent(email)}/send-setup-email`,
|
|
27
|
+
{}
|
|
28
|
+
)
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export async function setupAccount({
|
|
32
|
+
email,
|
|
33
|
+
password,
|
|
34
|
+
passwordConfirmation,
|
|
35
|
+
token,
|
|
36
|
+
}: PasswordResetProps): Promise<void | HttpError> {
|
|
37
|
+
const httpClient = new HttpClient(globalConfig.baseUrl)
|
|
38
|
+
return httpClient.post(`/api/user-management-system/v1/accounts`, {
|
|
39
|
+
email,
|
|
40
|
+
password,
|
|
41
|
+
password_confirmation: passwordConfirmation,
|
|
42
|
+
token,
|
|
43
|
+
})
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export async function sendPasswordResetEmail(email: string): Promise<void | HttpError> {
|
|
47
|
+
const httpClient = new HttpClient(globalConfig.baseUrl)
|
|
48
|
+
return httpClient.post(`/api/user-management-system/v1/accounts/password/reset-email`, {
|
|
49
|
+
email,
|
|
50
|
+
})
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
export async function resetPassword({
|
|
54
|
+
email,
|
|
55
|
+
password,
|
|
56
|
+
passwordConfirmation,
|
|
57
|
+
token,
|
|
58
|
+
}: PasswordResetProps): Promise<void | HttpError> {
|
|
59
|
+
const httpClient = new HttpClient(globalConfig.baseUrl)
|
|
60
|
+
return httpClient.post(`/api/user-management-system/v1/accounts/password/reset`, {
|
|
61
|
+
email,
|
|
62
|
+
password,
|
|
63
|
+
password_confirmation: passwordConfirmation,
|
|
64
|
+
token,
|
|
65
|
+
})
|
|
66
|
+
}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
@@ -1030,7 +1030,7 @@ async function processContentItem(item) {
|
|
|
1030
1030
|
let ctaText = 'Continue';
|
|
1031
1031
|
if (contentType === 'transcription' || contentType === 'play-along' || contentType === 'jam-track') ctaText = 'Replay Song';
|
|
1032
1032
|
if (contentType === 'lesson') ctaText = status === 'completed' ? 'Revisit Lesson' : 'Continue';
|
|
1033
|
-
if (collectionLessonTypes.includes(contentType) && status === 'completed') ctaText = 'Revisit Lessons' ;
|
|
1033
|
+
if ((contentType === 'song tutorial' || collectionLessonTypes.includes(contentType)) && status === 'completed') ctaText = 'Revisit Lessons' ;
|
|
1034
1034
|
if (contentType === 'pack' && status === 'completed') {
|
|
1035
1035
|
ctaText = 'View Lessons';
|
|
1036
1036
|
}
|
package/test/HttpClient.test.js
CHANGED
|
File without changes
|
package/test/content.test.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/dataContext.test.js
CHANGED
|
File without changes
|
package/test/forum.test.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/initializeTests.js
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/test/localStorageMock.js
CHANGED
|
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
|
|
File without changes
|
package/tools/generate-index.cjs
CHANGED
|
File without changes
|
package/.yarnrc.yml
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
nodeLinker: node-modules
|