musora-content-services 2.174.0 → 2.176.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 (29) hide show
  1. package/.agent/decisions/2026-08-13-behltp-306-add-plan-rank-and-tier-key.md +24 -0
  2. package/.idea/codeStyles/Project.xml +61 -0
  3. package/.idea/codeStyles/codeStyleConfig.xml +5 -0
  4. package/.idea/dataSources/6549dc28-6466-4ea3-a66b-7750cfeae4e7/storage_v2/_src_/schema/information_schema.FNRwLQ.meta +2 -0
  5. package/.idea/dataSources/6549dc28-6466-4ea3-a66b-7750cfeae4e7/storage_v2/_src_/schema/mysql.osA4Bg.meta +2 -0
  6. package/.idea/dataSources/6549dc28-6466-4ea3-a66b-7750cfeae4e7/storage_v2/_src_/schema/performance_schema.kIw0nw.meta +2 -0
  7. package/.idea/dataSources/6549dc28-6466-4ea3-a66b-7750cfeae4e7/storage_v2/_src_/schema/sys.zb4BAA.meta +2 -0
  8. package/.idea/dataSources/6549dc28-6466-4ea3-a66b-7750cfeae4e7.xml +25767 -0
  9. package/.idea/dataSources/data_sources_history.xml +23 -0
  10. package/.idea/dataSources.local.xml +19 -0
  11. package/.idea/dataSources.xml +12 -0
  12. package/.idea/modules.xml +8 -0
  13. package/.idea/musora-content-services.iml +8 -0
  14. package/.idea/php.xml +19 -0
  15. package/.idea/prettier.xml +6 -0
  16. package/.idea/vcs.xml +6 -0
  17. package/.idea/workspace.xml +343 -0
  18. package/.yarn/install-state.gz +0 -0
  19. package/CHANGELOG.md +21 -0
  20. package/package.json +1 -1
  21. package/src/index.d.ts +10 -0
  22. package/src/index.js +10 -0
  23. package/src/services/offline/practices.ts +48 -5
  24. package/src/services/user/account.ts +8 -3
  25. package/src/services/user/memberships.ts +2 -0
  26. package/src/services/user/streakCalculator.ts +23 -2
  27. package/src/services/userActivity.js +146 -40
  28. package/src/version-info.js +1 -1
  29. package/.claude/settings.local.json +0 -60
