@aneuhold/be-ts-db-lib 4.2.28 → 4.2.30

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 (148) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/lib/index.d.ts +1 -1
  3. package/lib/index.d.ts.map +1 -1
  4. package/lib/index.js +1 -1
  5. package/lib/index.js.map +1 -1
  6. package/lib/index.ts +1 -1
  7. package/lib/repositories/BaseRepository.d.ts +2 -12
  8. package/lib/repositories/BaseRepository.d.ts.map +1 -1
  9. package/lib/repositories/BaseRepository.js +8 -8
  10. package/lib/repositories/BaseRepository.js.map +1 -1
  11. package/lib/repositories/BaseRepository.ts +9 -9
  12. package/lib/repositories/common/UserRepository.d.ts +1 -2
  13. package/lib/repositories/common/UserRepository.d.ts.map +1 -1
  14. package/lib/repositories/common/UserRepository.js +6 -6
  15. package/lib/repositories/common/UserRepository.js.map +1 -1
  16. package/lib/repositories/common/UserRepository.ts +6 -6
  17. package/lib/repositories/dashboard/DashboardBaseRepository.d.ts +1 -1
  18. package/lib/repositories/dashboard/DashboardBaseRepository.d.ts.map +1 -1
  19. package/lib/repositories/dashboard/DashboardBaseRepository.js +2 -2
  20. package/lib/repositories/dashboard/DashboardBaseRepository.js.map +1 -1
  21. package/lib/repositories/dashboard/DashboardBaseRepository.ts +2 -2
  22. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts +2 -2
  23. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts.map +1 -1
  24. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js +4 -4
  25. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js.map +1 -1
  26. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts +5 -5
  27. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts +2 -2
  28. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts.map +1 -1
  29. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js +4 -4
  30. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js.map +1 -1
  31. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts +5 -5
  32. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +2 -10
  33. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
  34. package/lib/repositories/dashboard/DashboardTaskRepository.js +7 -7
  35. package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
  36. package/lib/repositories/dashboard/DashboardTaskRepository.ts +8 -8
  37. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +2 -15
  38. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
  39. package/lib/repositories/dashboard/DashboardUserConfigRepository.js +9 -9
  40. package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
  41. package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +10 -10
  42. package/lib/repositories/workout/WorkoutBaseRepository.d.ts +1 -1
  43. package/lib/repositories/workout/WorkoutBaseRepository.d.ts.map +1 -1
  44. package/lib/repositories/workout/WorkoutBaseRepository.js +2 -2
  45. package/lib/repositories/workout/WorkoutBaseRepository.js.map +1 -1
  46. package/lib/repositories/workout/WorkoutBaseRepository.ts +2 -2
  47. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts +2 -2
  48. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.d.ts.map +1 -1
  49. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js +4 -4
  50. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.js.map +1 -1
  51. package/lib/repositories/workout/WorkoutEquipmentTypeRepository.ts +5 -5
  52. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts +2 -2
  53. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.d.ts.map +1 -1
  54. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js +4 -4
  55. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.js.map +1 -1
  56. package/lib/repositories/workout/WorkoutExerciseCalibrationRepository.ts +5 -5
  57. package/lib/repositories/workout/WorkoutExerciseRepository.d.ts +2 -2
  58. package/lib/repositories/workout/WorkoutExerciseRepository.d.ts.map +1 -1
  59. package/lib/repositories/workout/WorkoutExerciseRepository.js +4 -4
  60. package/lib/repositories/workout/WorkoutExerciseRepository.js.map +1 -1
  61. package/lib/repositories/workout/WorkoutExerciseRepository.ts +5 -5
  62. package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts +2 -2
  63. package/lib/repositories/workout/WorkoutMesocycleRepository.d.ts.map +1 -1
  64. package/lib/repositories/workout/WorkoutMesocycleRepository.js +4 -4
  65. package/lib/repositories/workout/WorkoutMesocycleRepository.js.map +1 -1
  66. package/lib/repositories/workout/WorkoutMesocycleRepository.ts +5 -5
  67. package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts +2 -2
  68. package/lib/repositories/workout/WorkoutMicrocycleRepository.d.ts.map +1 -1
  69. package/lib/repositories/workout/WorkoutMicrocycleRepository.js +4 -4
  70. package/lib/repositories/workout/WorkoutMicrocycleRepository.js.map +1 -1
  71. package/lib/repositories/workout/WorkoutMicrocycleRepository.ts +5 -5
  72. package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts +2 -2
  73. package/lib/repositories/workout/WorkoutMuscleGroupRepository.d.ts.map +1 -1
  74. package/lib/repositories/workout/WorkoutMuscleGroupRepository.js +8 -11
  75. package/lib/repositories/workout/WorkoutMuscleGroupRepository.js.map +1 -1
  76. package/lib/repositories/workout/WorkoutMuscleGroupRepository.ts +9 -12
  77. package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts +2 -2
  78. package/lib/repositories/workout/WorkoutSessionExerciseRepository.d.ts.map +1 -1
  79. package/lib/repositories/workout/WorkoutSessionExerciseRepository.js +4 -4
  80. package/lib/repositories/workout/WorkoutSessionExerciseRepository.js.map +1 -1
  81. package/lib/repositories/workout/WorkoutSessionExerciseRepository.ts +5 -5
  82. package/lib/repositories/workout/WorkoutSessionRepository.d.ts +2 -2
  83. package/lib/repositories/workout/WorkoutSessionRepository.d.ts.map +1 -1
  84. package/lib/repositories/workout/WorkoutSessionRepository.js +4 -4
  85. package/lib/repositories/workout/WorkoutSessionRepository.js.map +1 -1
  86. package/lib/repositories/workout/WorkoutSessionRepository.ts +5 -5
  87. package/lib/repositories/workout/WorkoutSetRepository.d.ts +2 -2
  88. package/lib/repositories/workout/WorkoutSetRepository.d.ts.map +1 -1
  89. package/lib/repositories/workout/WorkoutSetRepository.js +4 -4
  90. package/lib/repositories/workout/WorkoutSetRepository.js.map +1 -1
  91. package/lib/repositories/workout/WorkoutSetRepository.ts +5 -5
  92. package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.d.ts +21 -0
  93. package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.d.ts.map +1 -0
  94. package/lib/services/DemoAccountsService/{DashboardDemoAccountsService.js → DashboardDemoAccounts.service.js} +28 -28
  95. package/lib/services/DemoAccountsService/DashboardDemoAccounts.service.js.map +1 -0
  96. package/lib/services/DemoAccountsService/{DashboardDemoAccountsService.ts → DashboardDemoAccounts.service.ts} +27 -27
  97. package/lib/services/DemoAccountsService/{DemoAccountsService.d.ts → DemoAccounts.service.d.ts} +1 -1
  98. package/lib/services/DemoAccountsService/DemoAccounts.service.d.ts.map +1 -0
  99. package/lib/services/DemoAccountsService/{DemoAccountsService.js → DemoAccounts.service.js} +2 -2
  100. package/lib/services/DemoAccountsService/DemoAccounts.service.js.map +1 -0
  101. package/lib/services/DemoAccountsService/{DemoAccountsService.ts → DemoAccounts.service.ts} +1 -1
  102. package/lib/services/DemoAccountsService/index.d.ts +1 -1
  103. package/lib/services/DemoAccountsService/index.d.ts.map +1 -1
  104. package/lib/services/DemoAccountsService/index.js +1 -1
  105. package/lib/services/DemoAccountsService/index.js.map +1 -1
  106. package/lib/services/DemoAccountsService/index.ts +1 -1
  107. package/lib/services/{GoogleAuthService.d.ts → GoogleAuth.service.d.ts} +2 -8
  108. package/lib/services/GoogleAuth.service.d.ts.map +1 -0
  109. package/lib/services/{GoogleAuthService.js → GoogleAuth.service.js} +6 -6
  110. package/lib/services/GoogleAuth.service.js.map +1 -0
  111. package/lib/services/{GoogleAuthService.ts → GoogleAuth.service.ts} +5 -5
  112. package/lib/services/{MigrationService.d.ts → Migration.service.d.ts} +1 -1
  113. package/lib/services/Migration.service.d.ts.map +1 -0
  114. package/lib/services/{MigrationService.js → Migration.service.js} +1 -1
  115. package/lib/services/Migration.service.js.map +1 -0
  116. package/lib/services/{RepoSubscriptionService.d.ts → RepoSubscription.service.d.ts} +1 -1
  117. package/lib/services/RepoSubscription.service.d.ts.map +1 -0
  118. package/lib/services/{RepoSubscriptionService.js → RepoSubscription.service.js} +1 -1
  119. package/lib/services/RepoSubscription.service.js.map +1 -0
  120. package/lib/util/DbOperationMetaData.d.ts +1 -4
  121. package/lib/util/DbOperationMetaData.d.ts.map +1 -1
  122. package/lib/util/DbOperationMetaData.js +12 -12
  123. package/lib/util/DbOperationMetaData.js.map +1 -1
  124. package/lib/util/DbOperationMetaData.ts +12 -12
  125. package/lib/util/DocumentDb.d.ts +1 -9
  126. package/lib/util/DocumentDb.d.ts.map +1 -1
  127. package/lib/util/DocumentDb.js +14 -14
  128. package/lib/util/DocumentDb.js.map +1 -1
  129. package/lib/util/DocumentDb.ts +14 -14
  130. package/lib/validators/common/UserValidator.d.ts +1 -8
  131. package/lib/validators/common/UserValidator.d.ts.map +1 -1
  132. package/lib/validators/common/UserValidator.js +3 -3
  133. package/lib/validators/common/UserValidator.js.map +1 -1
  134. package/lib/validators/common/UserValidator.ts +3 -3
  135. package/package.json +9 -7
  136. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts +0 -72
  137. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts.map +0 -1
  138. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js.map +0 -1
  139. package/lib/services/DemoAccountsService/DemoAccountsService.d.ts.map +0 -1
  140. package/lib/services/DemoAccountsService/DemoAccountsService.js.map +0 -1
  141. package/lib/services/GoogleAuthService.d.ts.map +0 -1
  142. package/lib/services/GoogleAuthService.js.map +0 -1
  143. package/lib/services/MigrationService.d.ts.map +0 -1
  144. package/lib/services/MigrationService.js.map +0 -1
  145. package/lib/services/RepoSubscriptionService.d.ts.map +0 -1
  146. package/lib/services/RepoSubscriptionService.js.map +0 -1
  147. /package/lib/services/{MigrationService.ts → Migration.service.ts} +0 -0
  148. /package/lib/services/{RepoSubscriptionService.ts → RepoSubscription.service.ts} +0 -0
