musora-content-services 2.132.8 → 2.134.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.
Files changed (216) hide show
  1. package/.claude/settings.local.json +14 -0
  2. package/.coderabbit.yaml +0 -0
  3. package/.editorconfig +0 -0
  4. package/.github/pull_request_template.md +0 -0
  5. package/.github/workflows/conventional-commits.yaml +0 -0
  6. package/.github/workflows/docs.js.yml +0 -0
  7. package/.github/workflows/node.js.yml +0 -0
  8. package/.prettierignore +0 -0
  9. package/.prettierrc +0 -0
  10. package/CHANGELOG.md +23 -0
  11. package/CLAUDE.md +0 -0
  12. package/README.md +0 -0
  13. package/babel.config.cjs +0 -0
  14. package/jest.config.js +0 -0
  15. package/jsdoc.json +0 -0
  16. package/package.json +1 -1
  17. package/src/constants/award-assets.js +0 -0
  18. package/src/constants/membership-permissions.ts +0 -0
  19. package/src/contentMetaData.js +0 -0
  20. package/src/contentTypeConfig.js +7 -0
  21. package/src/filterBuilder.js +0 -0
  22. package/src/index.d.ts +0 -0
  23. package/src/index.js +0 -0
  24. package/src/infrastructure/http/HttpClient.ts +0 -0
  25. package/src/infrastructure/http/executors/FetchRequestExecutor.ts +0 -0
  26. package/src/infrastructure/http/index.ts +0 -0
  27. package/src/infrastructure/http/interfaces/HeaderProvider.ts +0 -0
  28. package/src/infrastructure/http/interfaces/HttpError.ts +0 -0
  29. package/src/infrastructure/http/interfaces/NetworkError.ts +0 -0
  30. package/src/infrastructure/http/interfaces/RequestExecutor.ts +0 -0
  31. package/src/infrastructure/http/interfaces/RequestOptions.ts +0 -0
  32. package/src/infrastructure/http/providers/DefaultHeaderProvider.ts +0 -0
  33. package/src/lib/ads/monoid.ts +0 -0
  34. package/src/lib/ads/semigroup.ts +0 -0
  35. package/src/lib/brands.ts +0 -0
  36. package/src/lib/lastUpdated.js +0 -0
  37. package/src/services/api/types.js +0 -0
  38. package/src/services/api/types.ts +0 -0
  39. package/src/services/awards/award-callbacks.js +2 -2
  40. package/src/services/awards/award-query.js +1 -0
  41. package/src/services/awards/internal/.indexignore +0 -0
  42. package/src/services/awards/internal/award-definitions.js +0 -0
  43. package/src/services/awards/internal/award-events.js +0 -0
  44. package/src/services/awards/internal/award-manager.js +0 -0
  45. package/src/services/awards/internal/certificate-builder.js +0 -0
  46. package/src/services/awards/internal/completion-data-generator.js +0 -0
  47. package/src/services/awards/internal/content-progress-observer.js +0 -0
  48. package/src/services/awards/internal/image-utils.js +0 -0
  49. package/src/services/awards/internal/message-generator.js +0 -0
  50. package/src/services/awards/internal/types.js +0 -0
  51. package/src/services/awards/types.d.ts +0 -0
  52. package/src/services/awards/types.js +0 -0
  53. package/src/services/config.js +0 -0
  54. package/src/services/content/artist.ts +1 -0
  55. package/src/services/content/content.ts +0 -0
  56. package/src/services/content/genre.ts +1 -0
  57. package/src/services/content/instructor.ts +1 -0
  58. package/src/services/content-org/content-org.js +0 -0
  59. package/src/services/content-org/guided-courses.ts +0 -0
  60. package/src/services/content-org/learning-paths.ts +0 -0
  61. package/src/services/content-org/playlists-types.js +0 -0
  62. package/src/services/content-org/playlists.js +0 -0
  63. package/src/services/content.js +0 -0
  64. package/src/services/contentAggregator.js +0 -0
  65. package/src/services/contentLikes.js +0 -0
  66. package/src/services/dataContext.js +0 -0
  67. package/src/services/dateUtils.js +0 -0
  68. package/src/services/eventsAPI.js +0 -0
  69. package/src/services/forums/categories.ts +0 -0
  70. package/src/services/forums/forums.ts +0 -0
  71. package/src/services/forums/posts.ts +0 -0
  72. package/src/services/forums/threads.ts +0 -0
  73. package/src/services/forums/types.ts +0 -0
  74. package/src/services/gamification/awards.ts +0 -0
  75. package/src/services/gamification/gamification.js +0 -0
  76. package/src/services/imageSRCBuilder.js +0 -0
  77. package/src/services/imageSRCVerify.js +0 -0
  78. package/src/services/liveTesting.ts +0 -0
  79. package/src/services/permissions/PermissionsAdapter.ts +0 -0
  80. package/src/services/permissions/PermissionsAdapterFactory.ts +0 -0
  81. package/src/services/permissions/PermissionsV1Adapter.ts +0 -0
  82. package/src/services/permissions/PermissionsV2Adapter.ts +0 -0
  83. package/src/services/permissions/README.md +0 -0
  84. package/src/services/permissions/index.ts +0 -0
  85. package/src/services/progress-events.js +0 -0
  86. package/src/services/progress-row/rows/.indexignore +0 -0
  87. package/src/services/progress-row/rows/content-card.js +0 -2
  88. package/src/services/progress-row/rows/method-card.js +0 -0
  89. package/src/services/progress-row/rows/playlist-card.js +0 -0
  90. package/src/services/recommendations.js +0 -0
  91. package/src/services/reporting/README.md +0 -0
  92. package/src/services/reporting/types.ts +0 -0
  93. package/src/services/sentry/.indexignore +0 -0
  94. package/src/services/sentry/index.ts +0 -0
  95. package/src/services/state.ts +0 -0
  96. package/src/services/sync/.indexignore +0 -0
  97. package/src/services/sync/adapters/factory.ts +0 -0
  98. package/src/services/sync/adapters/lokijs.ts +0 -0
  99. package/src/services/sync/adapters/sqlite.ts +0 -0
  100. package/src/services/sync/context/index.ts +0 -0
  101. package/src/services/sync/context/providers/base.ts +0 -0
  102. package/src/services/sync/context/providers/connectivity.ts +0 -0
  103. package/src/services/sync/context/providers/durability.ts +0 -0
  104. package/src/services/sync/context/providers/index.ts +0 -0
  105. package/src/services/sync/context/providers/session.ts +0 -0
  106. package/src/services/sync/context/providers/tabs.ts +0 -0
  107. package/src/services/sync/context/providers/visibility.ts +0 -0
  108. package/src/services/sync/database/factory.ts +0 -0
  109. package/src/services/sync/effects/index.ts +0 -0
  110. package/src/services/sync/effects/logout-warning.ts +0 -0
  111. package/src/services/sync/effects/push-failure-notification.ts +0 -0
  112. package/src/services/sync/errors/boundary.ts +0 -0
  113. package/src/services/sync/errors/index.ts +0 -0
  114. package/src/services/sync/errors/validators.ts +0 -0
  115. package/src/services/sync/manager.ts +0 -0
  116. package/src/services/sync/models/Base.ts +0 -0
  117. package/src/services/sync/models/ContentLike.ts +0 -0
  118. package/src/services/sync/models/ContentProgress.ts +0 -0
  119. package/src/services/sync/models/Practice.ts +0 -0
  120. package/src/services/sync/models/PracticeDayNote.ts +0 -0
  121. package/src/services/sync/models/UserAwardProgress.ts +0 -0
  122. package/src/services/sync/models/index.ts +0 -0
  123. package/src/services/sync/repositories/base.ts +0 -0
  124. package/src/services/sync/repositories/content-likes.ts +0 -0
  125. package/src/services/sync/repositories/index.ts +0 -0
  126. package/src/services/sync/repositories/practice-day-notes.ts +0 -0
  127. package/src/services/sync/repositories/practices.ts +0 -0
  128. package/src/services/sync/repositories/user-award-progress.ts +0 -0
  129. package/src/services/sync/repository-proxy.ts +0 -0
  130. package/src/services/sync/resolver.ts +0 -0
  131. package/src/services/sync/retry.ts +0 -0
  132. package/src/services/sync/run-scope.ts +0 -0
  133. package/src/services/sync/schema/index.ts +0 -0
  134. package/src/services/sync/serializers/index.ts +0 -0
  135. package/src/services/sync/serializers/model.ts +0 -0
  136. package/src/services/sync/serializers/raw.ts +0 -0
  137. package/src/services/sync/store/push-coalescer.ts +0 -0
  138. package/src/services/sync/store-configs.ts +0 -0
  139. package/src/services/sync/strategies/base.ts +0 -0
  140. package/src/services/sync/strategies/index.ts +0 -0
  141. package/src/services/sync/strategies/initial.ts +0 -0
  142. package/src/services/sync/strategies/polling.ts +0 -0
  143. package/src/services/sync/telemetry/flood-prevention.ts +0 -0
  144. package/src/services/sync/telemetry/index.ts +0 -0
  145. package/src/services/sync/telemetry/sampling.ts +0 -0
  146. package/src/services/sync/utils/event-emitter.ts +0 -0
  147. package/src/services/sync/utils/index.ts +0 -0
  148. package/src/services/sync/utils/throttle.ts +0 -0
  149. package/src/services/sync/utils/timers.ts +0 -0
  150. package/src/services/types.js +0 -0
  151. package/src/services/user/account.ts +0 -0
  152. package/src/services/user/chat.js +0 -0
  153. package/src/services/user/interests.js +0 -0
  154. package/src/services/user/management.js +0 -0
  155. package/src/services/user/memberships.ts +0 -0
  156. package/src/services/user/notifications.js +0 -0
  157. package/src/services/user/onboarding.ts +0 -0
  158. package/src/services/user/payments.ts +0 -0
  159. package/src/services/user/permissions.js +0 -0
  160. package/src/services/user/profile.js +0 -0
  161. package/src/services/user/sessions.js +0 -0
  162. package/src/services/user/streakCalculator.ts +0 -0
  163. package/src/services/user/types.d.ts +0 -0
  164. package/src/services/user/types.js +0 -0
  165. package/src/services/user/user-management-system.js +0 -0
  166. package/src/services/userActivity.js +0 -0
  167. package/test/HttpClient.test.js +0 -0
  168. package/test/awards/award-alacarte-observer.test.js +0 -0
  169. package/test/awards/award-auto-refresh.test.js +0 -0
  170. package/test/awards/award-calculations.test.js +0 -0
  171. package/test/awards/award-certificate-display.test.js +0 -0
  172. package/test/awards/award-collection-edge-cases.test.js +0 -0
  173. package/test/awards/award-collection-filtering.test.js +0 -0
  174. package/test/awards/award-completion-flow.test.js +0 -0
  175. package/test/awards/award-exclusion-handling.test.js +0 -0
  176. package/test/awards/award-multi-lesson.test.js +0 -0
  177. package/test/awards/award-observer-integration.test.js +0 -0
  178. package/test/awards/award-query-messages.test.js +0 -0
  179. package/test/awards/award-user-collection.test.js +0 -0
  180. package/test/awards/duplicate-prevention.test.js +0 -0
  181. package/test/awards/helpers/completion-mock.js +0 -0
  182. package/test/awards/helpers/index.js +0 -0
  183. package/test/awards/helpers/mock-setup.js +0 -0
  184. package/test/awards/helpers/progress-emitter.js +0 -0
  185. package/test/awards/message-generator.test.js +0 -0
  186. package/test/content.test.js +0 -0
  187. package/test/contentLikes.test.js +0 -0
  188. package/test/contentProgress.test.js +0 -0
  189. package/test/dataContext.test.js +0 -0
  190. package/test/forum.test.js +0 -0
  191. package/test/imageSRCBuilder.test.js +0 -0
  192. package/test/imageSRCVerify.test.js +0 -0
  193. package/test/initializeTests.js +0 -0
  194. package/test/learningPaths.test.js +0 -0
  195. package/test/lib/__snapshots__/filter.test.ts.snap +0 -0
  196. package/test/lib/filter.test.ts +0 -0
  197. package/test/lib/lastUpdated.test.js +0 -0
  198. package/test/live/contentProgressLive.test.js +0 -0
  199. package/test/live/railcontentLive.test.js +0 -0
  200. package/test/localStorageMock.js +0 -0
  201. package/test/log.js +0 -0
  202. package/test/mockData/award-definitions.js +0 -0
  203. package/test/mockData/mockData_fetchByRailContentIds_one_content.json +0 -0
  204. package/test/mockData/mockData_progress_content.json +0 -0
  205. package/test/mockData/mockData_sanity_progress_content.json +0 -0
  206. package/test/mockData/mockData_user_practices.json +0 -0
  207. package/test/notifications.test.js +0 -0
  208. package/test/progressRows.test.js +0 -0
  209. package/test/sanityQueryService.test.js +0 -0
  210. package/test/streakMessage.test.js +0 -0
  211. package/test/sync/adapter.ts +0 -0
  212. package/test/sync/initialize-sync-manager.js +0 -0
  213. package/test/sync/models/award-database-integration.test.js +0 -0
  214. package/test/user/permissions.test.js +0 -0
  215. package/test/userActivity.test.js +0 -0
  216. package/tools/generate-index.cjs +0 -0
