90dc-core 1.19.4 → 1.19.5

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 (297) hide show
  1. package/dist/index.js +43 -0
  2. package/dist/index.js.map +1 -0
  3. package/dist/lib/Errors/AppError.js +104 -0
  4. package/dist/lib/Errors/AppError.js.map +1 -0
  5. package/dist/lib/Errors/Errors.js +42 -0
  6. package/dist/lib/Errors/Errors.js.map +1 -0
  7. package/dist/lib/classes/Database.js +154 -0
  8. package/dist/lib/classes/Database.js.map +1 -0
  9. package/dist/lib/classes/Redis.js +63 -0
  10. package/dist/lib/classes/Redis.js.map +1 -0
  11. package/dist/lib/clients/EmailClient.js +188 -0
  12. package/dist/lib/clients/EmailClient.js.map +1 -0
  13. package/dist/lib/clients/FirebasePushNotificationClient.js +688 -0
  14. package/dist/lib/clients/FirebasePushNotificationClient.js.map +1 -0
  15. package/dist/lib/clients/ImagesClient.js +271 -0
  16. package/dist/lib/clients/ImagesClient.js.map +1 -0
  17. package/dist/lib/clients/MailingClient.js +84 -0
  18. package/dist/lib/clients/MailingClient.js.map +1 -0
  19. package/dist/lib/clients/PushNotificationClient.js +478 -0
  20. package/dist/lib/clients/PushNotificationClient.js.map +1 -0
  21. package/dist/lib/clients/types/email.types.js +3 -0
  22. package/dist/lib/clients/types/email.types.js.map +1 -0
  23. package/dist/lib/clients/types/images.types.js +3 -0
  24. package/dist/lib/clients/types/images.types.js.map +1 -0
  25. package/dist/lib/clients/types/mailing.types.js +3 -0
  26. package/dist/lib/clients/types/mailing.types.js.map +1 -0
  27. package/dist/lib/config/ConfigValidator.js +162 -0
  28. package/dist/lib/config/ConfigValidator.js.map +1 -0
  29. package/dist/lib/controllers/BaseController.js +64 -0
  30. package/dist/lib/controllers/BaseController.js.map +1 -0
  31. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js +60 -0
  32. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js.map +1 -0
  33. package/dist/lib/dbmodels/coaching/Answer.js +51 -0
  34. package/dist/lib/dbmodels/coaching/Answer.js.map +1 -0
  35. package/dist/lib/dbmodels/coaching/ClientNote.js +75 -0
  36. package/dist/lib/dbmodels/coaching/ClientNote.js.map +1 -0
  37. package/dist/lib/dbmodels/coaching/ClientTag.js +45 -0
  38. package/dist/lib/dbmodels/coaching/ClientTag.js.map +1 -0
  39. package/dist/lib/dbmodels/coaching/Question.js +60 -0
  40. package/dist/lib/dbmodels/coaching/Question.js.map +1 -0
  41. package/dist/lib/dbmodels/coaching/Questionnaire.js +39 -0
  42. package/dist/lib/dbmodels/coaching/Questionnaire.js.map +1 -0
  43. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js +42 -0
  44. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js.map +1 -0
  45. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js +69 -0
  46. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js.map +1 -0
  47. package/dist/lib/dbmodels/coaching/WeightRecord.js +49 -0
  48. package/dist/lib/dbmodels/coaching/WeightRecord.js.map +1 -0
  49. package/dist/lib/dbmodels/diet/DietDay.js +50 -0
  50. package/dist/lib/dbmodels/diet/DietDay.js.map +1 -0
  51. package/dist/lib/dbmodels/diet/DietMeal.js +74 -0
  52. package/dist/lib/dbmodels/diet/DietMeal.js.map +1 -0
  53. package/dist/lib/dbmodels/diet/DietMealCompletion.js +69 -0
  54. package/dist/lib/dbmodels/diet/DietMealCompletion.js.map +1 -0
  55. package/dist/lib/dbmodels/diet/DietMealRecipe.js +67 -0
  56. package/dist/lib/dbmodels/diet/DietMealRecipe.js.map +1 -0
  57. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js +46 -0
  58. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js.map +1 -0
  59. package/dist/lib/dbmodels/diet/DietProgram.js +98 -0
  60. package/dist/lib/dbmodels/diet/DietProgram.js.map +1 -0
  61. package/dist/lib/dbmodels/diet/Ingredient.js +88 -0
  62. package/dist/lib/dbmodels/diet/Ingredient.js.map +1 -0
  63. package/dist/lib/dbmodels/diet/IngredientTag.js +64 -0
  64. package/dist/lib/dbmodels/diet/IngredientTag.js.map +1 -0
  65. package/dist/lib/dbmodels/diet/IngredientTags.js +29 -0
  66. package/dist/lib/dbmodels/diet/IngredientTags.js.map +1 -0
  67. package/dist/lib/dbmodels/diet/Recipe.js +173 -0
  68. package/dist/lib/dbmodels/diet/Recipe.js.map +1 -0
  69. package/dist/lib/dbmodels/diet/RecipeIngredient.js +78 -0
  70. package/dist/lib/dbmodels/diet/RecipeIngredient.js.map +1 -0
  71. package/dist/lib/dbmodels/diet/RecipeTag.js +44 -0
  72. package/dist/lib/dbmodels/diet/RecipeTag.js.map +1 -0
  73. package/dist/lib/dbmodels/diet/RecipeTags.js +24 -0
  74. package/dist/lib/dbmodels/diet/RecipeTags.js.map +1 -0
  75. package/dist/lib/dbmodels/diet/ShoppingList.js +69 -0
  76. package/dist/lib/dbmodels/diet/ShoppingList.js.map +1 -0
  77. package/dist/lib/dbmodels/diet/ShoppingListItem.js +66 -0
  78. package/dist/lib/dbmodels/diet/ShoppingListItem.js.map +1 -0
  79. package/dist/lib/dbmodels/diet/TranslatedRecipe.js +122 -0
  80. package/dist/lib/dbmodels/diet/TranslatedRecipe.js.map +1 -0
  81. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js +47 -0
  82. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js.map +1 -0
  83. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js +24 -0
  84. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js.map +1 -0
  85. package/dist/lib/dbmodels/diet/UserDietPreferences.js +85 -0
  86. package/dist/lib/dbmodels/diet/UserDietPreferences.js.map +1 -0
  87. package/dist/lib/dbmodels/gamification/Badge.js +62 -0
  88. package/dist/lib/dbmodels/gamification/Badge.js.map +1 -0
  89. package/dist/lib/dbmodels/gamification/StreaksLog.js +37 -0
  90. package/dist/lib/dbmodels/gamification/StreaksLog.js.map +1 -0
  91. package/dist/lib/dbmodels/gamification/TranslatedBadge.js +45 -0
  92. package/dist/lib/dbmodels/gamification/TranslatedBadge.js.map +1 -0
  93. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js +48 -0
  94. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js.map +1 -0
  95. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js +53 -0
  96. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js.map +1 -0
  97. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js +68 -0
  98. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js.map +1 -0
  99. package/dist/lib/dbmodels/index.js +288 -0
  100. package/dist/lib/dbmodels/index.js.map +1 -0
  101. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts +32 -0
  102. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts.map +1 -0
  103. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js +155 -0
  104. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js.map +1 -0
  105. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts +22 -0
  106. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts.map +1 -0
  107. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js +108 -0
  108. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js.map +1 -0
  109. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts +20 -0
  110. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts.map +1 -0
  111. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js +97 -0
  112. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js.map +1 -0
  113. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts +22 -0
  114. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts.map +1 -0
  115. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js +115 -0
  116. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js.map +1 -0
  117. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts +7 -0
  118. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts.map +1 -0
  119. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js +41 -0
  120. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js.map +1 -0
  121. package/dist/lib/dbmodels/notifications/NotificationModels.js +38 -0
  122. package/dist/lib/dbmodels/notifications/NotificationModels.js.map +1 -0
  123. package/dist/lib/dbmodels/notifications/TranslatedNotification.js +45 -0
  124. package/dist/lib/dbmodels/notifications/TranslatedNotification.js.map +1 -0
  125. package/dist/lib/dbmodels/program/Challenge.d.ts +13 -0
  126. package/dist/lib/dbmodels/program/Challenge.d.ts.map +1 -0
  127. package/dist/lib/dbmodels/program/Challenge.js +63 -0
  128. package/dist/lib/dbmodels/program/Challenge.js.map +1 -0
  129. package/dist/lib/dbmodels/program/ChallengeBlueprint.js +75 -0
  130. package/dist/lib/dbmodels/program/ChallengeBlueprint.js.map +1 -0
  131. package/dist/lib/dbmodels/program/CircularProgramDraft.js +82 -0
  132. package/dist/lib/dbmodels/program/CircularProgramDraft.js.map +1 -0
  133. package/dist/lib/dbmodels/program/CoachExerciseNote.js +61 -0
  134. package/dist/lib/dbmodels/program/CoachExerciseNote.js.map +1 -0
  135. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js +84 -0
  136. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js.map +1 -0
  137. package/dist/lib/dbmodels/program/CustomStrengthTest.js +55 -0
  138. package/dist/lib/dbmodels/program/CustomStrengthTest.js.map +1 -0
  139. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js +69 -0
  140. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js.map +1 -0
  141. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js +58 -0
  142. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js.map +1 -0
  143. package/dist/lib/dbmodels/program/Exercise.d.ts +23 -0
  144. package/dist/lib/dbmodels/program/Exercise.d.ts.map +1 -0
  145. package/dist/lib/dbmodels/program/Exercise.js +101 -0
  146. package/dist/lib/dbmodels/program/Exercise.js.map +1 -0
  147. package/dist/lib/dbmodels/program/ExerciseModels.d.ts +28 -0
  148. package/dist/lib/dbmodels/program/ExerciseModels.d.ts.map +1 -0
  149. package/dist/lib/dbmodels/program/ExerciseModels.js +149 -0
  150. package/dist/lib/dbmodels/program/ExerciseModels.js.map +1 -0
  151. package/dist/lib/dbmodels/program/Program.d.ts +15 -0
  152. package/dist/lib/dbmodels/program/Program.d.ts.map +1 -0
  153. package/dist/lib/dbmodels/program/Program.js +76 -0
  154. package/dist/lib/dbmodels/program/Program.js.map +1 -0
  155. package/dist/lib/dbmodels/program/ProgressEntry.d.ts +26 -0
  156. package/dist/lib/dbmodels/program/ProgressEntry.d.ts.map +1 -0
  157. package/dist/lib/dbmodels/program/ProgressEntry.js +77 -0
  158. package/dist/lib/dbmodels/program/ProgressEntry.js.map +1 -0
  159. package/dist/lib/dbmodels/program/RestDay.js +33 -0
  160. package/dist/lib/dbmodels/program/RestDay.js.map +1 -0
  161. package/dist/lib/dbmodels/program/StrengthTest.d.ts +10 -0
  162. package/dist/lib/dbmodels/program/StrengthTest.d.ts.map +1 -0
  163. package/dist/lib/dbmodels/program/StrengthTest.js +39 -0
  164. package/dist/lib/dbmodels/program/StrengthTest.js.map +1 -0
  165. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts +15 -0
  166. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts.map +1 -0
  167. package/dist/lib/dbmodels/program/StrengthTestExercise.js +72 -0
  168. package/dist/lib/dbmodels/program/StrengthTestExercise.js.map +1 -0
  169. package/dist/lib/dbmodels/program/StrengthTestSession.js +73 -0
  170. package/dist/lib/dbmodels/program/StrengthTestSession.js.map +1 -0
  171. package/dist/lib/dbmodels/program/Superset.d.ts +13 -0
  172. package/dist/lib/dbmodels/program/Superset.d.ts.map +1 -0
  173. package/dist/lib/dbmodels/program/Superset.js +46 -0
  174. package/dist/lib/dbmodels/program/Superset.js.map +1 -0
  175. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js +70 -0
  176. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js.map +1 -0
  177. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js +55 -0
  178. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js.map +1 -0
  179. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts +15 -0
  180. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts.map +1 -0
  181. package/dist/lib/dbmodels/program/TranslatedChallenge.js +69 -0
  182. package/dist/lib/dbmodels/program/TranslatedChallenge.js.map +1 -0
  183. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts +25 -0
  184. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts.map +1 -0
  185. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js +123 -0
  186. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js.map +1 -0
  187. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts +12 -0
  188. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts.map +1 -0
  189. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js +45 -0
  190. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js.map +1 -0
  191. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts +16 -0
  192. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts.map +1 -0
  193. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js +78 -0
  194. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js.map +1 -0
  195. package/dist/lib/dbmodels/program/UserChallenge.d.ts +10 -0
  196. package/dist/lib/dbmodels/program/UserChallenge.d.ts.map +1 -0
  197. package/dist/lib/dbmodels/program/UserChallenge.js +47 -0
  198. package/dist/lib/dbmodels/program/UserChallenge.js.map +1 -0
  199. package/dist/lib/dbmodels/program/UserExerciseNote.js +61 -0
  200. package/dist/lib/dbmodels/program/UserExerciseNote.js.map +1 -0
  201. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts +11 -0
  202. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts.map +1 -0
  203. package/dist/lib/dbmodels/program/UserStrengthTests.js +54 -0
  204. package/dist/lib/dbmodels/program/UserStrengthTests.js.map +1 -0
  205. package/dist/lib/dbmodels/program/Workout.d.ts +14 -0
  206. package/dist/lib/dbmodels/program/Workout.d.ts.map +1 -0
  207. package/dist/lib/dbmodels/program/Workout.js +66 -0
  208. package/dist/lib/dbmodels/program/Workout.js.map +1 -0
  209. package/dist/lib/dbmodels/program/WorkoutCompletion.js +65 -0
  210. package/dist/lib/dbmodels/program/WorkoutCompletion.js.map +1 -0
  211. package/dist/lib/dbmodels/program/WorkoutSession.js +93 -0
  212. package/dist/lib/dbmodels/program/WorkoutSession.js.map +1 -0
  213. package/dist/lib/dbmodels/subscription/Subscription.d.ts +19 -0
  214. package/dist/lib/dbmodels/subscription/Subscription.d.ts.map +1 -0
  215. package/dist/lib/dbmodels/subscription/Subscription.js +91 -0
  216. package/dist/lib/dbmodels/subscription/Subscription.js.map +1 -0
  217. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js +79 -0
  218. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js.map +1 -0
  219. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts +9 -0
  220. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts.map +1 -0
  221. package/dist/lib/dbmodels/subscription/SubscriptionLog.js +42 -0
  222. package/dist/lib/dbmodels/subscription/SubscriptionLog.js.map +1 -0
  223. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js +92 -0
  224. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js.map +1 -0
  225. package/dist/lib/dbmodels/user/DeviceTokens.js +34 -0
  226. package/dist/lib/dbmodels/user/DeviceTokens.js.map +1 -0
  227. package/dist/lib/dbmodels/user/PersistedUser.d.ts +43 -0
  228. package/dist/lib/dbmodels/user/PersistedUser.d.ts.map +1 -0
  229. package/dist/lib/dbmodels/user/PersistedUser.js +237 -0
  230. package/dist/lib/dbmodels/user/PersistedUser.js.map +1 -0
  231. package/dist/lib/dbmodels/user/UserAddons.js +26 -0
  232. package/dist/lib/dbmodels/user/UserAddons.js.map +1 -0
  233. package/dist/lib/dbmodels/user/UserBadges.js +63 -0
  234. package/dist/lib/dbmodels/user/UserBadges.js.map +1 -0
  235. package/dist/lib/dbmodels/user/UserCoach.js +40 -0
  236. package/dist/lib/dbmodels/user/UserCoach.js.map +1 -0
  237. package/dist/lib/dbmodels/user/UserDiscount.js +24 -0
  238. package/dist/lib/dbmodels/user/UserDiscount.js.map +1 -0
  239. package/dist/lib/dbmodels/user/UserOptions.js +34 -0
  240. package/dist/lib/dbmodels/user/UserOptions.js.map +1 -0
  241. package/dist/lib/dbmodels/user/UserProgressPhoto.js +59 -0
  242. package/dist/lib/dbmodels/user/UserProgressPhoto.js.map +1 -0
  243. package/dist/lib/dbmodels/user/UserStreaks.js +64 -0
  244. package/dist/lib/dbmodels/user/UserStreaks.js.map +1 -0
  245. package/dist/lib/dbmodels/user/UsersFriends.js +46 -0
  246. package/dist/lib/dbmodels/user/UsersFriends.js.map +1 -0
  247. package/dist/lib/enums/ProgramEnums.d.ts +18 -0
  248. package/dist/lib/enums/ProgramEnums.d.ts.map +1 -0
  249. package/dist/lib/enums/ProgramEnums.js +22 -0
  250. package/dist/lib/enums/ProgramEnums.js.map +1 -0
  251. package/dist/lib/enums/ProgramTemplates.js +738 -0
  252. package/dist/lib/enums/ProgramTemplates.js.map +1 -0
  253. package/dist/lib/middlewares/ErrorMiddleware.js +141 -0
  254. package/dist/lib/middlewares/ErrorMiddleware.js.map +1 -0
  255. package/dist/lib/middlewares/ValidationMiddleware.js +24 -0
  256. package/dist/lib/middlewares/ValidationMiddleware.js.map +1 -0
  257. package/dist/lib/models/BlueprintInterfaces.js +3 -0
  258. package/dist/lib/models/BlueprintInterfaces.js.map +1 -0
  259. package/dist/lib/models/ExerciseInterfaces.d.ts +68 -0
  260. package/dist/lib/models/ExerciseInterfaces.d.ts.map +1 -0
  261. package/dist/lib/models/ExerciseInterfaces.js +3 -0
  262. package/dist/lib/models/ExerciseInterfaces.js.map +1 -0
  263. package/dist/lib/models/NotificationInterfaces.js +11 -0
  264. package/dist/lib/models/NotificationInterfaces.js.map +1 -0
  265. package/dist/lib/models/ProgramInterfaces.js +3 -0
  266. package/dist/lib/models/ProgramInterfaces.js.map +1 -0
  267. package/dist/lib/models/UserInterfaces.js +3 -0
  268. package/dist/lib/models/UserInterfaces.js.map +1 -0
  269. package/dist/lib/models/WorkoutInterfaces.js +3 -0
  270. package/dist/lib/models/WorkoutInterfaces.js.map +1 -0
  271. package/dist/lib/scripts/cli.js +82 -0
  272. package/dist/lib/scripts/cli.js.map +1 -0
  273. package/dist/lib/scripts/populate-exercise-thumbnails.js +64 -0
  274. package/dist/lib/scripts/populate-exercise-thumbnails.js.map +1 -0
  275. package/dist/lib/scripts/setup-database.js +43 -0
  276. package/dist/lib/scripts/setup-database.js.map +1 -0
  277. package/dist/lib/scripts/verify-indexes.js +94 -0
  278. package/dist/lib/scripts/verify-indexes.js.map +1 -0
  279. package/dist/lib/testing/testFixtures.js +520 -0
  280. package/dist/lib/testing/testFixtures.js.map +1 -0
  281. package/dist/lib/testing/testHelpers.js +149 -0
  282. package/dist/lib/testing/testHelpers.js.map +1 -0
  283. package/dist/lib/utils/AuthenticationUtil.js +481 -0
  284. package/dist/lib/utils/AuthenticationUtil.js.map +1 -0
  285. package/dist/lib/utils/Logger.js +242 -0
  286. package/dist/lib/utils/Logger.js.map +1 -0
  287. package/dist/lib/utils/NotificationClient.js +371 -0
  288. package/dist/lib/utils/NotificationClient.js.map +1 -0
  289. package/dist/lib/utils/NotificationsUtil.js +95 -0
  290. package/dist/lib/utils/NotificationsUtil.js.map +1 -0
  291. package/dist/lib/utils/SecretManager.js +107 -0
  292. package/dist/lib/utils/SecretManager.js.map +1 -0
  293. package/dist/lib/utils/SentryUtil.js +140 -0
  294. package/dist/lib/utils/SentryUtil.js.map +1 -0
  295. package/dist/lib/utils/imageValidation.js +31 -0
  296. package/dist/lib/utils/imageValidation.js.map +1 -0
  297. package/package.json +1 -1
