musora-content-services 2.120.0 → 2.122.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 +6 -9
- package/.coderabbit.yaml +0 -0
- package/.editorconfig +0 -0
- package/.github/pull_request_template.md +0 -0
- package/.github/workflows/docs.js.yml +0 -0
- package/.yarnrc.yml +1 -0
- package/CHANGELOG.md +33 -0
- package/CLAUDE.md +0 -0
- package/README.md +0 -0
- package/babel.config.cjs +0 -0
- package/check_content.js +30 -0
- package/check_content.mjs +32 -0
- package/jsdoc.json +0 -0
- package/package.json +1 -1
- package/src/constants/award-assets.js +0 -0
- package/src/constants/membership-permissions.ts +0 -0
- package/src/contentMetaData.js +36 -0
- package/src/contentTypeConfig.js +32 -5
- package/src/filterBuilder.js +0 -0
- 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 +0 -0
- package/src/lib/ads/monoid.ts +0 -0
- package/src/lib/ads/semigroup.ts +0 -0
- package/src/lib/brands.ts +0 -0
- package/src/lib/lastUpdated.js +0 -0
- package/src/lib/sanity/filter.ts +0 -0
- package/src/lib/sanity/query.ts +0 -0
- package/src/services/api/types.js +0 -0
- package/src/services/api/types.ts +0 -0
- package/src/services/awards/award-callbacks.js +0 -0
- package/src/services/awards/award-query.js +0 -0
- package/src/services/awards/internal/.indexignore +0 -0
- package/src/services/awards/internal/award-definitions.js +0 -0
- package/src/services/awards/internal/award-events.js +0 -0
- package/src/services/awards/internal/award-manager.js +0 -0
- package/src/services/awards/internal/certificate-builder.js +0 -0
- package/src/services/awards/internal/completion-data-generator.js +0 -0
- package/src/services/awards/internal/content-progress-observer.js +0 -0
- package/src/services/awards/internal/image-utils.js +0 -0
- package/src/services/awards/internal/message-generator.js +0 -0
- package/src/services/awards/internal/types.js +0 -0
- package/src/services/awards/types.d.ts +0 -0
- package/src/services/awards/types.js +0 -0
- package/src/services/config.js +0 -0
- package/src/services/content/artist.ts +0 -0
- package/src/services/content/content.ts +0 -0
- package/src/services/content/genre.ts +0 -0
- package/src/services/content/instructor.ts +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/learning-paths.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/forums.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/liveTesting.ts +0 -0
- package/src/services/permissions/PermissionsAdapter.ts +0 -0
- package/src/services/permissions/PermissionsAdapterFactory.ts +0 -0
- package/src/services/permissions/PermissionsV1Adapter.ts +0 -0
- package/src/services/permissions/PermissionsV2Adapter.ts +0 -0
- package/src/services/permissions/README.md +0 -0
- package/src/services/permissions/index.ts +0 -0
- package/src/services/progress-events.js +0 -0
- package/src/services/progress-row/base.js +0 -0
- package/src/services/progress-row/rows/.indexignore +0 -0
- package/src/services/progress-row/rows/content-card.js +0 -0
- package/src/services/progress-row/rows/method-card.js +0 -0
- package/src/services/progress-row/rows/playlist-card.js +0 -0
- package/src/services/railcontent.js +0 -0
- package/src/services/recommendations.js +0 -0
- package/src/services/reporting/README.md +0 -0
- package/src/services/reporting/reporting.ts +0 -0
- package/src/services/reporting/types.ts +0 -0
- package/src/services/sanity.js +25 -52
- package/src/services/sentry/.indexignore +0 -0
- package/src/services/sentry/index.ts +0 -0
- package/src/services/sync/.indexignore +0 -0
- package/src/services/sync/adapters/factory.ts +0 -0
- package/src/services/sync/adapters/lokijs.ts +0 -0
- package/src/services/sync/adapters/sqlite.ts +0 -0
- package/src/services/sync/context/index.ts +0 -0
- package/src/services/sync/context/providers/base.ts +0 -0
- package/src/services/sync/context/providers/connectivity.ts +0 -0
- package/src/services/sync/context/providers/durability.ts +0 -0
- package/src/services/sync/context/providers/index.ts +0 -0
- package/src/services/sync/context/providers/session.ts +0 -0
- package/src/services/sync/context/providers/tabs.ts +0 -0
- package/src/services/sync/context/providers/visibility.ts +0 -0
- package/src/services/sync/database/factory.ts +0 -0
- package/src/services/sync/effects/index.ts +0 -0
- package/src/services/sync/effects/logout-warning.ts +0 -0
- package/src/services/sync/errors/boundary.ts +0 -0
- package/src/services/sync/errors/index.ts +0 -0
- package/src/services/sync/errors/validators.ts +0 -0
- package/src/services/sync/fetch.ts +0 -0
- package/src/services/sync/index.ts +0 -0
- package/src/services/sync/manager.ts +0 -0
- package/src/services/sync/models/Base.ts +0 -0
- package/src/services/sync/models/ContentLike.ts +0 -0
- package/src/services/sync/models/ContentProgress.ts +0 -0
- package/src/services/sync/models/Practice.ts +0 -0
- package/src/services/sync/models/PracticeDayNote.ts +0 -0
- package/src/services/sync/models/UserAwardProgress.ts +0 -0
- package/src/services/sync/models/index.ts +0 -0
- package/src/services/sync/repositories/base.ts +0 -0
- package/src/services/sync/repositories/content-likes.ts +0 -0
- package/src/services/sync/repositories/content-progress.ts +0 -0
- package/src/services/sync/repositories/index.ts +0 -0
- package/src/services/sync/repositories/practice-day-notes.ts +0 -0
- package/src/services/sync/repositories/practices.ts +0 -0
- package/src/services/sync/repositories/user-award-progress.ts +0 -0
- package/src/services/sync/repository-proxy.ts +0 -0
- package/src/services/sync/resolver.ts +0 -0
- package/src/services/sync/retry.ts +0 -0
- package/src/services/sync/run-scope.ts +0 -0
- package/src/services/sync/schema/index.ts +0 -0
- package/src/services/sync/serializers/index.ts +0 -0
- package/src/services/sync/serializers/model.ts +0 -0
- package/src/services/sync/serializers/raw.ts +0 -0
- package/src/services/sync/store/index.ts +0 -0
- package/src/services/sync/store/push-coalescer.ts +0 -0
- package/src/services/sync/store-configs.ts +0 -0
- package/src/services/sync/strategies/base.ts +0 -0
- package/src/services/sync/strategies/index.ts +0 -0
- package/src/services/sync/strategies/initial.ts +0 -0
- package/src/services/sync/strategies/polling.ts +0 -0
- package/src/services/sync/telemetry/flood-prevention.ts +0 -0
- package/src/services/sync/telemetry/index.ts +0 -0
- package/src/services/sync/telemetry/sampling.ts +0 -0
- package/src/services/sync/utils/event-emitter.ts +0 -0
- package/src/services/sync/utils/index.ts +0 -0
- package/src/services/sync/utils/throttle.ts +0 -0
- package/src/services/sync/utils/timers.ts +0 -0
- package/src/services/types.js +0 -0
- package/src/services/urlBuilder.ts +0 -0
- package/src/services/user/account.ts +5 -1
- package/src/services/user/chat.js +0 -0
- package/src/services/user/interests.js +0 -0
- package/src/services/user/management.js +11 -3
- 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/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.d.ts +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/awards/award-alacarte-observer.test.js +0 -0
- package/test/awards/award-auto-refresh.test.js +0 -0
- package/test/awards/award-calculations.test.js +0 -0
- package/test/awards/award-certificate-display.test.js +0 -0
- package/test/awards/award-collection-edge-cases.test.js +0 -0
- package/test/awards/award-collection-filtering.test.js +0 -0
- package/test/awards/award-completion-flow.test.js +0 -0
- package/test/awards/award-exclusion-handling.test.js +0 -0
- package/test/awards/award-multi-lesson.test.js +0 -0
- package/test/awards/award-observer-integration.test.js +0 -0
- package/test/awards/award-query-messages.test.js +0 -0
- package/test/awards/award-user-collection.test.js +0 -0
- package/test/awards/duplicate-prevention.test.js +0 -0
- package/test/awards/helpers/completion-mock.js +0 -0
- package/test/awards/helpers/index.js +0 -0
- package/test/awards/helpers/mock-setup.js +0 -0
- package/test/awards/helpers/progress-emitter.js +0 -0
- package/test/awards/message-generator.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/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/learningPaths.test.js +0 -0
- package/test/lib/__snapshots__/filter.test.ts.snap +0 -0
- package/test/lib/filter.test.ts +0 -0
- package/test/lib/lastUpdated.test.js +0 -0
- package/test/lib/query.test.ts +0 -0
- package/test/live/contentProgressLive.test.js +0 -0
- package/test/live/railcontentLive.test.js +0 -0
- package/test/logout.test.js +199 -0
- package/test/mockData/award-definitions.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/reporting.test.js +132 -0
- package/test/sanityQueryService.test.js +0 -0
- package/test/streakMessage.test.js +0 -0
- package/test/sync/adapter.ts +0 -0
- package/test/sync/initialize-sync-manager.js +0 -0
- package/test/sync/models/award-database-integration.test.js +0 -0
- package/test/user/permissions.test.js +0 -0
- package/test/userActivity.test.js +0 -0
- package/test_owned_navigate.js +74 -0
- package/tools/generate-index.cjs +0 -0
- package/tsconfig.json +17 -0
|
@@ -1,17 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"permissions": {
|
|
3
3
|
"allow": [
|
|
4
|
+
"Read(//app/musora-platform-backend/**)",
|
|
5
|
+
"Read(//app/musora-platform-frontend/**)",
|
|
4
6
|
"Bash(find:*)",
|
|
5
|
-
"Bash(
|
|
6
|
-
"
|
|
7
|
-
"WebSearch",
|
|
8
|
-
"WebFetch(domain:watermelondb.dev)",
|
|
9
|
-
"WebFetch(domain:github.com)",
|
|
10
|
-
"Bash(git checkout:*)",
|
|
11
|
-
"Bash(npm run doc:*)",
|
|
7
|
+
"Bash(sed:*)",
|
|
8
|
+
"Read(//app/**)",
|
|
12
9
|
"Bash(cat:*)",
|
|
13
|
-
"Bash(
|
|
14
|
-
"Bash(npm
|
|
10
|
+
"Bash(docker exec:*)",
|
|
11
|
+
"Bash(npm config:*)"
|
|
15
12
|
],
|
|
16
13
|
"deny": [],
|
|
17
14
|
"ask": []
|
package/.coderabbit.yaml
CHANGED
|
File without changes
|
package/.editorconfig
CHANGED
|
File without changes
|
|
File without changes
|
|
File without changes
|
package/.yarnrc.yml
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
nodeLinker: node-modules
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,39 @@
|
|
|
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.122.0](https://github.com/railroadmedia/musora-content-services/compare/v2.118.1...v2.122.0) (2026-01-22)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* add fetchLiveStreamData method ([aa9b704](https://github.com/railroadmedia/musora-content-services/commit/aa9b7046c7fc69e8b30c0f035577da62f8c5b5fd))
|
|
11
|
+
* add vimeo_live_event_id to GROQ queries ([d4fff6f](https://github.com/railroadmedia/musora-content-services/commit/d4fff6f09ca62682f6cead7e43f6979a56b86e0a))
|
|
12
|
+
* adds restore methods (for progress deletion undo) ([#705](https://github.com/railroadmedia/musora-content-services/issues/705)) ([b01a718](https://github.com/railroadmedia/musora-content-services/commit/b01a71892175b38789d62fffac0ce5f8e2e4513d))
|
|
13
|
+
* **TP-1060:** method data caching in mcs ([#701](https://github.com/railroadmedia/musora-content-services/issues/701)) ([25efc43](https://github.com/railroadmedia/musora-content-services/commit/25efc43b6c07172db2f20d51d5b79ac9fc204eef))
|
|
14
|
+
* update brand endpoint ([#719](https://github.com/railroadmedia/musora-content-services/issues/719)) ([4938b61](https://github.com/railroadmedia/musora-content-services/commit/4938b61c8526e31194b284c6daf172764b7900ed))
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### Bug Fixes
|
|
18
|
+
|
|
19
|
+
* adds live_global_event field where live_event_stream_id is returned ([#708](https://github.com/railroadmedia/musora-content-services/issues/708)) ([23c58f4](https://github.com/railroadmedia/musora-content-services/commit/23c58f42da866cd1035276c62c773b82c09d3aa5))
|
|
20
|
+
* better logs in Sentry for debugging ([#712](https://github.com/railroadmedia/musora-content-services/issues/712)) ([e1019b5](https://github.com/railroadmedia/musora-content-services/commit/e1019b50b0cf606b86e71028db0a2f9ac354cfca))
|
|
21
|
+
* remove unsupported collection types ([#713](https://github.com/railroadmedia/musora-content-services/issues/713)) ([0441941](https://github.com/railroadmedia/musora-content-services/commit/04419413ffea82303258b839c8e1e11b3a4c507a))
|
|
22
|
+
* **T3PS-1347:** Implement WatermelonDB-based streak calculator with year boundary fix ([916a8ef](https://github.com/railroadmedia/musora-content-services/commit/916a8ef532a858f82a8133d1725ad69ea3d550e9))
|
|
23
|
+
|
|
24
|
+
### [2.121.2](https://github.com/railroadmedia/musora-content-services/compare/v2.121.1...v2.121.2) (2026-01-20)
|
|
25
|
+
|
|
26
|
+
### [2.121.1](https://github.com/railroadmedia/musora-content-services/compare/v2.121.0...v2.121.1) (2026-01-20)
|
|
27
|
+
|
|
28
|
+
## [2.121.0](https://github.com/railroadmedia/musora-content-services/compare/v2.119.3...v2.121.0) (2026-01-20)
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
### Features
|
|
32
|
+
|
|
33
|
+
* add fetchLiveStreamData method ([aa9b704](https://github.com/railroadmedia/musora-content-services/commit/aa9b7046c7fc69e8b30c0f035577da62f8c5b5fd))
|
|
34
|
+
* add vimeo_live_event_id to GROQ queries ([d4fff6f](https://github.com/railroadmedia/musora-content-services/commit/d4fff6f09ca62682f6cead7e43f6979a56b86e0a))
|
|
35
|
+
* **TP-1060:** method data caching in mcs ([#701](https://github.com/railroadmedia/musora-content-services/issues/701)) ([25efc43](https://github.com/railroadmedia/musora-content-services/commit/25efc43b6c07172db2f20d51d5b79ac9fc204eef))
|
|
36
|
+
* update brand endpoint ([#719](https://github.com/railroadmedia/musora-content-services/issues/719)) ([4938b61](https://github.com/railroadmedia/musora-content-services/commit/4938b61c8526e31194b284c6daf172764b7900ed))
|
|
37
|
+
|
|
5
38
|
## [2.120.0](https://github.com/railroadmedia/musora-content-services/compare/v2.119.3...v2.120.0) (2026-01-19)
|
|
6
39
|
|
|
7
40
|
|
package/CLAUDE.md
CHANGED
|
File without changes
|
package/README.md
CHANGED
|
File without changes
|
package/babel.config.cjs
CHANGED
|
File without changes
|
package/check_content.js
ADDED
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
const { initializeService } = require('./src/services/config.js');
|
|
2
|
+
const { fetchByRailContentIds } = require('./src/services/sanity.js');
|
|
3
|
+
require('dotenv/config');
|
|
4
|
+
|
|
5
|
+
async function checkContent() {
|
|
6
|
+
initializeService({
|
|
7
|
+
sanityConfig: {
|
|
8
|
+
token: process.env.SANITY_TOKEN,
|
|
9
|
+
projectId: process.env.SANITY_PROJECT_ID,
|
|
10
|
+
dataset: process.env.SANITY_DATASET,
|
|
11
|
+
version: process.env.SANITY_VERSION || '2021-06-07',
|
|
12
|
+
},
|
|
13
|
+
railcontentConfig: {
|
|
14
|
+
token: process.env.RAILCONTENT_TOKEN,
|
|
15
|
+
userId: process.env.RAILCONTENT_USER_ID,
|
|
16
|
+
baseUrl: process.env.RAILCONTENT_BASE_URL,
|
|
17
|
+
authToken: process.env.RAILCONTENT_AUTH_TOKEN,
|
|
18
|
+
},
|
|
19
|
+
baseUrl: process.env.RAILCONTENT_BASE_URL,
|
|
20
|
+
localStorage: null,
|
|
21
|
+
isMA: false,
|
|
22
|
+
});
|
|
23
|
+
|
|
24
|
+
console.log('Checking railcontent_id: 421814');
|
|
25
|
+
const contents = await fetchByRailContentIds([421814]);
|
|
26
|
+
console.log('Results:', JSON.stringify(contents, null, 2));
|
|
27
|
+
console.log('Found:', contents.length, 'items');
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
checkContent().catch(console.error);
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { initializeService } from './src/services/config.js';
|
|
2
|
+
import { fetchByRailContentIds } from './src/services/sanity.js';
|
|
3
|
+
import dotenv from 'dotenv';
|
|
4
|
+
|
|
5
|
+
dotenv.config();
|
|
6
|
+
|
|
7
|
+
async function checkContent() {
|
|
8
|
+
initializeService({
|
|
9
|
+
sanityConfig: {
|
|
10
|
+
token: process.env.SANITY_TOKEN,
|
|
11
|
+
projectId: process.env.SANITY_PROJECT_ID,
|
|
12
|
+
dataset: process.env.SANITY_DATASET,
|
|
13
|
+
version: process.env.SANITY_VERSION || '2021-06-07',
|
|
14
|
+
},
|
|
15
|
+
railcontentConfig: {
|
|
16
|
+
token: process.env.RAILCONTENT_TOKEN,
|
|
17
|
+
userId: process.env.RAILCONTENT_USER_ID,
|
|
18
|
+
baseUrl: process.env.RAILCONTENT_BASE_URL,
|
|
19
|
+
authToken: process.env.RAILCONTENT_AUTH_TOKEN,
|
|
20
|
+
},
|
|
21
|
+
baseUrl: process.env.RAILCONTENT_BASE_URL,
|
|
22
|
+
localStorage: null,
|
|
23
|
+
isMA: false,
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
console.log('Checking railcontent_id: 421814');
|
|
27
|
+
const contents = await fetchByRailContentIds([421814]);
|
|
28
|
+
console.log('Results:', JSON.stringify(contents, null, 2));
|
|
29
|
+
console.log('Found:', contents.length, 'items');
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
checkContent().catch(console.error);
|
package/jsdoc.json
CHANGED
|
File without changes
|
package/package.json
CHANGED
|
File without changes
|
|
File without changes
|
package/src/contentMetaData.js
CHANGED
|
@@ -128,6 +128,7 @@ export class Tabs {
|
|
|
128
128
|
static SingleLessons = { name: 'Single Lessons', short_name: 'Single Lessons', value: 'type,Single Lessons', recSysSection: 'lesson', }
|
|
129
129
|
static SkillPacks = { name: 'Skill Packs', short_name: 'Skill Packs', value: 'type,Skill Packs', recSysSection: 'lesson', }
|
|
130
130
|
static Entertainment = { name: 'Entertainment', short_name: 'Entertainment', value: 'type,Entertainment', recSysSection: 'lesson', }
|
|
131
|
+
static Routines = { name: 'Routines', short_name: 'Routines', value: 'type,routine', recSysSection: 'lesson', }
|
|
131
132
|
}
|
|
132
133
|
|
|
133
134
|
/**
|
|
@@ -325,6 +326,41 @@ const contentMetadata = {
|
|
|
325
326
|
},
|
|
326
327
|
singeo: {
|
|
327
328
|
'songs-types': ['Tutorials', 'Sheet Music', 'Play-Alongs', 'Jam Tracks'],
|
|
329
|
+
lessons: {
|
|
330
|
+
name: 'Lessons',
|
|
331
|
+
filterOptions: {
|
|
332
|
+
difficulty: DIFFICULTY_STRINGS,
|
|
333
|
+
length: LengthFilterOptions.AllOptions,
|
|
334
|
+
style: [
|
|
335
|
+
'Country/Folk',
|
|
336
|
+
'Funk/Disco',
|
|
337
|
+
'Hard Rock/Metal',
|
|
338
|
+
'Hip-Hop/Rap/EDM',
|
|
339
|
+
'Holiday/Soundtrack',
|
|
340
|
+
'Jazz/Blues',
|
|
341
|
+
'Latin/World',
|
|
342
|
+
'Pop/Rock',
|
|
343
|
+
'R&B/Soul',
|
|
344
|
+
'Worship/Gospel',
|
|
345
|
+
],
|
|
346
|
+
type: LESSON_TYPE_FILTER,
|
|
347
|
+
progress: PROGRESS_NAMES,
|
|
348
|
+
},
|
|
349
|
+
sortingOptions: {
|
|
350
|
+
title: 'Sort By',
|
|
351
|
+
type: 'radio',
|
|
352
|
+
items: SortingOptions.AllSortingOptions,
|
|
353
|
+
},
|
|
354
|
+
tabs: [
|
|
355
|
+
Tabs.ForYou,
|
|
356
|
+
Tabs.SingleLessons,
|
|
357
|
+
Tabs.Courses,
|
|
358
|
+
Tabs.SkillPacks,
|
|
359
|
+
Tabs.Routines,
|
|
360
|
+
Tabs.Entertainment,
|
|
361
|
+
Tabs.ExploreAll,
|
|
362
|
+
],
|
|
363
|
+
},
|
|
328
364
|
},
|
|
329
365
|
}
|
|
330
366
|
|
package/src/contentTypeConfig.js
CHANGED
|
@@ -50,7 +50,7 @@ export const DEFAULT_FIELDS = [
|
|
|
50
50
|
"'image': thumbnail.asset->url",
|
|
51
51
|
"'thumbnail': thumbnail.asset->url",
|
|
52
52
|
'difficulty',
|
|
53
|
-
|
|
53
|
+
difficultyStringField(),
|
|
54
54
|
'published_on',
|
|
55
55
|
"'type': _type",
|
|
56
56
|
"'length_in_seconds' : coalesce(length_in_seconds, soundslice[0].soundslice_length_in_second)",
|
|
@@ -132,6 +132,23 @@ export const assignmentsField = `"assignments":assignment[]{
|
|
|
132
132
|
"description": coalesce(assignment_description,'')
|
|
133
133
|
},`
|
|
134
134
|
|
|
135
|
+
// todo: refactor live event queries to use this
|
|
136
|
+
export const liveFields = `
|
|
137
|
+
'slug': slug.current,
|
|
138
|
+
'id': railcontent_id,
|
|
139
|
+
title,
|
|
140
|
+
live_event_start_time,
|
|
141
|
+
live_event_end_time,
|
|
142
|
+
live_event_stream_id,
|
|
143
|
+
"live_event_is_global": live_global_event == true,
|
|
144
|
+
published_on,
|
|
145
|
+
"thumbnail": thumbnail.asset->url,
|
|
146
|
+
${artistOrInstructorName()},
|
|
147
|
+
difficulty_string,
|
|
148
|
+
"instructors": ${instructorField},
|
|
149
|
+
'videoId': coalesce(live_event_stream_id, video.external_id)
|
|
150
|
+
`
|
|
151
|
+
|
|
135
152
|
const contentWithInstructorsField = {
|
|
136
153
|
fields: ['"instructors": instructor[]->name'],
|
|
137
154
|
}
|
|
@@ -224,7 +241,7 @@ export const collectionLessonTypes = [...coursesLessonTypes, ...showsLessonTypes
|
|
|
224
241
|
|
|
225
242
|
export const lessonTypesMapping = {
|
|
226
243
|
lessons: singleLessonTypes,
|
|
227
|
-
'practice alongs': practiceAlongsLessonTypes,
|
|
244
|
+
'practice alongs': [ ...practiceAlongsLessonTypes, 'routine'],
|
|
228
245
|
'live archives': liveArchivesLessonTypes,
|
|
229
246
|
performances: performancesLessonTypes,
|
|
230
247
|
'student archives': studentArchivesLessonTypes,
|
|
@@ -250,6 +267,7 @@ export const lessonTypesMapping = {
|
|
|
250
267
|
...studentArchivesLessonTypes,
|
|
251
268
|
...practiceAlongsLessonTypes,
|
|
252
269
|
],
|
|
270
|
+
routines: ['routine']
|
|
253
271
|
}
|
|
254
272
|
|
|
255
273
|
export const getNextLessonLessonParentTypes = [
|
|
@@ -270,7 +288,8 @@ export const progressTypesMapping = {
|
|
|
270
288
|
...studentArchivesLessonTypes,
|
|
271
289
|
'documentary-lesson',
|
|
272
290
|
'live',
|
|
273
|
-
'course-lesson'
|
|
291
|
+
'course-lesson',
|
|
292
|
+
'routine'
|
|
274
293
|
],
|
|
275
294
|
course: ['course'],
|
|
276
295
|
show: showsLessonTypes,
|
|
@@ -302,6 +321,7 @@ export const filterTypes = {
|
|
|
302
321
|
...coursesLessonTypes,
|
|
303
322
|
...skillLessonTypes,
|
|
304
323
|
...entertainmentLessonTypes,
|
|
324
|
+
'routine'
|
|
305
325
|
],
|
|
306
326
|
songs: [
|
|
307
327
|
...tutorialsLessonTypes,
|
|
@@ -314,9 +334,12 @@ export const filterTypes = {
|
|
|
314
334
|
export const recentTypes = {
|
|
315
335
|
lessons: [
|
|
316
336
|
...individualLessonsTypes,
|
|
337
|
+
...skillLessonTypes,
|
|
338
|
+
...entertainmentLessonTypes,
|
|
317
339
|
'course-lesson',
|
|
318
340
|
'guided-course-lesson',
|
|
319
341
|
'quick-tips',
|
|
342
|
+
'routine'
|
|
320
343
|
],
|
|
321
344
|
songs: [...SONG_TYPES],
|
|
322
345
|
home: [
|
|
@@ -331,6 +354,7 @@ export const recentTypes = {
|
|
|
331
354
|
'live',
|
|
332
355
|
'course',
|
|
333
356
|
'course-collection',
|
|
357
|
+
'routine'
|
|
334
358
|
],
|
|
335
359
|
}
|
|
336
360
|
|
|
@@ -666,7 +690,7 @@ export function getNewReleasesTypes(brand) {
|
|
|
666
690
|
'quick-tips',
|
|
667
691
|
'workout',
|
|
668
692
|
'podcasts',
|
|
669
|
-
'
|
|
693
|
+
'course-collection',
|
|
670
694
|
'song',
|
|
671
695
|
'play-along',
|
|
672
696
|
'course',
|
|
@@ -703,7 +727,6 @@ export function getUpcomingEventsTypes(brand) {
|
|
|
703
727
|
'boot-camp',
|
|
704
728
|
'quick-tips',
|
|
705
729
|
'recording',
|
|
706
|
-
'pack-bundle-lesson',
|
|
707
730
|
]
|
|
708
731
|
switch (brand) {
|
|
709
732
|
case 'drumeo':
|
|
@@ -732,6 +755,10 @@ export function artistOrInstructorNameAsArray(key = 'artists') {
|
|
|
732
755
|
return `'${key}': select(artist->name != null => [artist->name], instructor[]->name)`
|
|
733
756
|
}
|
|
734
757
|
|
|
758
|
+
export function difficultyStringField(key = 'difficulty_string') {
|
|
759
|
+
return `'${key}': select(difficulty_string == 'Novice' => 'Introductory', difficulty_string)`
|
|
760
|
+
}
|
|
761
|
+
|
|
735
762
|
export async function getFieldsForContentTypeWithFilteredChildren(
|
|
736
763
|
contentType,
|
|
737
764
|
asQueryString = true
|
package/src/filterBuilder.js
CHANGED
|
File without changes
|
package/src/index.d.ts
CHANGED
|
@@ -351,6 +351,7 @@ import {
|
|
|
351
351
|
setUserSignature,
|
|
352
352
|
toggleSignaturePrivate,
|
|
353
353
|
unblockUser,
|
|
354
|
+
updateBrand,
|
|
354
355
|
updateDisplayName,
|
|
355
356
|
uploadPicture,
|
|
356
357
|
uploadPictureFromS3
|
|
@@ -724,6 +725,7 @@ declare module 'musora-content-services' {
|
|
|
724
725
|
unlockThread,
|
|
725
726
|
unpinProgressRow,
|
|
726
727
|
unpinThread,
|
|
728
|
+
updateBrand,
|
|
727
729
|
updateDailySession,
|
|
728
730
|
updateDisplayName,
|
|
729
731
|
updateForumCategory,
|
package/src/index.js
CHANGED
|
@@ -355,6 +355,7 @@ import {
|
|
|
355
355
|
setUserSignature,
|
|
356
356
|
toggleSignaturePrivate,
|
|
357
357
|
unblockUser,
|
|
358
|
+
updateBrand,
|
|
358
359
|
updateDisplayName,
|
|
359
360
|
uploadPicture,
|
|
360
361
|
uploadPictureFromS3
|
|
@@ -723,6 +724,7 @@ export {
|
|
|
723
724
|
unlockThread,
|
|
724
725
|
unpinProgressRow,
|
|
725
726
|
unpinThread,
|
|
727
|
+
updateBrand,
|
|
726
728
|
updateDailySession,
|
|
727
729
|
updateDisplayName,
|
|
728
730
|
updateForumCategory,
|
|
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/ads/monoid.ts
CHANGED
|
File without changes
|
package/src/lib/ads/semigroup.ts
CHANGED
|
File without changes
|
package/src/lib/brands.ts
CHANGED
|
File without changes
|
package/src/lib/lastUpdated.js
CHANGED
|
File without changes
|
package/src/lib/sanity/filter.ts
CHANGED
|
File without changes
|
package/src/lib/sanity/query.ts
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/config.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
|
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
|
|
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
|