musora-content-services 2.30.5 → 2.31.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/.yarnrc.yml +1 -0
- package/CHANGELOG.md +54 -0
- package/README.md +0 -0
- package/babel.config.cjs +0 -0
- package/docs/ContentOrganization.html +0 -0
- package/docs/Gamification.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/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-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-Sessions.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/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/jest.config.js +0 -0
- package/jsdoc.json +0 -0
- package/package.json +1 -1
- package/src/contentMetaData.js +6 -0
- package/src/contentTypeConfig.js +7 -3
- package/src/filterBuilder.js +12 -1
- package/src/index.d.ts +11 -1
- package/src/index.js +12 -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/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 +18 -8
- package/src/services/contentAggregator.js +5 -4
- 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 +20 -0
- package/src/services/recommendations.js +0 -0
- package/src/services/sanity.js +64 -56
- 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/notifications.js +25 -3
- 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 +31 -18
- 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/.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/.yarnrc.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodeLinker: node-modules
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,60 @@
|
|
|
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.31.0](https://github.com/railroadmedia/musora-content-services/compare/v2.30.9...v2.31.0) (2025-08-14)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* T3PS-458: Add Jam Tracks pill on Songs Overview page ([7351760](https://github.com/railroadmedia/musora-content-services/commit/7351760f3c4a92997036c860fadb6ef2602fc505))
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
### Bug Fixes
|
|
14
|
+
|
|
15
|
+
* MU2-914: prevent null access error in fetchUnreadCount ([1813999](https://github.com/railroadmedia/musora-content-services/commit/1813999872466f970aa20c936d702b6a4ecc7b91))
|
|
16
|
+
* prevent null access error in fetchUnreadCount ([df39ccf](https://github.com/railroadmedia/musora-content-services/commit/df39ccfaf972214d08827e5a60f91653d491504e))
|
|
17
|
+
* T3PS-732 Filter sorting by name ([a25792c](https://github.com/railroadmedia/musora-content-services/commit/a25792cfce9163b8124c3f000569fd24541a7b33))
|
|
18
|
+
|
|
19
|
+
### [2.30.9](https://github.com/railroadmedia/musora-content-services/compare/v2.30.5...v2.30.9) (2025-08-13)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **BEH-845:** enable soft deletes for user activities ([#384](https://github.com/railroadmedia/musora-content-services/issues/384)) ([9c146c4](https://github.com/railroadmedia/musora-content-services/commit/9c146c43536e517ca69d3f264b117850fec748ec))
|
|
25
|
+
* **MU-921:** add context to content empty arrays ([#410](https://github.com/railroadmedia/musora-content-services/issues/410)) ([0ca84ae](https://github.com/railroadmedia/musora-content-services/commit/0ca84aea741e605d17c0f45bbfb6cc8ea018e676))
|
|
26
|
+
* **recsys:** support navigateTo and permissions filtering for recomme… ([#403](https://github.com/railroadmedia/musora-content-services/issues/403)) ([864ec0f](https://github.com/railroadmedia/musora-content-services/commit/864ec0fc05704d9641a965bc4de63a97422668c4))
|
|
27
|
+
* **T3PS-454:** rank lessons by recommended ([#380](https://github.com/railroadmedia/musora-content-services/issues/380)) ([cc55bfd](https://github.com/railroadmedia/musora-content-services/commit/cc55bfd0fb19f1b42c42eb2ea6573817a8d2cc69))
|
|
28
|
+
|
|
29
|
+
### [2.30.8](https://github.com/railroadmedia/musora-content-services/compare/v2.30.5...v2.30.8) (2025-08-13)
|
|
30
|
+
|
|
31
|
+
|
|
32
|
+
### Bug Fixes
|
|
33
|
+
|
|
34
|
+
* **BEH-845:** enable soft deletes for user activities ([#384](https://github.com/railroadmedia/musora-content-services/issues/384)) ([9c146c4](https://github.com/railroadmedia/musora-content-services/commit/9c146c43536e517ca69d3f264b117850fec748ec))
|
|
35
|
+
* **MU-921:** add context to content empty arrays ([#410](https://github.com/railroadmedia/musora-content-services/issues/410)) ([0ca84ae](https://github.com/railroadmedia/musora-content-services/commit/0ca84aea741e605d17c0f45bbfb6cc8ea018e676))
|
|
36
|
+
* **recsys:** support navigateTo and permissions filtering for recomme… ([#403](https://github.com/railroadmedia/musora-content-services/issues/403)) ([864ec0f](https://github.com/railroadmedia/musora-content-services/commit/864ec0fc05704d9641a965bc4de63a97422668c4))
|
|
37
|
+
* **T3PS-454:** rank lessons by recommended ([#380](https://github.com/railroadmedia/musora-content-services/issues/380)) ([cc55bfd](https://github.com/railroadmedia/musora-content-services/commit/cc55bfd0fb19f1b42c42eb2ea6573817a8d2cc69))
|
|
38
|
+
|
|
39
|
+
### [2.30.7](https://github.com/railroadmedia/musora-content-services/compare/v2.30.5...v2.30.7) (2025-08-13)
|
|
40
|
+
|
|
41
|
+
|
|
42
|
+
### Bug Fixes
|
|
43
|
+
|
|
44
|
+
* **BEH-845:** enable soft deletes for user activities ([#384](https://github.com/railroadmedia/musora-content-services/issues/384)) ([9c146c4](https://github.com/railroadmedia/musora-content-services/commit/9c146c43536e517ca69d3f264b117850fec748ec))
|
|
45
|
+
* **MU-921:** add context to content empty arrays ([#410](https://github.com/railroadmedia/musora-content-services/issues/410)) ([0ca84ae](https://github.com/railroadmedia/musora-content-services/commit/0ca84aea741e605d17c0f45bbfb6cc8ea018e676))
|
|
46
|
+
* **recsys:** support navigateTo and permissions filtering for recomme… ([#403](https://github.com/railroadmedia/musora-content-services/issues/403)) ([864ec0f](https://github.com/railroadmedia/musora-content-services/commit/864ec0fc05704d9641a965bc4de63a97422668c4))
|
|
47
|
+
* **T3PS-454:** rank lessons by recommended ([#380](https://github.com/railroadmedia/musora-content-services/issues/380)) ([cc55bfd](https://github.com/railroadmedia/musora-content-services/commit/cc55bfd0fb19f1b42c42eb2ea6573817a8d2cc69))
|
|
48
|
+
|
|
49
|
+
### [2.30.6](https://github.com/railroadmedia/musora-content-services/compare/v2.30.5...v2.30.6) (2025-08-13)
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
### Bug Fixes
|
|
53
|
+
|
|
54
|
+
* **BEH-845:** enable soft deletes for user activities ([#384](https://github.com/railroadmedia/musora-content-services/issues/384)) ([9c146c4](https://github.com/railroadmedia/musora-content-services/commit/9c146c43536e517ca69d3f264b117850fec748ec))
|
|
55
|
+
* **MU-921:** add context to content empty arrays ([#410](https://github.com/railroadmedia/musora-content-services/issues/410)) ([0ca84ae](https://github.com/railroadmedia/musora-content-services/commit/0ca84aea741e605d17c0f45bbfb6cc8ea018e676))
|
|
56
|
+
* **recsys:** support navigateTo and permissions filtering for recomme… ([#403](https://github.com/railroadmedia/musora-content-services/issues/403)) ([864ec0f](https://github.com/railroadmedia/musora-content-services/commit/864ec0fc05704d9641a965bc4de63a97422668c4))
|
|
57
|
+
* **T3PS-454:** rank lessons by recommended ([#380](https://github.com/railroadmedia/musora-content-services/issues/380)) ([cc55bfd](https://github.com/railroadmedia/musora-content-services/commit/cc55bfd0fb19f1b42c42eb2ea6573817a8d2cc69))
|
|
58
|
+
|
|
5
59
|
### [2.30.5](https://github.com/railroadmedia/musora-content-services/compare/v2.30.4...v2.30.5) (2025-08-06)
|
|
6
60
|
|
|
7
61
|
|
package/README.md
CHANGED
|
File without changes
|
package/babel.config.cjs
CHANGED
|
File without changes
|
|
File without changes
|
package/docs/Gamification.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/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
|
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
|
|
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
|
package/jest.config.js
CHANGED
|
File without changes
|
package/jsdoc.json
CHANGED
|
File without changes
|
package/package.json
CHANGED
package/src/contentMetaData.js
CHANGED
|
@@ -39,6 +39,7 @@ export class Tabs {
|
|
|
39
39
|
static Tutorials = { name: 'Tutorials', short_name: 'Tutorials', value: 'type,tutorials', cardType: 'big' }
|
|
40
40
|
static Transcriptions = { name: 'Transcriptions', short_name: 'Transcriptions', value: 'type,transcription', cardType: 'small' }
|
|
41
41
|
static PlayAlongs = { name: 'Play-Alongs', short_name: 'Play-Alongs', value:'type,play along', cardType: 'small' }
|
|
42
|
+
static JamTracks = { name: 'Jam Tracks', short_name: 'Jam Tracks', value:'type,jam-track', cardType: 'small' }
|
|
42
43
|
static RecentAll = { name: 'All', short_name: 'All' }
|
|
43
44
|
static RecentIncomplete = { name: 'Incomplete', short_name: 'Incomplete' }
|
|
44
45
|
static RecentCompleted = { name: 'Completed', short_name: 'Completed' }
|
|
@@ -220,6 +221,7 @@ const commonMetadata = {
|
|
|
220
221
|
Tabs.Tutorials,
|
|
221
222
|
Tabs.Transcriptions,
|
|
222
223
|
Tabs.PlayAlongs,
|
|
224
|
+
Tabs.JamTracks,
|
|
223
225
|
Tabs.ExploreAll
|
|
224
226
|
],
|
|
225
227
|
},
|
|
@@ -359,6 +361,7 @@ const contentMetadata = {
|
|
|
359
361
|
Tabs.Tutorials,
|
|
360
362
|
Tabs.Transcriptions,
|
|
361
363
|
Tabs.PlayAlongs,
|
|
364
|
+
Tabs.JamTracks,
|
|
362
365
|
Tabs.ExploreAll
|
|
363
366
|
],
|
|
364
367
|
},
|
|
@@ -400,6 +403,7 @@ const contentMetadata = {
|
|
|
400
403
|
Tabs.Tutorials,
|
|
401
404
|
Tabs.Transcriptions,
|
|
402
405
|
Tabs.PlayAlongs,
|
|
406
|
+
Tabs.JamTracks,
|
|
403
407
|
Tabs.ExploreAll
|
|
404
408
|
],
|
|
405
409
|
},
|
|
@@ -451,6 +455,7 @@ const contentMetadata = {
|
|
|
451
455
|
Tabs.Tutorials,
|
|
452
456
|
Tabs.Transcriptions,
|
|
453
457
|
Tabs.PlayAlongs,
|
|
458
|
+
Tabs.JamTracks,
|
|
454
459
|
Tabs.ExploreAll
|
|
455
460
|
],
|
|
456
461
|
},
|
|
@@ -491,6 +496,7 @@ const contentMetadata = {
|
|
|
491
496
|
Tabs.Tutorials,
|
|
492
497
|
Tabs.Transcriptions,
|
|
493
498
|
Tabs.PlayAlongs,
|
|
499
|
+
Tabs.JamTracks,
|
|
494
500
|
Tabs.ExploreAll
|
|
495
501
|
],
|
|
496
502
|
},
|
package/src/contentTypeConfig.js
CHANGED
|
@@ -174,6 +174,7 @@ export const studentArchivesLessonTypes = ['student-review', 'student-focus','st
|
|
|
174
174
|
export const tutorialsLessonTypes = ['song-tutorial'];
|
|
175
175
|
export const transcriptionsLessonTypes = ['song'];
|
|
176
176
|
export const playAlongLessonTypes = ['play-along'];
|
|
177
|
+
export const jamTrackLessonTypes = ['jam-track'];
|
|
177
178
|
|
|
178
179
|
export const individualLessonsTypes = [
|
|
179
180
|
...singleLessonTypes,
|
|
@@ -207,7 +208,7 @@ export const lessonTypesMapping = {
|
|
|
207
208
|
'tabs': transcriptionsLessonTypes,
|
|
208
209
|
'sheet music': transcriptionsLessonTypes,
|
|
209
210
|
'play-alongs': playAlongLessonTypes,
|
|
210
|
-
'jam tracks':
|
|
211
|
+
'jam tracks': jamTrackLessonTypes,
|
|
211
212
|
};
|
|
212
213
|
|
|
213
214
|
export const getNextLessonLessonParentTypes = ['course', 'guided-course', 'pack', 'pack-bundle', 'song-tutorial'];
|
|
@@ -222,7 +223,7 @@ export const progressTypesMapping = {
|
|
|
222
223
|
'guided course': ['guided-course'],
|
|
223
224
|
'pack': ['pack', 'semester-pack'],
|
|
224
225
|
'method': ['learning-path'],
|
|
225
|
-
'jam track':
|
|
226
|
+
'jam track': jamTrackLessonTypes,
|
|
226
227
|
'course video': ['course-part'],
|
|
227
228
|
};
|
|
228
229
|
|
|
@@ -235,7 +236,7 @@ export const songs = {
|
|
|
235
236
|
|
|
236
237
|
export const filterTypes = {
|
|
237
238
|
lessons: [...individualLessonsTypes, ...collectionLessonTypes],
|
|
238
|
-
songs: [...tutorialsLessonTypes, ...transcriptionsLessonTypes, ...playAlongLessonTypes,
|
|
239
|
+
songs: [...tutorialsLessonTypes, ...transcriptionsLessonTypes, ...playAlongLessonTypes, ...jamTrackLessonTypes],
|
|
239
240
|
}
|
|
240
241
|
|
|
241
242
|
export const recentTypes = {
|
|
@@ -802,6 +803,9 @@ export function filtersToGroq(filters, selectedFilters = [], pageName = '') {
|
|
|
802
803
|
} else if(value.toLowerCase() === Tabs.PlayAlongs.name.toLowerCase()){
|
|
803
804
|
const conditions = playAlongLessonTypes.map(lessonType => `_type == '${lessonType}'`).join(' || ');
|
|
804
805
|
return ` (${conditions})`;
|
|
806
|
+
} else if(value.toLowerCase() === Tabs.JamTracks.name.toLowerCase()){
|
|
807
|
+
const conditions = jamTrackLessonTypes.map(lessonType => `_type == '${lessonType}'`).join(' || ');
|
|
808
|
+
return ` (${conditions})`;
|
|
805
809
|
} else if(value.toLowerCase() === Tabs.ExploreAll.name.toLowerCase()){
|
|
806
810
|
var allLessons = filterTypes[pageName] || [];
|
|
807
811
|
const conditions = allLessons.map(lessonType => `_type == '${lessonType}'`).join(' || ');
|
package/src/filterBuilder.js
CHANGED
|
@@ -21,6 +21,7 @@ export class FilterBuilder {
|
|
|
21
21
|
isSingle = false,
|
|
22
22
|
allowsPullSongsContent = true,
|
|
23
23
|
isChildrenFilter = false,
|
|
24
|
+
isParentFilter = false,
|
|
24
25
|
} = {}
|
|
25
26
|
) {
|
|
26
27
|
this.availableContentStatuses = availableContentStatuses
|
|
@@ -35,7 +36,17 @@ export class FilterBuilder {
|
|
|
35
36
|
this.filter = filter
|
|
36
37
|
// this.debug = process.env.DEBUG === 'true' || false;
|
|
37
38
|
this.debug = false
|
|
38
|
-
this.prefix = isChildrenFilter
|
|
39
|
+
this.prefix = this.getPrefix(isParentFilter, isChildrenFilter)
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
getPrefix(isParentFilter, isChildrenFilter) {
|
|
43
|
+
if (isParentFilter) {
|
|
44
|
+
return '^.'
|
|
45
|
+
} else if (isChildrenFilter) {
|
|
46
|
+
return '@->'
|
|
47
|
+
} else {
|
|
48
|
+
return ''
|
|
49
|
+
}
|
|
39
50
|
}
|
|
40
51
|
|
|
41
52
|
static withOnlyFilterAvailableStatuses(filter, availableContentStatuses, bypassPermissions) {
|
package/src/index.d.ts
CHANGED
|
@@ -44,7 +44,8 @@ import {
|
|
|
44
44
|
} from './services/content.js';
|
|
45
45
|
|
|
46
46
|
import {
|
|
47
|
-
addContextToContent
|
|
47
|
+
addContextToContent,
|
|
48
|
+
getNavigateToForPlaylists
|
|
48
49
|
} from './services/contentAggregator.js';
|
|
49
50
|
|
|
50
51
|
import {
|
|
@@ -61,6 +62,7 @@ import {
|
|
|
61
62
|
getAllStarted,
|
|
62
63
|
getAllStartedOrCompleted,
|
|
63
64
|
getLastInteractedOf,
|
|
65
|
+
getNavigateTo,
|
|
64
66
|
getNextLesson,
|
|
65
67
|
getProgressDateByIds,
|
|
66
68
|
getProgressPercentage,
|
|
@@ -143,6 +145,7 @@ import {
|
|
|
143
145
|
postContentComplete,
|
|
144
146
|
postContentLiked,
|
|
145
147
|
postContentReset,
|
|
148
|
+
postContentRestore,
|
|
146
149
|
postContentUnliked,
|
|
147
150
|
postPlaylistContentEngaged,
|
|
148
151
|
postRecordWatchSession,
|
|
@@ -254,6 +257,7 @@ import {
|
|
|
254
257
|
markNotificationAsRead,
|
|
255
258
|
markNotificationAsUnread,
|
|
256
259
|
pauseLiveEventPolling,
|
|
260
|
+
restoreNotification,
|
|
257
261
|
startLiveEventPolling,
|
|
258
262
|
updateNotificationSetting
|
|
259
263
|
} from './services/user/notifications.js';
|
|
@@ -292,6 +296,7 @@ import {
|
|
|
292
296
|
recordUserPractice,
|
|
293
297
|
removeUserPractice,
|
|
294
298
|
restorePracticeSession,
|
|
299
|
+
restoreUserActivity,
|
|
295
300
|
restoreUserPractice,
|
|
296
301
|
unpinProgressRow,
|
|
297
302
|
updatePracticeNotes,
|
|
@@ -423,6 +428,8 @@ declare module 'musora-content-services' {
|
|
|
423
428
|
getLastInteractedOf,
|
|
424
429
|
getLessonContentRows,
|
|
425
430
|
getMonday,
|
|
431
|
+
getNavigateTo,
|
|
432
|
+
getNavigateToForPlaylists,
|
|
426
433
|
getNewAndUpcoming,
|
|
427
434
|
getNextLesson,
|
|
428
435
|
getPracticeNotes,
|
|
@@ -477,6 +484,7 @@ declare module 'musora-content-services' {
|
|
|
477
484
|
postContentComplete,
|
|
478
485
|
postContentLiked,
|
|
479
486
|
postContentReset,
|
|
487
|
+
postContentRestore,
|
|
480
488
|
postContentUnliked,
|
|
481
489
|
postPlaylistContentEngaged,
|
|
482
490
|
postRecordWatchSession,
|
|
@@ -496,7 +504,9 @@ declare module 'musora-content-services' {
|
|
|
496
504
|
resetPassword,
|
|
497
505
|
restoreComment,
|
|
498
506
|
restoreItemFromPlaylist,
|
|
507
|
+
restoreNotification,
|
|
499
508
|
restorePracticeSession,
|
|
509
|
+
restoreUserActivity,
|
|
500
510
|
restoreUserPractice,
|
|
501
511
|
sendAccountSetupEmail,
|
|
502
512
|
sendPasswordResetEmail,
|
package/src/index.js
CHANGED
|
@@ -44,7 +44,8 @@ import {
|
|
|
44
44
|
} from './services/content.js';
|
|
45
45
|
|
|
46
46
|
import {
|
|
47
|
-
addContextToContent
|
|
47
|
+
addContextToContent,
|
|
48
|
+
getNavigateToForPlaylists
|
|
48
49
|
} from './services/contentAggregator.js';
|
|
49
50
|
|
|
50
51
|
import {
|
|
@@ -61,6 +62,7 @@ import {
|
|
|
61
62
|
getAllStarted,
|
|
62
63
|
getAllStartedOrCompleted,
|
|
63
64
|
getLastInteractedOf,
|
|
65
|
+
getNavigateTo,
|
|
64
66
|
getNextLesson,
|
|
65
67
|
getProgressDateByIds,
|
|
66
68
|
getProgressPercentage,
|
|
@@ -129,9 +131,9 @@ import {
|
|
|
129
131
|
fetchNextContentDataForParent,
|
|
130
132
|
fetchRecentUserActivities,
|
|
131
133
|
fetchSongsInProgress,
|
|
134
|
+
fetchTopComment,
|
|
132
135
|
fetchUserAward,
|
|
133
136
|
fetchUserBadges,
|
|
134
|
-
fetchTopComment,
|
|
135
137
|
fetchUserLikes,
|
|
136
138
|
fetchUserPermissionsData,
|
|
137
139
|
fetchUserPracticeMeta,
|
|
@@ -143,6 +145,7 @@ import {
|
|
|
143
145
|
postContentComplete,
|
|
144
146
|
postContentLiked,
|
|
145
147
|
postContentReset,
|
|
148
|
+
postContentRestore,
|
|
146
149
|
postContentUnliked,
|
|
147
150
|
postPlaylistContentEngaged,
|
|
148
151
|
postRecordWatchSession,
|
|
@@ -254,6 +257,7 @@ import {
|
|
|
254
257
|
markNotificationAsRead,
|
|
255
258
|
markNotificationAsUnread,
|
|
256
259
|
pauseLiveEventPolling,
|
|
260
|
+
restoreNotification,
|
|
257
261
|
startLiveEventPolling,
|
|
258
262
|
updateNotificationSetting
|
|
259
263
|
} from './services/user/notifications.js';
|
|
@@ -292,6 +296,7 @@ import {
|
|
|
292
296
|
recordUserPractice,
|
|
293
297
|
removeUserPractice,
|
|
294
298
|
restorePracticeSession,
|
|
299
|
+
restoreUserActivity,
|
|
295
300
|
restoreUserPractice,
|
|
296
301
|
unpinProgressRow,
|
|
297
302
|
updatePracticeNotes,
|
|
@@ -422,6 +427,8 @@ export {
|
|
|
422
427
|
getLastInteractedOf,
|
|
423
428
|
getLessonContentRows,
|
|
424
429
|
getMonday,
|
|
430
|
+
getNavigateTo,
|
|
431
|
+
getNavigateToForPlaylists,
|
|
425
432
|
getNewAndUpcoming,
|
|
426
433
|
getNextLesson,
|
|
427
434
|
getPracticeNotes,
|
|
@@ -476,6 +483,7 @@ export {
|
|
|
476
483
|
postContentComplete,
|
|
477
484
|
postContentLiked,
|
|
478
485
|
postContentReset,
|
|
486
|
+
postContentRestore,
|
|
479
487
|
postContentUnliked,
|
|
480
488
|
postPlaylistContentEngaged,
|
|
481
489
|
postRecordWatchSession,
|
|
@@ -495,7 +503,9 @@ export {
|
|
|
495
503
|
resetPassword,
|
|
496
504
|
restoreComment,
|
|
497
505
|
restoreItemFromPlaylist,
|
|
506
|
+
restoreNotification,
|
|
498
507
|
restorePracticeSession,
|
|
508
|
+
restoreUserActivity,
|
|
499
509
|
restoreUserPractice,
|
|
500
510
|
sendAccountSetupEmail,
|
|
501
511
|
sendPasswordResetEmail,
|
|
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
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from './sanity.js'
|
|
16
16
|
import {TabResponseType, Tabs, capitalizeFirstLetter} from '../contentMetaData.js'
|
|
17
17
|
import {fetchHandler} from "./railcontent";
|
|
18
|
-
import {recommendations, rankCategories} from "./recommendations";
|
|
18
|
+
import {recommendations, rankCategories, rankItems} from "./recommendations";
|
|
19
19
|
import {addContextToContent} from "./contentAggregator.js";
|
|
20
20
|
|
|
21
21
|
|
|
@@ -85,12 +85,22 @@ export async function getTabResults(brand, pageName, tabName, {
|
|
|
85
85
|
addProgressStatus: true
|
|
86
86
|
})
|
|
87
87
|
} else {
|
|
88
|
-
let temp =
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
88
|
+
let temp = await fetchTabData(brand, pageName, { page, limit, sort, includedFields: mergedIncludedFields, progress: progressValue });
|
|
89
|
+
|
|
90
|
+
const [ranking, contextResults] = await Promise.all([
|
|
91
|
+
sort === 'recommended' ? rankItems(brand, temp.entity.map(e => e.railcontent_id)) : [],
|
|
92
|
+
addContextToContent(() => temp.entity, {
|
|
93
|
+
addNextLesson: true,
|
|
94
|
+
addNavigateTo: true,
|
|
95
|
+
addProgressPercentage: true,
|
|
96
|
+
addProgressStatus: true
|
|
97
|
+
})
|
|
98
|
+
]);
|
|
99
|
+
|
|
100
|
+
results = ranking.length === 0 ? contextResults : contextResults.sort((a, b) => {
|
|
101
|
+
const indexA = ranking.indexOf(a.railcontent_id);
|
|
102
|
+
const indexB = ranking.indexOf(b.railcontent_id);
|
|
103
|
+
return (indexA === -1 ? Infinity : indexA) - (indexB === -1 ? Infinity : indexB);
|
|
94
104
|
})
|
|
95
105
|
}
|
|
96
106
|
|
|
@@ -392,7 +402,7 @@ export async function getRecommendedForYou(brand, rowId = null, {
|
|
|
392
402
|
// Apply pagination before calling fetchByRailContentIds
|
|
393
403
|
const startIndex = (page - 1) * limit;
|
|
394
404
|
const paginatedData = data.slice(startIndex, startIndex + limit);
|
|
395
|
-
const contents = await addContextToContent(fetchByRailContentIds, paginatedData, 'tab-data',
|
|
405
|
+
const contents = await addContextToContent(fetchByRailContentIds, paginatedData, 'tab-data', brand, true,
|
|
396
406
|
{
|
|
397
407
|
addNextLesson: true,
|
|
398
408
|
addNavigateTo: true,
|