musora-content-services 1.0.152 → 1.0.154

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.
Files changed (49) hide show
  1. package/.github/workflows/node.js.yml +0 -0
  2. package/CHANGELOG.md +4 -0
  3. package/README.md +0 -0
  4. package/babel.config.js +0 -0
  5. package/docs/fonts/Montserrat/Montserrat-Bold.eot +0 -0
  6. package/docs/fonts/Montserrat/Montserrat-Bold.ttf +0 -0
  7. package/docs/fonts/Montserrat/Montserrat-Bold.woff +0 -0
  8. package/docs/fonts/Montserrat/Montserrat-Bold.woff2 +0 -0
  9. package/docs/fonts/Montserrat/Montserrat-Regular.eot +0 -0
  10. package/docs/fonts/Montserrat/Montserrat-Regular.ttf +0 -0
  11. package/docs/fonts/Montserrat/Montserrat-Regular.woff +0 -0
  12. package/docs/fonts/Montserrat/Montserrat-Regular.woff2 +0 -0
  13. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.eot +0 -0
  14. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.svg +0 -0
  15. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.ttf +0 -0
  16. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff +0 -0
  17. package/docs/fonts/Source-Sans-Pro/sourcesanspro-light-webfont.woff2 +0 -0
  18. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.eot +0 -0
  19. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.svg +0 -0
  20. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.ttf +0 -0
  21. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff +0 -0
  22. package/docs/fonts/Source-Sans-Pro/sourcesanspro-regular-webfont.woff2 +0 -0
  23. package/docs/scripts/collapse.js +0 -0
  24. package/docs/scripts/commonNav.js +0 -0
  25. package/docs/scripts/linenumber.js +0 -0
  26. package/docs/scripts/nav.js +0 -0
  27. package/docs/scripts/polyfill.js +0 -0
  28. package/docs/scripts/prettify/Apache-License-2.0.txt +0 -0
  29. package/docs/scripts/prettify/lang-css.js +0 -0
  30. package/docs/scripts/prettify/prettify.js +0 -0
  31. package/docs/scripts/search.js +0 -0
  32. package/docs/styles/jsdoc.css +0 -0
  33. package/docs/styles/prettify.css +0 -0
  34. package/jest.config.js +0 -0
  35. package/jsdoc.json +0 -0
  36. package/link_mcs.sh +0 -0
  37. package/package.json +1 -1
  38. package/src/contentMetaData.js +0 -0
  39. package/src/filterBuilder.js +0 -0
  40. package/src/index.d.ts +6 -2
  41. package/src/index.js +6 -2
  42. package/src/services/config.js +0 -0
  43. package/src/services/contentProgress.js +22 -4
  44. package/src/services/dataContext.js +2 -2
  45. package/src/services/railcontent.js +1 -1
  46. package/test/contentProgress.test.js +23 -1
  47. package/test/localStorageMock.js +0 -0
  48. package/test/log.js +0 -0
  49. package/tools/generate-index.js +0 -0
File without changes
package/CHANGELOG.md CHANGED
@@ -2,6 +2,10 @@
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
+ ### [1.0.154](https://github.com/railroadmedia/musora-content-services/compare/v1.0.153...v1.0.154) (2024-11-05)
6
+
7
+ ### [1.0.153](https://github.com/railroadmedia/musora-content-services/compare/v1.0.152...v1.0.153) (2024-11-05)
8
+
5
9
  ### [1.0.152](https://github.com/railroadmedia/musora-content-services/compare/v1.0.142...v1.0.152) (2024-11-05)
6
10
 
7
11
  ### [1.0.151](https://github.com/railroadmedia/musora-content-services/compare/v1.0.142...v1.0.151) (2024-11-05)
package/README.md CHANGED
File without changes
package/babel.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
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/jest.config.js CHANGED
File without changes
package/jsdoc.json CHANGED
File without changes
package/link_mcs.sh CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "1.0.152",
3
+ "version": "1.0.154",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
File without changes
File without changes
package/src/index.d.ts CHANGED
@@ -16,7 +16,9 @@ import {
16
16
  contentStatusReset,
17
17
  contentStatusStarted,
18
18
  getProgressPercentage,
19
+ getProgressPercentageByIds,
19
20
  getProgressState,
21
+ getProgressStateByIds,
20
22
  getResumeTimeSeconds,
21
23
  recordWatchSession
22
24
  } from './services/contentProgress.js';