@@ -1,13 +1,13 @@
1
1
  import type { User, WorkoutMicrocycle, WorkoutSession } from '@aneuhold/core-ts-db-lib';
2
2
  import type { UUID } from 'crypto';
3
- import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
3
+ import type { RepoListeners } from '../../services/RepoSubscription.service.js';
4
4
  import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
5
5
  import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
6
6
  /**
7
7
  * The repository that contains {@link WorkoutSession} documents.
8
8
  */
9
9
  export default class WorkoutSessionRepository extends WorkoutBaseWithUserIdRepository<WorkoutSession> {
10
- private static singletonInstance?;
10
+ #private;
11
11
  private constructor();
12
12
  static getListenersForUserRepo(): RepoListeners<User>;
13
13
  static getListenersForMicrocycleRepo(): RepoListeners<WorkoutMicrocycle>;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAGnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,+BAA+B,CAAC,cAAc,CAAC;IACnG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA2B;IAE5D,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,6BAA6B,IAAI,aAAa,CAAC,iBAAiB,CAAC;IAYxE,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAIlC;;;;;OAKG;IACG,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3F;;;;;OAKG;IACG,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;WAgBjF,OAAO,IAAI,wBAAwB;CAMlD"}
1
+ {"version":3,"file":"WorkoutSessionRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSessionRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAExF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAGnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,+BAA+B,CAAC,cAAc,CAAC;;IAGnG,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,6BAA6B,IAAI,aAAa,CAAC,iBAAiB,CAAC;IAYxE,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAIlC;;;;;OAKG;IACG,sBAAsB,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3F;;;;;OAKG;IACG,uBAAuB,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;WAgBjF,OAAO,IAAI,wBAAwB;CAMlD"}
@@ -6,7 +6,7 @@ import WorkoutSessionExerciseRepository from './WorkoutSessionExerciseRepository
6
6
  * The repository that contains {@link WorkoutSession} documents.
7
7
  */
8
8
  export default class WorkoutSessionRepository extends WorkoutBaseWithUserIdRepository {
9
- static singletonInstance;
9
+ static #singletonInstance;
10
10
  constructor() {
11
11
  super(WorkoutSession_docType, new WorkoutSessionValidator());
12
12
  }
@@ -63,10 +63,10 @@ export default class WorkoutSessionRepository extends WorkoutBaseWithUserIdRepos
63
63
  }
64
64
  }
