musora-content-services 2.42.0 → 2.43.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.
- package/.claude/settings.local.json +8 -0
- 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 +7 -0
- package/README.md +0 -0
- package/babel.config.cjs +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/forums_discussions.js.html +0 -0
- package/docs/forums_forum.js.html +0 -0
- package/docs/gamification_awards.js.html +0 -0
- package/docs/gamification_types.js.html +0 -0
- package/docs/module-ForumCategories.html +0 -0
- package/docs/module-ForumDiscussions.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/jest.config.js +0 -0
- package/jsdoc.json +0 -0
- package/package.json +1 -1
- package/src/contentMetaData.js +0 -0
- package/src/contentTypeConfig.js +51 -42
- package/src/filterBuilder.js +0 -0
- package/src/index.d.ts +0 -2
- package/src/index.js +0 -2
- 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/api/types.ts +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/eventsAPI.js +0 -0
- package/src/services/forum.js +0 -0
- package/src/services/forums/forums.ts +0 -0
- package/src/services/gamification/gamification.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/sanity.js +1 -23
- package/src/services/types.js +0 -0
- package/src/services/user/account.ts +0 -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/memberships.js +0 -0
- package/src/services/user/notifications.js +0 -0
- package/src/services/user/payments.ts +0 -0
- package/src/services/user/permissions.js +0 -0
- package/src/services/user/profile.js +0 -0
- package/src/services/user/sessions.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 +0 -0
- 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,13 @@
|
|
|
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.43.0](https://github.com/railroadmedia/musora-content-services/compare/v2.42.0...v2.43.0) (2025-09-23)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **BEH-910:** fetch metadata for download functionality ([#463](https://github.com/railroadmedia/musora-content-services/issues/463)) ([8406795](https://github.com/railroadmedia/musora-content-services/commit/84067954f1aed3f7e65c42f8621d6c5d81970037))
|
|
11
|
+
|
|
5
12
|
## [2.42.0](https://github.com/railroadmedia/musora-content-services/compare/v2.40.0...v2.42.0) (2025-09-22)
|
|
6
13
|
|
|
7
14
|
|
package/README.md
CHANGED
|
File without changes
|
package/babel.config.cjs
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
|
|
File without changes
|
|
File without changes
|
|
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/jest.config.js
CHANGED
|
File without changes
|
package/jsdoc.json
CHANGED
|
File without changes
|
package/package.json
CHANGED
package/src/contentMetaData.js
CHANGED
|
File without changes
|
package/src/contentTypeConfig.js
CHANGED
|
@@ -17,7 +17,6 @@ export const artistField = `select(
|
|
|
17
17
|
export const DEFAULT_FIELDS = [
|
|
18
18
|
"'sanity_id' : _id",
|
|
19
19
|
"'id': railcontent_id",
|
|
20
|
-
'railcontent_id',
|
|
21
20
|
artistOrInstructorName(),
|
|
22
21
|
`'artist': ${artistField}`,
|
|
23
22
|
'title',
|
|
@@ -25,8 +24,6 @@ export const DEFAULT_FIELDS = [
|
|
|
25
24
|
"'thumbnail': thumbnail.asset->url",
|
|
26
25
|
'difficulty',
|
|
27
26
|
'difficulty_string',
|
|
28
|
-
'web_url_path',
|
|
29
|
-
"'url': web_url_path",
|
|
30
27
|
'published_on',
|
|
31
28
|
"'type': _type",
|
|
32
29
|
"'length_in_seconds' : coalesce(length_in_seconds, soundslice[0].soundslice_length_in_second)",
|
|
@@ -35,17 +32,16 @@ export const DEFAULT_FIELDS = [
|
|
|
35
32
|
'status',
|
|
36
33
|
"'slug' : slug.current",
|
|
37
34
|
"'permission_id': permission[]->railcontent_id",
|
|
38
|
-
'xp',
|
|
39
35
|
'child_count',
|
|
40
|
-
'"lesson_count": coalesce(count(child[]->.child[]->), child_count)',
|
|
41
36
|
'"parent_id": parent_content_data[0].id',
|
|
42
37
|
]
|
|
43
38
|
|
|
39
|
+
// these are identical... why
|
|
44
40
|
export const DEFAULT_CHILD_FIELDS = [
|
|
41
|
+
"'sanity_id' : _id",
|
|
45
42
|
"'id': railcontent_id",
|
|
46
|
-
'railcontent_id',
|
|
47
43
|
artistOrInstructorName(),
|
|
48
|
-
|
|
44
|
+
`'artist': ${artistField}`,
|
|
49
45
|
'title',
|
|
50
46
|
"'image': thumbnail.asset->url",
|
|
51
47
|
"'thumbnail': thumbnail.asset->url",
|
|
@@ -63,6 +59,14 @@ export const DEFAULT_CHILD_FIELDS = [
|
|
|
63
59
|
'"parent_id": parent_content_data[0].id',
|
|
64
60
|
]
|
|
65
61
|
|
|
62
|
+
export const playAlongMp3sField = `{
|
|
63
|
+
'mp3_no_drums_no_click_url': mp3_no_drums_no_click_url,
|
|
64
|
+
'mp3_no_drums_yes_click_url': mp3_no_drums_yes_click_url,
|
|
65
|
+
'mp3_yes_drums_no_click_url': mp3_yes_drums_no_click_url,
|
|
66
|
+
'mp3_yes_drums_yes_click_url': mp3_yes_drums_yes_click_url,
|
|
67
|
+
}
|
|
68
|
+
`
|
|
69
|
+
|
|
66
70
|
export const instructorField = `instructor[]->{
|
|
67
71
|
"id": railcontent_id,
|
|
68
72
|
name,
|
|
@@ -319,44 +323,49 @@ export let contentTypeConfig = {
|
|
|
319
323
|
],
|
|
320
324
|
slug: 'courses',
|
|
321
325
|
},
|
|
322
|
-
'
|
|
326
|
+
'download': {
|
|
323
327
|
fields: [
|
|
324
|
-
'"lesson_count": child_count',
|
|
325
|
-
'"instructors": instructor[]->name',
|
|
326
|
-
`"description": ${descriptionField}`,
|
|
327
328
|
`"resource": ${resourcesField}`,
|
|
328
|
-
'
|
|
329
|
-
'
|
|
330
|
-
|
|
331
|
-
`"
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
"instructor": instructor[]->{
|
|
347
|
-
"id":railcontent_id,
|
|
348
|
-
name,
|
|
349
|
-
short_bio,
|
|
350
|
-
"biography": short_bio[0].children[0].text,
|
|
351
|
-
web_url_path,
|
|
352
|
-
"coach_card_image": coach_card_image.asset->url,
|
|
353
|
-
"coach_profile_image":thumbnail_url.asset->url
|
|
354
|
-
},
|
|
355
|
-
${assignmentsField}
|
|
356
|
-
video,
|
|
357
|
-
parent_content_data,
|
|
358
|
-
}`,
|
|
329
|
+
'soundslice',
|
|
330
|
+
'instrumentless',
|
|
331
|
+
`"description": ${descriptionField}`,
|
|
332
|
+
`"chapters": ${chapterField}`,
|
|
333
|
+
'"instructors":instructor[]->name',
|
|
334
|
+
`"instructor": ${instructorField}`,
|
|
335
|
+
'video',
|
|
336
|
+
`"play_along_mp3s": ${playAlongMp3sField}`,
|
|
337
|
+
`...select(
|
|
338
|
+
defined(live_event_start_time) => {
|
|
339
|
+
"live_event_start_time": live_event_start_time,
|
|
340
|
+
"live_event_end_time": live_event_end_time,
|
|
341
|
+
"live_event_youtube_id": live_event_youtube_id,
|
|
342
|
+
"videoId": coalesce(live_event_youtube_id, video.external_id),
|
|
343
|
+
"live_event_is_global": live_global_event == true
|
|
344
|
+
}
|
|
345
|
+
)`
|
|
346
|
+
|
|
359
347
|
],
|
|
348
|
+
childFields: [
|
|
349
|
+
`"resource": ${resourcesField}`,
|
|
350
|
+
'soundslice',
|
|
351
|
+
'instrumentless',
|
|
352
|
+
`"description": ${descriptionField}`,
|
|
353
|
+
`"chapters": ${chapterField}`,
|
|
354
|
+
'"instructors":instructor[]->name',
|
|
355
|
+
`"instructor": ${instructorField}`,
|
|
356
|
+
'video',
|
|
357
|
+
`"play_along_mp3s": ${playAlongMp3sField}`,
|
|
358
|
+
`...select(
|
|
359
|
+
defined(live_event_start_time) => {
|
|
360
|
+
"live_event_start_time": live_event_start_time,
|
|
361
|
+
"live_event_end_time": live_event_end_time,
|
|
362
|
+
"live_event_youtube_id": live_event_youtube_id,
|
|
363
|
+
"videoId": coalesce(live_event_youtube_id, video.external_id),
|
|
364
|
+
"live_event_is_global": live_global_event == true
|
|
365
|
+
}
|
|
366
|
+
)`
|
|
367
|
+
|
|
368
|
+
]
|
|
360
369
|
},
|
|
361
370
|
method: {
|
|
362
371
|
fields: [
|
package/src/filterBuilder.js
CHANGED
|
File without changes
|
package/src/index.d.ts
CHANGED
|
@@ -211,7 +211,6 @@ import {
|
|
|
211
211
|
fetchOtherSongVersions,
|
|
212
212
|
fetchPackAll,
|
|
213
213
|
fetchPackData,
|
|
214
|
-
fetchParentForDownload,
|
|
215
214
|
fetchPlayAlongsCount,
|
|
216
215
|
fetchRelatedLessons,
|
|
217
216
|
fetchRelatedRecommendedContent,
|
|
@@ -427,7 +426,6 @@ declare module 'musora-content-services' {
|
|
|
427
426
|
fetchOtherSongVersions,
|
|
428
427
|
fetchPackAll,
|
|
429
428
|
fetchPackData,
|
|
430
|
-
fetchParentForDownload,
|
|
431
429
|
fetchPlayAlongsCount,
|
|
432
430
|
fetchPlaylist,
|
|
433
431
|
fetchPlaylistItems,
|
package/src/index.js
CHANGED
|
@@ -211,7 +211,6 @@ import {
|
|
|
211
211
|
fetchOtherSongVersions,
|
|
212
212
|
fetchPackAll,
|
|
213
213
|
fetchPackData,
|
|
214
|
-
fetchParentForDownload,
|
|
215
214
|
fetchPlayAlongsCount,
|
|
216
215
|
fetchRelatedLessons,
|
|
217
216
|
fetchRelatedRecommendedContent,
|
|
@@ -426,7 +425,6 @@ export {
|
|
|
426
425
|
fetchOtherSongVersions,
|
|
427
426
|
fetchPackAll,
|
|
428
427
|
fetchPackData,
|
|
429
|
-
fetchParentForDownload,
|
|
430
428
|
fetchPlayAlongsCount,
|
|
431
429
|
fetchPlaylist,
|
|
432
430
|
fetchPlaylistItems,
|
|
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
|
|
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
|
|
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
|
package/src/services/sanity.js
CHANGED
|
@@ -468,7 +468,7 @@ export async function fetchByRailContentId(id, contentType) {
|
|
|
468
468
|
/**
|
|
469
469
|
* Fetch content by an array of Railcontent IDs.
|
|
470
470
|
*
|
|
471
|
-
* @param {Array<string>} ids - The array of Railcontent IDs of the content to fetch.
|
|
471
|
+
* @param {Array<string|number>} ids - The array of Railcontent IDs of the content to fetch.
|
|
472
472
|
* @param {string} [contentType] - The content type the IDs to add needed fields to the response.
|
|
473
473
|
* @returns {Promise<Array<Object>|null>} - A promise that resolves to an array of content objects or null if not found.
|
|
474
474
|
*
|
|
@@ -1496,28 +1496,6 @@ export async function fetchCoachLessons(
|
|
|
1496
1496
|
return fetchSanity(query, true)
|
|
1497
1497
|
}
|
|
1498
1498
|
|
|
1499
|
-
/**
|
|
1500
|
-
* Fetch the data needed for the Course Overview screen.
|
|
1501
|
-
* @param {string} id - The Railcontent ID of the course
|
|
1502
|
-
* @returns {Promise<Object|null>} - The course information and lessons or null if not found.
|
|
1503
|
-
*
|
|
1504
|
-
* @example
|
|
1505
|
-
* fetchParentForDownload('course123')
|
|
1506
|
-
* .then(course => console.log(course))
|
|
1507
|
-
* .catch(error => console.error(error));
|
|
1508
|
-
*/
|
|
1509
|
-
export async function fetchParentForDownload(id) {
|
|
1510
|
-
const query = buildRawQuery(
|
|
1511
|
-
`railcontent_id == ${id}`,
|
|
1512
|
-
getFieldsForContentType('parent-download'),
|
|
1513
|
-
{
|
|
1514
|
-
isSingle: true,
|
|
1515
|
-
}
|
|
1516
|
-
)
|
|
1517
|
-
|
|
1518
|
-
return fetchSanity(query, false)
|
|
1519
|
-
}
|
|
1520
|
-
|
|
1521
1499
|
/**
|
|
1522
1500
|
* Fetch the data needed for the coach screen.
|
|
1523
1501
|
* @param {string} id - The Railcontent ID of the coach
|
package/src/services/types.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
|
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
|