@@ -0,0 +1,45 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { BelongsTo, Column, DataType, Default, ForeignKey, Model, PrimaryKey, Table } from "sequelize-typescript";
8
+ import { StrengthTest } from "./StrengthTest.js";
9
+ export class TranslatedStrengthTest extends Model {
10
+ }
11
+ _ts_decorate([
12
+ PrimaryKey,
13
+ Default(DataType.UUIDV4),
14
+ Column(DataType.UUID)
15
+ ], TranslatedStrengthTest.prototype, "uuid", void 0);
16
+ _ts_decorate([
17
+ ForeignKey(()=>StrengthTest),
18
+ Column(DataType.UUID)
19
+ ], TranslatedStrengthTest.prototype, "strengthTestUuid", void 0);
20
+ _ts_decorate([
21
+ Column({
22
+ type: DataType.TEXT,
23
+ allowNull: false
24
+ })
25
+ ], TranslatedStrengthTest.prototype, "type", void 0);
26
+ _ts_decorate([
27
+ Column({
28
+ type: DataType.TEXT,
29
+ allowNull: false
30
+ })
31
+ ], TranslatedStrengthTest.prototype, "language", void 0);
32
+ _ts_decorate([
33
+ Column({
34
+ type: DataType.ARRAY(DataType.JSONB),
35
+ allowNull: false
36
+ })
37
+ ], TranslatedStrengthTest.prototype, "exercises", void 0);
38
+ _ts_decorate([
39
+ BelongsTo(()=>StrengthTest)
40
+ ], TranslatedStrengthTest.prototype, "strengthTest", void 0);
41
+ TranslatedStrengthTest = _ts_decorate([
42
+ Table
43
+ ], TranslatedStrengthTest);
44
+
45
+ //# sourceMappingURL=TranslatedStrengthTest.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/TranslatedStrengthTest.ts"],"sourcesContent":["import {\n BelongsTo,\n Column,\n DataType,\n Default,\n ForeignKey,\n Model,\n PrimaryKey,\n Table,\n} from \"sequelize-typescript\";\nimport { StrengthTest } from './StrengthTest.js';\nimport type {StrengthTestExercise} from './StrengthTestExercise.js';\n\n@Table\nexport class TranslatedStrengthTest extends Model<TranslatedStrengthTest> {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @ForeignKey(() => StrengthTest)\n @Column(DataType.UUID)\n declare strengthTestUuid: string;\n\n @Column({\n type: DataType.TEXT,\n allowNull: false,\n })\n declare type: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare language: string;\n\n @Column({\n type: DataType.ARRAY(DataType.JSONB),\n allowNull: false,\n })\n declare exercises: StrengthTestExercise[];\n\n @BelongsTo(() => StrengthTest)\n declare strengthTest: StrengthTest;\n}\n"],"names":["BelongsTo","Column","DataType","Default","ForeignKey","Model","PrimaryKey","Table","StrengthTest","TranslatedStrengthTest","UUIDV4","UUID","type","TEXT","allowNull","ARRAY","JSONB"],"mappings":";;;;;;AAAA,SACIA,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,UAAU,EACVC,KAAK,QACF,uBAAuB;AAC9B,SAASC,YAAY,QAAQ,oBAAoB;AAIjD,OAAO,MAAMC,+BAA+BJ;AA2B5C;;;qBAzBsBK;oBACDC;;;mBAGCH;oBACDG;;;;QAIbC,MAAMV,SAASW,IAAI;QACnBC,WAAW;;;;;QAILF,MAAMV,SAASW,IAAI;QAAEC,WAAW;;;;;QAItCF,MAAMV,SAASa,KAAK,CAACb,SAASc,KAAK;QACnCF,WAAW;;;;kBAIEN"}
@@ -0,0 +1,16 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { StrengthTestExercise } from './StrengthTestExercise.js';
3
+ export declare class TranslatedStrengthTestExercise extends Model<TranslatedStrengthTestExercise> {
4
+ uuid: string;
5
+ exerciseUuid: string;
6
+ stUuid: string;
7
+ url: string;
8
+ title: string;
9
+ language: string;
10
+ order: number;
11
+ pointer: string;
12
+ timerTime: string;
13
+ progress: object;
14
+ exercise: StrengthTestExercise;
15
+ }
16
+ //# sourceMappingURL=TranslatedStrengthTestExercise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslatedStrengthTestExercise.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/TranslatedStrengthTestExercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoD,KAAK,EAAqB,MAAM,sBAAsB,CAAC;AAElH,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBACa,8BAA+B,SAAQ,KAAK,CAAC,8BAA8B,CAAC;IAIhF,IAAI,EAAE,MAAM,CAAC;IAIb,YAAY,EAAE,MAAM,CAAC;IAQrB,MAAM,EAAE,MAAM,CAAC;IAGf,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,EAAE,MAAM,CAAC;IAGd,OAAO,EAAE,MAAM,CAAC;IAGhB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,oBAAoB,CAAC;CACvC"}
@@ -0,0 +1,78 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { BelongsTo, Column, DataType, Default, ForeignKey, Model, PrimaryKey, Table } from "sequelize-typescript";
8
+ import { UserStrengthTests } from "./UserStrengthTests.js";
9
+ import { StrengthTestExercise } from "./StrengthTestExercise.js";
10
+ export class TranslatedStrengthTestExercise extends Model {
11
+ }
12
+ _ts_decorate([
13
+ PrimaryKey,
14
+ Default(DataType.UUIDV4),
15
+ Column(DataType.UUID)
16
+ ], TranslatedStrengthTestExercise.prototype, "uuid", void 0);
17
+ _ts_decorate([
18
+ ForeignKey(()=>StrengthTestExercise),
19
+ Column(DataType.UUID)
20
+ ], TranslatedStrengthTestExercise.prototype, "exerciseUuid", void 0);
21
+ _ts_decorate([
22
+ ForeignKey(()=>UserStrengthTests),
23
+ Column({
24
+ type: DataType.UUID,
25
+ defaultValue: DataType.UUID,
26
+ allowNull: false
27
+ })
28
+ ], TranslatedStrengthTestExercise.prototype, "stUuid", void 0);
29
+ _ts_decorate([
30
+ Column({
31
+ type: DataType.TEXT,
32
+ allowNull: false
33
+ })
34
+ ], TranslatedStrengthTestExercise.prototype, "url", void 0);
35
+ _ts_decorate([
36
+ Column({
37
+ type: DataType.TEXT,
38
+ allowNull: false
39
+ })
40
+ ], TranslatedStrengthTestExercise.prototype, "title", void 0);
41
+ _ts_decorate([
42
+ Column({
43
+ type: DataType.TEXT,
44
+ allowNull: false
45
+ })
46
+ ], TranslatedStrengthTestExercise.prototype, "language", void 0);
47
+ _ts_decorate([
48
+ Column({
49
+ type: DataType.INTEGER,
50
+ allowNull: false
51
+ })
52
+ ], TranslatedStrengthTestExercise.prototype, "order", void 0);
53
+ _ts_decorate([
54
+ Column({
55
+ type: DataType.TEXT,
56
+ allowNull: false
57
+ })
58
+ ], TranslatedStrengthTestExercise.prototype, "pointer", void 0);
59
+ _ts_decorate([
60
+ Column({
61
+ type: DataType.TEXT,
62
+ allowNull: false
63
+ })
64
+ ], TranslatedStrengthTestExercise.prototype, "timerTime", void 0);
65
+ _ts_decorate([
66
+ Column({
67
+ type: DataType.JSONB,
68
+ allowNull: true
69
+ })
70
+ ], TranslatedStrengthTestExercise.prototype, "progress", void 0);
71
+ _ts_decorate([
72
+ BelongsTo(()=>StrengthTestExercise)
73
+ ], TranslatedStrengthTestExercise.prototype, "exercise", void 0);
74
+ TranslatedStrengthTestExercise = _ts_decorate([
75
+ Table
76
+ ], TranslatedStrengthTestExercise);
77
+
78
+ //# sourceMappingURL=TranslatedStrengthTestExercise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/TranslatedStrengthTestExercise.ts"],"sourcesContent":["import { BelongsTo, Column, DataType, Default, ForeignKey, Model, PrimaryKey, Table } from 'sequelize-typescript';\nimport { UserStrengthTests } from './UserStrengthTests.js';\nimport { StrengthTestExercise } from './StrengthTestExercise.js';\n\n@Table\nexport class TranslatedStrengthTestExercise extends Model<TranslatedStrengthTestExercise> {\n\t@PrimaryKey\n\t@Default(DataType.UUIDV4)\n\t@Column(DataType.UUID)\n\tdeclare uuid: string;\n\n\t@ForeignKey(() => StrengthTestExercise)\n\t@Column(DataType.UUID)\n\tdeclare exerciseUuid: string;\n\n\t@ForeignKey(() => UserStrengthTests)\n\t@Column({\n\t\ttype: DataType.UUID,\n\t\tdefaultValue: DataType.UUID,\n\t\tallowNull: false\n\t})\n\tdeclare stUuid: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare url: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare title: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare language: string;\n\n\t@Column({ type: DataType.INTEGER, allowNull: false })\n\tdeclare order: number;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare pointer: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare timerTime: string;\n\n\t@Column({ type: DataType.JSONB, allowNull: true })\n\tdeclare progress: object;\n\n\t@BelongsTo(() => StrengthTestExercise)\n\tdeclare exercise: StrengthTestExercise;\n}\n"],"names":["BelongsTo","Column","DataType","Default","ForeignKey","Model","PrimaryKey","Table","UserStrengthTests","StrengthTestExercise","TranslatedStrengthTestExercise","UUIDV4","UUID","type","defaultValue","allowNull","TEXT","INTEGER","JSONB"],"mappings":";;;;;;AAAA,SAASA,SAAS,EAAEC,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,UAAU,EAAEC,KAAK,QAAQ,uBAAuB;AAClH,SAASC,iBAAiB,QAAQ,yBAAyB;AAC3D,SAASC,oBAAoB,QAAQ,4BAA4B;AAGjE,OAAO,MAAMC,uCAAuCL;AAyCpD;;;qBAvCmBM;oBACDC;;;mBAGCH;oBACDG;;;mBAGCJ;;QAEjBK,MAAMX,SAASU,IAAI;QACnBE,cAAcZ,SAASU,IAAI;QAC3BG,WAAW;;;;;QAIFF,MAAMX,SAASc,IAAI;QAAED,WAAW;;;;;QAGhCF,MAAMX,SAASc,IAAI;QAAED,WAAW;;;;;QAGhCF,MAAMX,SAASc,IAAI;QAAED,WAAW;;;;;QAGhCF,MAAMX,SAASe,OAAO;QAAEF,WAAW;;;;;QAGnCF,MAAMX,SAASc,IAAI;QAAED,WAAW;;;;;QAGhCF,MAAMX,SAASc,IAAI;QAAED,WAAW;;;;;QAGhCF,MAAMX,SAASgB,KAAK;QAAEH,WAAW;;;;kBAG1BN"}
@@ -0,0 +1,10 @@
1
+ import { Model } from "sequelize-typescript";
2
+ import type { Progress } from '../../models/ExerciseInterfaces.js';
3
+ export declare class UserChallenge extends Model<UserChallenge> {
4
+ uuid: string;
5
+ title: string;
6
+ order: number;
7
+ progress: Progress;
8
+ programId: string;
9
+ }
10
+ //# sourceMappingURL=UserChallenge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserChallenge.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/UserChallenge.ts"],"names":[],"mappings":"AAAA,OAAO,EAA6B,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAC/E,OAAO,KAAK,EAAC,QAAQ,EAAC,MAAM,oCAAoC,CAAC;AAEjE,qBACa,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC;IAQ3C,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAGd,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,QAAQ,CAAC;IAMnB,SAAS,EAAE,MAAM,CAAC;CAC7B"}
@@ -0,0 +1,47 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Column, DataType, Default, Model, Table } from "sequelize-typescript";
8
+ export class UserChallenge extends Model {
9
+ }
10
+ _ts_decorate([
11
+ Default(DataType.UUIDV4),
12
+ Column({
13
+ type: DataType.UUID,
14
+ defaultValue: DataType.UUID,
15
+ allowNull: false,
16
+ primaryKey: true
17
+ })
18
+ ], UserChallenge.prototype, "uuid", void 0);
19
+ _ts_decorate([
20
+ Column({
21
+ type: DataType.TEXT,
22
+ allowNull: false
23
+ })
24
+ ], UserChallenge.prototype, "title", void 0);
25
+ _ts_decorate([
26
+ Column({
27
+ type: DataType.INTEGER,
28
+ allowNull: true
29
+ })
30
+ ], UserChallenge.prototype, "order", void 0);
31
+ _ts_decorate([
32
+ Column({
33
+ type: DataType.JSONB,
34
+ allowNull: true
35
+ })
36
+ ], UserChallenge.prototype, "progress", void 0);
37
+ _ts_decorate([
38
+ Column({
39
+ type: DataType.UUID,
40
+ allowNull: true
41
+ })
42
+ ], UserChallenge.prototype, "programId", void 0);
43
+ UserChallenge = _ts_decorate([
44
+ Table
45
+ ], UserChallenge);
46
+
47
+ //# sourceMappingURL=UserChallenge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/UserChallenge.ts"],"sourcesContent":["import { Column, DataType, Default, Model, Table } from \"sequelize-typescript\";\nimport type {Progress} from '../../models/ExerciseInterfaces.js';\n\n@Table\nexport class UserChallenge extends Model<UserChallenge> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUID,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare title: string;\n\n @Column({ type: DataType.INTEGER, allowNull: true })\n declare order: number;\n\n @Column({ type: DataType.JSONB, allowNull: true })\n declare progress: Progress;\n\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare programId: string;\n}\n"],"names":["Column","DataType","Default","Model","Table","UserChallenge","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","TEXT","INTEGER","JSONB"],"mappings":";;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAI/E,OAAO,MAAMC,sBAAsBF;AAwBnC;;qBAvBsBG;;QAEdC,MAAMN,SAASO,IAAI;QACnBC,cAAcR,SAASO,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;QAINJ,MAAMN,SAASW,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMN,SAASY,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMN,SAASa,KAAK;QAAEJ,WAAW;;;;;QAIvCH,MAAMN,SAASO,IAAI;QACnBE,WAAW"}
@@ -0,0 +1,61 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { BelongsTo, Column, DataType, Default, ForeignKey, Model, Table } from "sequelize-typescript";
8
+ import { ExercisesModels } from "./ExerciseModels.js";
9
+ import { PersistedUser } from "../user/PersistedUser.js";
10
+ export class UserExerciseNote extends Model {
11
+ }
12
+ _ts_decorate([
13
+ Default(DataType.UUIDV4),
14
+ Column({
15
+ type: DataType.UUID,
16
+ primaryKey: true
17
+ })
18
+ ], UserExerciseNote.prototype, "uuid", void 0);
19
+ _ts_decorate([
20
+ ForeignKey(()=>PersistedUser),
21
+ Column({
22
+ type: DataType.UUID,
23
+ allowNull: false
24
+ })
25
+ ], UserExerciseNote.prototype, "userUuid", void 0);
26
+ _ts_decorate([
27
+ ForeignKey(()=>ExercisesModels),
28
+ Column({
29
+ type: DataType.UUID,
30
+ allowNull: false
31
+ })
32
+ ], UserExerciseNote.prototype, "exerciseModelUuid", void 0);
33
+ _ts_decorate([
34
+ Column({
35
+ type: DataType.TEXT,
36
+ allowNull: false
37
+ })
38
+ ], UserExerciseNote.prototype, "note", void 0);
39
+ _ts_decorate([
40
+ BelongsTo(()=>PersistedUser, 'userUuid')
41
+ ], UserExerciseNote.prototype, "user", void 0);
42
+ _ts_decorate([
43
+ BelongsTo(()=>ExercisesModels, 'exerciseModelUuid')
44
+ ], UserExerciseNote.prototype, "exerciseModel", void 0);
45
+ UserExerciseNote = _ts_decorate([
46
+ Table({
47
+ tableName: 'UserExerciseNotes',
48
+ indexes: [
49
+ {
50
+ unique: true,
51
+ fields: [
52
+ 'userUuid',
53
+ 'exerciseModelUuid'
54
+ ],
55
+ name: 'unique_user_exercise_note'
56
+ }
57
+ ]
58
+ })
59
+ ], UserExerciseNote);
60
+
61
+ //# sourceMappingURL=UserExerciseNote.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/UserExerciseNote.ts"],"sourcesContent":["import {\n BelongsTo,\n Column,\n DataType,\n Default,\n ForeignKey,\n Model,\n Table,\n} from 'sequelize-typescript';\nimport { ExercisesModels } from './ExerciseModels.js';\nimport { PersistedUser } from '../user/PersistedUser.js';\n\n@Table({\n tableName: 'UserExerciseNotes',\n indexes: [\n {\n unique: true,\n fields: ['userUuid', 'exerciseModelUuid'],\n name: 'unique_user_exercise_note',\n },\n ],\n})\nexport class UserExerciseNote extends Model {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n primaryKey: true,\n })\n declare uuid: string;\n\n @ForeignKey(() => PersistedUser)\n @Column({ type: DataType.UUID, allowNull: false })\n declare userUuid: string;\n\n @ForeignKey(() => ExercisesModels)\n @Column({ type: DataType.UUID, allowNull: false })\n declare exerciseModelUuid: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare note: string;\n\n @BelongsTo(() => PersistedUser, 'userUuid')\n declare user: PersistedUser;\n\n @BelongsTo(() => ExercisesModels, 'exerciseModelUuid')\n declare exerciseModel: ExercisesModels;\n}\n"],"names":["BelongsTo","Column","DataType","Default","ForeignKey","Model","Table","ExercisesModels","PersistedUser","UserExerciseNote","UUIDV4","type","UUID","primaryKey","allowNull","TEXT","tableName","indexes","unique","fields","name"],"mappings":";;;;;;AAAA,SACEA,SAAS,EACTC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,KAAK,QACA,uBAAuB;AAC9B,SAASC,eAAe,QAAQ,sBAAsB;AACtD,SAASC,aAAa,QAAQ,2BAA2B;AAYzD,OAAO,MAAMC,yBAAyBJ;AAwBtC;;qBAvBoBK;;QAEhBC,MAAMT,SAASU,IAAI;QACnBC,YAAY;;;;mBAIIL;;QACRG,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;mBAGxBP;;QACRI,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;;QAGhCH,MAAMT,SAASa,IAAI;QAAED,WAAW;;;;kBAGzBN;;;kBAGAD;;;;QA/BjBS,WAAW;QACXC,SAAS;YACP;gBACEC,QAAQ;gBACRC,QAAQ;oBAAC;oBAAY;iBAAoB;gBACzCC,MAAM;YACR;SACD"}
@@ -0,0 +1,11 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { StrengthTestExercise } from './StrengthTestExercise.js';
3
+ export declare class UserStrengthTests extends Model<UserStrengthTests> {
4
+ uuid: string;
5
+ programId: string;
6
+ type: string;
7
+ order: number;
8
+ exercises: StrengthTestExercise[];
9
+ isFinished: boolean;
10
+ }
11
+ //# sourceMappingURL=UserStrengthTests.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UserStrengthTests.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/UserStrengthTests.ts"],"names":[],"mappings":"AAAA,OAAO,EAAkD,KAAK,EAAS,MAAM,sBAAsB,CAAC;AAEpG,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,qBACa,iBAAkB,SAAQ,KAAK,CAAC,iBAAiB,CAAC;IAQtD,IAAI,EAAE,MAAM,CAAC;IAQb,SAAS,EAAE,MAAM,CAAC;IAMlB,IAAI,EAAE,MAAM,CAAC;IAMb,KAAK,EAAE,MAAM,CAAC;IAGd,SAAS,EAAE,oBAAoB,EAAE,CAAC;IAMlC,UAAU,EAAE,OAAO,CAAC;CAC5B"}
@@ -0,0 +1,54 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Column, DataType, Default, ForeignKey, HasMany, Model, Table } from "sequelize-typescript";
8
+ import { Program } from "./Program.js";
9
+ import { StrengthTestExercise } from "./StrengthTestExercise.js";
10
+ export class UserStrengthTests extends Model {
11
+ }
12
+ _ts_decorate([
13
+ Default(DataType.UUIDV4),
14
+ Column({
15
+ type: DataType.UUID,
16
+ defaultValue: DataType.UUID,
17
+ allowNull: false,
18
+ primaryKey: true
19
+ })
20
+ ], UserStrengthTests.prototype, "uuid", void 0);
21
+ _ts_decorate([
22
+ ForeignKey(()=>Program),
23
+ Column({
24
+ type: DataType.UUID,
25
+ defaultValue: DataType.UUID,
26
+ allowNull: false
27
+ })
28
+ ], UserStrengthTests.prototype, "programId", void 0);
29
+ _ts_decorate([
30
+ Column({
31
+ type: DataType.TEXT,
32
+ allowNull: false
33
+ })
34
+ ], UserStrengthTests.prototype, "type", void 0);
35
+ _ts_decorate([
36
+ Column({
37
+ type: DataType.INTEGER,
38
+ allowNull: true
39
+ })
40
+ ], UserStrengthTests.prototype, "order", void 0);
41
+ _ts_decorate([
42
+ HasMany(()=>StrengthTestExercise)
43
+ ], UserStrengthTests.prototype, "exercises", void 0);
44
+ _ts_decorate([
45
+ Column({
46
+ type: DataType.BOOLEAN,
47
+ allowNull: false
48
+ })
49
+ ], UserStrengthTests.prototype, "isFinished", void 0);
50
+ UserStrengthTests = _ts_decorate([
51
+ Table
52
+ ], UserStrengthTests);
53
+
54
+ //# sourceMappingURL=UserStrengthTests.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/UserStrengthTests.ts"],"sourcesContent":["import { Column, DataType, Default, ForeignKey, HasMany, Model, Table } from 'sequelize-typescript';\nimport { Program } from './Program.js';\nimport { StrengthTestExercise } from './StrengthTestExercise.js';\n\n@Table\nexport class UserStrengthTests extends Model<UserStrengthTests> {\n\t@Default(DataType.UUIDV4)\n\t@Column({\n\t\ttype: DataType.UUID,\n\t\tdefaultValue: DataType.UUID,\n\t\tallowNull: false,\n\t\tprimaryKey: true\n\t})\n\tdeclare uuid: string;\n\n\t@ForeignKey(() => Program)\n\t@Column({\n\t\ttype: DataType.UUID,\n\t\tdefaultValue: DataType.UUID,\n\t\tallowNull: false\n\t})\n\tdeclare programId: string;\n\n\t@Column({\n\t\ttype: DataType.TEXT,\n\t\tallowNull: false\n\t})\n\tdeclare type: string;\n\n\t@Column({\n\t\ttype: DataType.INTEGER,\n\t\tallowNull: true\n\t})\n\tdeclare order: number;\n\n\t@HasMany(() => StrengthTestExercise)\n\tdeclare exercises: StrengthTestExercise[];\n\n\t@Column({\n\t\ttype: DataType.BOOLEAN,\n\t\tallowNull: false\n\t})\n\tdeclare isFinished: boolean;\n}\n"],"names":["Column","DataType","Default","ForeignKey","HasMany","Model","Table","Program","StrengthTestExercise","UserStrengthTests","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","TEXT","INTEGER","BOOLEAN"],"mappings":";;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpG,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,oBAAoB,QAAQ,4BAA4B;AAGjE,OAAO,MAAMC,0BAA0BJ;AAsCvC;;qBArCmBK;;QAEjBC,MAAMV,SAASW,IAAI;QACnBC,cAAcZ,SAASW,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;mBAIKR;;QAEjBI,MAAMV,SAASW,IAAI;QACnBC,cAAcZ,SAASW,IAAI;QAC3BE,WAAW;;;;;QAKXH,MAAMV,SAASe,IAAI;QACnBF,WAAW;;;;;QAKXH,MAAMV,SAASgB,OAAO;QACtBH,WAAW;;;;gBAIGN;;;;QAIdG,MAAMV,SAASiB,OAAO;QACtBJ,WAAW"}
@@ -0,0 +1,14 @@
1
+ import { Superset } from './Superset.js';
2
+ import { Model } from 'sequelize-typescript';
3
+ import { Exercise } from './Exercise.js';
4
+ export declare class Workout extends Model<Workout> {
5
+ uuid: string;
6
+ isFinished: boolean;
7
+ title: string;
8
+ duration: string;
9
+ order: number;
10
+ exercise: Exercise[];
11
+ superset: Superset[];
12
+ programId: string;
13
+ }
14
+ //# sourceMappingURL=Workout.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Workout.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/Workout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAMN,KAAK,EAEL,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,qBACa,OAAQ,SAAQ,KAAK,CAAC,OAAO,CAAC;IAQlC,IAAI,EAAE,MAAM,CAAC;IAGb,UAAU,EAAE,OAAO,CAAC;IAGpB,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,MAAM,CAAC;IAGjB,KAAK,EAAE,MAAM,CAAC;IAGd,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAGrB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAIrB,SAAS,EAAE,MAAM,CAAC;CAC1B"}
@@ -0,0 +1,66 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Superset } from "./Superset.js";
8
+ import { Column, DataType, Default, ForeignKey, HasMany, Index, Model, Table } from "sequelize-typescript";
9
+ import { Program } from "./Program.js";
10
+ import { Exercise } from "./Exercise.js";
11
+ export class Workout extends Model {
12
+ }
13
+ _ts_decorate([
14
+ Default(DataType.UUIDV4),
15
+ Column({
16
+ type: DataType.UUID,
17
+ defaultValue: DataType.UUID,
18
+ allowNull: false,
19
+ primaryKey: true
20
+ })
21
+ ], Workout.prototype, "uuid", void 0);
22
+ _ts_decorate([
23
+ Column({
24
+ type: DataType.BOOLEAN,
25
+ allowNull: false
26
+ })
27
+ ], Workout.prototype, "isFinished", void 0);
28
+ _ts_decorate([
29
+ Column({
30
+ type: DataType.TEXT,
31
+ allowNull: false
32
+ })
33
+ ], Workout.prototype, "title", void 0);
34
+ _ts_decorate([
35
+ Column({
36
+ type: DataType.TEXT,
37
+ allowNull: false
38
+ })
39
+ ], Workout.prototype, "duration", void 0);
40
+ _ts_decorate([
41
+ Column({
42
+ type: DataType.INTEGER,
43
+ allowNull: true
44
+ })
45
+ ], Workout.prototype, "order", void 0);
46
+ _ts_decorate([
47
+ HasMany(()=>Exercise, {
48
+ foreignKey: 'workoutUuid',
49
+ onDelete: 'CASCADE'
50
+ })
51
+ ], Workout.prototype, "exercise", void 0);
52
+ _ts_decorate([
53
+ HasMany(()=>Superset, {
54
+ foreignKey: 'workoutUuid',
55
+ onDelete: 'CASCADE'
56
+ })
57
+ ], Workout.prototype, "superset", void 0);
58
+ _ts_decorate([
59
+ ForeignKey(()=>Program),
60
+ Index
61
+ ], Workout.prototype, "programId", void 0);
62
+ Workout = _ts_decorate([
63
+ Table
64
+ ], Workout);
65
+
66
+ //# sourceMappingURL=Workout.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/Workout.ts"],"sourcesContent":["import { Superset } from './Superset.js';\nimport {\n\tColumn,\n\tDataType,\n\tDefault,\n\tForeignKey,\n\tHasMany, Index,\n\tModel,\n\tTable\n} from 'sequelize-typescript';\nimport { Program } from './Program.js';\nimport {Exercise} from './Exercise.js';\n\n@Table\nexport class Workout extends Model<Workout> {\n\t@Default(DataType.UUIDV4)\n\t@Column({\n\t\ttype: DataType.UUID,\n\t\tdefaultValue: DataType.UUID,\n\t\tallowNull: false,\n\t\tprimaryKey: true\n\t})\n\tdeclare uuid: string;\n\n\t@Column({ type: DataType.BOOLEAN, allowNull: false })\n\tdeclare isFinished: boolean;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare title: string;\n\n\t@Column({ type: DataType.TEXT, allowNull: false })\n\tdeclare duration: string;\n\n\t@Column({ type: DataType.INTEGER, allowNull: true })\n\tdeclare order: number;\n\n\t@HasMany(() => Exercise, { foreignKey: 'workoutUuid', onDelete: 'CASCADE' })\n\tdeclare exercise: Exercise[];\n\n\t@HasMany(() => Superset, { foreignKey: 'workoutUuid', onDelete: 'CASCADE' })\n\tdeclare superset: Superset[];\n\n\t@ForeignKey(() => Program)\n\t@Index\n\tdeclare programId: string;\n}\n"],"names":["Superset","Column","DataType","Default","ForeignKey","HasMany","Index","Model","Table","Program","Exercise","Workout","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","BOOLEAN","TEXT","INTEGER","foreignKey","onDelete"],"mappings":";;;;;;AAAA,SAASA,QAAQ,QAAQ,gBAAgB;AACzC,SACCC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,OAAO,EAAEC,KAAK,EACdC,KAAK,EACLC,KAAK,QACC,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AACvC,SAAQC,QAAQ,QAAO,gBAAgB;AAGvC,OAAO,MAAMC,gBAAgBJ;AA+B7B;;qBA9BmBK;;QAEjBC,MAAMX,SAASY,IAAI;QACnBC,cAAcb,SAASY,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;QAIHJ,MAAMX,SAASgB,OAAO;QAAEF,WAAW;;;;;QAGnCH,MAAMX,SAASiB,IAAI;QAAEH,WAAW;;;;;QAGhCH,MAAMX,SAASiB,IAAI;QAAEH,WAAW;;;;;QAGhCH,MAAMX,SAASkB,OAAO;QAAEJ,WAAW;;;;gBAG9BN;QAAYW,YAAY;QAAeC,UAAU;;;;gBAGjDtB;QAAYqB,YAAY;QAAeC,UAAU;;;;mBAG9Cb"}
@@ -0,0 +1,65 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Column, DataType, Default, ForeignKey, Index, Model, PrimaryKey, Table } from "sequelize-typescript";
8
+ import { Program } from "./Program.js";
9
+ export class WorkoutCompletion extends Model {
10
+ }
11
+ _ts_decorate([
12
+ PrimaryKey,
13
+ Default(DataType.UUIDV4),
14
+ Column(DataType.UUID)
15
+ ], WorkoutCompletion.prototype, "uuid", void 0);
16
+ _ts_decorate([
17
+ ForeignKey(()=>Program),
18
+ Index,
19
+ Column(DataType.UUID)
20
+ ], WorkoutCompletion.prototype, "programId", void 0);
21
+ _ts_decorate([
22
+ Index,
23
+ Column(DataType.UUID)
24
+ ], WorkoutCompletion.prototype, "userUuid", void 0);
25
+ _ts_decorate([
26
+ Column(DataType.INTEGER)
27
+ ], WorkoutCompletion.prototype, "dayOrder", void 0);
28
+ _ts_decorate([
29
+ Column(DataType.INTEGER)
30
+ ], WorkoutCompletion.prototype, "cycleNumber", void 0);
31
+ _ts_decorate([
32
+ Index,
33
+ Column(DataType.INTEGER)
34
+ ], WorkoutCompletion.prototype, "absoluteDayNumber", void 0);
35
+ _ts_decorate([
36
+ Column(DataType.DATE)
37
+ ], WorkoutCompletion.prototype, "completedAt", void 0);
38
+ _ts_decorate([
39
+ Column(DataType.STRING)
40
+ ], WorkoutCompletion.prototype, "dayType", void 0);
41
+ _ts_decorate([
42
+ Column(DataType.UUID)
43
+ ], WorkoutCompletion.prototype, "dayUuid", void 0);
44
+ _ts_decorate([
45
+ Column(DataType.JSONB)
46
+ ], WorkoutCompletion.prototype, "exercisesSnapshot", void 0);
47
+ _ts_decorate([
48
+ Column(DataType.STRING)
49
+ ], WorkoutCompletion.prototype, "workoutTitle", void 0);
50
+ _ts_decorate([
51
+ Column(DataType.STRING)
52
+ ], WorkoutCompletion.prototype, "workoutDuration", void 0);
53
+ _ts_decorate([
54
+ Column(DataType.DATE)
55
+ ], WorkoutCompletion.prototype, "createdAt", void 0);
56
+ _ts_decorate([
57
+ Column(DataType.DATE)
58
+ ], WorkoutCompletion.prototype, "updatedAt", void 0);
59
+ WorkoutCompletion = _ts_decorate([
60
+ Table({
61
+ timestamps: true
62
+ })
63
+ ], WorkoutCompletion);
64
+
65
+ //# sourceMappingURL=WorkoutCompletion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/WorkoutCompletion.ts"],"sourcesContent":["import {\n Column,\n DataType,\n Default,\n ForeignKey,\n Index,\n Model,\n PrimaryKey,\n Table,\n} from \"sequelize-typescript\";\nimport { Program } from \"./Program.js\";\n\nexport interface ExerciseSnapshot {\n uuid?: string;\n name: string;\n sets: string;\n reps: string;\n order: number;\n restTime?: string;\n supersetUuid?: string;\n progress?: any[];\n}\n\n@Table({ timestamps: true })\nexport class WorkoutCompletion extends Model {\n @PrimaryKey\n @Default(DataType.UUIDV4)\n @Column(DataType.UUID)\n declare uuid: string;\n\n @ForeignKey(() => Program)\n @Index\n @Column(DataType.UUID)\n declare programId: string;\n\n @Index\n @Column(DataType.UUID)\n declare userUuid: string;\n\n // Which day in the cycle (1-7)\n @Column(DataType.INTEGER)\n declare dayOrder: number;\n\n // Which cycle/week (0 = first week, 1 = second week, etc.)\n @Column(DataType.INTEGER)\n declare cycleNumber: number;\n\n // Absolute day since program start (0 = day 1, 1 = day 2, etc.)\n @Index\n @Column(DataType.INTEGER)\n declare absoluteDayNumber: number;\n\n @Column(DataType.DATE)\n declare completedAt: Date;\n\n // Type of day: 'workout', 'rest_day', 'strength_test', 'challenge'\n @Column(DataType.STRING)\n declare dayType: string;\n\n // UUID of the workout/rest day/strength test/challenge\n @Column(DataType.UUID)\n declare dayUuid: string;\n\n // Snapshot of exercises as they were when completed\n @Column(DataType.JSONB)\n declare exercisesSnapshot: ExerciseSnapshot[];\n\n // Basic workout info\n @Column(DataType.STRING)\n declare workoutTitle: string;\n\n @Column(DataType.STRING)\n declare workoutDuration: string;\n\n @Column(DataType.DATE)\n declare createdAt: Date;\n\n @Column(DataType.DATE)\n declare updatedAt: Date;\n}\n"],"names":["Column","DataType","Default","ForeignKey","Index","Model","PrimaryKey","Table","Program","WorkoutCompletion","UUIDV4","UUID","INTEGER","DATE","STRING","JSONB","timestamps"],"mappings":";;;;;;AAAA,SACEA,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,KAAK,EACLC,KAAK,EACLC,UAAU,EACVC,KAAK,QACA,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AAcvC,OAAO,MAAMC,0BAA0BJ;AAuDvC;;;qBArDoBK;oBACDC;;;mBAGCH;;oBAEDG;;;;oBAIAA;;;oBAIAC;;;oBAIAA;;;;oBAKAA;;;oBAGAC;;;oBAIAC;;;oBAIAH;;;oBAIAI;;;oBAIAD;;;oBAGAA;;;oBAGAD;;;oBAGAA;;;;QAtDVG,YAAY"}
@@ -0,0 +1,93 @@
1
+ function _ts_decorate(decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for(var i = decorators.length - 1; i >= 0; i--)if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ }
7
+ import { Table, Model, Column, DataType, Default, ForeignKey, BelongsTo, Index } from "sequelize-typescript";
8
+ import { Workout } from "./Workout.js";
9
+ export var SessionStatus = /*#__PURE__*/ function(SessionStatus) {
10
+ SessionStatus["ACTIVE"] = "active";
11
+ SessionStatus["COMPLETED"] = "completed";
12
+ return SessionStatus;
13
+ }({});
14
+ export class WorkoutSession extends Model {
15
+ }
16
+ _ts_decorate([
17
+ Default(DataType.UUIDV4),
18
+ Column({
19
+ type: DataType.UUID,
20
+ defaultValue: DataType.UUIDV4,
21
+ allowNull: false,
22
+ primaryKey: true
23
+ })
24
+ ], WorkoutSession.prototype, "uuid", void 0);
25
+ _ts_decorate([
26
+ Index,
27
+ Column({
28
+ type: DataType.UUID,
29
+ allowNull: false
30
+ })
31
+ ], WorkoutSession.prototype, "userUuid", void 0);
32
+ _ts_decorate([
33
+ ForeignKey(()=>Workout),
34
+ Index,
35
+ Column({
36
+ type: DataType.UUID,
37
+ allowNull: false
38
+ })
39
+ ], WorkoutSession.prototype, "workoutUuid", void 0);
40
+ _ts_decorate([
41
+ BelongsTo(()=>Workout, {
42
+ foreignKey: 'workoutUuid',
43
+ onDelete: 'CASCADE'
44
+ })
45
+ ], WorkoutSession.prototype, "workout", void 0);
46
+ _ts_decorate([
47
+ Column({
48
+ type: DataType.ENUM(...Object.values(SessionStatus)),
49
+ allowNull: false,
50
+ defaultValue: "active"
51
+ })
52
+ ], WorkoutSession.prototype, "status", void 0);
53
+ _ts_decorate([
54
+ Column({
55
+ type: DataType.DATE,
56
+ allowNull: false,
57
+ defaultValue: DataType.NOW
58
+ })
59
+ ], WorkoutSession.prototype, "startedAt", void 0);
60
+ _ts_decorate([
61
+ Column({
62
+ type: DataType.DATE,
63
+ allowNull: true
64
+ })
65
+ ], WorkoutSession.prototype, "completedAt", void 0);
66
+ _ts_decorate([
67
+ Column({
68
+ type: DataType.JSONB,
69
+ allowNull: true,
70
+ comment: 'Stores current workout progress: exercises completed, sets, reps, weight, etc.'
71
+ })
72
+ ], WorkoutSession.prototype, "progressSnapshot", void 0);
73
+ WorkoutSession = _ts_decorate([
74
+ Table({
75
+ tableName: 'WorkoutSessions',
76
+ timestamps: true,
77
+ indexes: [
78
+ {
79
+ unique: true,
80
+ fields: [
81
+ 'workoutUuid',
82
+ 'status'
83
+ ],
84
+ where: {
85
+ status: 'active'
86
+ },
87
+ name: 'unique_active_session_per_workout'
88
+ }
89
+ ]
90
+ })
91
+ ], WorkoutSession);
92
+
93
+ //# sourceMappingURL=WorkoutSession.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/WorkoutSession.ts"],"sourcesContent":["import {\n Table,\n Model,\n Column,\n DataType,\n Default,\n ForeignKey,\n BelongsTo,\n Index,\n} from 'sequelize-typescript';\nimport { Workout } from './Workout.js';\n\nexport enum SessionStatus {\n ACTIVE = 'active',\n COMPLETED = 'completed',\n}\n\n@Table({\n tableName: 'WorkoutSessions',\n timestamps: true,\n indexes: [\n {\n unique: true,\n fields: ['workoutUuid', 'status'],\n where: { status: 'active' },\n name: 'unique_active_session_per_workout'\n }\n ]\n})\nexport class WorkoutSession extends Model<WorkoutSession> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUIDV4,\n allowNull: false,\n primaryKey: true,\n })\n declare uuid: string;\n\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare userUuid: string;\n\n @ForeignKey(() => Workout)\n @Index\n @Column({ type: DataType.UUID, allowNull: false })\n declare workoutUuid: string;\n\n @BelongsTo(() => Workout, { foreignKey: 'workoutUuid', onDelete: 'CASCADE' })\n declare workout?: Workout;\n\n @Column({\n type: DataType.ENUM(...Object.values(SessionStatus)),\n allowNull: false,\n defaultValue: SessionStatus.ACTIVE,\n })\n declare status: SessionStatus;\n\n @Column({ type: DataType.DATE, allowNull: false, defaultValue: DataType.NOW })\n declare startedAt: Date;\n\n @Column({ type: DataType.DATE, allowNull: true })\n declare completedAt: Date | null;\n\n @Column({\n type: DataType.JSONB,\n allowNull: true,\n comment: 'Stores current workout progress: exercises completed, sets, reps, weight, etc.'\n })\n declare progressSnapshot: any[] | null;\n}"],"names":["Table","Model","Column","DataType","Default","ForeignKey","BelongsTo","Index","Workout","SessionStatus","WorkoutSession","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","foreignKey","onDelete","ENUM","Object","values","DATE","NOW","JSONB","comment","tableName","timestamps","indexes","unique","fields","where","status","name"],"mappings":";;;;;;AAAA,SACIA,KAAK,EACLC,KAAK,EACLC,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EACVC,SAAS,EACTC,KAAK,QACF,uBAAuB;AAC9B,SAASC,OAAO,QAAQ,eAAe;AAEvC,OAAO,IAAA,AAAKC,uCAAAA;;;WAAAA;MAGX;AAcD,OAAO,MAAMC,uBAAuBT;AAyCpC;;qBAxCsBU;;QAEdC,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASQ,MAAM;QAC7BI,WAAW;QACXC,YAAY;;;;;;QAKNJ,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;mBAGxBP;;;QAERI,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;kBAGzBP;QAAWS,YAAY;QAAeC,UAAU;;;;;QAI7DN,MAAMT,SAASgB,IAAI,IAAIC,OAAOC,MAAM,CAACZ;QACrCM,WAAW;QACXD,YAAY;;;;;QAINF,MAAMT,SAASmB,IAAI;QAAEP,WAAW;QAAOD,cAAcX,SAASoB,GAAG;;;;;QAGjEX,MAAMT,SAASmB,IAAI;QAAEP,WAAW;;;;;QAItCH,MAAMT,SAASqB,KAAK;QACpBT,WAAW;QACXU,SAAS;;;;;QAjDbC,WAAW;QACXC,YAAY;QACZC,SAAS;YACL;gBACIC,QAAQ;gBACRC,QAAQ;oBAAC;oBAAe;iBAAS;gBACjCC,OAAO;oBAAEC,QAAQ;gBAAS;gBAC1BC,MAAM;YACV;SACH"}