@@ -0,0 +1,14 @@
1
+ {
2
+ "permissions": {
3
+ "allow": [
4
+ "Bash(tree:*)",
5
+ "Bash(find:*)",
6
+ "Bash(docker exec:*)",
7
+ "Bash(node:*)",
8
+ "Bash(npm run build-index:*)",
9
+ "Bash(npm run link_mcs:*)",
10
+ "Bash(./link_mcs.sh:*)",
11
+ "Bash(curl:*)"
12
+ ]
13
+ }
14
+ }
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,29 @@
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.134.0](https://github.com/railroadmedia/musora-content-services/compare/v2.132.5...v2.134.0) (2026-02-12)
6
+
7
+
8
+ ### Features
9
+
10
+ * returns badge unearned state images where badge returned ([#803](https://github.com/railroadmedia/musora-content-services/issues/803)) ([c1a7193](https://github.com/railroadmedia/musora-content-services/commit/c1a719366b42d00da6fe2a1d87a9352fc3054a80))
11
+
12
+
13
+ ### Bug Fixes
14
+
15
+ * add restrict content on instructors/genre/artist pages based on permissions ([f8cd2cd](https://github.com/railroadmedia/musora-content-services/commit/f8cd2cd8e00b6a7b8c6e2d267f8d5cf038a34f7e))
16
+ * **query builder:** refactor accessor and dereference ([#799](https://github.com/railroadmedia/musora-content-services/issues/799)) ([457d9b1](https://github.com/railroadmedia/musora-content-services/commit/457d9b1236baed20ef0100ee857dab6032434bf5))
17
+ * returns promise on public pull method ([#802](https://github.com/railroadmedia/musora-content-services/issues/802)) ([cc5a54f](https://github.com/railroadmedia/musora-content-services/commit/cc5a54f247491e7733b0b3c492ab397847759383))
18
+ * **T3PS-2122:** return all sanity docs for clientside sorting ([#797](https://github.com/railroadmedia/musora-content-services/issues/797)) ([3d6d059](https://github.com/railroadmedia/musora-content-services/commit/3d6d059340e7bf8a714b3a82ced343a55a2a5828))
19
+ * **T3PS-2170:** LP children in lessons progress row ([#798](https://github.com/railroadmedia/musora-content-services/issues/798)) ([f42c7a9](https://github.com/railroadmedia/musora-content-services/commit/f42c7a9dbace54500688aee15291b8749ccbe34b))
20
+
21
+ ## [2.133.0](https://github.com/railroadmedia/musora-content-services/compare/v2.132.8...v2.133.0) (2026-02-11)
22
+
23
+
24
+ ### Features
25
+
26
+ * returns badge unearned state images where badge returned ([#803](https://github.com/railroadmedia/musora-content-services/issues/803)) ([c1a7193](https://github.com/railroadmedia/musora-content-services/commit/c1a719366b42d00da6fe2a1d87a9352fc3054a80))
27
+
5
28
  ### [2.132.8](https://github.com/railroadmedia/musora-content-services/compare/v2.132.7...v2.132.8) (2026-02-10)
6
29
 
7
30
 
package/CLAUDE.md CHANGED
File without changes
package/README.md CHANGED
File without changes
package/babel.config.cjs CHANGED
File without changes
package/jest.config.js CHANGED
File without changes
package/jsdoc.json CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.132.8",
3
+ "version": "2.134.0",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
File without changes
File without changes
File without changes
@@ -982,26 +982,32 @@ export const awardTemplate = {
982
982
  drumeo: {
983
983
  front: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/drumeo.svg",
984
984
  rear: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/drumeo-rear.svg",
985
+ unearned: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/drumeo-unearned.svg",
985
986
  },
986
987
  guitareo: {
987
988
  front: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/guitareo.svg",
988
989
  rear: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/guitareo-rear.svg",
990
+ unearned: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/guitareo-unearned.svg",
989
991
  },
990
992
  pianote: {
991
993
  front: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/pianote.svg",
992
994
  rear: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/pianote-rear.svg",
995
+ unearned: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/pianote-unearned.svg",
993
996
  },
994
997
  singeo: {
995
998
  front: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/singeo.svg",
996
999
  rear: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/singeo-rear.svg",
1000
+ unearned: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/singeo-unearned.svg",
997
1001
  },
998
1002
  playbass: {
999
1003
  front: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/playbass.svg",
1000
1004
  rear: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/playbass-rear.svg",
1005
+ unearned: "https://d3fzm1tzeyr5n3.cloudfront.net/v2/awards/playbass-unearned.svg",
1001
1006
  },
1002
1007
  musora: {
1003
1008
  front: null,
1004
1009
  rear: null,
1010
+ unearned: null,
1005
1011
  },
1006
1012
  }
1007
1013
 
@@ -1034,6 +1040,7 @@ export function postProcessBadge(content, brand = null) {
1034
1040
  if (item['badge_logo'] && !item['badge_template']) {
1035
1041
  item['badge_template'] = awardTemplate[item['brand'] || brand].front
1036
1042
  item['badge_template_rear'] = awardTemplate[item['brand'] || brand].rear
1043
+ item['badge_template_unearned'] = awardTemplate[item['brand'] || brand].unearned
1037
1044
  }
1038
1045
  return item
1039
1046
  }
File without changes
package/src/index.d.ts CHANGED
File without changes
package/src/index.js CHANGED
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
package/src/lib/brands.ts CHANGED
File without changes
File without changes
File without changes
File without changes
@@ -76,10 +76,10 @@ export function registerAwardCallback(callback) {
76
76
  brand: definition.brand,
77
77
  ...getBadgeFields(definition),
78
78
  contentType: definition.content_type,
79
- completed_at: completionData.completed_at,
79
+ completedAt: completionData.completed_at,
80
80
  isCompleted: true,
81
81
  completionData: {
82
- completed_at: completionData.completed_at,
82
+ completedAt: completionData.completed_at,
83
83
  days_user_practiced: completionData.days_user_practiced,
84
84
  message: popupMessage,
85
85
  practice_minutes: completionData.practice_minutes,
@@ -589,5 +589,6 @@ export function getBadgeFields(def) {
589
589
  badge_logo: def.logo,
590
590
  badge_template: awardTemplate[def.brand].front,
591
591
  badge_template_rear: awardTemplate[def.brand].rear,
592
+ badge_template_unearned: awardTemplate[def.brand].unearned,
592
593
  }
593
594
  }
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
@@ -141,6 +141,7 @@ export async function fetchArtistLessons(
141
141
  f.notDeprecated(),
142
142
  f.referencesIDWithFilter(f.combine(f.type('artist'), f.slug(slug))),
143
143
  f.brand(brand),
144
+ f.permissions({showMembershipRestrictedContent: true}),
144
145
  f.searchMatch('title', searchTerm),
145
146
  f.includedFields(includedFields),
146
147
  f.progressIds(progressIds)
File without changes
@@ -140,6 +140,7 @@ export async function fetchGenreLessons(
140
140
  f.notDeprecated(),
141
141
  f.referencesIDWithFilter(f.combine(f.type('genre'), f.slug(slug))),
142
142
  f.brand(brand),
143
+ f.permissions({showMembershipRestrictedContent: true}),
143
144
  f.searchMatch('title', searchTerm),
144
145
  f.includedFields(includedFields),
145
146
  f.progressIds(progressIds)
@@ -141,6 +141,7 @@ export async function fetchInstructorLessons(
141
141
  f.notDeprecated(),
142
142
  f.referencesIDWithFilter(f.combine(f.type('instructor'), f.slug(slug))),
143
143
  f.brand(brand),
144
+ f.permissions({showMembershipRestrictedContent: true}),
144
145
  f.searchMatch('title', searchTerm),
145
146
  f.includedFields(includedFields)
146
147
  )
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
@@ -6,7 +6,6 @@ import { addContextToContent } from '../../contentAggregator.js'
6
6
  import { fetchByRailContentIds, fetchShows } from '../../sanity.js'
7
7
  import {
8
8
  postProcessBadge,
9
- awardTemplate,
10
9
  collectionLessonTypes,
11
10
  getFormattedType,
12
11
  recentTypes,
@@ -14,7 +13,6 @@ import {
14
13
  songs,
15
14
  } from '../../../contentTypeConfig.js'
16
15
  import { getTimeRemainingUntilLocal } from '../../dateUtils.js'
17
- import { findIncompleteLesson } from '../../userActivity.js'
18
16
 
19
17
  /**
20
18
  * Fetch any content IDs with some progress, include the userPinnedItem,
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
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
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
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
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
File without changes
File without changes