65
65
  static getRepo() {
66
- if (!WorkoutSessionRepository.singletonInstance) {
67
- WorkoutSessionRepository.singletonInstance = new WorkoutSessionRepository();
66
+ if (!WorkoutSessionRepository.#singletonInstance) {
67
+ WorkoutSessionRepository.#singletonInstance = new WorkoutSessionRepository();
68
68
  }
69
- return WorkoutSessionRepository.singletonInstance;
69
+ return WorkoutSessionRepository.#singletonInstance;
70
70
  }
71
71
  }
72
72
  //# sourceMappingURL=WorkoutSessionRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSessionRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSessionRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,OAAO,uBAAuB,MAAM,8CAA8C,CAAC;AACnF,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,+BAA+C;IAC3F,MAAM,CAAC,iBAAiB,CAA4B;IAE5D;QACE,KAAK,CAAC,sBAAsB,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,6BAA6B;QAClC,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;gBACtC,MAAM,WAAW,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;gBACxC,MAAM,WAAW,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAAC,YAAkB,EAAE,IAA0B;QACzE,MAAM,IAAI,CAAC,uBAAuB,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,aAAqB,EAAE,IAA0B;QAC7E,MAAM,sBAAsB,GAAG,MAAM,CACnC,MAAM,IAAI,CAAC,aAAa,EAAE,CAC3B;aACE,IAAI,CAAC;YACJ,mBAAmB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC3C,OAAO,EAAE,sBAAsB;SAChC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wBAAwB,CAAC,iBAAiB,EAAE,CAAC;YAChD,wBAAwB,CAAC,iBAAiB,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC9E,CAAC;QACD,OAAO,wBAAwB,CAAC,iBAAiB,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"WorkoutSessionRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSessionRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAIlE,OAAO,uBAAuB,MAAM,8CAA8C,CAAC;AACnF,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AACnF,OAAO,gCAAgC,MAAM,uCAAuC,CAAC;AAErF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wBAAyB,SAAQ,+BAA+C;IACnG,MAAM,CAAC,kBAAkB,CAA4B;IAErD;QACE,KAAK,CAAC,sBAAsB,EAAE,IAAI,uBAAuB,EAAE,CAAC,CAAC;IAC/D,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,WAAW,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YACnD,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,WAAW,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACrD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,6BAA6B;QAClC,MAAM,WAAW,GAAG,wBAAwB,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,EAAE;gBACtC,MAAM,WAAW,CAAC,sBAAsB,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;YAC/D,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE;gBACxC,MAAM,WAAW,CAAC,uBAAuB,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;YACjE,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,kBAAkB,CAAC,gCAAgC,CAAC,0BAA0B,EAAE,CAAC,CAAC;IACzF,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,sBAAsB,CAAC,YAAkB,EAAE,IAA0B;QACzE,MAAM,IAAI,CAAC,uBAAuB,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IAC3D,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,uBAAuB,CAAC,aAAqB,EAAE,IAA0B;QAC7E,MAAM,sBAAsB,GAAG,MAAM,CACnC,MAAM,IAAI,CAAC,aAAa,EAAE,CAC3B;aACE,IAAI,CAAC;YACJ,mBAAmB,EAAE,EAAE,GAAG,EAAE,aAAa,EAAE;YAC3C,OAAO,EAAE,sBAAsB;SAChC,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,MAAM,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC5D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wBAAwB,CAAC,kBAAkB,EAAE,CAAC;YACjD,wBAAwB,CAAC,kBAAkB,GAAG,IAAI,wBAAwB,EAAE,CAAC;QAC/E,CAAC;QACD,OAAO,wBAAwB,CAAC,kBAAkB,CAAC;IACrD,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { User, WorkoutMicrocycle, WorkoutSession } from '@aneuhold/core-ts-db-lib';
2
2
  import { WorkoutSession_docType } from '@aneuhold/core-ts-db-lib';
3
3
  import type { UUID } from 'crypto';
4
- import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
+ import type { RepoListeners } from '../../services/RepoSubscription.service.js';
5
5
  import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
6
6
  import WorkoutSessionValidator from '../../validators/workout/SessionValidator.js';
7
7
  import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
@@ -11,7 +11,7 @@ import WorkoutSessionExerciseRepository from './WorkoutSessionExerciseRepository
11
11
  * The repository that contains {@link WorkoutSession} documents.
12
12
  */
