musora-content-services 2.60.2 → 2.61.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/.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 +12 -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-Categories.html +0 -0
- package/docs/module-ForumCategories.html +0 -0
- package/docs/module-ForumDiscussions.html +0 -0
- package/docs/module-Threads.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/user_memberships.js.html +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 +48 -1
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -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 +4 -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/forums/categories.ts +0 -0
- package/src/services/forums/posts.ts +0 -0
- package/src/services/forums/threads.ts +0 -0
- package/src/services/forums/types.ts +0 -0
- package/src/services/gamification/awards.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 +16 -10
- 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.ts +0 -0
- package/src/services/user/notifications.js +0 -0
- package/src/services/user/onboarding.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/.claude/settings.local.json +0 -11
- package/.yarnrc.yml +0 -1
- package/image-20250923-212426.png +0 -0
- package/tsconfig.json +0 -22
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,18 @@
|
|
|
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.61.0](https://github.com/railroadmedia/musora-content-services/compare/v2.60.2...v2.61.0) (2025-10-29)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* **BEH-1358:** Fetch all methods ([#511](https://github.com/railroadmedia/musora-content-services/issues/511)) ([4778770](https://github.com/railroadmedia/musora-content-services/commit/47787704ef8c835ac05ecee88313f0f02cf01109))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* add client platform header for mobile requests ([#512](https://github.com/railroadmedia/musora-content-services/issues/512)) ([23e0eaa](https://github.com/railroadmedia/musora-content-services/commit/23e0eaab439aba231ff04b41b13c5440704779a2))
|
|
16
|
+
|
|
5
17
|
### [2.60.2](https://github.com/railroadmedia/musora-content-services/compare/v2.60.0...v2.60.2) (2025-10-27)
|
|
6
18
|
|
|
7
19
|
|
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
|
|
File without changes
|
package/docs/module-Threads.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
|
|
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
|
@@ -579,9 +579,56 @@ export let contentTypeConfig = {
|
|
|
579
579
|
`quarter_removed`,
|
|
580
580
|
'"thumbnail": thumbnail.asset->url',
|
|
581
581
|
]
|
|
582
|
-
}
|
|
582
|
+
},
|
|
583
|
+
"method-v2": [
|
|
584
|
+
`"id":_id`,
|
|
585
|
+
`"type":_type`,
|
|
586
|
+
"brand",
|
|
587
|
+
`"intro_video": intro_video->{ ${getIntroVideoFields().join(", ")} }`,
|
|
588
|
+
`child[]->{
|
|
589
|
+
"resource": ${resourcesField},
|
|
590
|
+
total_skills,
|
|
591
|
+
"difficulty":difficulty,
|
|
592
|
+
"published_on":published_on,
|
|
593
|
+
"type":_type,
|
|
594
|
+
brand,
|
|
595
|
+
title,
|
|
596
|
+
"description": ${descriptionField},
|
|
597
|
+
"thumbnail": thumbnail.asset->url,
|
|
598
|
+
length_in_seconds,
|
|
599
|
+
"intro_video": intro_video->{
|
|
600
|
+
external_id,
|
|
601
|
+
hlsManifestUrl,
|
|
602
|
+
video_playback_endpoints
|
|
603
|
+
},
|
|
604
|
+
lp_lessons[]->{
|
|
605
|
+
${DEFAULT_FIELDS.join(',')}
|
|
606
|
+
}
|
|
607
|
+
}`,
|
|
608
|
+
],
|
|
609
|
+
"method-v2-intro-video": getIntroVideoFields(),
|
|
610
|
+
}
|
|
611
|
+
|
|
612
|
+
export function getIntroVideoFields() {
|
|
613
|
+
return [
|
|
614
|
+
"brand",
|
|
615
|
+
`"description": ${descriptionField}`,
|
|
616
|
+
`"thumbnail": thumbnail.asset->url`,
|
|
617
|
+
"length_in_seconds",
|
|
618
|
+
`video_desktop {
|
|
619
|
+
external_id,
|
|
620
|
+
hlsManifestUrl,
|
|
621
|
+
video_playback_endpoints
|
|
622
|
+
}`,
|
|
623
|
+
`video_mobile {
|
|
624
|
+
external_id,
|
|
625
|
+
hlsManifestUrl,
|
|
626
|
+
video_playback_endpoints
|
|
627
|
+
}`
|
|
628
|
+
];
|
|
583
629
|
}
|
|
584
630
|
|
|
631
|
+
|
|
585
632
|
export const plusMembershipPermissions = 92
|
|
586
633
|
|
|
587
634
|
export function getNewReleasesTypes(brand) {
|
package/src/index.d.ts
CHANGED
|
@@ -213,6 +213,7 @@ import {
|
|
|
213
213
|
fetchCommentModContentData,
|
|
214
214
|
fetchContentRows,
|
|
215
215
|
fetchFoundation,
|
|
216
|
+
fetchFullMethodV2StructureFor,
|
|
216
217
|
fetchGenreLessons,
|
|
217
218
|
fetchHierarchy,
|
|
218
219
|
fetchLeaving,
|
|
@@ -436,6 +437,7 @@ declare module 'musora-content-services' {
|
|
|
436
437
|
fetchFollowedThreads,
|
|
437
438
|
fetchForumCategories,
|
|
438
439
|
fetchFoundation,
|
|
440
|
+
fetchFullMethodV2StructureFor,
|
|
439
441
|
fetchGenreLessons,
|
|
440
442
|
fetchHandler,
|
|
441
443
|
fetchHierarchy,
|
package/src/index.js
CHANGED
|
@@ -213,6 +213,7 @@ import {
|
|
|
213
213
|
fetchCommentModContentData,
|
|
214
214
|
fetchContentRows,
|
|
215
215
|
fetchFoundation,
|
|
216
|
+
fetchFullMethodV2StructureFor,
|
|
216
217
|
fetchGenreLessons,
|
|
217
218
|
fetchHierarchy,
|
|
218
219
|
fetchLeaving,
|
|
@@ -435,6 +436,7 @@ export {
|
|
|
435
436
|
fetchFollowedThreads,
|
|
436
437
|
fetchForumCategories,
|
|
437
438
|
fetchFoundation,
|
|
439
|
+
fetchFullMethodV2StructureFor,
|
|
438
440
|
fetchGenreLessons,
|
|
439
441
|
fetchHandler,
|
|
440
442
|
fetchHierarchy,
|
|
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
|
|
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/src/services/sanity.js
CHANGED
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
descriptionField,
|
|
10
10
|
resourcesField,
|
|
11
11
|
contentTypeConfig,
|
|
12
|
+
getIntroVideoFields,
|
|
12
13
|
DEFAULT_FIELDS,
|
|
13
14
|
getFieldsForContentType,
|
|
14
15
|
filtersToGroq,
|
|
@@ -2277,17 +2278,22 @@ export async function fetchShows(brand, type, sort = 'sort') {
|
|
|
2277
2278
|
return fetchSanity(query, true)
|
|
2278
2279
|
}
|
|
2279
2280
|
|
|
2281
|
+
|
|
2280
2282
|
export async function fetchMethodV2IntroVideo(brand) {
|
|
2281
|
-
const _type =
|
|
2283
|
+
const _type = "method-intro";
|
|
2282
2284
|
const filter = `_type == '${_type}' && brand == '${brand}'`;
|
|
2283
|
-
const
|
|
2284
|
-
brand,
|
|
2285
|
-
'description': ${descriptionField},
|
|
2286
|
-
'thumbnail': thumbnail.asset->url,
|
|
2287
|
-
video_desktop{external_id, hlsManifestUrl, video_playback_endpoints},
|
|
2288
|
-
video_mobile{external_id, hlsManifestUrl, video_playback_endpoints},
|
|
2289
|
-
length_in_seconds,
|
|
2290
|
-
}`
|
|
2285
|
+
const fields = getIntroVideoFields();
|
|
2291
2286
|
|
|
2292
|
-
|
|
2287
|
+
const query = `*[${filter}] { ${fields.join(", ")} }`;
|
|
2288
|
+
return fetchSanity(query, false);
|
|
2289
|
+
}
|
|
2290
|
+
|
|
2291
|
+
export async function fetchFullMethodV2StructureFor(brand) {
|
|
2292
|
+
const _type = "method-v2";
|
|
2293
|
+
const filter = `_type == '${_type}' && brand == '${brand}'`;
|
|
2294
|
+
|
|
2295
|
+
const fields = contentTypeConfig[_type];
|
|
2296
|
+
const query = `*[${filter}] { ${fields.join(",")} }`;
|
|
2297
|
+
|
|
2298
|
+
return await fetchSanity(query, true);
|
|
2293
2299
|
}
|
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
|
|
Binary file
|
package/tsconfig.json
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"compilerOptions": {
|
|
3
|
-
"target": "ES2020",
|
|
4
|
-
"module": "ES2020",
|
|
5
|
-
"lib": ["ES2020"],
|
|
6
|
-
"moduleResolution": "node",
|
|
7
|
-
"outDir": "./dist",
|
|
8
|
-
"rootDir": "./src",
|
|
9
|
-
"declaration": true,
|
|
10
|
-
"declarationMap": true,
|
|
11
|
-
"sourceMap": true,
|
|
12
|
-
"esModuleInterop": true,
|
|
13
|
-
"allowSyntheticDefaultImports": true,
|
|
14
|
-
"strict": false,
|
|
15
|
-
"skipLibCheck": true,
|
|
16
|
-
"resolveJsonModule": true,
|
|
17
|
-
"allowJs": true,
|
|
18
|
-
"noEmit": false
|
|
19
|
-
},
|
|
20
|
-
"include": ["src/**/*"],
|
|
21
|
-
"exclude": ["node_modules", "dist", "test", "**/*.test.ts", "**/*.test.js"]
|
|
22
|
-
}
|