@@ -48,12 +50,12 @@ import {
48
50
  fetchUserPlaylists,
49
51
  likePlaylist,
50
52
  postChallengesCommunityNotification,
53
+ postChallengesCompleteLesson,
51
54
  postChallengesEnroll,
52
55
  postChallengesEnrollmentNotification,
53
56
  postChallengesLeave,
54
57
  postChallengesSetStartDate,
55
58
  postChallengesUnlock,
56
- postCompleteLesson,
57
59
  postContentCompleted,
58
60
  postContentLiked,
59
61
  postContentReset,
@@ -190,7 +192,9 @@ declare module 'musora-content-services' {
190
192
  fetchUserPlaylists,
191
193
  fetchWorkouts,
192
194
  getProgressPercentage,
195
+ getProgressPercentageByIds,
193
196
  getProgressState,
197
+ getProgressStateByIds,
194
198
  getResumeTimeSeconds,
195
199
  getSortOrder,
196
200
  globalConfig,
@@ -199,12 +203,12 @@ declare module 'musora-content-services' {
199
203
  likeContent,
200
204
  likePlaylist,
201
205
  postChallengesCommunityNotification,
206
+ postChallengesCompleteLesson,
202
207
  postChallengesEnroll,
203
208
  postChallengesEnrollmentNotification,
204
209
  postChallengesLeave,
205
210
  postChallengesSetStartDate,
206
211
  postChallengesUnlock,
207
- postCompleteLesson,
208
212
  postContentCompleted,
209
213
  postContentLiked,
210
214
  postContentReset,
package/src/index.js CHANGED
@@ -16,7 +16,9 @@ import {
16
16
  contentStatusReset,
17
17
  contentStatusStarted,
18
18
  getProgressPercentage,
19
+ getProgressPercentageByIds,
19
20
  getProgressState,
21
+ getProgressStateByIds,
20
22
  getResumeTimeSeconds,
21
23
  recordWatchSession
22
24
  } from './services/contentProgress.js';
@@ -48,12 +50,12 @@ import {
48
50
  fetchUserPlaylists,
49
51
  likePlaylist,
50
52
  postChallengesCommunityNotification,
53
+ postChallengesCompleteLesson,
51
54
  postChallengesEnroll,
52
55
  postChallengesEnrollmentNotification,
53
56
  postChallengesLeave,
54
57
  postChallengesSetStartDate,
55
58
  postChallengesUnlock,
56
- postCompleteLesson,
57
59
  postContentCompleted,
58
60
  postContentLiked,
59
61
  postContentReset,
@@ -189,7 +191,9 @@ export {
189
191
  fetchUserPlaylists,
190
192
  fetchWorkouts,
191
193
  getProgressPercentage,
194
+ getProgressPercentageByIds,
192
195
  getProgressState,
196
+ getProgressStateByIds,
193
197
  getResumeTimeSeconds,
194
198
  getSortOrder,
195
199
  globalConfig,
@@ -198,12 +202,12 @@ export {
198
202
  likeContent,
199
203
  likePlaylist,
200
204
  postChallengesCommunityNotification,
205
+ postChallengesCompleteLesson,
201
206
  postChallengesEnroll,
202
207
  postChallengesEnrollmentNotification,
203
208
  postChallengesLeave,
204
209
  postChallengesSetStartDate,
205
210
  postChallengesUnlock,
206
- postCompleteLesson,
207
211
  postContentCompleted,
208
212
  postContentLiked,
209
213
  postContentReset,
File without changes
@@ -13,16 +13,34 @@ const STATE_COMPLETED = 'completed';
13
13
  const DATA_KEY_STATUS = 's';
14
14
  const DATA_KEY_PROGRESS = 'p';
15
15
  const DATA_KEY_RESUME_TIME = 't';
16
- export let dataContext = new DataContext(ContentProgressVersionKey, fetchContentProgress());
16
+ export let dataContext = new DataContext(ContentProgressVersionKey, fetchContentProgress);
17
17
 
18
18
  export async function getProgressPercentage(contentId) {
19
19
  let data = await dataContext.getData();
20
20
  return data[contentId]?.[DATA_KEY_PROGRESS] ?? 0;
21
21
  }
22
22
 
23
+ export async function getProgressPercentageByIds(contentIds) {
24
+ const data = await dataContext.getData();
25
+ let progress = {};
26
+
27
+ contentIds?.forEach(id => progress[id] = data[id]?.[DATA_KEY_PROGRESS] ?? 0);
28
+
29
+ return progress;
30
+ }
31
+
23
32
  export async function getProgressState(contentId) {
24
33
  let data = await dataContext.getData();
25
- return data[contentId]?.[DATA_KEY_STATUS] ?? 0;
34
+ return data[contentId]?.[DATA_KEY_STATUS] ?? "";
35
+ }
36
+
37
+ export async function getProgressStateByIds(contentIds) {
38
+ const data = await dataContext.getData();
39
+ let progress = {};
40
+
41
+ contentIds?.forEach(id => progress[id] = data[id]?.[DATA_KEY_STATUS] ?? "");
42
+
43
+ return progress;
26
44
  }
27
45
 
28
46
  export async function getResumeTimeSeconds(contentId) {
@@ -68,8 +86,8 @@ function completeStatusInLocalContext(contentId, localContext, hierarchy) {
68
86
  localContext.data[contentId] = data;
69
87
 
70
88
  let children = hierarchy.children[contentId] ?? [];
71
- for(let i = 0; i < children.length; i++) {
72
- let childId = children[i];
89
+ for (let i = 0; i < children.length; i++) {
90
+ let childId = children[i];
73
91
  completeStatusInLocalContext(childId, localContext, hierarchy);
74
92
  }
75
93
  }
@@ -19,8 +19,8 @@ export class DataContext {
19
19
  constructor(dataVersionKey, fetchDataFunction) {
20
20
  this.dataVersionKey = dataVersionKey;
21
21
  this.fetchDataFunction = fetchDataFunction;
22
- this.localStorageKey = `dataContext_${this.dataVersionKey}`;
23
- this.localStorageLastUpdatedKey = `dataContext_${this.dataVersionKey}_lastUpdated`;
22
+ this.localStorageKey = `dataContext_${this.dataVersionKey.toString()}`;
23
+ this.localStorageLastUpdatedKey = `dataContext_${this.dataVersionKey.toString()}_lastUpdated`;
24
24
  }
25
25
 
26
26
  async getData() {
@@ -454,7 +454,7 @@ export async function postChallengesCommunityNotification(contentId) {
454
454
  * @param {int|string} contentId - railcontent id of the challenge
455
455
  * @returns {Promise<any|null>} - Modal data to display
456
456
  */
457
- export async function postCompleteLesson(contentId) {
457
+ export async function postChallengesCompleteLesson(contentId) {
458
458
  let url = `/challenges/complete_lesson/${contentId}`;
459
459
  return await fetchHandler(url, 'post');
460
460
  }
@@ -1,4 +1,9 @@
1
- import {getProgressPercentage, dataContext, recordWatchSession} from "../src/services/contentProgress";
1
+ import {
2
+ getProgressPercentage,
3
+ dataContext,
4
+ recordWatchSession,
5
+ getProgressPercentageByIds, getProgressState, getProgressStateByIds
6
+ } from "../src/services/contentProgress";
2
7
  import {initializeTestService} from "./sanityQueryService.test";
3
8
 
4
9
  const railContentModule = require('../src/services/railcontent.js')
@@ -20,11 +25,28 @@ describe('contentProgressDataContext', function () {
20
25
  expect(result).toBe(6);
21
26
  });
22
27
 
28
+ test('getProgressPercentageByIds', async () => {
29
+ let result = await getProgressPercentageByIds([234191, 111111]);
30
+ expect(result[234191]).toBe(6);
31
+ expect(result[111111]).toBe(0);
32
+ });
33
+
23
34
  test('getProgressPercentage_notExists', async () => {
24
35
  let result = await getProgressPercentage(111111);
25
36
  expect(result).toBe(0);
26
37
  });
27
38
 
39
+ test('getProgressState', async () => {
40
+ let result = await getProgressState(234191);
41
+ expect(result).toBe("started");
42
+ });
43
+
44
+ test('getProgressStateByIds', async () => {
45
+ let result = await getProgressStateByIds([234191, 120402]);
46
+ expect(result[234191]).toBe("started");
47
+ expect(result[120402]).toBe("");
48
+ });
49
+
28
50
  test('progressBubbling', async () => {
29
51
  let mock2 = jest.spyOn(railContentModule, 'postRecordWatchSession');
30
52
  let serverVersion = 2;
File without changes
package/test/log.js CHANGED
File without changes
File without changes