13
13
  export default class WorkoutSessionRepository extends WorkoutBaseWithUserIdRepository<WorkoutSession> {
14
- private static singletonInstance?: WorkoutSessionRepository;
14
+ static #singletonInstance?: WorkoutSessionRepository;
15
15
 
16
16
  private constructor() {
17
17
  super(WorkoutSession_docType, new WorkoutSessionValidator());
@@ -78,9 +78,9 @@ export default class WorkoutSessionRepository extends WorkoutBaseWithUserIdRepos
78
78
  }
79
79
 
80
80
  public static getRepo(): WorkoutSessionRepository {
81
- if (!WorkoutSessionRepository.singletonInstance) {
82
- WorkoutSessionRepository.singletonInstance = new WorkoutSessionRepository();
81
+ if (!WorkoutSessionRepository.#singletonInstance) {
82
+ WorkoutSessionRepository.#singletonInstance = new WorkoutSessionRepository();
83
83
  }
84
- return WorkoutSessionRepository.singletonInstance;
84
+ return WorkoutSessionRepository.#singletonInstance;
85
85
  }
86
86
  }
@@ -1,13 +1,13 @@
1
1
  import type { User, WorkoutSessionExercise, WorkoutSet } from '@aneuhold/core-ts-db-lib';
2
2
  import type { UUID } from 'crypto';
3
- import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
3
+ import type { RepoListeners } from '../../services/RepoSubscription.service.js';
4
4
  import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
5
5
  import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
6
6
  /**
7
7
  * The repository that contains {@link WorkoutSet} documents.
8
8
  */
9
9
  export default class WorkoutSetRepository extends WorkoutBaseWithUserIdRepository<WorkoutSet> {
10
- private static singletonInstance?;
10
+ #private;
11
11
  private constructor();
12
12
  static getListenersForUserRepo(): RepoListeners<User>;
13
13
  static getListenersForSessionExerciseRepo(): RepoListeners<WorkoutSessionExercise>;
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSetRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC/E,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,+BAA+B,CAAC,UAAU,CAAC;IAC3F,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAuB;IAExD,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,kCAAkC,IAAI,aAAa,CAAC,sBAAsB,CAAC;IAYlF,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;;OAKG;IACG,2BAA2B,CAC/B,iBAAiB,EAAE,IAAI,EACvB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,4BAA4B,CAChC,kBAAkB,EAAE,IAAI,EAAE,EAC1B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;WAgBF,OAAO,IAAI,oBAAoB;CAM9C"}
1
+ {"version":3,"file":"WorkoutSetRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSetRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEzF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,4CAA4C,CAAC;AAChF,OAAO,KAAK,mBAAmB,MAAM,mCAAmC,CAAC;AAEzE,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,+BAA+B,CAAC,UAAU,CAAC;;IAG3F,OAAO;IAIP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAYrD,MAAM,CAAC,kCAAkC,IAAI,aAAa,CAAC,sBAAsB,CAAC;IAYlF,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;;OAKG;IACG,2BAA2B,CAC/B,iBAAiB,EAAE,IAAI,EACvB,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;;OAKG;IACG,4BAA4B,CAChC,kBAAkB,EAAE,IAAI,EAAE,EAC1B,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,IAAI,CAAC;WAgBF,OAAO,IAAI,oBAAoB;CAM9C"}
@@ -5,7 +5,7 @@ import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.j
5
5
  * The repository that contains {@link WorkoutSet} documents.
6
6
  */
7
7
  export default class WorkoutSetRepository extends WorkoutBaseWithUserIdRepository {
8
- static singletonInstance;
8
+ static #singletonInstance;
9
9
  constructor() {
10
10
  super(WorkoutSet_docType, new WorkoutSetValidator());
11
11
  }
@@ -60,10 +60,10 @@ export default class WorkoutSetRepository extends WorkoutBaseWithUserIdRepositor
60
60
  }
61
61
  }
62
62
  static getRepo() {
63
- if (!WorkoutSetRepository.singletonInstance) {
64
- WorkoutSetRepository.singletonInstance = new WorkoutSetRepository();
63
+ if (!WorkoutSetRepository.#singletonInstance) {
64
+ WorkoutSetRepository.#singletonInstance = new WorkoutSetRepository();
65
65
  }
66
- return WorkoutSetRepository.singletonInstance;
66
+ return WorkoutSetRepository.#singletonInstance;
67
67
  }
68
68
  }
69
69
  //# sourceMappingURL=WorkoutSetRepository.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkoutSetRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSetRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,+BAA2C;IACnF,MAAM,CAAC,iBAAiB,CAAwB;IAExD;QACE,KAAK,CAAC,kBAAkB,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,kCAAkC;QACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE;gBAC3C,MAAM,OAAO,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACrE,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE;gBAC7C,MAAM,OAAO,CAAC,4BAA4B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACvE,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;;;;OAKG;IACH,KAAK,CAAC,2BAA2B,CAC/B,iBAAuB,EACvB,IAA0B;QAE1B,MAAM,IAAI,CAAC,4BAA4B,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAChC,kBAA0B,EAC1B,IAA0B;QAE1B,MAAM,uBAAuB,GAAG,MAAM,CACpC,MAAM,IAAI,CAAC,aAAa,EAAE,CAC3B;aACE,IAAI,CAAC;YACJ,wBAAwB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;YACrD,OAAO,EAAE,kBAAkB;SAC5B,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,oBAAoB,CAAC,iBAAiB,EAAE,CAAC;YAC5C,oBAAoB,CAAC,iBAAiB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACtE,CAAC;QACD,OAAO,oBAAoB,CAAC,iBAAiB,CAAC;IAChD,CAAC;CACF"}
1
+ {"version":3,"file":"WorkoutSetRepository.js","sourceRoot":"","sources":["../../../src/repositories/workout/WorkoutSetRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAI9D,OAAO,mBAAmB,MAAM,0CAA0C,CAAC;AAC3E,OAAO,+BAA+B,MAAM,sCAAsC,CAAC;AAEnF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,+BAA2C;IAC3F,MAAM,CAAC,kBAAkB,CAAwB;IAEjD;QACE,KAAK,CAAC,kBAAkB,EAAE,IAAI,mBAAmB,EAAE,CAAC,CAAC;IACvD,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE;gBAChC,MAAM,OAAO,CAAC,gBAAgB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC/C,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE;gBAClC,MAAM,OAAO,CAAC,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACjD,CAAC;SACF,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,kCAAkC;QACvC,MAAM,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,CAAC;QAC/C,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE;gBAC3C,MAAM,OAAO,CAAC,2BAA2B,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;YACrE,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,kBAAkB,EAAE,IAAI,EAAE,EAAE;gBAC7C,MAAM,OAAO,CAAC,4BAA4B,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;YACvE,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;;;;OAKG;IACH,KAAK,CAAC,2BAA2B,CAC/B,iBAAuB,EACvB,IAA0B;QAE1B,MAAM,IAAI,CAAC,4BAA4B,CAAC,CAAC,iBAAiB,CAAC,EAAE,IAAI,CAAC,CAAC;IACrE,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,4BAA4B,CAChC,kBAA0B,EAC1B,IAA0B;QAE1B,MAAM,uBAAuB,GAAG,MAAM,CACpC,MAAM,IAAI,CAAC,aAAa,EAAE,CAC3B;aACE,IAAI,CAAC;YACJ,wBAAwB,EAAE,EAAE,GAAG,EAAE,kBAAkB,EAAE;YACrD,OAAO,EAAE,kBAAkB;SAC5B,CAAC;aACD,OAAO,EAAE,CAAC;QAEb,MAAM,MAAM,GAAG,uBAAuB,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC7D,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAEM,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,CAAC;YAC7C,oBAAoB,CAAC,kBAAkB,GAAG,IAAI,oBAAoB,EAAE,CAAC;QACvE,CAAC;QACD,OAAO,oBAAoB,CAAC,kBAAkB,CAAC;IACjD,CAAC;CACF"}
@@ -1,7 +1,7 @@
1
1
  import type { User, WorkoutSessionExercise, WorkoutSet } from '@aneuhold/core-ts-db-lib';
2
2
  import { WorkoutSet_docType } from '@aneuhold/core-ts-db-lib';
3
3
  import type { UUID } from 'crypto';
4
- import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
+ import type { RepoListeners } from '../../services/RepoSubscription.service.js';
5
5
  import type DbOperationMetaData from '../../util/DbOperationMetaData.js';
6
6
  import WorkoutSetValidator from '../../validators/workout/SetValidator.js';
7
7
  import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.js';
@@ -10,7 +10,7 @@ import WorkoutBaseWithUserIdRepository from './WorkoutBaseWithUserIdRepository.j
10
10
  * The repository that contains {@link WorkoutSet} documents.
11
11
  */
12
12
  export default class WorkoutSetRepository extends WorkoutBaseWithUserIdRepository<WorkoutSet> {
13
- private static singletonInstance?: WorkoutSetRepository;
13
+ static #singletonInstance?: WorkoutSetRepository;
14
14
 
15
15
  private constructor() {
16
16
  super(WorkoutSet_docType, new WorkoutSetValidator());
@@ -81,9 +81,9 @@ export default class WorkoutSetRepository extends WorkoutBaseWithUserIdRepositor
81
81
  }
82
82
 
83
83
  public static getRepo(): WorkoutSetRepository {
84
- if (!WorkoutSetRepository.singletonInstance) {
85
- WorkoutSetRepository.singletonInstance = new WorkoutSetRepository();
84
+ if (!WorkoutSetRepository.#singletonInstance) {
85
+ WorkoutSetRepository.#singletonInstance = new WorkoutSetRepository();
86
86
  }
87
- return WorkoutSetRepository.singletonInstance;
87
+ return WorkoutSetRepository.#singletonInstance;
88
88
  }
89
89
  }
@@ -0,0 +1,21 @@
1
+ import type { UUID } from 'crypto';
2
+ /**
3
+ * Dashboard-specific demo seeding utilities.
4
+ */
5
+ export default class DashboardDemoAccountsService {
6
+ #private;
7
+ /**
8
+ * Seeds the dashboard demo data for two users. This will:
9
+ * - Ensure both users have configs and are collaborators of each other
10
+ * - Reset select config flags (enableDevMode, useConfettiForTasks, catImageOnHomePage)
11
+ * - Wipe all tasks owned by either user
12
+ * - Create example tasks (shared, nested, completed, with tags)
13
+ *
14
+ * Safe to re-run; will produce the same end state.
15
+ *
16
+ * @param demoUser1Id The first user
17
+ * @param demoUser2Id The second user
18
+ */
19
+ static seedDemoAccounts(demoUser1Id: UUID, demoUser2Id: UUID): Promise<void>;
20
+ }
21
+ //# sourceMappingURL=DashboardDemoAccounts.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardDemoAccounts.service.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccounts.service.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA4B;;IAiB/C;;;;;;;;;;;OAWG;WACU,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CA2NnF"}
@@ -9,7 +9,7 @@ export default class DashboardDemoAccountsService {
9
9
  * Default priorities for known demo tags. If a tag is not listed here,
10
10
  * a fallback priority will be used.
11
11
  */
12
- static TAG_PRIORITY = {
12
+ static #TAG_PRIORITY = {
13
13
  planning: 9,
14
14
  fun: 8,
15
15
  booking: 7,
@@ -33,13 +33,13 @@ export default class DashboardDemoAccountsService {
33
33
  * @param demoUser2Id The second user
34
34
  */
35
35
  static async seedDemoAccounts(demoUser1Id, demoUser2Id) {
36
- await this.ensureCollaboratorsAndResetConfig(demoUser1Id, demoUser2Id);
37
- await this.ensureCollaboratorsAndResetConfig(demoUser2Id, demoUser1Id);
38
- await this.wipeTasksForUsers([demoUser1Id, demoUser2Id]);
36
+ await this.#ensureCollaboratorsAndResetConfig(demoUser1Id, demoUser2Id);
37
+ await this.#ensureCollaboratorsAndResetConfig(demoUser2Id, demoUser1Id);
38
+ await this.#wipeTasksForUsers([demoUser1Id, demoUser2Id]);
39
39
  // Create shared tasks (visible to both users) exactly once
40
- await this.createExampleTasks(demoUser1Id, demoUser2Id);
40
+ await this.#createExampleTasks(demoUser1Id, demoUser2Id);
41
41
  // Create non-shared tasks for each user
42
- await this.createNonSharedTasks(demoUser1Id, demoUser2Id);
42
+ await this.#createNonSharedTasks(demoUser1Id, demoUser2Id);
43
43
  }
44
44
  /**
45
45
  * Ensures user has a config with the collaborator, and resets specific flags.
@@ -47,7 +47,7 @@ export default class DashboardDemoAccountsService {
47
47
  * @param ownerId The config owner
48
48
  * @param collaboratorId The collaborator to include
49
49
  */
50
- static async ensureCollaboratorsAndResetConfig(ownerId, collaboratorId) {
50
+ static async #ensureCollaboratorsAndResetConfig(ownerId, collaboratorId) {
51
51
  const cfgRepo = DashboardUserConfigRepository.getRepo();
52
52
  let cfg = await cfgRepo.getForUser(ownerId);
53
53
  let isNew = false;
@@ -62,7 +62,7 @@ export default class DashboardDemoAccountsService {
62
62
  cfg.enabledFeatures.catImageOnHomePage = false;
63
63
  // Reset tag settings and seed priorities for demo tags
64
64
  cfg.tagSettings = {};
65
- for (const [tag, priority] of Object.entries(this.TAG_PRIORITY)) {
65
+ for (const [tag, priority] of Object.entries(this.#TAG_PRIORITY)) {
66
66
  cfg.tagSettings[tag] = { priority };
67
67
  }
68
68
  if (isNew) {
@@ -78,7 +78,7 @@ export default class DashboardDemoAccountsService {
78
78
  *
79
79
  * @param userIds The users to wipe tasks for
80
80
  */
81
- static async wipeTasksForUsers(userIds) {
81
+ static async #wipeTasksForUsers(userIds) {
82
82
  const taskRepo = DashboardTaskRepository.getRepo();
83
83
  // Delete per-user using repo.deleteList to leverage child cleanup logic.
84
84
  for (const userId of userIds) {
@@ -108,7 +108,7 @@ export default class DashboardDemoAccountsService {
108
108
  * @param opts.dueDate Optional due date
109
109
  * @param opts.category System category
110
110
  */
111
- static async createTask(ownerId, title, opts) {
111
+ static async #createTask(ownerId, title, opts) {
112
112
  const taskRepo = DashboardTaskRepository.getRepo();
113
113
  const task = DashboardTaskSchema.parse({ userId: ownerId });
114
114
  task.title = title;
@@ -138,35 +138,35 @@ export default class DashboardDemoAccountsService {
138
138
  * @param user1Id The primary owner of some shared tasks
139
139
  * @param user2Id The collaborator for shared tasks
140
140
  */
141
- static async createExampleTasks(user1Id, user2Id) {
141
+ static async #createExampleTasks(user1Id, user2Id) {
142
142
  // Shared parent task (owned by user1, shared with user2)
143
- const parent = await this.createTask(user1Id, 'Plan weekend trip', {
143
+ const parent = await this.#createTask(user1Id, 'Plan weekend trip', {
144
144
  description: 'Decide destination and plan activities for the weekend.',
145
145
  sharedWith: [user2Id],
146
146
  tags: ['planning', 'fun']
147
147
  });
148
- const child1 = await this.createTask(user1Id, 'Book hotel', {
148
+ const child1 = await this.#createTask(user1Id, 'Book hotel', {
149
149
  parentTaskId: parent._id,
150
150
  tags: ['booking']
151
151
  });
152
- await this.createTask(user1Id, 'Create itinerary', {
152
+ await this.#createTask(user1Id, 'Create itinerary', {
153
153
  parentTaskId: parent._id,
154
154
  tags: ['planning']
155
155
  });
156
- await this.createTask(user1Id, 'Pack bags', { parentTaskId: parent._id });
157
- await this.createTask(user1Id, 'Buy snacks', {
156
+ await this.#createTask(user1Id, 'Pack bags', { parentTaskId: parent._id });
157
+ await this.#createTask(user1Id, 'Buy snacks', {
158
158
  parentTaskId: child1._id,
159
159
  completed: true,
160
160
  tags: ['food']
161
161
  });
162
162
  // Shared task assigned to user2 (owned by user1)
163
- await this.createTask(user1Id, 'Buy groceries for BBQ', {
163
+ await this.#createTask(user1Id, 'Buy groceries for BBQ', {
164
164
  sharedWith: [user2Id],
165
165
  assignedTo: user2Id,
166
166
  tags: ['home', 'bbq']
167
167
  });
168
168
  // A shared planning task owned by user2
169
- await this.createTask(user2Id, 'Plan potluck dinner', {
169
+ await this.#createTask(user2Id, 'Plan potluck dinner', {
170
170
  sharedWith: [user1Id],
171
171
  assignedTo: user1Id,
172
172
  tags: ['food', 'planning']
@@ -178,7 +178,7 @@ export default class DashboardDemoAccountsService {
178
178
  * @param user1Id The first user
179
179
  * @param user2Id The second user
180
180
  */
181
- static async createNonSharedTasks(user1Id, user2Id) {
181
+ static async #createNonSharedTasks(user1Id, user2Id) {
182
182
  const now = new Date();
183
183
  const futureDue = new Date(now.getTime());
184
184
  futureDue.setMonth(futureDue.getMonth() + 4);
@@ -187,43 +187,43 @@ export default class DashboardDemoAccountsService {
187
187
  pastDue.setDate(pastDue.getDate() - 7);
188
188
  pastDueStart.setDate(pastDueStart.getDate() - 14);
189
189
  // User 1: A completed solo task
190
- await this.createTask(user1Id, 'Renew car registration', {
190
+ await this.#createTask(user1Id, 'Renew car registration', {
191
191
  completed: true,
192
192
  tags: ['admin']
193
193
  });
194
194
  // User 2: Own parent task with subtasks (not shared)
195
- const u2Parent = await this.createTask(user2Id, 'Home improvement project', {
195
+ const u2Parent = await this.#createTask(user2Id, 'Home improvement project', {
196
196
  description: 'Small updates around the house.',
197
197
  tags: ['home']
198
198
  });
199
- await this.createTask(user2Id, 'Paint living room walls', {
199
+ await this.#createTask(user2Id, 'Paint living room walls', {
200
200
  parentTaskId: u2Parent._id,
201
201
  completed: true,
202
202
  tags: ['paint']
203
203
  });
204
- await this.createTask(user2Id, 'Replace light fixtures', {
204
+ await this.#createTask(user2Id, 'Replace light fixtures', {
205
205
  parentTaskId: u2Parent._id,
206
206
  tags: ['electric']
207
207
  });
208
208
  // Root task with a future due date (>= 4 months out)
209
- await this.createTask(user1Id, 'Schedule annual physical', {
209
+ await this.#createTask(user1Id, 'Schedule annual physical', {
210
210
  description: 'Book an appointment and add to calendar.',
211
211
  dueDate: futureDue,
212
212
  tags: ['admin']
213
213
  });
214
- await this.createTask(user2Id, 'Schedule annual physical', {
214
+ await this.#createTask(user2Id, 'Schedule annual physical', {
215
215
  description: 'Book an appointment and add to calendar.',
216
216
  dueDate: futureDue,
217
217
  tags: ['admin']
218
218
  });
219
219
  // Past-due task
220
- await this.createTask(user1Id, 'Submit expense report', {
220
+ await this.#createTask(user1Id, 'Submit expense report', {
221
221
  description: 'Collect receipts and submit to finance.',
222
222
  startDate: pastDueStart,
223
223
  dueDate: pastDue,
224
224
  tags: ['admin']
225
225
  });
226
- await this.createTask(user2Id, 'Submit expense report', {
226
+ await this.#createTask(user2Id, 'Submit expense report', {
227
227
  description: 'Collect receipts and submit to finance.',
228
228
  startDate: pastDueStart,
229
229
  dueDate: pastDue,
@@ -231,4 +231,4 @@ export default class DashboardDemoAccountsService {
231
231
  });
232
232
  }
233
233
  }
234
- //# sourceMappingURL=DashboardDemoAccountsService.js.map
234
+ //# sourceMappingURL=DashboardDemoAccounts.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DashboardDemoAccounts.service.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccounts.service.ts"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ export default class DashboardDemoAccountsService {
12
12
  * Default priorities for known demo tags. If a tag is not listed here,
13
13
  * a fallback priority will be used.
14
14
  */
15
- private static readonly TAG_PRIORITY: Record<string, number> = {
15
+ static readonly #TAG_PRIORITY: Record<string, number> = {
16
16
  planning: 9,
17
17
  fun: 8,
18
18
  booking: 7,
@@ -37,15 +37,15 @@ export default class DashboardDemoAccountsService {
37
37
  * @param demoUser2Id The second user
38
38
  */
39
39
  static async seedDemoAccounts(demoUser1Id: UUID, demoUser2Id: UUID): Promise<void> {
40
- await this.ensureCollaboratorsAndResetConfig(demoUser1Id, demoUser2Id);
41
- await this.ensureCollaboratorsAndResetConfig(demoUser2Id, demoUser1Id);
40
+ await this.#ensureCollaboratorsAndResetConfig(demoUser1Id, demoUser2Id);
41
+ await this.#ensureCollaboratorsAndResetConfig(demoUser2Id, demoUser1Id);
42
42
 
43
- await this.wipeTasksForUsers([demoUser1Id, demoUser2Id]);
43
+ await this.#wipeTasksForUsers([demoUser1Id, demoUser2Id]);
44
44
 
45
45
  // Create shared tasks (visible to both users) exactly once
46
- await this.createExampleTasks(demoUser1Id, demoUser2Id);
46
+ await this.#createExampleTasks(demoUser1Id, demoUser2Id);
47
47
  // Create non-shared tasks for each user
48
- await this.createNonSharedTasks(demoUser1Id, demoUser2Id);
48
+ await this.#createNonSharedTasks(demoUser1Id, demoUser2Id);
49
49
  }
50
50
 
51
51
  /**
@@ -54,7 +54,7 @@ export default class DashboardDemoAccountsService {
54
54
  * @param ownerId The config owner
55
55
  * @param collaboratorId The collaborator to include
56
56
  */
57
- private static async ensureCollaboratorsAndResetConfig(
57
+ static async #ensureCollaboratorsAndResetConfig(
58
58
  ownerId: UUID,
59
59
  collaboratorId: UUID
60
60
  ): Promise<void> {
@@ -72,7 +72,7 @@ export default class DashboardDemoAccountsService {
72
72
  cfg.enabledFeatures.catImageOnHomePage = false;
73
73
  // Reset tag settings and seed priorities for demo tags
74
74
  cfg.tagSettings = {};
75
- for (const [tag, priority] of Object.entries(this.TAG_PRIORITY)) {
75
+ for (const [tag, priority] of Object.entries(this.#TAG_PRIORITY)) {
76
76
  cfg.tagSettings[tag] = { priority };
77
77
  }
78
78
  if (isNew) {
@@ -88,7 +88,7 @@ export default class DashboardDemoAccountsService {
88
88
  *
89
89
  * @param userIds The users to wipe tasks for
90
90
  */
91
- private static async wipeTasksForUsers(userIds: UUID[]): Promise<void> {
91
+ static async #wipeTasksForUsers(userIds: UUID[]): Promise<void> {
92
92
  const taskRepo = DashboardTaskRepository.getRepo();
93
93
  // Delete per-user using repo.deleteList to leverage child cleanup logic.
94
94
  for (const userId of userIds) {
@@ -118,7 +118,7 @@ export default class DashboardDemoAccountsService {
118
118
  * @param opts.dueDate Optional due date
119
119
  * @param opts.category System category
120
120
  */
121
- private static async createTask(
121
+ static async #createTask(
122
122
  ownerId: UUID,
123
123
  title: string,
124
124
  opts?: {
@@ -156,37 +156,37 @@ export default class DashboardDemoAccountsService {
156
156
  * @param user1Id The primary owner of some shared tasks
157
157
  * @param user2Id The collaborator for shared tasks
158
158
  */
159
- private static async createExampleTasks(user1Id: UUID, user2Id: UUID) {
159
+ static async #createExampleTasks(user1Id: UUID, user2Id: UUID) {
160
160
  // Shared parent task (owned by user1, shared with user2)
161
- const parent = await this.createTask(user1Id, 'Plan weekend trip', {
161
+ const parent = await this.#createTask(user1Id, 'Plan weekend trip', {
162
162
  description: 'Decide destination and plan activities for the weekend.',
163
163
  sharedWith: [user2Id],
164
164
  tags: ['planning', 'fun']
165
165
  });
166
- const child1 = await this.createTask(user1Id, 'Book hotel', {
166
+ const child1 = await this.#createTask(user1Id, 'Book hotel', {
167
167
  parentTaskId: parent._id,
168
168
  tags: ['booking']
169
169
  });
170
- await this.createTask(user1Id, 'Create itinerary', {
170
+ await this.#createTask(user1Id, 'Create itinerary', {
171
171
  parentTaskId: parent._id,
172
172
  tags: ['planning']
173
173
  });
174
- await this.createTask(user1Id, 'Pack bags', { parentTaskId: parent._id });
175
- await this.createTask(user1Id, 'Buy snacks', {
174
+ await this.#createTask(user1Id, 'Pack bags', { parentTaskId: parent._id });
175
+ await this.#createTask(user1Id, 'Buy snacks', {
176
176
  parentTaskId: child1._id,
177
177
  completed: true,
178
178
  tags: ['food']
179
179
  });
180
180
 
181
181
  // Shared task assigned to user2 (owned by user1)
182
- await this.createTask(user1Id, 'Buy groceries for BBQ', {
182
+ await this.#createTask(user1Id, 'Buy groceries for BBQ', {
183
183
  sharedWith: [user2Id],
184
184
  assignedTo: user2Id,
185
185
  tags: ['home', 'bbq']
186
186
  });
187
187
 
188
188
  // A shared planning task owned by user2
189
- await this.createTask(user2Id, 'Plan potluck dinner', {
189
+ await this.#createTask(user2Id, 'Plan potluck dinner', {
190
190
  sharedWith: [user1Id],
191
191
  assignedTo: user1Id,
192
192
  tags: ['food', 'planning']
@@ -199,7 +199,7 @@ export default class DashboardDemoAccountsService {
199
199
  * @param user1Id The first user
200
200
  * @param user2Id The second user
201
201
  */
202
- private static async createNonSharedTasks(user1Id: UUID, user2Id: UUID) {
202
+ static async #createNonSharedTasks(user1Id: UUID, user2Id: UUID) {
203
203
  const now = new Date();
204
204
  const futureDue = new Date(now.getTime());
205
205
  futureDue.setMonth(futureDue.getMonth() + 4);
@@ -209,46 +209,46 @@ export default class DashboardDemoAccountsService {
209
209
  pastDueStart.setDate(pastDueStart.getDate() - 14);
210
210
 
211
211
  // User 1: A completed solo task
212
- await this.createTask(user1Id, 'Renew car registration', {
212
+ await this.#createTask(user1Id, 'Renew car registration', {
213
213
  completed: true,
214
214
  tags: ['admin']
215
215
  });
216
216
 
217
217
  // User 2: Own parent task with subtasks (not shared)
218
- const u2Parent = await this.createTask(user2Id, 'Home improvement project', {
218
+ const u2Parent = await this.#createTask(user2Id, 'Home improvement project', {
219
219
  description: 'Small updates around the house.',
220
220
  tags: ['home']
221
221
  });
222
- await this.createTask(user2Id, 'Paint living room walls', {
222
+ await this.#createTask(user2Id, 'Paint living room walls', {
223
223
  parentTaskId: u2Parent._id,
224
224
  completed: true,
225
225
  tags: ['paint']
226
226
  });
227
- await this.createTask(user2Id, 'Replace light fixtures', {
227
+ await this.#createTask(user2Id, 'Replace light fixtures', {
228
228
  parentTaskId: u2Parent._id,
229
229
  tags: ['electric']
230
230
  });
231
231
 
232
232
  // Root task with a future due date (>= 4 months out)
233
- await this.createTask(user1Id, 'Schedule annual physical', {
233
+ await this.#createTask(user1Id, 'Schedule annual physical', {
234
234
  description: 'Book an appointment and add to calendar.',
235
235
  dueDate: futureDue,
236
236
  tags: ['admin']
237
237
  });
238
- await this.createTask(user2Id, 'Schedule annual physical', {
238
+ await this.#createTask(user2Id, 'Schedule annual physical', {
239
239
  description: 'Book an appointment and add to calendar.',
240
240
  dueDate: futureDue,
241
241
  tags: ['admin']
242
242
  });
243
243
 
244
244
  // Past-due task
245
- await this.createTask(user1Id, 'Submit expense report', {
245
+ await this.#createTask(user1Id, 'Submit expense report', {
246
246
  description: 'Collect receipts and submit to finance.',
247
247
  startDate: pastDueStart,
248
248
  dueDate: pastDue,
249
249
  tags: ['admin']
250
250
  });
251
- await this.createTask(user2Id, 'Submit expense report', {
251
+ await this.#createTask(user2Id, 'Submit expense report', {
252
252
  description: 'Collect receipts and submit to finance.',
253
253
  startDate: pastDueStart,
254
254
  dueDate: pastDue,
@@ -14,4 +14,4 @@ export default class DemoAccountsService {
14
14
  */
15
15
  static seedDashboardDemoAccounts(demoUser1Id: UUID, demoUser2Id: UUID): Promise<void>;
16
16
  }
17
- //# sourceMappingURL=DemoAccountsService.d.ts.map
17
+ //# sourceMappingURL=DemoAccounts.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoAccounts.service.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DemoAccounts.service.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAGnC;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;;;OAKG;WACU,yBAAyB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;CAG5F"}
@@ -1,4 +1,4 @@
1
- import DashboardDemoAccountsService from './DashboardDemoAccountsService.js';
1
+ import DashboardDemoAccountsService from './DashboardDemoAccounts.service.js';
2
2
  /**
3
3
  * Entry point for seeding demo accounts across projects.
4
4
  *
@@ -16,4 +16,4 @@ export default class DemoAccountsService {
16
16
  await DashboardDemoAccountsService.seedDemoAccounts(demoUser1Id, demoUser2Id);
17
17
  }
18
18
  }
19
- //# sourceMappingURL=DemoAccountsService.js.map
19
+ //# sourceMappingURL=DemoAccounts.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DemoAccounts.service.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DemoAccounts.service.ts"],"names":[],"mappings":"AACA,OAAO,4BAA4B,MAAM,oCAAoC,CAAC;AAE9E;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC;;;;;OAKG;IACH,MAAM,CAAC,KAAK,CAAC,yBAAyB,CAAC,WAAiB,EAAE,WAAiB;QACzE,MAAM,4BAA4B,CAAC,gBAAgB,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAChF,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import type { UUID } from 'crypto';
2
- import DashboardDemoAccountsService from './DashboardDemoAccountsService.js';
2
+ import DashboardDemoAccountsService from './DashboardDemoAccounts.service.js';
3
3
 
4
4
  /**
5
5
  * Entry point for seeding demo accounts across projects.
@@ -1,2 +1,2 @@
1
- export { default as DemoAccountsService } from './DemoAccountsService.js';
1
+ export { default as DemoAccountsService } from './DemoAccounts.service.js';
2
2
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}
@@ -1,2 +1,2 @@
1
- export { default as DemoAccountsService } from './DemoAccountsService.js';
1
+ export { default as DemoAccountsService } from './DemoAccounts.service.js';
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,2BAA2B,CAAC"}