90dc-core 1.19.4 → 1.19.6

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 (299) 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.d.ts +2 -1
  16. package/dist/lib/clients/ImagesClient.d.ts.map +1 -1
  17. package/dist/lib/clients/ImagesClient.js +436 -0
  18. package/dist/lib/clients/ImagesClient.js.map +1 -0
  19. package/dist/lib/clients/MailingClient.js +84 -0
  20. package/dist/lib/clients/MailingClient.js.map +1 -0
  21. package/dist/lib/clients/PushNotificationClient.js +478 -0
  22. package/dist/lib/clients/PushNotificationClient.js.map +1 -0
  23. package/dist/lib/clients/types/email.types.js +3 -0
  24. package/dist/lib/clients/types/email.types.js.map +1 -0
  25. package/dist/lib/clients/types/images.types.js +3 -0
  26. package/dist/lib/clients/types/images.types.js.map +1 -0
  27. package/dist/lib/clients/types/mailing.types.js +3 -0
  28. package/dist/lib/clients/types/mailing.types.js.map +1 -0
  29. package/dist/lib/config/ConfigValidator.js +162 -0
  30. package/dist/lib/config/ConfigValidator.js.map +1 -0
  31. package/dist/lib/controllers/BaseController.js +64 -0
  32. package/dist/lib/controllers/BaseController.js.map +1 -0
  33. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js +60 -0
  34. package/dist/lib/db/migrations/20260330000000-create-user-progress-photos.js.map +1 -0
  35. package/dist/lib/dbmodels/coaching/Answer.js +51 -0
  36. package/dist/lib/dbmodels/coaching/Answer.js.map +1 -0
  37. package/dist/lib/dbmodels/coaching/ClientNote.js +75 -0
  38. package/dist/lib/dbmodels/coaching/ClientNote.js.map +1 -0
  39. package/dist/lib/dbmodels/coaching/ClientTag.js +45 -0
  40. package/dist/lib/dbmodels/coaching/ClientTag.js.map +1 -0
  41. package/dist/lib/dbmodels/coaching/Question.js +60 -0
  42. package/dist/lib/dbmodels/coaching/Question.js.map +1 -0
  43. package/dist/lib/dbmodels/coaching/Questionnaire.js +39 -0
  44. package/dist/lib/dbmodels/coaching/Questionnaire.js.map +1 -0
  45. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js +42 -0
  46. package/dist/lib/dbmodels/coaching/QuestionnaireResponse.js.map +1 -0
  47. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js +69 -0
  48. package/dist/lib/dbmodels/coaching/WeeklyCheckIn.js.map +1 -0
  49. package/dist/lib/dbmodels/coaching/WeightRecord.js +49 -0
  50. package/dist/lib/dbmodels/coaching/WeightRecord.js.map +1 -0
  51. package/dist/lib/dbmodels/diet/DietDay.js +50 -0
  52. package/dist/lib/dbmodels/diet/DietDay.js.map +1 -0
  53. package/dist/lib/dbmodels/diet/DietMeal.js +74 -0
  54. package/dist/lib/dbmodels/diet/DietMeal.js.map +1 -0
  55. package/dist/lib/dbmodels/diet/DietMealCompletion.js +69 -0
  56. package/dist/lib/dbmodels/diet/DietMealCompletion.js.map +1 -0
  57. package/dist/lib/dbmodels/diet/DietMealRecipe.js +67 -0
  58. package/dist/lib/dbmodels/diet/DietMealRecipe.js.map +1 -0
  59. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js +46 -0
  60. package/dist/lib/dbmodels/diet/DietMealRecipeIngredient.js.map +1 -0
  61. package/dist/lib/dbmodels/diet/DietProgram.js +98 -0
  62. package/dist/lib/dbmodels/diet/DietProgram.js.map +1 -0
  63. package/dist/lib/dbmodels/diet/Ingredient.js +88 -0
  64. package/dist/lib/dbmodels/diet/Ingredient.js.map +1 -0
  65. package/dist/lib/dbmodels/diet/IngredientTag.js +64 -0
  66. package/dist/lib/dbmodels/diet/IngredientTag.js.map +1 -0
  67. package/dist/lib/dbmodels/diet/IngredientTags.js +29 -0
  68. package/dist/lib/dbmodels/diet/IngredientTags.js.map +1 -0
  69. package/dist/lib/dbmodels/diet/Recipe.js +173 -0
  70. package/dist/lib/dbmodels/diet/Recipe.js.map +1 -0
  71. package/dist/lib/dbmodels/diet/RecipeIngredient.js +78 -0
  72. package/dist/lib/dbmodels/diet/RecipeIngredient.js.map +1 -0
  73. package/dist/lib/dbmodels/diet/RecipeTag.js +44 -0
  74. package/dist/lib/dbmodels/diet/RecipeTag.js.map +1 -0
  75. package/dist/lib/dbmodels/diet/RecipeTags.js +24 -0
  76. package/dist/lib/dbmodels/diet/RecipeTags.js.map +1 -0
  77. package/dist/lib/dbmodels/diet/ShoppingList.js +69 -0
  78. package/dist/lib/dbmodels/diet/ShoppingList.js.map +1 -0
  79. package/dist/lib/dbmodels/diet/ShoppingListItem.js +66 -0
  80. package/dist/lib/dbmodels/diet/ShoppingListItem.js.map +1 -0
  81. package/dist/lib/dbmodels/diet/TranslatedRecipe.js +122 -0
  82. package/dist/lib/dbmodels/diet/TranslatedRecipe.js.map +1 -0
  83. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js +47 -0
  84. package/dist/lib/dbmodels/diet/TranslatedRecipeTag.js.map +1 -0
  85. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js +24 -0
  86. package/dist/lib/dbmodels/diet/TranslatedRecipeTags.js.map +1 -0
  87. package/dist/lib/dbmodels/diet/UserDietPreferences.js +85 -0
  88. package/dist/lib/dbmodels/diet/UserDietPreferences.js.map +1 -0
  89. package/dist/lib/dbmodels/gamification/Badge.js +62 -0
  90. package/dist/lib/dbmodels/gamification/Badge.js.map +1 -0
  91. package/dist/lib/dbmodels/gamification/StreaksLog.js +37 -0
  92. package/dist/lib/dbmodels/gamification/StreaksLog.js.map +1 -0
  93. package/dist/lib/dbmodels/gamification/TranslatedBadge.js +45 -0
  94. package/dist/lib/dbmodels/gamification/TranslatedBadge.js.map +1 -0
  95. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js +48 -0
  96. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/UserRankHistory.js.map +1 -0
  97. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js +53 -0
  98. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpEvent.js.map +1 -0
  99. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js +68 -0
  100. package/dist/lib/dbmodels/gamification/xpAndLeaderboards/XpTransaction.js.map +1 -0
  101. package/dist/lib/dbmodels/index.js +288 -0
  102. package/dist/lib/dbmodels/index.js.map +1 -0
  103. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts +32 -0
  104. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.d.ts.map +1 -0
  105. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js +155 -0
  106. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgram.js.map +1 -0
  107. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts +22 -0
  108. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.d.ts.map +1 -0
  109. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js +108 -0
  110. package/dist/lib/dbmodels/nonconsprogram/NonConsumableProgramWebContent.js.map +1 -0
  111. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts +20 -0
  112. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.d.ts.map +1 -0
  113. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js +97 -0
  114. package/dist/lib/dbmodels/nonconsprogram/TranslatedConsumableProgram.js.map +1 -0
  115. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts +22 -0
  116. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.d.ts.map +1 -0
  117. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js +115 -0
  118. package/dist/lib/dbmodels/nonconsprogram/TranslatedNonConsumableProgramWebContent.js.map +1 -0
  119. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts +7 -0
  120. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.d.ts.map +1 -0
  121. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js +41 -0
  122. package/dist/lib/dbmodels/nonconsprogram/UserNonConsumableProgram.js.map +1 -0
  123. package/dist/lib/dbmodels/notifications/NotificationModels.js +38 -0
  124. package/dist/lib/dbmodels/notifications/NotificationModels.js.map +1 -0
  125. package/dist/lib/dbmodels/notifications/TranslatedNotification.js +45 -0
  126. package/dist/lib/dbmodels/notifications/TranslatedNotification.js.map +1 -0
  127. package/dist/lib/dbmodels/program/Challenge.d.ts +13 -0
  128. package/dist/lib/dbmodels/program/Challenge.d.ts.map +1 -0
  129. package/dist/lib/dbmodels/program/Challenge.js +63 -0
  130. package/dist/lib/dbmodels/program/Challenge.js.map +1 -0
  131. package/dist/lib/dbmodels/program/ChallengeBlueprint.js +75 -0
  132. package/dist/lib/dbmodels/program/ChallengeBlueprint.js.map +1 -0
  133. package/dist/lib/dbmodels/program/CircularProgramDraft.js +82 -0
  134. package/dist/lib/dbmodels/program/CircularProgramDraft.js.map +1 -0
  135. package/dist/lib/dbmodels/program/CoachExerciseNote.js +61 -0
  136. package/dist/lib/dbmodels/program/CoachExerciseNote.js.map +1 -0
  137. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js +84 -0
  138. package/dist/lib/dbmodels/program/CustomProgramBlueprint.js.map +1 -0
  139. package/dist/lib/dbmodels/program/CustomStrengthTest.js +55 -0
  140. package/dist/lib/dbmodels/program/CustomStrengthTest.js.map +1 -0
  141. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js +69 -0
  142. package/dist/lib/dbmodels/program/CustomStrengthTestExercises.js.map +1 -0
  143. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js +58 -0
  144. package/dist/lib/dbmodels/program/CustomWorkoutBlueprint.js.map +1 -0
  145. package/dist/lib/dbmodels/program/Exercise.d.ts +23 -0
  146. package/dist/lib/dbmodels/program/Exercise.d.ts.map +1 -0
  147. package/dist/lib/dbmodels/program/Exercise.js +101 -0
  148. package/dist/lib/dbmodels/program/Exercise.js.map +1 -0
  149. package/dist/lib/dbmodels/program/ExerciseModels.d.ts +28 -0
  150. package/dist/lib/dbmodels/program/ExerciseModels.d.ts.map +1 -0
  151. package/dist/lib/dbmodels/program/ExerciseModels.js +149 -0
  152. package/dist/lib/dbmodels/program/ExerciseModels.js.map +1 -0
  153. package/dist/lib/dbmodels/program/Program.d.ts +15 -0
  154. package/dist/lib/dbmodels/program/Program.d.ts.map +1 -0
  155. package/dist/lib/dbmodels/program/Program.js +76 -0
  156. package/dist/lib/dbmodels/program/Program.js.map +1 -0
  157. package/dist/lib/dbmodels/program/ProgressEntry.d.ts +26 -0
  158. package/dist/lib/dbmodels/program/ProgressEntry.d.ts.map +1 -0
  159. package/dist/lib/dbmodels/program/ProgressEntry.js +77 -0
  160. package/dist/lib/dbmodels/program/ProgressEntry.js.map +1 -0
  161. package/dist/lib/dbmodels/program/RestDay.js +33 -0
  162. package/dist/lib/dbmodels/program/RestDay.js.map +1 -0
  163. package/dist/lib/dbmodels/program/StrengthTest.d.ts +10 -0
  164. package/dist/lib/dbmodels/program/StrengthTest.d.ts.map +1 -0
  165. package/dist/lib/dbmodels/program/StrengthTest.js +39 -0
  166. package/dist/lib/dbmodels/program/StrengthTest.js.map +1 -0
  167. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts +15 -0
  168. package/dist/lib/dbmodels/program/StrengthTestExercise.d.ts.map +1 -0
  169. package/dist/lib/dbmodels/program/StrengthTestExercise.js +72 -0
  170. package/dist/lib/dbmodels/program/StrengthTestExercise.js.map +1 -0
  171. package/dist/lib/dbmodels/program/StrengthTestSession.js +73 -0
  172. package/dist/lib/dbmodels/program/StrengthTestSession.js.map +1 -0
  173. package/dist/lib/dbmodels/program/Superset.d.ts +13 -0
  174. package/dist/lib/dbmodels/program/Superset.d.ts.map +1 -0
  175. package/dist/lib/dbmodels/program/Superset.js +46 -0
  176. package/dist/lib/dbmodels/program/Superset.js.map +1 -0
  177. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js +70 -0
  178. package/dist/lib/dbmodels/program/ThirtyDayChallenge.js.map +1 -0
  179. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js +55 -0
  180. package/dist/lib/dbmodels/program/ThirtyDayChallengeStrengthTest.js.map +1 -0
  181. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts +15 -0
  182. package/dist/lib/dbmodels/program/TranslatedChallenge.d.ts.map +1 -0
  183. package/dist/lib/dbmodels/program/TranslatedChallenge.js +69 -0
  184. package/dist/lib/dbmodels/program/TranslatedChallenge.js.map +1 -0
  185. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts +25 -0
  186. package/dist/lib/dbmodels/program/TranslatedExerciseModel.d.ts.map +1 -0
  187. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js +123 -0
  188. package/dist/lib/dbmodels/program/TranslatedExerciseModel.js.map +1 -0
  189. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts +12 -0
  190. package/dist/lib/dbmodels/program/TranslatedStrengthTest.d.ts.map +1 -0
  191. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js +45 -0
  192. package/dist/lib/dbmodels/program/TranslatedStrengthTest.js.map +1 -0
  193. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts +16 -0
  194. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.d.ts.map +1 -0
  195. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js +78 -0
  196. package/dist/lib/dbmodels/program/TranslatedStrengthTestExercise.js.map +1 -0
  197. package/dist/lib/dbmodels/program/UserChallenge.d.ts +10 -0
  198. package/dist/lib/dbmodels/program/UserChallenge.d.ts.map +1 -0
  199. package/dist/lib/dbmodels/program/UserChallenge.js +47 -0
  200. package/dist/lib/dbmodels/program/UserChallenge.js.map +1 -0
  201. package/dist/lib/dbmodels/program/UserExerciseNote.js +61 -0
  202. package/dist/lib/dbmodels/program/UserExerciseNote.js.map +1 -0
  203. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts +11 -0
  204. package/dist/lib/dbmodels/program/UserStrengthTests.d.ts.map +1 -0
  205. package/dist/lib/dbmodels/program/UserStrengthTests.js +54 -0
  206. package/dist/lib/dbmodels/program/UserStrengthTests.js.map +1 -0
  207. package/dist/lib/dbmodels/program/Workout.d.ts +14 -0
  208. package/dist/lib/dbmodels/program/Workout.d.ts.map +1 -0
  209. package/dist/lib/dbmodels/program/Workout.js +66 -0
  210. package/dist/lib/dbmodels/program/Workout.js.map +1 -0
  211. package/dist/lib/dbmodels/program/WorkoutCompletion.js +65 -0
  212. package/dist/lib/dbmodels/program/WorkoutCompletion.js.map +1 -0
  213. package/dist/lib/dbmodels/program/WorkoutSession.js +93 -0
  214. package/dist/lib/dbmodels/program/WorkoutSession.js.map +1 -0
  215. package/dist/lib/dbmodels/subscription/Subscription.d.ts +19 -0
  216. package/dist/lib/dbmodels/subscription/Subscription.d.ts.map +1 -0
  217. package/dist/lib/dbmodels/subscription/Subscription.js +91 -0
  218. package/dist/lib/dbmodels/subscription/Subscription.js.map +1 -0
  219. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js +79 -0
  220. package/dist/lib/dbmodels/subscription/SubscriptionEvent.js.map +1 -0
  221. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts +9 -0
  222. package/dist/lib/dbmodels/subscription/SubscriptionLog.d.ts.map +1 -0
  223. package/dist/lib/dbmodels/subscription/SubscriptionLog.js +42 -0
  224. package/dist/lib/dbmodels/subscription/SubscriptionLog.js.map +1 -0
  225. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js +92 -0
  226. package/dist/lib/dbmodels/subscription/SubscriptionRefund.js.map +1 -0
  227. package/dist/lib/dbmodels/user/DeviceTokens.js +34 -0
  228. package/dist/lib/dbmodels/user/DeviceTokens.js.map +1 -0
  229. package/dist/lib/dbmodels/user/PersistedUser.d.ts +43 -0
  230. package/dist/lib/dbmodels/user/PersistedUser.d.ts.map +1 -0
  231. package/dist/lib/dbmodels/user/PersistedUser.js +237 -0
  232. package/dist/lib/dbmodels/user/PersistedUser.js.map +1 -0
  233. package/dist/lib/dbmodels/user/UserAddons.js +26 -0
  234. package/dist/lib/dbmodels/user/UserAddons.js.map +1 -0
  235. package/dist/lib/dbmodels/user/UserBadges.js +63 -0
  236. package/dist/lib/dbmodels/user/UserBadges.js.map +1 -0
  237. package/dist/lib/dbmodels/user/UserCoach.js +40 -0
  238. package/dist/lib/dbmodels/user/UserCoach.js.map +1 -0
  239. package/dist/lib/dbmodels/user/UserDiscount.js +24 -0
  240. package/dist/lib/dbmodels/user/UserDiscount.js.map +1 -0
  241. package/dist/lib/dbmodels/user/UserOptions.js +34 -0
  242. package/dist/lib/dbmodels/user/UserOptions.js.map +1 -0
  243. package/dist/lib/dbmodels/user/UserProgressPhoto.js +59 -0
  244. package/dist/lib/dbmodels/user/UserProgressPhoto.js.map +1 -0
  245. package/dist/lib/dbmodels/user/UserStreaks.js +64 -0
  246. package/dist/lib/dbmodels/user/UserStreaks.js.map +1 -0
  247. package/dist/lib/dbmodels/user/UsersFriends.js +46 -0
  248. package/dist/lib/dbmodels/user/UsersFriends.js.map +1 -0
  249. package/dist/lib/enums/ProgramEnums.d.ts +18 -0
  250. package/dist/lib/enums/ProgramEnums.d.ts.map +1 -0
  251. package/dist/lib/enums/ProgramEnums.js +22 -0
  252. package/dist/lib/enums/ProgramEnums.js.map +1 -0
  253. package/dist/lib/enums/ProgramTemplates.js +738 -0
  254. package/dist/lib/enums/ProgramTemplates.js.map +1 -0
  255. package/dist/lib/middlewares/ErrorMiddleware.js +141 -0
  256. package/dist/lib/middlewares/ErrorMiddleware.js.map +1 -0
  257. package/dist/lib/middlewares/ValidationMiddleware.js +24 -0
  258. package/dist/lib/middlewares/ValidationMiddleware.js.map +1 -0
  259. package/dist/lib/models/BlueprintInterfaces.js +3 -0
  260. package/dist/lib/models/BlueprintInterfaces.js.map +1 -0
  261. package/dist/lib/models/ExerciseInterfaces.d.ts +68 -0
  262. package/dist/lib/models/ExerciseInterfaces.d.ts.map +1 -0
  263. package/dist/lib/models/ExerciseInterfaces.js +3 -0
  264. package/dist/lib/models/ExerciseInterfaces.js.map +1 -0
  265. package/dist/lib/models/NotificationInterfaces.js +11 -0
  266. package/dist/lib/models/NotificationInterfaces.js.map +1 -0
  267. package/dist/lib/models/ProgramInterfaces.js +3 -0
  268. package/dist/lib/models/ProgramInterfaces.js.map +1 -0
  269. package/dist/lib/models/UserInterfaces.js +3 -0
  270. package/dist/lib/models/UserInterfaces.js.map +1 -0
  271. package/dist/lib/models/WorkoutInterfaces.js +3 -0
  272. package/dist/lib/models/WorkoutInterfaces.js.map +1 -0
  273. package/dist/lib/scripts/cli.js +82 -0
  274. package/dist/lib/scripts/cli.js.map +1 -0
  275. package/dist/lib/scripts/populate-exercise-thumbnails.js +64 -0
  276. package/dist/lib/scripts/populate-exercise-thumbnails.js.map +1 -0
  277. package/dist/lib/scripts/setup-database.js +43 -0
  278. package/dist/lib/scripts/setup-database.js.map +1 -0
  279. package/dist/lib/scripts/verify-indexes.js +94 -0
  280. package/dist/lib/scripts/verify-indexes.js.map +1 -0
  281. package/dist/lib/testing/testFixtures.js +520 -0
  282. package/dist/lib/testing/testFixtures.js.map +1 -0
  283. package/dist/lib/testing/testHelpers.js +149 -0
  284. package/dist/lib/testing/testHelpers.js.map +1 -0
  285. package/dist/lib/utils/AuthenticationUtil.js +481 -0
  286. package/dist/lib/utils/AuthenticationUtil.js.map +1 -0
  287. package/dist/lib/utils/Logger.js +242 -0
  288. package/dist/lib/utils/Logger.js.map +1 -0
  289. package/dist/lib/utils/NotificationClient.js +371 -0
  290. package/dist/lib/utils/NotificationClient.js.map +1 -0
  291. package/dist/lib/utils/NotificationsUtil.js +95 -0
  292. package/dist/lib/utils/NotificationsUtil.js.map +1 -0
  293. package/dist/lib/utils/SecretManager.js +107 -0
  294. package/dist/lib/utils/SecretManager.js.map +1 -0
  295. package/dist/lib/utils/SentryUtil.js +140 -0
  296. package/dist/lib/utils/SentryUtil.js.map +1 -0
  297. package/dist/lib/utils/imageValidation.js +31 -0
  298. package/dist/lib/utils/imageValidation.js.map +1 -0
  299. package/package.json +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/CustomStrengthTestExercises.ts"],"sourcesContent":["import {\n Column,\n DataType,\n Default,\n ForeignKey, Index,\n Model,\n Table,\n} from \"sequelize-typescript\";\nimport {CustomStrengthTest} from \"./CustomStrengthTest.js\";\n\n@Table\nexport class CustomStrengthTestExercise extends Model {\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 @Index\n @ForeignKey(() => CustomStrengthTest)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUID,\n allowNull: false,\n })\n declare stUuid: string;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare url: string;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare title: string;\n\n @Column({ type: DataType.INTEGER, allowNull: false })\n declare order: number;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare pointer: string;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare timerTime: string;\n\n @Column({ type: DataType.JSONB, allowNull: true })\n declare progress: Progress;\n\n}\n\nexport interface Progress {\n [key: string]: number | string | undefined;\n}"],"names":["Column","DataType","Default","ForeignKey","Index","Model","Table","CustomStrengthTest","CustomStrengthTestExercise","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","STRING","INTEGER","TEXT","JSONB"],"mappings":";;;;;;AAAA,SACIA,MAAM,EACNC,QAAQ,EACRC,OAAO,EACPC,UAAU,EAAEC,KAAK,EACjBC,KAAK,EACLC,KAAK,QACF,uBAAuB;AAC9B,SAAQC,kBAAkB,QAAO,0BAA0B;AAG3D,OAAO,MAAMC,mCAAmCH;AAqChD;;qBApCsBI;;QAEdC,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASU,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;mBAKEP;;QAEdG,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASU,IAAI;QAC3BE,WAAW;;;;;QAILH,MAAMT,SAASc,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMT,SAASc,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMT,SAASe,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMT,SAASgB,IAAI;QAAEJ,WAAW;;;;;QAGhCH,MAAMT,SAASc,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMT,SAASiB,KAAK;QAAEL,WAAW"}