@@ -0,0 +1,23 @@
1
+ <DataSourcesHistory>
2
+ <DataSourceFromHistory isRemovedFromProject="false">
3
+ <data-source source="LOCAL" name="musora_laravel@localhost" uuid="6549dc28-6466-4ea3-a66b-7750cfeae4e7">
4
+ <database-info product="MySQL" version="8.0.31" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-j-8.2.0 (Revision: 06a1f724497fd81c6a659131fda822c9e5085b6c)" dbms="MYSQL" exact-version="8.0.31" exact-driver-version="8.2">
5
+ <extra-name-characters>#@</extra-name-characters>
6
+ <identifier-quote-string>`</identifier-quote-string>
7
+ </database-info>
8
+ <case-sensitivity plain-identifiers="exact" quoted-identifiers="exact" />
9
+ <driver-ref>mysql.8</driver-ref>
10
+ <synchronize>true</synchronize>
11
+ <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
12
+ <jdbc-url>jdbc:mysql://localhost:3306/musora_laravel</jdbc-url>
13
+ <secret-storage>master_key</secret-storage>
14
+ <user-name>root</user-name>
15
+ <schema-mapping>
16
+ <introspection-scope>
17
+ <node kind="schema" qname="@" />
18
+ </introspection-scope>
19
+ </schema-mapping>
20
+ <working-dir>$ProjectFileDir$</working-dir>
21
+ </data-source>
22
+ </DataSourceFromHistory>
23
+ </DataSourcesHistory>
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="dataSourceStorageLocal" created-in="PS-262.9437.196">
4
+ <data-source name="musora_laravel@localhost" uuid="6549dc28-6466-4ea3-a66b-7750cfeae4e7">
5
+ <database-info product="MySQL" version="8.0.31" jdbc-version="4.2" driver-name="MySQL Connector/J" driver-version="mysql-connector-j-8.2.0 (Revision: 06a1f724497fd81c6a659131fda822c9e5085b6c)" dbms="MYSQL" exact-version="8.0.31" exact-driver-version="8.2">
6
+ <extra-name-characters>#@</extra-name-characters>
7
+ <identifier-quote-string>`</identifier-quote-string>
8
+ </database-info>
9
+ <case-sensitivity plain-identifiers="exact" quoted-identifiers="exact" />
10
+ <secret-storage>master_key</secret-storage>
11
+ <user-name>root</user-name>
12
+ <schema-mapping>
13
+ <introspection-scope>
14
+ <node kind="schema" qname="@" />
15
+ </introspection-scope>
16
+ </schema-mapping>
17
+ </data-source>
18
+ </component>
19
+ </project>
@@ -0,0 +1,12 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="DataSourceManagerImpl" format="xml" multifile-model="true">
4
+ <data-source source="LOCAL" name="musora_laravel@localhost" uuid="6549dc28-6466-4ea3-a66b-7750cfeae4e7">
5
+ <driver-ref>mysql.8</driver-ref>
6
+ <synchronize>true</synchronize>
7
+ <jdbc-driver>com.mysql.cj.jdbc.Driver</jdbc-driver>
8
+ <jdbc-url>jdbc:mysql://localhost:3306/musora_laravel</jdbc-url>
9
+ <working-dir>$ProjectFileDir$</working-dir>
10
+ </data-source>
11
+ </component>
12
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="ProjectModuleManager">
4
+ <modules>
5
+ <module fileurl="file://$PROJECT_DIR$/.idea/musora-content-services.iml" filepath="$PROJECT_DIR$/.idea/musora-content-services.iml" />
6
+ </modules>
7
+ </component>
8
+ </project>
@@ -0,0 +1,8 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <module type="WEB_MODULE" version="4">
3
+ <component name="NewModuleRootManager">
4
+ <content url="file://$MODULE_DIR$" />
5
+ <orderEntry type="inheritedJdk" />
6
+ <orderEntry type="sourceFolder" forTests="false" />
7
+ </component>
8
+ </module>
package/.idea/php.xml ADDED
@@ -0,0 +1,19 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="MessDetectorOptionsConfiguration">
4
+ <option name="transferred" value="true" />
5
+ </component>
6
+ <component name="PHPCSFixerOptionsConfiguration">
7
+ <option name="transferred" value="true" />
8
+ </component>
9
+ <component name="PHPCodeSnifferOptionsConfiguration">
10
+ <option name="highlightLevel" value="WARNING" />
11
+ <option name="transferred" value="true" />
12
+ </component>
13
+ <component name="PhpStanOptionsConfiguration">
14
+ <option name="transferred" value="true" />
15
+ </component>
16
+ <component name="PsalmOptionsConfiguration">
17
+ <option name="transferred" value="true" />
18
+ </component>
19
+ </project>
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="PrettierConfiguration">
4
+ <option name="myConfigurationMode" value="AUTOMATIC" />
5
+ </component>
6
+ </project>
package/.idea/vcs.xml ADDED
@@ -0,0 +1,6 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="VcsDirectoryMappings">
4
+ <mapping directory="$PROJECT_DIR$" vcs="Git" />
5
+ </component>
6
+ </project>
@@ -0,0 +1,343 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <project version="4">
3
+ <component name="AutoImportSettings">
4
+ <option name="autoReloadType" value="SELECTIVE" />
5
+ </component>
6
+ <component name="ChangeListManager">
7
+ <list default="true" id="429c1b3f-55cf-4ee6-9797-838860e1201f" name="Changes" comment="" />
8
+ <option name="SHOW_DIALOG" value="false" />
9
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
10
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
11
+ <option name="LAST_RESOLUTION" value="IGNORE" />
12
+ </component>
13
+ <component name="ComposerSettings">
14
+ <execution>
15
+ <execution>
16
+ <execution>
17
+ <execution />
18
+ </execution>
19
+ </execution>
20
+ </execution>
21
+ </component>
22
+ <component name="EmbeddingIndexingInfo">
23
+ <option name="cachedIndexableFilesCount" value="741" />
24
+ <option name="fileBasedEmbeddingIndicesEnabled" value="true" />
25
+ </component>
26
+ <component name="FileTemplateManagerImpl">
27
+ <option name="RECENT_TEMPLATES">
28
+ <list>
29
+ <option value="JavaScript File" />
30
+ <option value="TypeScript File" />
31
+ </list>
32
+ </option>
33
+ </component>
34
+ <component name="Git.Settings">
35
+ <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" />
36
+ </component>
37
+ <component name="HighlightingSettingsPerFile">
38
+ <setting file="file://$PROJECT_DIR$/node_modules/@types/node/globals.d.ts" root0="SKIP_INSPECTION" />
39
+ <setting file="file://$PROJECT_DIR$/src/services/contentAggregator.js" root0="FORCE_HIGHLIGHTING" />
40
+ <setting file="file://$PROJECT_DIR$/src/services/sanity.js" root0="FORCE_HIGHLIGHTING" />
41
+ </component>
42
+ <component name="McpProjectServerCommands">
43
+ <commands />
44
+ <urls />
45
+ </component>
46
+ <component name="NextEditCompletionFeaturesState">
47
+ <decayedCancelled>
48
+ <entry key="MS100" value="1.8138173365825971" />
49
+ <entry key="MS500" value="3.981310510636915" />
50
+ <entry key="S2" value="5.3541095680901245" />
51
+ <entry key="S5" value="5.727452100975664" />
52
+ <entry key="S10" value="5.86123089951408" />
53
+ <entry key="S30" value="5.95466520500073" />
54
+ <entry key="S60" value="6.250316331274593" />
55
+ <entry key="M2" value="9.79838176015697" />
56
+ <entry key="M5" value="25.29282524181618" />
57
+ <entry key="M10" value="44.9181131581737" />
58
+ <entry key="M15" value="59.990022443669474" />
59
+ <entry key="M30" value="87.34150475566987" />
60
+ <entry key="H1" value="109.50167592081166" />
61
+ <entry key="H2" value="123.84456182096707" />
62
+ <entry key="H4" value="132.03532235148535" />
63
+ <entry key="D1" value="139.44884025829808" />
64
+ <entry key="W1" value="140.77696344708292" />
65
+ </decayedCancelled>
66
+ <decayedSelected>
67
+ <entry key="MS100" value="0.0" />
68
+ <entry key="MS500" value="0.0" />
69
+ <entry key="S2" value="0.0" />
70
+ <entry key="S5" value="0.0" />
71
+ <entry key="S10" value="0.0" />
72
+ <entry key="S30" value="0.0" />
73
+ <entry key="S60" value="0.0" />
74
+ <entry key="M2" value="0.0" />
75
+ <entry key="M5" value="0.0" />
76
+ <entry key="M10" value="0.0" />
77
+ <entry key="M15" value="0.0" />
78
+ <entry key="M30" value="0.0" />
79
+ <entry key="H1" value="0.0" />
80
+ <entry key="H2" value="0.0" />
81
+ <entry key="H4" value="0.0" />
82
+ <entry key="D1" value="0.0" />
83
+ <entry key="W1" value="0.0" />
84
+ </decayedSelected>
85
+ <decayedShown>
86
+ <entry key="MS100" value="1.5396363032947014" />
87
+ <entry key="MS500" value="3.8326699047959103" />
88
+ <entry key="S2" value="5.3058350775022705" />
89
+ <entry key="S5" value="5.707031984633428" />
90
+ <entry key="S10" value="5.850825899034129" />
91
+ <entry key="S30" value="5.95115183985448" />
92
+ <entry key="S60" value="6.248481840591634" />
93
+ <entry key="M2" value="9.796978467247882" />
94
+ <entry key="M5" value="25.291392049550666" />
95
+ <entry key="M10" value="44.9168242895199" />
96
+ <entry key="M15" value="59.988863141170704" />
97
+ <entry key="M30" value="87.34064955729043" />
98
+ <entry key="H1" value="109.50113595147951" />
99
+ <entry key="H2" value="123.84425537155066" />
100
+ <entry key="H4" value="132.0351587021065" />
101
+ <entry key="D1" value="139.44881140971998" />
102
+ <entry key="W1" value="140.7769592855683" />
103
+ </decayedShown>
104
+ </component>
105
+ <component name="PhpWorkspaceProjectConfiguration" interpreter_name="/bin/php" />
106
+ <component name="ProjectColorInfo">{
107
+ &quot;customColor&quot;: &quot;&quot;,
108
+ &quot;associatedIndex&quot;: 4
109
+ }</component>
110
+ <component name="ProjectId" id="2zkSruf3UrGMKoFG0Yv3Z4sqYzV" />
111
+ <component name="ProjectViewState">
112
+ <option name="autoscrollFromSource" value="true" />
113
+ <option name="hideEmptyMiddlePackages" value="true" />
114
+ <option name="showLibraryContents" value="true" />
115
+ </component>
116
+ <component name="PropertiesComponent"><![CDATA[{
117
+ "keyToString": {
118
+ "ModuleVcsDetector.initialDetectionPerformed": "true",
119
+ "RunOnceActivity.MCP Project settings loaded": "true",
120
+ "RunOnceActivity.ShowReadmeOnStart": "true",
121
+ "RunOnceActivity.TerminalTabsStorage.copyFrom.TerminalArrangementManager.252": "true",
122
+ "RunOnceActivity.git.unshallow": "true",
123
+ "RunOnceActivity.typescript.service.memoryLimit.init": "true",
124
+ "codeWithMe.voiceChat.enabledByDefault": "false",
125
+ "com.intellij.ml.llm.matterhorn.ej.ui.settings.DefaultModelSelectionForGA.v1": "true",
126
+ "credentialsType com.jetbrains.nodejs.remote.NodeJSCreateRemoteSdkForm": "Docker",
127
+ "git-widget-placeholder": "feat/BEHLTP-306-add-plan-rank-and-tier-key",
128
+ "junie.onboarding.icon.badge.shown": "true",
129
+ "node.js.detected.package.eslint": "true",
130
+ "node.js.detected.package.tslint": "true",
131
+ "node.js.selected.package.eslint": "(autodetect)",
132
+ "node.js.selected.package.tslint": "(autodetect)",
133
+ "nodejs_interpreter_path": "docker://railenvironment_docker-manager:latest//root/.nvm/versions/node/v24.4.0/bin/node",
134
+ "nodejs_package_manager_path": "yarn",
135
+ "prettierjs.PrettierConfiguration.Package": "/home/david-douglas/workspace/railenvironment/applications/musora-content-services/node_modules/prettier",
136
+ "settings.editor.selected.configurable": "settings.nodejs",
137
+ "to.speed.mode.migration.done": "true",
138
+ "ts.external.directory.path": "/snap/phpstorm/695/plugins/javascript-plugin/jsLanguageServicesImpl/external",
139
+ "vue.rearranger.settings.migration": "true"
140
+ },
141
+ "keyToStringList": {
142
+ "DatabaseDriversLRU": [
143
+ "mysql"
144
+ ]
145
+ }
146
+ }]]></component>
147
+ <component name="RecentsManager">
148
+ <key name="MoveFile.RECENT_KEYS">
149
+ <recent name="$PROJECT_DIR$/test/live" />
150
+ <recent name="$PROJECT_DIR$/src/services/user" />
151
+ </key>
152
+ </component>
153
+ <component name="SharedIndexes">
154
+ <attachedChunks>
155
+ <set>
156
+ <option value="bundled-js-predefined-d6986cc7102b-4abd2a77f808-JavaScript-PS-262.9437.196" />
157
+ <option value="bundled-php-predefined-a98d8de5180a-9522f28f0b20-com.jetbrains.php.sharedIndexes-PS-262.9437.196" />
158
+ </set>
159
+ </attachedChunks>
160
+ </component>
161
+ <component name="TaskManager">
162
+ <task active="true" id="Default" summary="Default task">
163
+ <changelist id="429c1b3f-55cf-4ee6-9797-838860e1201f" name="Changes" comment="" />
164
+ <created>1752273779875</created>
165
+ <option name="number" value="Default" />
166
+ <option name="presentableId" value="Default" />
167
+ <updated>1752273779875</updated>
168
+ <workItem from="1752273780953" duration="334000" />
169
+ <workItem from="1752274516054" duration="1582000" />
170
+ <workItem from="1752506945716" duration="9820000" />
171
+ <workItem from="1752687903706" duration="6000" />
172
+ <workItem from="1752867238560" duration="1039000" />
173
+ <workItem from="1753203470148" duration="291000" />
174
+ <workItem from="1753206137950" duration="37393000" />
175
+ <workItem from="1753908494852" duration="13833000" />
176
+ <workItem from="1754064740931" duration="3068000" />
177
+ <workItem from="1754076445793" duration="2502000" />
178
+ <workItem from="1754411050230" duration="2000" />
179
+ <workItem from="1754411067263" duration="509000" />
180
+ <workItem from="1754416349028" duration="22000" />
181
+ <workItem from="1754500340662" duration="46000" />
182
+ <workItem from="1754512958692" duration="656000" />
183
+ <workItem from="1755207975049" duration="131000" />
184
+ <workItem from="1755618709535" duration="400000" />
185
+ <workItem from="1756227277758" duration="827000" />
186
+ <workItem from="1756237447848" duration="493000" />
187
+ <workItem from="1756238352511" duration="101000" />
188
+ <workItem from="1756238673449" duration="326000" />
189
+ <workItem from="1756392538623" duration="2050000" />
190
+ <workItem from="1756402325902" duration="4612000" />
191
+ <workItem from="1756846957578" duration="226000" />
192
+ <workItem from="1757004383428" duration="835000" />
193
+ <workItem from="1757347587427" duration="1351000" />
194
+ <workItem from="1757366483814" duration="4232000" />
195
+ <workItem from="1757370928592" duration="14077000" />
196
+ <workItem from="1757447614354" duration="305000" />
197
+ <workItem from="1757448121566" duration="1582000" />
198
+ <workItem from="1757452953823" duration="1921000" />
199
+ <workItem from="1758644544684" duration="2106000" />
200
+ <workItem from="1758646852726" duration="1682000" />
201
+ <workItem from="1758657013901" duration="426000" />
202
+ <workItem from="1758657687996" duration="8686000" />
203
+ <workItem from="1758727836191" duration="5794000" />
204
+ <workItem from="1758831875509" duration="6039000" />
205
+ <workItem from="1759422173709" duration="3247000" />
206
+ <workItem from="1759425772983" duration="1651000" />
207
+ <workItem from="1759527057141" duration="2966000" />
208
+ <workItem from="1760134103413" duration="4587000" />
209
+ <workItem from="1760468060439" duration="64000" />
210
+ <workItem from="1760474098683" duration="1222000" />
211
+ <workItem from="1760481359770" duration="9874000" />
212
+ <workItem from="1760644361911" duration="8135000" />
213
+ <workItem from="1760981633282" duration="2578000" />
214
+ <workItem from="1760986064225" duration="2786000" />
215
+ <workItem from="1761150250190" duration="3007000" />
216
+ <workItem from="1761154069408" duration="35217000" />
217
+ <workItem from="1762294837449" duration="8417000" />
218
+ <workItem from="1762545591666" duration="5000" />
219
+ <workItem from="1762798441755" duration="2710000" />
220
+ <workItem from="1762889104365" duration="3233000" />
221
+ <workItem from="1762981178050" duration="14237000" />
222
+ <workItem from="1763418824126" duration="1604000" />
223
+ <workItem from="1763591673569" duration="245000" />
224
+ <workItem from="1763677107978" duration="54000" />
225
+ <workItem from="1764090129996" duration="550000" />
226
+ <workItem from="1764184624798" duration="1978000" />
227
+ <workItem from="1764261586318" duration="4421000" />
228
+ <workItem from="1764267854324" duration="8422000" />
229
+ <workItem from="1764696473947" duration="17032000" />
230
+ <workItem from="1764871336771" duration="11737000" />
231
+ <workItem from="1764966369160" duration="2353000" />
232
+ <workItem from="1764977804157" duration="2197000" />
233
+ <workItem from="1765233658559" duration="1871000" />
234
+ <workItem from="1765316306057" duration="15890000" />
235
+ <workItem from="1765991566085" duration="2296000" />
236
+ <workItem from="1765995375625" duration="1371000" />
237
+ <workItem from="1767035382917" duration="1423000" />
238
+ <workItem from="1767120981011" duration="1245000" />
239
+ <workItem from="1767197903834" duration="12352000" />
240
+ <workItem from="1767393471046" duration="17047000" />
241
+ <workItem from="1767644455961" duration="12860000" />
242
+ <workItem from="1767732401496" duration="7590000" />
243
+ <workItem from="1767889147341" duration="43633000" />
244
+ <workItem from="1768412201649" duration="29000" />
245
+ <workItem from="1768413733831" duration="102000" />
246
+ <workItem from="1768510095618" duration="2919000" />
247
+ <workItem from="1769192214839" duration="4539000" />
248
+ <workItem from="1769626488993" duration="1272000" />
249
+ <workItem from="1770051662819" duration="18000" />
250
+ <workItem from="1770145670034" duration="898000" />
251
+ <workItem from="1770157128469" duration="3228000" />
252
+ <workItem from="1770245758908" duration="2849000" />
253
+ <workItem from="1770310613555" duration="11000" />
254
+ <workItem from="1770415506695" duration="8196000" />
255
+ <workItem from="1770661786109" duration="1143000" />
256
+ <workItem from="1770745409981" duration="21000" />
257
+ <workItem from="1770749018371" duration="1593000" />
258
+ <workItem from="1770758437319" duration="147000" />
259
+ <workItem from="1770766786439" duration="3262000" />
260
+ <workItem from="1770844893317" duration="2803000" />
261
+ <workItem from="1770915615810" duration="5991000" />
262
+ <workItem from="1771011821342" duration="848000" />
263
+ <workItem from="1771358723065" duration="586000" />
264
+ <workItem from="1771369968432" duration="2013000" />
265
+ <workItem from="1771452716026" duration="15000" />
266
+ <workItem from="1771457422668" duration="13000" />
267
+ <workItem from="1771613554518" duration="1657000" />
268
+ <workItem from="1771615881532" duration="1105000" />
269
+ <workItem from="1771868158152" duration="19000" />
270
+ <workItem from="1771870184476" duration="4239000" />
271
+ <workItem from="1771884605079" duration="10518000" />
272
+ <workItem from="1772044324621" duration="8586000" />
273
+ <workItem from="1772479106475" duration="3109000" />
274
+ <workItem from="1772643722953" duration="3366000" />
275
+ <workItem from="1773260671001" duration="19000" />
276
+ <workItem from="1773346646941" duration="1640000" />
277
+ <workItem from="1773767161038" duration="10000" />
278
+ <workItem from="1773770047581" duration="136000" />
279
+ <workItem from="1773859957776" duration="34000" />
280
+ <workItem from="1773954337806" duration="10754000" />
281
+ <workItem from="1774376384548" duration="1254000" />
282
+ <workItem from="1774384324478" duration="15000" />
283
+ <workItem from="1774461196528" duration="1796000" />
284
+ <workItem from="1774568249221" duration="3700000" />
285
+ <workItem from="1774983424675" duration="163000" />
286
+ <workItem from="1775067026884" duration="1729000" />
287
+ <workItem from="1775075139232" duration="2116000" />
288
+ <workItem from="1775142320288" duration="3060000" />
289
+ <workItem from="1775179064497" duration="31010000" />
290
+ <workItem from="1775753320099" duration="8000" />
291
+ <workItem from="1775768814519" duration="5291000" />
292
+ <workItem from="1776792032637" duration="511000" />
293
+ <workItem from="1776963988301" duration="17567000" />
294
+ <workItem from="1777326660416" duration="5689000" />
295
+ <workItem from="1777482311035" duration="20947000" />
296
+ <workItem from="1778007352594" duration="21415000" />
297
+ <workItem from="1778513778401" duration="5000" />
298
+ <workItem from="1778516420304" duration="9877000" />
299
+ <workItem from="1779912547104" duration="366000" />
300
+ <workItem from="1780348816208" duration="3042000" />
301
+ <workItem from="1780519147335" duration="8165000" />
302
+ <workItem from="1780607571739" duration="10000" />
303
+ <workItem from="1780695555245" duration="11490000" />
304
+ <workItem from="1781115292176" duration="6000" />
305
+ <workItem from="1781121146903" duration="7280000" />
306
+ <workItem from="1782842283097" duration="646000" />
307
+ <workItem from="1782842967327" duration="9000" />
308
+ <workItem from="1782855024391" duration="1322000" />
309
+ <workItem from="1783093806991" duration="52000" />
310
+ <workItem from="1784742129907" duration="1835000" />
311
+ <workItem from="1784926365896" duration="670000" />
312
+ <workItem from="1785270404522" duration="534000" />
313
+ <workItem from="1785882182103" duration="11000" />
314
+ <workItem from="1786650528811" duration="8312000" />
315
+ <workItem from="1786739380586" duration="1430000" />
316
+ <workItem from="1786987597958" duration="6166000" />
317
+ </task>
318
+ <servers />
319
+ </component>
320
+ <component name="TypeScriptGeneratedFilesManager">
321
+ <option name="version" value="3" />
322
+ <option name="exactExcludedFiles">
323
+ <list>
324
+ <option value="$PROJECT_DIR$/src/services/api/types.js" />
325
+ </list>
326
+ </option>
327
+ </component>
328
+ <component name="Vcs.Log.Tabs.Properties">
329
+ <option name="TAB_STATES">
330
+ <map>
331
+ <entry key="MAIN">
332
+ <value>
333
+ <State />
334
+ </value>
335
+ </entry>
336
+ </map>
337
+ </option>
338
+ </component>
339
+ <component name="XSLT-Support.FileAssociations.UIState">
340
+ <expand />
341
+ <select />
342
+ </component>
343
+ </project>
Binary file
package/CHANGELOG.md CHANGED
@@ -2,6 +2,27 @@
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.176.0](https://github.com/railroadmedia/musora-content-services/compare/v2.175.0...v2.176.0) (2026-08-18)
6
+
7
+
8
+ ### Features
9
+
10
+ * **BEHLTP-306:** add tier_key and rank to UpgradeProduct type ([#1030](https://github.com/railroadmedia/musora-content-services/issues/1030)) ([e1cf01f](https://github.com/railroadmedia/musora-content-services/commit/e1cf01fe3d41444e9724e61788e0d3d55df55c88)), closes [#1463](https://github.com/railroadmedia/musora-content-services/issues/1463)
11
+
12
+ ## [2.175.0](https://github.com/railroadmedia/musora-content-services/compare/v2.174.0...v2.175.0) (2026-08-18)
13
+
14
+
15
+ ### Features
16
+
17
+ * **BEHSTP-441:** New method: getWeeklyPracticeSessions and expose Weekly Goal Progress in getUserWeeklyStats ([04ba10c](https://github.com/railroadmedia/musora-content-services/commit/04ba10c39ab50e9c35bc01e0289c4d8ead941bff))
18
+ * **BEHSTP-463:** new method getWeeklyPracticeSessionsOffline ([b321cfc](https://github.com/railroadmedia/musora-content-services/commit/b321cfc358e7ac88128957c5dcca2f64e529aa39))
19
+ * **BEHSTP-474:** split streak message into part1/part2 for new FE design ([a3912db](https://github.com/railroadmedia/musora-content-services/commit/a3912db2ad37eed491f8ceda69edd32fa825dc44))
20
+
21
+
22
+ ### Bug Fixes
23
+
24
+ * **BEHSTP-441:** return getWeeklyPracticeSessions as a flat practices array ([1fc7ef3](https://github.com/railroadmedia/musora-content-services/commit/1fc7ef3c38a528d1206467867bc43cfb0e2501d0))
25
+
5
26
  ## [2.174.0](https://github.com/railroadmedia/musora-content-services/compare/v2.173.0...v2.174.0) (2026-08-12)
6
27
 
7
28
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "musora-content-services",
3
- "version": "2.174.0",
3
+ "version": "2.176.0",
4
4
  "description": "A package for Musoras content services ",
5
5
  "main": "src/index.js",
6
6
  "type": "module",
package/src/index.d.ts CHANGED
@@ -263,6 +263,7 @@ import {
263
263
 
264
264
  import {
265
265
  getPracticeSessionsOffline,
266
+ getWeeklyPracticeSessionsOffline,
266
267
  otherStatsOffline
267
268
  } from './services/offline/practices.ts';
268
269
 
@@ -492,6 +493,9 @@ import {
492
493
  } from './services/user/profile.ts';
493
494
 
494
495
  import {
496
+ listOAuthProviders,
497
+ redirectToOAuthProvider,
498
+ unlinkOAuthProvider,
495
499
  verifyOAuthToken
496
500
  } from './services/user/session.ts';
497
501
 
@@ -513,6 +517,7 @@ import {
513
517
  getStreaksAndMessage,
514
518
  getUserMonthlyStats,
515
519
  getUserWeeklyStats,
520
+ getWeeklyPracticeSessions,
516
521
  recordUserActivity,
517
522
  recordUserPractice,
518
523
  removeUserPractice,
@@ -774,6 +779,8 @@ declare module 'musora-content-services' {
774
779
  getUserSignature,
775
780
  getUserWeeklyStats,
776
781
  getWeekNumber,
782
+ getWeeklyPracticeSessions,
783
+ getWeeklyPracticeSessionsOffline,
777
784
  globalConfig,
778
785
  grant30DaysAccessForLifetime,
779
786
  guidedCourses,
@@ -795,6 +802,7 @@ declare module 'musora-content-services' {
795
802
  likeContent,
796
803
  likePlaylist,
797
804
  likePost,
805
+ listOAuthProviders,
798
806
  lockThread,
799
807
  login,
800
808
  logout,
@@ -821,6 +829,7 @@ declare module 'musora-content-services' {
821
829
  recordUserPractice,
822
830
  recordWatchSession,
823
831
  recordWatchSessionOffline,
832
+ redirectToOAuthProvider,
824
833
  registerAwardCallback,
825
834
  registerProgressCallback,
826
835
  removeContentAsInterested,
@@ -871,6 +880,7 @@ declare module 'musora-content-services' {
871
880
  unlikeContent,
872
881
  unlikePlaylist,
873
882
  unlikePost,
883
+ unlinkOAuthProvider,
874
884
  unlockThread,
875
885
  unpinProgressRow,
876
886
  unpinThread,
package/src/index.js CHANGED
@@ -267,6 +267,7 @@ import {
267
267
 
268
268
  import {
269
269
  getPracticeSessionsOffline,
270
+ getWeeklyPracticeSessionsOffline,
270
271
  otherStatsOffline
271
272
  } from './services/offline/practices.ts';
272
273
 
@@ -496,6 +497,9 @@ import {
496
497
  } from './services/user/profile.ts';
497
498
 
498
499
  import {
500
+ listOAuthProviders,
501
+ redirectToOAuthProvider,
502
+ unlinkOAuthProvider,
499
503
  verifyOAuthToken
500
504
  } from './services/user/session.ts';
501
505
 
@@ -517,6 +521,7 @@ import {
517
521
  getStreaksAndMessage,
518
522
  getUserMonthlyStats,
519
523
  getUserWeeklyStats,
524
+ getWeeklyPracticeSessions,
520
525
  recordUserActivity,
521
526
  recordUserPractice,
522
527
  removeUserPractice,
@@ -773,6 +778,8 @@ export {
773
778
  getUserSignature,
774
779
  getUserWeeklyStats,
775
780
  getWeekNumber,
781
+ getWeeklyPracticeSessions,
782
+ getWeeklyPracticeSessionsOffline,
776
783
  globalConfig,
777
784
  grant30DaysAccessForLifetime,
778
785
  guidedCourses,
@@ -794,6 +801,7 @@ export {
794
801
  likeContent,
795
802
  likePlaylist,
796
803
  likePost,
804
+ listOAuthProviders,
797
805
  lockThread,
798
806
  login,
799
807
  logout,
@@ -820,6 +828,7 @@ export {
820
828
  recordUserPractice,
821
829
  recordWatchSession,
822
830
  recordWatchSessionOffline,
831
+ redirectToOAuthProvider,
823
832
  registerAwardCallback,
824
833
  registerProgressCallback,
825
834
  removeContentAsInterested,
@@ -870,6 +879,7 @@ export {
870
879
  unlikeContent,
871
880
  unlikePlaylist,
872
881
  unlikePost,
882
+ unlinkOAuthProvider,
873
883
  unlockThread,
874
884
  unpinProgressRow,
875
885
  unpinThread,