@@ -0,0 +1,58 @@
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, Table } from "sequelize-typescript";
8
+ import { CustomProgramBlueprint } from "./CustomProgramBlueprint.js";
9
+ export class CustomWorkoutBlueprint extends Model {
10
+ }
11
+ _ts_decorate([
12
+ Default(DataType.UUIDV4),
13
+ Column({
14
+ type: DataType.UUID,
15
+ defaultValue: DataType.UUID,
16
+ allowNull: false,
17
+ primaryKey: true
18
+ })
19
+ ], CustomWorkoutBlueprint.prototype, "uuid", void 0);
20
+ _ts_decorate([
21
+ Index,
22
+ ForeignKey(()=>CustomProgramBlueprint)
23
+ ], CustomWorkoutBlueprint.prototype, "blueprintUuid", void 0);
24
+ _ts_decorate([
25
+ Column({
26
+ type: DataType.TEXT,
27
+ allowNull: false
28
+ })
29
+ ], CustomWorkoutBlueprint.prototype, "title", void 0);
30
+ _ts_decorate([
31
+ Column({
32
+ type: DataType.TEXT,
33
+ allowNull: false
34
+ })
35
+ ], CustomWorkoutBlueprint.prototype, "duration", void 0);
36
+ _ts_decorate([
37
+ Column({
38
+ type: DataType.INTEGER,
39
+ allowNull: true
40
+ })
41
+ ], CustomWorkoutBlueprint.prototype, "order", void 0);
42
+ _ts_decorate([
43
+ Column({
44
+ type: DataType.ARRAY(DataType.JSONB),
45
+ allowNull: false
46
+ })
47
+ ], CustomWorkoutBlueprint.prototype, "exercises", void 0);
48
+ _ts_decorate([
49
+ Column({
50
+ type: DataType.ARRAY(DataType.JSONB),
51
+ allowNull: true
52
+ })
53
+ ], CustomWorkoutBlueprint.prototype, "superset", void 0);
54
+ CustomWorkoutBlueprint = _ts_decorate([
55
+ Table
56
+ ], CustomWorkoutBlueprint);
57
+
58
+ //# sourceMappingURL=CustomWorkoutBlueprint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/CustomWorkoutBlueprint.ts"],"sourcesContent":["import {Column, DataType, Default, ForeignKey, Index, Model, Table} from \"sequelize-typescript\";\nimport {CustomProgramBlueprint} from \"./CustomProgramBlueprint.js\";\nimport type {ExerciseBlueprint} from \"../../models/BlueprintInterfaces.js\";\n\n@Table\nexport class CustomWorkoutBlueprint extends Model {\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 @Index\n @ForeignKey(() => CustomProgramBlueprint)\n declare blueprintUuid: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare title: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare duration: string;\n\n @Column({ type: DataType.INTEGER, allowNull: true })\n declare order: number;\n\n @Column({ type: DataType.ARRAY(DataType.JSONB), allowNull: false })\n declare exercises: ExerciseBlueprint[];\n\n @Column({ type: DataType.ARRAY(DataType.JSONB), allowNull: true })\n declare superset: SupersetModel[];\n}\nexport interface SupersetModel {\n startPosition: number;\n exercises: ExerciseBlueprint[];\n}\n"],"names":["Column","DataType","Default","ForeignKey","Index","Model","Table","CustomProgramBlueprint","CustomWorkoutBlueprint","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","TEXT","INTEGER","ARRAY","JSONB"],"mappings":";;;;;;AAAA,SAAQA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,UAAU,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAO,uBAAuB;AAChG,SAAQC,sBAAsB,QAAO,8BAA8B;AAInE,OAAO,MAAMC,+BAA+BH;AA4B5C;;qBA3BsBI;;QAEdC,MAAMT,SAASU,IAAI;QACnBC,cAAcX,SAASU,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;mBAKEP;;;;QAGRG,MAAMT,SAASc,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMT,SAASc,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMT,SAASe,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMT,SAASgB,KAAK,CAAChB,SAASiB,KAAK;QAAGL,WAAW;;;;;QAGjDH,MAAMT,SAASgB,KAAK,CAAChB,SAASiB,KAAK;QAAGL,WAAW"}
@@ -0,0 +1,23 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { Workout } from './Workout.js';
3
+ import { Superset } from './Superset.js';
4
+ import { ProgressEntry } from './ProgressEntry.js';
5
+ import type { Progress } from '../../models/ExerciseInterfaces.js';
6
+ export declare class Exercise extends Model<Exercise> {
7
+ uuid: string;
8
+ exerciseModelUuid?: string;
9
+ name: string;
10
+ order: number;
11
+ progress: Progress[];
12
+ reps: string;
13
+ sets: string;
14
+ restTime: string;
15
+ coachNote: string | null;
16
+ thumbnailUrl: string | null;
17
+ workoutUuid: string;
18
+ supersetUuid: string | null;
19
+ progressEntries: ProgressEntry[];
20
+ superset: Superset | null;
21
+ workout: Workout;
22
+ }
23
+ //# sourceMappingURL=Exercise.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Exercise.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/Exercise.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,EAA4D,MAAM,sBAAsB,CAAC;AACtH,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAEnE,qBACa,QAAS,SAAQ,KAAK,CAAC,QAAQ,CAAC;IAMnC,IAAI,EAAE,MAAM,CAAC;IAKb,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAG3B,IAAI,EAAE,MAAM,CAAC;IAGb,KAAK,EAAE,MAAM,CAAC;IAId,QAAQ,EAAE,QAAQ,EAAE,CAAC;IAGrB,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAK5B,WAAW,EAAE,MAAM,CAAC;IAKpB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,eAAe,EAAE,aAAa,EAAE,CAAC;IAGjC,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAE1B,OAAO,EAAE,OAAO,CAAC;CAC1B"}
@@ -0,0 +1,101 @@
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, Column, Model, ForeignKey, Index, DataType, Default, HasMany, BelongsTo } from "sequelize-typescript";
8
+ import { Workout } from "./Workout.js";
9
+ import { Superset } from "./Superset.js";
10
+ import { ProgressEntry } from "./ProgressEntry.js";
11
+ export class Exercise extends Model {
12
+ }
13
+ _ts_decorate([
14
+ Default(DataType.UUIDV4),
15
+ Column({
16
+ type: DataType.UUID,
17
+ primaryKey: true
18
+ })
19
+ ], Exercise.prototype, "uuid", void 0);
20
+ _ts_decorate([
21
+ Index,
22
+ Column({
23
+ type: DataType.UUID,
24
+ allowNull: true
25
+ })
26
+ ], Exercise.prototype, "exerciseModelUuid", void 0);
27
+ _ts_decorate([
28
+ Column({
29
+ type: DataType.STRING,
30
+ allowNull: false
31
+ })
32
+ ], Exercise.prototype, "name", void 0);
33
+ _ts_decorate([
34
+ Column({
35
+ type: DataType.INTEGER,
36
+ allowNull: false
37
+ })
38
+ ], Exercise.prototype, "order", void 0);
39
+ _ts_decorate([
40
+ Column({
41
+ type: DataType.ARRAY(DataType.JSONB),
42
+ allowNull: true
43
+ })
44
+ ], Exercise.prototype, "progress", void 0);
45
+ _ts_decorate([
46
+ Column({
47
+ type: DataType.STRING,
48
+ allowNull: false
49
+ })
50
+ ], Exercise.prototype, "reps", void 0);
51
+ _ts_decorate([
52
+ Column({
53
+ type: DataType.STRING,
54
+ allowNull: false
55
+ })
56
+ ], Exercise.prototype, "sets", void 0);
57
+ _ts_decorate([
58
+ Column({
59
+ type: DataType.STRING,
60
+ allowNull: true
61
+ })
62
+ ], Exercise.prototype, "restTime", void 0);
63
+ _ts_decorate([
64
+ Column({
65
+ type: DataType.TEXT,
66
+ allowNull: true
67
+ })
68
+ ], Exercise.prototype, "coachNote", void 0);
69
+ _ts_decorate([
70
+ Column({
71
+ type: DataType.STRING(500),
72
+ allowNull: true
73
+ })
74
+ ], Exercise.prototype, "thumbnailUrl", void 0);
75
+ _ts_decorate([
76
+ Index,
77
+ ForeignKey(()=>Workout),
78
+ Column({
79
+ type: DataType.UUID,
80
+ allowNull: false
81
+ })
82
+ ], Exercise.prototype, "workoutUuid", void 0);
83
+ _ts_decorate([
84
+ Index,
85
+ ForeignKey(()=>Superset),
86
+ Column({
87
+ type: DataType.UUID,
88
+ allowNull: true
89
+ })
90
+ ], Exercise.prototype, "supersetUuid", void 0);
91
+ _ts_decorate([
92
+ HasMany(()=>ProgressEntry)
93
+ ], Exercise.prototype, "progressEntries", void 0);
94
+ _ts_decorate([
95
+ BelongsTo(()=>Superset)
96
+ ], Exercise.prototype, "superset", void 0);
97
+ Exercise = _ts_decorate([
98
+ Table
99
+ ], Exercise);
100
+
101
+ //# sourceMappingURL=Exercise.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/Exercise.ts"],"sourcesContent":["import { Table, Column, Model, ForeignKey, Index, DataType, Default, HasMany, BelongsTo } from 'sequelize-typescript';\nimport { Workout } from './Workout.js';\nimport { Superset } from './Superset.js';\nimport { ProgressEntry } from './ProgressEntry.js';\nimport type { Progress } from '../../models/ExerciseInterfaces.js';\n\n@Table\nexport class Exercise extends Model<Exercise> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n primaryKey: true,\n })\n declare uuid: string;\n\n // Programs v2: Reference to ExerciseModel for latest video/instructions\n @Index\n @Column({ type: DataType.UUID, allowNull: true })\n declare exerciseModelUuid?: string;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare name: string;\n\n @Column({ type: DataType.INTEGER, allowNull: false })\n declare order: number;\n\n // DEPRECATED: Keep for backward compatibility during migration\n @Column({ type: DataType.ARRAY(DataType.JSONB), allowNull: true })\n declare progress: Progress[];\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare reps: string;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare sets: string;\n\n @Column({ type: DataType.STRING, allowNull: true })\n declare restTime: string;\n\n @Column({ type: DataType.TEXT, allowNull: true })\n declare coachNote: string | null;\n\n @Column({ type: DataType.STRING(500), allowNull: true })\n declare thumbnailUrl: string | null;\n\n @Index\n @ForeignKey(() => Workout)\n @Column({ type: DataType.UUID, allowNull: false })\n declare workoutUuid: string;\n\n @Index\n @ForeignKey(() => Superset)\n @Column({ type: DataType.UUID, allowNull: true })\n declare supersetUuid: string | null;\n\n @HasMany(() => ProgressEntry)\n declare progressEntries: ProgressEntry[];\n\n @BelongsTo(() => Superset)\n declare superset: Superset | null;\n\n declare workout: Workout;\n}\n"],"names":["Table","Column","Model","ForeignKey","Index","DataType","Default","HasMany","BelongsTo","Workout","Superset","ProgressEntry","Exercise","UUIDV4","type","UUID","primaryKey","allowNull","STRING","INTEGER","ARRAY","JSONB","TEXT"],"mappings":";;;;;;AAAA,SAASA,KAAK,EAAEC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEC,SAAS,QAAQ,uBAAuB;AACtH,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,QAAQ,QAAQ,gBAAgB;AACzC,SAASC,aAAa,QAAQ,qBAAqB;AAInD,OAAO,MAAMC,iBAAiBV;AAuD9B;;qBAtDoBW;;QAEhBC,MAAMT,SAASU,IAAI;QACnBC,YAAY;;;;;;QAMJF,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;;QAGhCH,MAAMT,SAASa,MAAM;QAAED,WAAW;;;;;QAGlCH,MAAMT,SAASc,OAAO;QAAEF,WAAW;;;;;QAInCH,MAAMT,SAASe,KAAK,CAACf,SAASgB,KAAK;QAAGJ,WAAW;;;;;QAGjDH,MAAMT,SAASa,MAAM;QAAED,WAAW;;;;;QAGlCH,MAAMT,SAASa,MAAM;QAAED,WAAW;;;;;QAGlCH,MAAMT,SAASa,MAAM;QAAED,WAAW;;;;;QAGlCH,MAAMT,SAASiB,IAAI;QAAEL,WAAW;;;;;QAGhCH,MAAMT,SAASa,MAAM,CAAC;QAAMD,WAAW;;;;;mBAI/BR;;QACRK,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;;mBAIxBP;;QACRI,MAAMT,SAASU,IAAI;QAAEE,WAAW;;;;gBAG3BN;;;kBAGED"}
@@ -0,0 +1,28 @@
1
+ import { Model } from "sequelize-typescript";
2
+ import type { ExerciseModel, ProgramTypes } from '../../models/ExerciseInterfaces.js';
3
+ import { TranslatedExerciseModel } from './TranslatedExerciseModel.js';
4
+ export declare class ExercisesModels extends Model implements ExerciseModel {
5
+ uuid: string;
6
+ name: string;
7
+ restTime: string;
8
+ pointers: string;
9
+ isCustom: boolean;
10
+ url: string;
11
+ level: string[];
12
+ hasPriority: boolean;
13
+ isCompound: boolean;
14
+ hasVariations: boolean;
15
+ needsEquipment: boolean;
16
+ variations: object;
17
+ muscles: string[];
18
+ homeWorkout: boolean;
19
+ isBandAssisted: boolean;
20
+ programType: ProgramTypes[];
21
+ graphData: "reps" | "weight";
22
+ imageUrl: string;
23
+ createdBy: string | null;
24
+ isPublic: boolean;
25
+ thumbnailUrl: string | null;
26
+ translatedExercises: TranslatedExerciseModel[];
27
+ }
28
+ //# sourceMappingURL=ExerciseModels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ExerciseModels.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/ExerciseModels.ts"],"names":[],"mappings":"AAAA,OAAO,EAAsC,KAAK,EAAS,MAAM,sBAAsB,CAAC;AACxF,OAAO,KAAK,EAAC,aAAa,EAAE,YAAY,EAAC,MAAM,oCAAoC,CAAC;AACpF,OAAO,EAAC,uBAAuB,EAAC,MAAM,8BAA8B,CAAC;AAErE,qBACa,eAAgB,SAAQ,KAAM,YAAW,aAAa;IAQvD,IAAI,EAAE,MAAM,CAAC;IAGb,IAAI,EAAE,MAAM,CAAC;IAGb,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,MAAM,CAAC;IAGjB,QAAQ,EAAE,OAAO,CAAC;IAGlB,GAAG,EAAE,MAAM,CAAC;IAGZ,KAAK,EAAE,MAAM,EAAE,CAAC;IAGhB,WAAW,EAAE,OAAO,CAAC;IAGrB,UAAU,EAAE,OAAO,CAAC;IAGpB,aAAa,EAAE,OAAO,CAAC;IAGvB,cAAc,EAAE,OAAO,CAAC;IAGxB,UAAU,EAAE,MAAM,CAAC;IAGnB,OAAO,EAAE,MAAM,EAAE,CAAC;IAGlB,WAAW,EAAE,OAAO,CAAC;IAGrB,cAAc,EAAE,OAAO,CAAC;IAGxB,WAAW,EAAE,YAAY,EAAE,CAAC;IAG5B,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAG7B,QAAQ,EAAE,MAAM,CAAC;IAGjB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAGzB,QAAQ,EAAE,OAAO,CAAC;IAGlB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAG5B,mBAAmB,EAAE,uBAAuB,EAAE,CAAC;CAC1D"}
@@ -0,0 +1,149 @@
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, HasMany, Model, Table } from "sequelize-typescript";
8
+ import { TranslatedExerciseModel } from "./TranslatedExerciseModel.js";
9
+ export class ExercisesModels extends Model {
10
+ }
11
+ _ts_decorate([
12
+ Default(DataType.UUIDV4),
13
+ Column({
14
+ type: DataType.UUID,
15
+ defaultValue: DataType.UUID,
16
+ allowNull: false,
17
+ primaryKey: true
18
+ })
19
+ ], ExercisesModels.prototype, "uuid", void 0);
20
+ _ts_decorate([
21
+ Column({
22
+ type: DataType.STRING,
23
+ allowNull: false
24
+ })
25
+ ], ExercisesModels.prototype, "name", void 0);
26
+ _ts_decorate([
27
+ Column({
28
+ type: DataType.STRING,
29
+ allowNull: true
30
+ })
31
+ ], ExercisesModels.prototype, "restTime", void 0);
32
+ _ts_decorate([
33
+ Column({
34
+ type: DataType.STRING(2048),
35
+ allowNull: false
36
+ })
37
+ ], ExercisesModels.prototype, "pointers", void 0);
38
+ _ts_decorate([
39
+ Column({
40
+ type: DataType.BOOLEAN,
41
+ allowNull: true
42
+ })
43
+ ], ExercisesModels.prototype, "isCustom", void 0);
44
+ _ts_decorate([
45
+ Column({
46
+ type: DataType.STRING,
47
+ allowNull: false
48
+ })
49
+ ], ExercisesModels.prototype, "url", void 0);
50
+ _ts_decorate([
51
+ Column({
52
+ type: DataType.ARRAY(DataType.STRING),
53
+ allowNull: false
54
+ })
55
+ ], ExercisesModels.prototype, "level", void 0);
56
+ _ts_decorate([
57
+ Column({
58
+ type: DataType.BOOLEAN,
59
+ allowNull: false
60
+ })
61
+ ], ExercisesModels.prototype, "hasPriority", void 0);
62
+ _ts_decorate([
63
+ Column({
64
+ type: DataType.BOOLEAN,
65
+ allowNull: false
66
+ })
67
+ ], ExercisesModels.prototype, "isCompound", void 0);
68
+ _ts_decorate([
69
+ Column({
70
+ type: DataType.BOOLEAN,
71
+ allowNull: false
72
+ })
73
+ ], ExercisesModels.prototype, "hasVariations", void 0);
74
+ _ts_decorate([
75
+ Column({
76
+ type: DataType.BOOLEAN,
77
+ allowNull: false
78
+ })
79
+ ], ExercisesModels.prototype, "needsEquipment", void 0);
80
+ _ts_decorate([
81
+ Column({
82
+ type: DataType.JSONB,
83
+ allowNull: false
84
+ })
85
+ ], ExercisesModels.prototype, "variations", void 0);
86
+ _ts_decorate([
87
+ Column({
88
+ type: DataType.ARRAY(DataType.STRING),
89
+ allowNull: false
90
+ })
91
+ ], ExercisesModels.prototype, "muscles", void 0);
92
+ _ts_decorate([
93
+ Column({
94
+ type: DataType.BOOLEAN,
95
+ allowNull: false
96
+ })
97
+ ], ExercisesModels.prototype, "homeWorkout", void 0);
98
+ _ts_decorate([
99
+ Column({
100
+ type: DataType.BOOLEAN,
101
+ allowNull: false,
102
+ defaultValue: false
103
+ })
104
+ ], ExercisesModels.prototype, "isBandAssisted", void 0);
105
+ _ts_decorate([
106
+ Column({
107
+ type: DataType.ARRAY(DataType.STRING),
108
+ allowNull: false
109
+ })
110
+ ], ExercisesModels.prototype, "programType", void 0);
111
+ _ts_decorate([
112
+ Column({
113
+ type: DataType.STRING,
114
+ allowNull: false
115
+ })
116
+ ], ExercisesModels.prototype, "graphData", void 0);
117
+ _ts_decorate([
118
+ Column({
119
+ type: DataType.TEXT,
120
+ allowNull: false
121
+ })
122
+ ], ExercisesModels.prototype, "imageUrl", void 0);
123
+ _ts_decorate([
124
+ Column({
125
+ type: DataType.STRING,
126
+ allowNull: true
127
+ })
128
+ ], ExercisesModels.prototype, "createdBy", void 0);
129
+ _ts_decorate([
130
+ Column({
131
+ type: DataType.BOOLEAN,
132
+ allowNull: false,
133
+ defaultValue: false
134
+ })
135
+ ], ExercisesModels.prototype, "isPublic", void 0);
136
+ _ts_decorate([
137
+ Column({
138
+ type: DataType.STRING(500),
139
+ allowNull: true
140
+ })
141
+ ], ExercisesModels.prototype, "thumbnailUrl", void 0);
142
+ _ts_decorate([
143
+ HasMany(()=>TranslatedExerciseModel)
144
+ ], ExercisesModels.prototype, "translatedExercises", void 0);
145
+ ExercisesModels = _ts_decorate([
146
+ Table
147
+ ], ExercisesModels);
148
+
149
+ //# sourceMappingURL=ExerciseModels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/ExerciseModels.ts"],"sourcesContent":["import { Column, DataType, Default, HasMany, Model, Table } from \"sequelize-typescript\";\nimport type {ExerciseModel, ProgramTypes} from '../../models/ExerciseInterfaces.js';\nimport {TranslatedExerciseModel} from './TranslatedExerciseModel.js';\n\n@Table\nexport class ExercisesModels extends Model implements ExerciseModel {\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.STRING, allowNull: false })\n declare name: string;\n\n @Column({ type: DataType.STRING, allowNull: true })\n declare restTime: string;\n\n @Column({ type: DataType.STRING(2048), allowNull: false })\n declare pointers: string;\n\n @Column({ type: DataType.BOOLEAN, allowNull: true })\n declare isCustom: boolean;\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare url: string;\n\n @Column({ type: DataType.ARRAY(DataType.STRING), allowNull: false })\n declare level: string[];\n\n @Column({ type: DataType.BOOLEAN, allowNull: false })\n declare hasPriority: boolean;\n\n @Column({ type: DataType.BOOLEAN, allowNull: false })\n declare isCompound: boolean;\n\n @Column({ type: DataType.BOOLEAN, allowNull: false })\n declare hasVariations: boolean;\n\n @Column({ type: DataType.BOOLEAN, allowNull: false })\n declare needsEquipment: boolean;\n\n @Column({ type: DataType.JSONB, allowNull: false })\n declare variations: object;\n\n @Column({ type: DataType.ARRAY(DataType.STRING), allowNull: false })\n declare muscles: string[];\n\n @Column({ type: DataType.BOOLEAN, allowNull: false })\n declare homeWorkout: boolean;\n\n @Column({ type: DataType.BOOLEAN, allowNull: false, defaultValue: false })\n declare isBandAssisted: boolean;\n\n @Column({ type: DataType.ARRAY(DataType.STRING), allowNull: false })\n declare programType: ProgramTypes[];\n\n @Column({ type: DataType.STRING, allowNull: false })\n declare graphData: \"reps\" | \"weight\";\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare imageUrl: string;\n\n @Column({ type: DataType.STRING, allowNull: true })\n declare createdBy: string | null;\n\n @Column({ type: DataType.BOOLEAN, allowNull: false, defaultValue: false })\n declare isPublic: boolean;\n\n @Column({ type: DataType.STRING(500), allowNull: true })\n declare thumbnailUrl: string | null;\n\n @HasMany(() => TranslatedExerciseModel)\n declare translatedExercises: TranslatedExerciseModel[];\n}\n"],"names":["Column","DataType","Default","HasMany","Model","Table","TranslatedExerciseModel","ExercisesModels","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","STRING","BOOLEAN","ARRAY","JSONB","TEXT"],"mappings":";;;;;;AAAA,SAASA,MAAM,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAExF,SAAQC,uBAAuB,QAAO,+BAA+B;AAGrE,OAAO,MAAMC,wBAAwBH;AAwErC;;qBAvEsBI;;QAEdC,MAAMR,SAASS,IAAI;QACnBC,cAAcV,SAASS,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;QAINJ,MAAMR,SAASa,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMR,SAASa,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMR,SAASa,MAAM,CAAC;QAAOF,WAAW;;;;;QAGxCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASa,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMR,SAASe,KAAK,CAACf,SAASa,MAAM;QAAGF,WAAW;;;;;QAGlDH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASgB,KAAK;QAAEL,WAAW;;;;;QAGjCH,MAAMR,SAASe,KAAK,CAACf,SAASa,MAAM;QAAGF,WAAW;;;;;QAGlDH,MAAMR,SAASc,OAAO;QAAEH,WAAW;;;;;QAGnCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;QAAOD,cAAc;;;;;QAGxDF,MAAMR,SAASe,KAAK,CAACf,SAASa,MAAM;QAAGF,WAAW;;;;;QAGlDH,MAAMR,SAASa,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMR,SAASiB,IAAI;QAAEN,WAAW;;;;;QAGhCH,MAAMR,SAASa,MAAM;QAAEF,WAAW;;;;;QAGlCH,MAAMR,SAASc,OAAO;QAAEH,WAAW;QAAOD,cAAc;;;;;QAGxDF,MAAMR,SAASa,MAAM,CAAC;QAAMF,WAAW;;;;gBAGlCN"}
@@ -0,0 +1,15 @@
1
+ import { Workout } from './Workout.js';
2
+ import { Model } from "sequelize-typescript";
3
+ import { NonConsumableProgram } from '../nonconsprogram/NonConsumableProgram.js';
4
+ export declare class Program extends Model<Program> {
5
+ programId: string;
6
+ userUuid: string;
7
+ nonConsumableProgramUuid: string;
8
+ startDate: string;
9
+ programType: string;
10
+ createdAt: Date;
11
+ workout: Workout[];
12
+ nonConsumableProgram: NonConsumableProgram;
13
+ static deleteRelatedWorkouts(instance: Program): Promise<void>;
14
+ }
15
+ //# sourceMappingURL=Program.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Program.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/Program.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAML,KAAK,EAEN,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAC,oBAAoB,EAAC,MAAM,2CAA2C,CAAC;AAE/E,qBACa,OAAQ,SAAQ,KAAK,CAAC,OAAO,CAAC;IAQjC,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,MAAM,CAAC;IAIjB,wBAAwB,EAAE,MAAM,CAAC;IAGjC,SAAS,EAAE,MAAM,CAAC;IAGlB,WAAW,EAAE,MAAM,CAAC;IAGpB,SAAS,EAAE,IAAI,CAAC;IAGhB,OAAO,EAAE,OAAO,EAAE,CAAC;IAGnB,oBAAoB,EAAE,oBAAoB,CAAC;WAGtC,qBAAqB,CAAC,QAAQ,EAAE,OAAO;CAOrD"}
@@ -0,0 +1,76 @@
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 { Workout } from "./Workout.js";
8
+ import { BeforeDestroy, BelongsTo, Column, DataType, Default, ForeignKey, HasMany, Model, Table } from "sequelize-typescript";
9
+ import { NonConsumableProgram } from "../nonconsprogram/NonConsumableProgram.js";
10
+ export class Program extends Model {
11
+ static async deleteRelatedWorkouts(instance) {
12
+ const workouts = await instance.$get("workout", {
13
+ scope: "workout"
14
+ });
15
+ for (const workout of workouts){
16
+ await workout.destroy();
17
+ }
18
+ }
19
+ }
20
+ _ts_decorate([
21
+ Default(DataType.UUIDV4),
22
+ Column({
23
+ type: DataType.UUID,
24
+ defaultValue: DataType.UUID,
25
+ allowNull: false,
26
+ primaryKey: true
27
+ })
28
+ ], Program.prototype, "programId", void 0);
29
+ _ts_decorate([
30
+ Column({
31
+ type: DataType.UUID,
32
+ allowNull: false
33
+ })
34
+ ], Program.prototype, "userUuid", void 0);
35
+ _ts_decorate([
36
+ ForeignKey(()=>NonConsumableProgram),
37
+ Column({
38
+ type: DataType.UUID,
39
+ allowNull: true
40
+ })
41
+ ], Program.prototype, "nonConsumableProgramUuid", void 0);
42
+ _ts_decorate([
43
+ Column({
44
+ type: DataType.TEXT,
45
+ allowNull: false
46
+ })
47
+ ], Program.prototype, "startDate", void 0);
48
+ _ts_decorate([
49
+ Column({
50
+ type: DataType.TEXT,
51
+ allowNull: true
52
+ })
53
+ ], Program.prototype, "programType", void 0);
54
+ _ts_decorate([
55
+ Column({
56
+ type: DataType.DATE,
57
+ allowNull: true
58
+ })
59
+ ], Program.prototype, "createdAt", void 0);
60
+ _ts_decorate([
61
+ HasMany(()=>Workout, {
62
+ foreignKey: "programId",
63
+ onDelete: "CASCADE"
64
+ })
65
+ ], Program.prototype, "workout", void 0);
66
+ _ts_decorate([
67
+ BelongsTo(()=>NonConsumableProgram)
68
+ ], Program.prototype, "nonConsumableProgram", void 0);
69
+ _ts_decorate([
70
+ BeforeDestroy
71
+ ], Program, "deleteRelatedWorkouts", null);
72
+ Program = _ts_decorate([
73
+ Table
74
+ ], Program);
75
+
76
+ //# sourceMappingURL=Program.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/Program.ts"],"sourcesContent":["import { Workout } from './Workout.js';\nimport {\n BeforeDestroy, BelongsTo,\n Column,\n DataType,\n Default, ForeignKey,\n HasMany,\n Model,\n Table,\n} from \"sequelize-typescript\";\nimport {NonConsumableProgram} from '../nonconsprogram/NonConsumableProgram.js';\n\n@Table\nexport class Program extends Model<Program> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n defaultValue: DataType.UUID,\n allowNull: false,\n primaryKey: true,\n })\n declare programId: string;\n\n @Column({ type: DataType.UUID, allowNull: false })\n declare userUuid: string;\n\n @ForeignKey(() => NonConsumableProgram)\n @Column({type: DataType.UUID, allowNull: true})\n declare nonConsumableProgramUuid: string;\n\n @Column({ type: DataType.TEXT, allowNull: false })\n declare startDate: string;\n\n @Column({ type: DataType.TEXT, allowNull: true })\n declare programType: string;\n\n @Column({ type: DataType.DATE, allowNull: true })\n declare createdAt: Date;\n\n @HasMany(() => Workout, { foreignKey: \"programId\", onDelete: \"CASCADE\" })\n declare workout: Workout[];\n\n @BelongsTo(() => NonConsumableProgram)\n declare nonConsumableProgram: NonConsumableProgram;\n\n @BeforeDestroy\n static async deleteRelatedWorkouts(instance: Program) {\n const workouts = await instance.$get(\"workout\", { scope: \"workout\" });\n\n for (const workout of workouts) {\n await workout.destroy();\n }\n }\n}\n"],"names":["Workout","BeforeDestroy","BelongsTo","Column","DataType","Default","ForeignKey","HasMany","Model","Table","NonConsumableProgram","Program","deleteRelatedWorkouts","instance","workouts","$get","scope","workout","destroy","UUIDV4","type","UUID","defaultValue","allowNull","primaryKey","TEXT","DATE","foreignKey","onDelete"],"mappings":";;;;;;AAAA,SAASA,OAAO,QAAQ,eAAe;AACvC,SACEC,aAAa,EAAEC,SAAS,EACxBC,MAAM,EACNC,QAAQ,EACRC,OAAO,EAAEC,UAAU,EACnBC,OAAO,EACPC,KAAK,EACLC,KAAK,QACA,uBAAuB;AAC9B,SAAQC,oBAAoB,QAAO,4CAA4C;AAG/E,OAAO,MAAMC,gBAAgBH;IAgC3B,aACaI,sBAAsBC,QAAiB,EAAE;QACpD,MAAMC,WAAW,MAAMD,SAASE,IAAI,CAAC,WAAW;YAAEC,OAAO;QAAU;QAEnE,KAAK,MAAMC,WAAWH,SAAU;YAC9B,MAAMG,QAAQC,OAAO;QACvB;IACF;AACF;;qBAvCoBC;;QAEhBC,MAAMhB,SAASiB,IAAI;QACnBC,cAAclB,SAASiB,IAAI;QAC3BE,WAAW;QACXC,YAAY;;;;;QAIJJ,MAAMhB,SAASiB,IAAI;QAAEE,WAAW;;;;mBAGxBb;;QACTU,MAAMhB,SAASiB,IAAI;QAAEE,WAAW;;;;;QAG/BH,MAAMhB,SAASqB,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMhB,SAASqB,IAAI;QAAEF,WAAW;;;;;QAGhCH,MAAMhB,SAASsB,IAAI;QAAEH,WAAW;;;;gBAG3BvB;QAAW2B,YAAY;QAAaC,UAAU;;;;kBAG5ClB"}
@@ -0,0 +1,26 @@
1
+ import { Model } from 'sequelize-typescript';
2
+ import { Exercise } from "./Exercise.js";
3
+ export declare enum ProgressFieldType {
4
+ NUMBER = "number",
5
+ TEXT = "text",
6
+ SELECT = "select",
7
+ TIME = "time",
8
+ BOOLEAN = "boolean"
9
+ }
10
+ export interface ProgressFieldValue {
11
+ fieldName: string;
12
+ fieldType: ProgressFieldType;
13
+ value: string | number | boolean;
14
+ options?: string[];
15
+ }
16
+ export declare class ProgressEntry extends Model<ProgressEntry> {
17
+ uuid: string;
18
+ exerciseUuid: string;
19
+ exerciseModelUuid?: string;
20
+ recordedAt: Date;
21
+ setNumber: number;
22
+ fields: ProgressFieldValue[];
23
+ metricSystem?: 'Metric' | 'Imperial' | null;
24
+ exercise: Exercise;
25
+ }
26
+ //# sourceMappingURL=ProgressEntry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProgressEntry.d.ts","sourceRoot":"","sources":["../../../../src/lib/dbmodels/program/ProgressEntry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,KAAK,EAAkD,MAAM,sBAAsB,CAAC;AAC3G,OAAO,EAAC,QAAQ,EAAC,MAAM,eAAe,CAAC;AAEvC,oBAAY,iBAAiB;IACzB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,OAAO,YAAY;CACtB;AAED,MAAM,WAAW,kBAAkB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,iBAAiB,CAAC;IAC7B,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IACjC,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,qBACa,aAAc,SAAQ,KAAK,CAAC,aAAa,CAAC;IAM3C,IAAI,EAAE,MAAM,CAAC;IAQb,YAAY,EAAE,MAAM,CAAC;IAQrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAO3B,UAAU,EAAE,IAAI,CAAC;IAOjB,SAAS,EAAE,MAAM,CAAC;IAOlB,MAAM,EAAE,kBAAkB,EAAE,CAAC;IAM7B,YAAY,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,CAAC;IAG5C,QAAQ,EAAE,QAAQ,CAAC;CAC9B"}
@@ -0,0 +1,77 @@
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, Column, Model, ForeignKey, Index, DataType, Default, BelongsTo } from "sequelize-typescript";
8
+ import { Exercise } from "./Exercise.js";
9
+ export var ProgressFieldType = /*#__PURE__*/ function(ProgressFieldType) {
10
+ ProgressFieldType["NUMBER"] = "number";
11
+ ProgressFieldType["TEXT"] = "text";
12
+ ProgressFieldType["SELECT"] = "select";
13
+ ProgressFieldType["TIME"] = "time";
14
+ ProgressFieldType["BOOLEAN"] = "boolean";
15
+ return ProgressFieldType;
16
+ }({});
17
+ export class ProgressEntry extends Model {
18
+ }
19
+ _ts_decorate([
20
+ Default(DataType.UUIDV4),
21
+ Column({
22
+ type: DataType.UUID,
23
+ primaryKey: true
24
+ })
25
+ ], ProgressEntry.prototype, "uuid", void 0);
26
+ _ts_decorate([
27
+ Index,
28
+ ForeignKey(()=>Exercise),
29
+ Column({
30
+ type: DataType.UUID,
31
+ allowNull: false
32
+ })
33
+ ], ProgressEntry.prototype, "exerciseUuid", void 0);
34
+ _ts_decorate([
35
+ Index,
36
+ Column({
37
+ type: DataType.UUID,
38
+ allowNull: true
39
+ })
40
+ ], ProgressEntry.prototype, "exerciseModelUuid", void 0);
41
+ _ts_decorate([
42
+ Index,
43
+ Column({
44
+ type: DataType.DATE,
45
+ allowNull: false
46
+ })
47
+ ], ProgressEntry.prototype, "recordedAt", void 0);
48
+ _ts_decorate([
49
+ Column({
50
+ type: DataType.INTEGER,
51
+ allowNull: false,
52
+ defaultValue: 1
53
+ })
54
+ ], ProgressEntry.prototype, "setNumber", void 0);
55
+ _ts_decorate([
56
+ Column({
57
+ type: DataType.JSONB,
58
+ allowNull: false,
59
+ defaultValue: []
60
+ })
61
+ ], ProgressEntry.prototype, "fields", void 0);
62
+ _ts_decorate([
63
+ Column({
64
+ type: DataType.STRING,
65
+ allowNull: true
66
+ })
67
+ ], ProgressEntry.prototype, "metricSystem", void 0);
68
+ _ts_decorate([
69
+ BelongsTo(()=>Exercise)
70
+ ], ProgressEntry.prototype, "exercise", void 0);
71
+ ProgressEntry = _ts_decorate([
72
+ Table({
73
+ timestamps: true
74
+ })
75
+ ], ProgressEntry);
76
+
77
+ //# sourceMappingURL=ProgressEntry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/lib/dbmodels/program/ProgressEntry.ts"],"sourcesContent":["import {Table, Column, Model, ForeignKey, Index, DataType, Default, BelongsTo} from 'sequelize-typescript';\nimport {Exercise} from \"./Exercise.js\";\n\nexport enum ProgressFieldType {\n NUMBER = 'number',\n TEXT = 'text',\n SELECT = 'select',\n TIME = 'time',\n BOOLEAN = 'boolean'\n}\n\nexport interface ProgressFieldValue {\n fieldName: string;\n fieldType: ProgressFieldType;\n value: string | number | boolean;\n options?: string[];\n}\n\n@Table({ timestamps: true })\nexport class ProgressEntry extends Model<ProgressEntry> {\n @Default(DataType.UUIDV4)\n @Column({\n type: DataType.UUID,\n primaryKey: true,\n })\n declare uuid: string;\n\n @Index\n @ForeignKey(() => Exercise)\n @Column({\n type: DataType.UUID,\n allowNull: false,\n })\n declare exerciseUuid: string;\n\n // Programs v2: Reference to ExerciseModel for historical aggregation\n @Index\n @Column({\n type: DataType.UUID,\n allowNull: true,\n })\n declare exerciseModelUuid?: string;\n\n @Index\n @Column({\n type: DataType.DATE,\n allowNull: false,\n })\n declare recordedAt: Date;\n\n @Column({\n type: DataType.INTEGER,\n allowNull: false,\n defaultValue: 1,\n })\n declare setNumber: number;\n\n @Column({\n type: DataType.JSONB,\n allowNull: false,\n defaultValue: [],\n })\n declare fields: ProgressFieldValue[];\n\n @Column({\n type: DataType.STRING,\n allowNull: true,\n })\n declare metricSystem?: 'Metric' | 'Imperial' | null;\n\n @BelongsTo(() => Exercise)\n declare exercise: Exercise;\n}\n"],"names":["Table","Column","Model","ForeignKey","Index","DataType","Default","BelongsTo","Exercise","ProgressFieldType","ProgressEntry","UUIDV4","type","UUID","primaryKey","allowNull","DATE","INTEGER","defaultValue","JSONB","STRING","timestamps"],"mappings":";;;;;;AAAA,SAAQA,KAAK,EAAEC,MAAM,EAAEC,KAAK,EAAEC,UAAU,EAAEC,KAAK,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,SAAS,QAAO,uBAAuB;AAC3G,SAAQC,QAAQ,QAAO,gBAAgB;AAEvC,OAAO,IAAA,AAAKC,2CAAAA;;;;;;WAAAA;MAMX;AAUD,OAAO,MAAMC,sBAAsBR;AAqDnC;;qBApDsBS;;QAEdC,MAAMP,SAASQ,IAAI;QACnBC,YAAY;;;;;mBAKEN;;QAEdI,MAAMP,SAASQ,IAAI;QACnBE,WAAW;;;;;;QAOXH,MAAMP,SAASQ,IAAI;QACnBE,WAAW;;;;;;QAMXH,MAAMP,SAASW,IAAI;QACnBD,WAAW;;;;;QAKXH,MAAMP,SAASY,OAAO;QACtBF,WAAW;QACXG,cAAc;;;;;QAKdN,MAAMP,SAASc,KAAK;QACpBJ,WAAW;QACXG,cAAc,EAAE;;;;;QAKhBN,MAAMP,SAASe,MAAM;QACrBL,WAAW;;;;kBAIEP;;;;QApDZa,YAAY"}
@@ -0,0 +1,33 @@
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 { CustomProgramBlueprint } from "./CustomProgramBlueprint.js";
9
+ export class RestDay extends Model {
10
+ }
11
+ _ts_decorate([
12
+ PrimaryKey,
13
+ Default(DataType.UUIDV4),
14
+ Column(DataType.UUID)
15
+ ], RestDay.prototype, "uuid", void 0);
16
+ _ts_decorate([
17
+ Index,
18
+ ForeignKey(()=>CustomProgramBlueprint),
19
+ Column(DataType.UUID)
20
+ ], RestDay.prototype, "blueprintUuid", void 0);
21
+ _ts_decorate([
22
+ Column(DataType.BOOLEAN)
23
+ ], RestDay.prototype, "isFinished", void 0);
24
+ _ts_decorate([
25
+ Column(DataType.INTEGER)
26
+ ], RestDay.prototype, "order", void 0);
27
+ RestDay = _ts_decorate([
28
+ Table({
29
+ timestamps: true
30
+ })
31
+ ], RestDay);
32
+
33
+ //# sourceMappingURL=RestDay.js.map