@aneuhold/be-ts-db-lib 2.0.85 → 3.0.1

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 (77) hide show
  1. package/CHANGELOG.md +21 -0
  2. package/lib/repositories/BaseRepository.d.ts +10 -11
  3. package/lib/repositories/BaseRepository.d.ts.map +1 -1
  4. package/lib/repositories/BaseRepository.js +6 -7
  5. package/lib/repositories/BaseRepository.js.map +1 -1
  6. package/lib/repositories/BaseRepository.ts +13 -14
  7. package/lib/repositories/common/UserRepository.d.ts +2 -2
  8. package/lib/repositories/common/UserRepository.d.ts.map +1 -1
  9. package/lib/repositories/common/UserRepository.js +0 -1
  10. package/lib/repositories/common/UserRepository.js.map +1 -1
  11. package/lib/repositories/common/UserRepository.ts +2 -2
  12. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts +2 -2
  13. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts.map +1 -1
  14. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js +7 -4
  15. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js.map +1 -1
  16. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts +11 -5
  17. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts +2 -2
  18. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts.map +1 -1
  19. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js +7 -4
  20. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js.map +1 -1
  21. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts +12 -6
  22. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +4 -4
  23. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
  24. package/lib/repositories/dashboard/DashboardTaskRepository.js +6 -6
  25. package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
  26. package/lib/repositories/dashboard/DashboardTaskRepository.ts +12 -11
  27. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +2 -2
  28. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
  29. package/lib/repositories/dashboard/DashboardUserConfigRepository.js +10 -12
  30. package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
  31. package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +20 -18
  32. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts +2 -2
  33. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts.map +1 -1
  34. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js +2 -3
  35. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js.map +1 -1
  36. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.ts +13 -13
  37. package/lib/services/DemoAccountsService/DemoAccountsService.d.ts +2 -2
  38. package/lib/services/DemoAccountsService/DemoAccountsService.d.ts.map +1 -1
  39. package/lib/services/DemoAccountsService/DemoAccountsService.js +0 -1
  40. package/lib/services/DemoAccountsService/DemoAccountsService.js.map +1 -1
  41. package/lib/services/DemoAccountsService/DemoAccountsService.ts +2 -5
  42. package/lib/services/MigrationService.d.ts.map +1 -1
  43. package/lib/services/MigrationService.js +330 -19
  44. package/lib/services/MigrationService.js.map +1 -1
  45. package/lib/services/MigrationService.ts +420 -19
  46. package/lib/services/RepoSubscriptionService.d.ts +3 -3
  47. package/lib/services/RepoSubscriptionService.d.ts.map +1 -1
  48. package/lib/services/RepoSubscriptionService.js +0 -1
  49. package/lib/services/RepoSubscriptionService.js.map +1 -1
  50. package/lib/services/RepoSubscriptionService.ts +3 -3
  51. package/lib/validators/BaseValidator.d.ts +2 -2
  52. package/lib/validators/BaseValidator.d.ts.map +1 -1
  53. package/lib/validators/BaseValidator.js +1 -2
  54. package/lib/validators/BaseValidator.js.map +1 -1
  55. package/lib/validators/BaseValidator.ts +4 -4
  56. package/lib/validators/common/ApiKeyValidator.d.ts.map +1 -1
  57. package/lib/validators/common/ApiKeyValidator.js +6 -7
  58. package/lib/validators/common/ApiKeyValidator.js.map +1 -1
  59. package/lib/validators/common/ApiKeyValidator.ts +8 -15
  60. package/lib/validators/common/UserValidator.d.ts.map +1 -1
  61. package/lib/validators/common/UserValidator.js +2 -3
  62. package/lib/validators/common/UserValidator.js.map +1 -1
  63. package/lib/validators/common/UserValidator.ts +4 -6
  64. package/lib/validators/dashboard/NonogramKatanaItemValidator.js +4 -5
  65. package/lib/validators/dashboard/NonogramKatanaItemValidator.js.map +1 -1
  66. package/lib/validators/dashboard/NonogramKatanaItemValidator.ts +6 -6
  67. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js +4 -5
  68. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js.map +1 -1
  69. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.ts +6 -6
  70. package/lib/validators/dashboard/TaskValidator.js +8 -9
  71. package/lib/validators/dashboard/TaskValidator.js.map +1 -1
  72. package/lib/validators/dashboard/TaskValidator.ts +10 -10
  73. package/lib/validators/dashboard/UserConfigValidator.d.ts.map +1 -1
  74. package/lib/validators/dashboard/UserConfigValidator.js +9 -10
  75. package/lib/validators/dashboard/UserConfigValidator.js.map +1 -1
  76. package/lib/validators/dashboard/UserConfigValidator.ts +11 -16
  77. package/package.json +12 -8
package/CHANGELOG.md CHANGED
@@ -5,6 +5,25 @@ All notable changes to this project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
6
6
  and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## 🔖 [3.0.1] (2025-11-25)
9
+
10
+ ### 🏗️ Changed
11
+
12
+ - All dashboard repositories now require `docType` in delete and update queries for stricter document targeting.
13
+ - Improved internal filtering in `getAllForUser` and similar methods to use repository-level collection access and default filters.
14
+ - Refactored `DashboardUserConfigRepository` to ensure collaborator and userId references always include `docType`.
15
+ - Updated migration logic in `MigrationService` for more robust and complete UUID migration, including all dashboard-related document types.
16
+ - Added `uuid` as a dependency in `package.json`.
17
+
18
+ ## 🔖 [3.0.0] (2025-11-23)
19
+
20
+ ### 🏗️ Changed
21
+
22
+ _Breaking Change:_ Migrated all document, repository, and validator code from using `ObjectId` (from `bson`) to native `UUID` (from `crypto`), including all type signatures, constructors, and internal logic.
23
+ _Breaking Change:_ Updated all references, tests, and utility functions to use `UUID` instead of `ObjectId`.
24
+ Added migration utilities and scripts to support conversion of existing data from `ObjectId` to `UUID v7`.
25
+ Updated dependencies: now requires `@aneuhold/core-ts-db-lib@^3.0.0`, `@aneuhold/core-ts-lib@^2.3.11`, and `@aneuhold/be-ts-lib@^3.0.0`.
26
+
8
27
  ## 🔖 [2.0.85] (2025-11-09)
9
28
 
10
29
  ### 🏗️ Changed
@@ -85,6 +104,8 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.
85
104
 
86
105
  <!-- Link References -->
87
106
 
107
+ [3.0.1]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v3.0.0...be-ts-db-lib-v3.0.1
108
+ [3.0.0]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v2.0.85...be-ts-db-lib-v3.0.0
88
109
  [2.0.85]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v2.0.84...be-ts-db-lib-v2.0.85
89
110
  [2.0.84]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v2.0.83...be-ts-db-lib-v2.0.84
90
111
  [2.0.83]: https://github.com/aneuhold/ts-libs/compare/be-ts-db-lib-v2.0.82...be-ts-db-lib-v2.0.83
@@ -1,12 +1,14 @@
1
1
  import { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
- import type { Document } from 'bson';
3
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
4
3
  import type { BulkWriteResult, Collection, DeleteResult, Filter, UpdateResult } from 'mongodb';
5
4
  import type { RepoListeners, RepoSubscribers } from '../services/RepoSubscriptionService.js';
6
5
  import IValidator from '../validators/BaseValidator.js';
7
6
  /**
8
7
  * Base repository class for handling common database operations.
9
8
  *
9
+ * Implementation note: I have tried to do the types correctly here, but kept struggling with
10
+ * MongoDB's types around Filter<T> and _id fields.
11
+ *
10
12
  * @template TBasetype - The type of the documents in the collection.
11
13
  */
12
14
  export default abstract class BaseRepository<TBasetype extends BaseDocument> {
@@ -80,21 +82,21 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
80
82
  * @param docIds - The IDs of the documents to retrieve.
81
83
  * @returns An array of matching documents.
82
84
  */
83
- getList(docIds: ObjectId[]): Promise<TBasetype[]>;
85
+ getList(docIds: UUID[]): Promise<TBasetype[]>;
84
86
  /**
85
87
  * Deletes a document by its ID.
86
88
  *
87
89
  * @param docId - The ID of the document to delete.
88
90
  * @returns The result of the delete operation.
89
91
  */
90
- delete(docId: ObjectId): Promise<DeleteResult>;
92
+ delete(docId: UUID): Promise<DeleteResult>;
91
93
  /**
92
94
  * Deletes multiple documents by their IDs.
93
95
  *
94
96
  * @param docIds - The IDs of the documents to delete.
95
97
  * @returns The result of the delete operation.
96
98
  */
97
- deleteList(docIds: ObjectId[]): Promise<DeleteResult>;
99
+ deleteList(docIds: UUID[]): Promise<DeleteResult>;
98
100
  /**
99
101
  * This should not be used except for testing purposes
100
102
  *
@@ -122,21 +124,18 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
122
124
  /**
123
125
  * Gets the filter with the default filter applied if there is one.
124
126
  *
125
- * This is purposefully changing the type because of some weird restrictions
126
- * with the `mongodb` package types.
127
- *
128
127
  * @param filter - The filter to apply.
129
128
  * @returns The filter with the default filter applied.
130
129
  */
131
- protected getFilterWithDefault(filter?: Filter<Document>): Filter<Document>;
130
+ protected getFilterWithDefault(filter?: Filter<TBasetype>): Filter<TBasetype>;
132
131
  /**
133
- * Checks if two arrays of {@link ObjectId} are equal.
132
+ * Checks if two arrays of {@link UUID} are equal.
134
133
  *
135
134
  * @param array1 - The first array.
136
135
  * @param array2 - The second array.
137
136
  * @returns True if the arrays are equal, false otherwise.
138
137
  */
139
- protected objectIdArraysAreEqual(array1: ObjectId[], array2: ObjectId[]): boolean;
138
+ protected uuidArraysAreEqual(array1: UUID[], array2: UUID[]): boolean;
140
139
  /**
141
140
  * Cleans the update object by removing the `_id` field and running the
142
141
  * default update cleaner if there is one.
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.d.ts","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,4 @@
1
1
  import { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
3
2
  import RepoSubscriptionService from '../services/RepoSubscriptionService.js';
4
3
  import DocumentCleaner from '../util/DocumentCleaner.js';
5
4
  import DocumentDb from '../util/DocumentDb.js';
@@ -7,6 +6,9 @@ import IValidator from '../validators/BaseValidator.js';
7
6
  /**
8
7
  * Base repository class for handling common database operations.
9
8
  *
9
+ * Implementation note: I have tried to do the types correctly here, but kept struggling with
10
+ * MongoDB's types around Filter<T> and _id fields.
11
+ *
10
12
  * @template TBasetype - The type of the documents in the collection.
11
13
  */
12
14
  export default class BaseRepository {
@@ -128,7 +130,7 @@ export default class BaseRepository {
128
130
  async getAllIdsAsHash() {
129
131
  const allDocs = await this.getAll();
130
132
  return allDocs.reduce((acc, doc) => {
131
- acc[doc._id.toString()] = true;
133
+ acc[doc._id] = true;
132
134
  return acc;
133
135
  }, {});
134
136
  }
@@ -225,9 +227,6 @@ export default class BaseRepository {
225
227
  /**
226
228
  * Gets the filter with the default filter applied if there is one.
227
229
  *
228
- * This is purposefully changing the type because of some weird restrictions
229
- * with the `mongodb` package types.
230
- *
231
230
  * @param filter - The filter to apply.
232
231
  * @returns The filter with the default filter applied.
233
232
  */
@@ -238,13 +237,13 @@ export default class BaseRepository {
238
237
  return { ...filter, ...this.defaultFilter };
239
238
  }
240
239
  /**
241
- * Checks if two arrays of {@link ObjectId} are equal.
240
+ * Checks if two arrays of {@link UUID} are equal.
242
241
  *
243
242
  * @param array1 - The first array.
244
243
  * @param array2 - The second array.
245
244
  * @returns True if the arrays are equal, false otherwise.
246
245
  */
247
- objectIdArraysAreEqual(array1, array2) {
246
+ uuidArraysAreEqual(array1, array2) {
248
247
  if (array1.length !== array2.length) {
249
248
  return false;
250
249
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseRepository.js","sourceRoot":"","sources":["../../src/repositories/BaseRepository.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,5 @@
1
1
  import { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
- import type { Document } from 'bson';
3
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
4
3
  import type {
5
4
  AnyBulkWriteOperation,
6
5
  BulkWriteResult,
@@ -19,6 +18,9 @@ import IValidator from '../validators/BaseValidator.js';
19
18
  /**
20
19
  * Base repository class for handling common database operations.
21
20
  *
21
+ * Implementation note: I have tried to do the types correctly here, but kept struggling with
22
+ * MongoDB's types around Filter<T> and _id fields.
23
+ *
22
24
  * @template TBasetype - The type of the documents in the collection.
23
25
  */
24
26
  export default abstract class BaseRepository<TBasetype extends BaseDocument> {
@@ -130,7 +132,7 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
130
132
  */
131
133
  async get(filter: Partial<TBasetype>): Promise<TBasetype | null> {
132
134
  const collection = await this.getCollection();
133
- const result = await collection.findOne(this.getFilterWithDefault(filter));
135
+ const result = await collection.findOne(this.getFilterWithDefault(filter as Filter<TBasetype>));
134
136
  return result as TBasetype | null;
135
137
  }
136
138
 
@@ -154,7 +156,7 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
154
156
  async getAllIdsAsHash(): Promise<{ [id: string]: boolean }> {
155
157
  const allDocs = await this.getAll();
156
158
  return allDocs.reduce<{ [id: string]: boolean }>((acc, doc) => {
157
- acc[doc._id.toString()] = true;
159
+ acc[doc._id] = true;
158
160
  return acc;
159
161
  }, {});
160
162
  }
@@ -165,10 +167,10 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
165
167
  * @param docIds - The IDs of the documents to retrieve.
166
168
  * @returns An array of matching documents.
167
169
  */
168
- async getList(docIds: ObjectId[]): Promise<TBasetype[]> {
170
+ async getList(docIds: UUID[]): Promise<TBasetype[]> {
169
171
  const collection = await this.getCollection();
170
172
  const result = await collection
171
- .find(this.getFilterWithDefault({ _id: { $in: docIds } }))
173
+ .find(this.getFilterWithDefault({ _id: { $in: docIds } } as Filter<TBasetype>))
172
174
  .toArray();
173
175
  return result as TBasetype[];
174
176
  }
@@ -179,7 +181,7 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
179
181
  * @param docId - The ID of the document to delete.
180
182
  * @returns The result of the delete operation.
181
183
  */
182
- async delete(docId: ObjectId): Promise<DeleteResult> {
184
+ async delete(docId: UUID): Promise<DeleteResult> {
183
185
  const collection = await this.getCollection();
184
186
  await Promise.all(this.subscribers.deleteOne.map((subscriber) => subscriber(docId)));
185
187
  return collection.deleteOne({ _id: docId } as Filter<TBasetype>);
@@ -191,7 +193,7 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
191
193
  * @param docIds - The IDs of the documents to delete.
192
194
  * @returns The result of the delete operation.
193
195
  */
194
- async deleteList(docIds: ObjectId[]): Promise<DeleteResult> {
196
+ async deleteList(docIds: UUID[]): Promise<DeleteResult> {
195
197
  const collection = await this.getCollection();
196
198
  const deleteResult = collection.deleteMany({
197
199
  _id: { $in: docIds }
@@ -264,13 +266,10 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
264
266
  /**
265
267
  * Gets the filter with the default filter applied if there is one.
266
268
  *
267
- * This is purposefully changing the type because of some weird restrictions
268
- * with the `mongodb` package types.
269
- *
270
269
  * @param filter - The filter to apply.
271
270
  * @returns The filter with the default filter applied.
272
271
  */
273
- protected getFilterWithDefault(filter: Filter<Document> = {}): Filter<Document> {
272
+ protected getFilterWithDefault(filter: Filter<TBasetype> = {}): Filter<TBasetype> {
274
273
  if (!this.defaultFilter) {
275
274
  return filter;
276
275
  }
@@ -278,13 +277,13 @@ export default abstract class BaseRepository<TBasetype extends BaseDocument> {
278
277
  }
279
278
 
280
279
  /**
281
- * Checks if two arrays of {@link ObjectId} are equal.
280
+ * Checks if two arrays of {@link UUID} are equal.
282
281
  *
283
282
  * @param array1 - The first array.
284
283
  * @param array2 - The second array.
285
284
  * @returns True if the arrays are equal, false otherwise.
286
285
  */
287
- protected objectIdArraysAreEqual(array1: ObjectId[], array2: ObjectId[]): boolean {
286
+ protected uuidArraysAreEqual(array1: UUID[], array2: UUID[]): boolean {
288
287
  if (array1.length !== array2.length) {
289
288
  return false;
290
289
  }
@@ -1,6 +1,6 @@
1
1
  import type { UserCTO } from '@aneuhold/core-ts-db-lib';
2
2
  import { User } from '@aneuhold/core-ts-db-lib';
3
- import { ObjectId } from 'bson';
3
+ import type { UUID } from 'crypto';
4
4
  import BaseRepository from '../BaseRepository.js';
5
5
  /**
6
6
  * The repository that contains {@link User} documents.
@@ -15,6 +15,6 @@ export default class UserRepository extends BaseRepository<User> {
15
15
  */
16
16
  static getRepo(): UserRepository;
17
17
  getUserCTOByUsername(userName: string): Promise<UserCTO | null>;
18
- getUserCTOsByIds(userIds: ObjectId[]): Promise<UserCTO[]>;
18
+ getUserCTOsByIds(userIds: UUID[]): Promise<UserCTO[]>;
19
19
  }
20
20
  //# sourceMappingURL=UserRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"UserRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAOlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IAEzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D,OAAO;IAIP,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAQlC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAO1B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW/D,gBAAgB,CAAC,OAAO,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAOhE"}
1
+ {"version":3,"file":"UserRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAOlD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAc,CAAC,IAAI,CAAC;IAC9D,OAAO,CAAC,MAAM,CAAC,eAAe,CAAW;IAEzC,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D,OAAO;IAIP,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAQlC;;OAEG;IACH,MAAM,CAAC,OAAO,IAAI,cAAc;IAO1B,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAW/D,gBAAgB,CAAC,OAAO,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CAO5D"}
@@ -1,5 +1,4 @@
1
1
  import { User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
3
2
  import UserValidator from '../../validators/common/UserValidator.js';
4
3
  import BaseRepository from '../BaseRepository.js';
5
4
  import DashboardNonogramKatanaItemRepository from '../dashboard/DashboardNonogramKatanaItemRepository.js';
@@ -1 +1 @@
1
- {"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,qCAAqC,MAAM,uDAAuD,CAAC;AAC1G,OAAO,wCAAwC,MAAM,0DAA0D,CAAC;AAChH,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,6BAA6B,MAAM,+CAA+C,CAAC;AAC1F,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAoB;IACtD,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;IAEjC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D;QACE,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,CAAC,qCAAqC,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACtC,cAAc,CAAC,iBAAiB,GAAG,IAAI,cAAc,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,cAAc,CAAC,iBAAiB,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAmB;QACxC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC,CAAC;IACN,CAAC"}
1
+ {"version":3,"file":"UserRepository.js","sourceRoot":"","sources":["../../../src/repositories/common/UserRepository.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAEhD,OAAO,aAAa,MAAM,0CAA0C,CAAC;AACrE,OAAO,cAAc,MAAM,sBAAsB,CAAC;AAClD,OAAO,qCAAqC,MAAM,uDAAuD,CAAC;AAC1G,OAAO,wCAAwC,MAAM,0DAA0D,CAAC;AAChH,OAAO,uBAAuB,MAAM,yCAAyC,CAAC;AAC9E,OAAO,6BAA6B,MAAM,+CAA+C,CAAC;AAC1F,OAAO,gBAAgB,MAAM,uBAAuB,CAAC;AAErD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,cAAoB;IACtD,MAAM,CAAC,eAAe,GAAG,OAAO,CAAC;IAEjC,MAAM,CAAC,iBAAiB,CAA6B;IAE7D;QACE,KAAK,CAAC,cAAc,CAAC,eAAe,EAAE,IAAI,aAAa,EAAE,CAAC,CAAC;IAC7D,CAAC;IAES,gBAAgB;QACxB,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACpE,IAAI,CAAC,kBAAkB,CAAC,6BAA6B,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACjF,IAAI,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAC3E,IAAI,CAAC,kBAAkB,CAAC,qCAAqC,CAAC,uBAAuB,EAAE,CAAC,CAAC;QACzF,IAAI,CAAC,kBAAkB,CAAC,wCAAwC,CAAC,uBAAuB,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,OAAO;QACZ,IAAI,CAAC,cAAc,CAAC,iBAAiB,EAAE,CAAC;YACtC,cAAc,CAAC,iBAAiB,GAAG,IAAI,cAAc,EAAE,CAAC;QAC1D,CAAC;QACD,OAAO,cAAc,CAAC,iBAAiB,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,oBAAoB,CAAC,QAAgB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC1C,IAAI,IAAI,EAAE,CAAC;YACT,OAAO;gBACL,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,GAAG,EAAE,IAAI,CAAC,GAAG;aACd,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,KAAK,CAAC,gBAAgB,CAAC,OAAe;QACpC,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC1C,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAC1B,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,GAAG,EAAE,IAAI,CAAC,GAAG;SACd,CAAC,CAAC,CAAC;IACN,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import type { UserCTO } from '@aneuhold/core-ts-db-lib';
2
2
  import { User } from '@aneuhold/core-ts-db-lib';
3
- import { ObjectId } from 'bson';
3
+ import type { UUID } from 'crypto';
4
4
  import UserValidator from '../../validators/common/UserValidator.js';
5
5
  import BaseRepository from '../BaseRepository.js';
6
6
  import DashboardNonogramKatanaItemRepository from '../dashboard/DashboardNonogramKatanaItemRepository.js';
@@ -50,7 +50,7 @@ export default class UserRepository extends BaseRepository<User> {
50
50
  return null;
51
51
  }
52
52
 
53
- async getUserCTOsByIds(userIds: ObjectId[]): Promise<UserCTO[]> {
53
+ async getUserCTOsByIds(userIds: UUID[]): Promise<UserCTO[]> {
54
54
  const users = await this.getList(userIds);
55
55
  return users.map((user) => ({
56
56
  userName: user.userName,
@@ -1,5 +1,5 @@
1
1
  import { NonogramKatanaItem, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
3
3
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
4
  import DashboardBaseRepository from './DashboardBaseRepository.js';
5
5
  /**
@@ -19,6 +19,6 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
19
19
  *
20
20
  * @param userId The ID of the user to get items for.
21
21
  */
22
- getAllForUser(userId: ObjectId): Promise<NonogramKatanaItem[]>;
22
+ getAllForUser(userId: UUID): Promise<NonogramKatanaItem[]>;
23
23
  }
24
24
  //# sourceMappingURL=DashboardNonogramKatanaItemRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaItemRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,uBAAuB,CAAC,kBAAkB,CAAC;IAC5G,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAwC;IAEzE,OAAO;IAQP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAgBrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,qCAAqC;IAQ9D;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAQrE"}
1
+ {"version":3,"file":"DashboardNonogramKatanaItemRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,uBAAuB,CAAC,kBAAkB,CAAC;IAC5G,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAwC;IAEzE,OAAO;IAQP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAsBrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,qCAAqC;IAQ9D;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;CAQjE"}
@@ -1,5 +1,4 @@
1
1
  import { NonogramKatanaItem, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
3
2
  import CleanDocument from '../../util/DocumentCleaner.js';
4
3
  import DashboardNonogramKatanaItemValidator from '../../validators/dashboard/NonogramKatanaItemValidator.js';
5
4
  import DashboardBaseRepository from './DashboardBaseRepository.js';
@@ -15,11 +14,15 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
15
14
  const nonogramKatanaRepo = DashboardNonogramKatanaItemRepository.getRepo();
16
15
  return {
17
16
  deleteOne: async (userId) => {
18
- await (await nonogramKatanaRepo.getCollection()).deleteMany({ userId });
17
+ await (await nonogramKatanaRepo.getCollection()).deleteMany({
18
+ userId,
19
+ docType: NonogramKatanaItem.docType
20
+ });
19
21
  },
20
22
  deleteList: async (userIds) => {
21
23
  await (await nonogramKatanaRepo.getCollection()).deleteMany({
22
- userId: { $in: userIds }
24
+ userId: { $in: userIds },
25
+ docType: NonogramKatanaItem.docType
23
26
  });
24
27
  }
25
28
  };
@@ -41,7 +44,7 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
41
44
  * @param userId The ID of the user to get items for.
42
45
  */
43
46
  async getAllForUser(userId) {
44
- const collection = await this.getCollection();
47
+ const collection = await DashboardNonogramKatanaItemRepository.getRepo().getCollection();
45
48
  const filter = {
46
49
  $and: [this.getFilterWithDefault(), { userId }]
47
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaItemRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,oCAAoC,MAAM,2DAA2D,CAAC;AAC7G,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,uBAA2C;IACpG,MAAM,CAAC,iBAAiB,CAAyC;IAEzE;QACE,KAAK,CACH,kBAAkB,CAAC,OAAO,EAC1B,IAAI,oCAAoC,EAAE,EAC1C,aAAa,CAAC,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QAC3E,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC1B,MAAM,CAAC,MAAM,kBAAkB,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1E,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,CACJ,MAAM,kBAAkB,CAAC,aAAa,EAAE,CACzC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,qCAAqC,CAAC,iBAAiB,EAAE,CAAC;YAC7D,qCAAqC,CAAC,iBAAiB;gBACrD,IAAI,qCAAqC,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,qCAAqC,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,MAAgB;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,MAA8B,CAAC;IACxC,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardNonogramKatanaItemRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGpE,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,oCAAoC,MAAM,2DAA2D,CAAC;AAC7G,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qCAAsC,SAAQ,uBAA2C;IACpG,MAAM,CAAC,iBAAiB,CAAyC;IAEzE;QACE,KAAK,CACH,kBAAkB,CAAC,OAAO,EAC1B,IAAI,oCAAoC,EAAE,EAC1C,aAAa,CAAC,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,kBAAkB,GAAG,qCAAqC,CAAC,OAAO,EAAE,CAAC;QAC3E,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC1B,MAAM,CACJ,MAAM,kBAAkB,CAAC,aAAa,EAAE,CACzC,CAAC,UAAU,CAAC;oBACX,MAAM;oBACN,OAAO,EAAE,kBAAkB,CAAC,OAAO;iBACpC,CAAC,CAAC;YACL,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,CACJ,MAAM,kBAAkB,CAAC,aAAa,EAAE,CACzC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBACxB,OAAO,EAAE,kBAAkB,CAAC,OAAO;iBACpC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,qCAAqC,CAAC,iBAAiB,EAAE,CAAC;YAC7D,qCAAqC,CAAC,iBAAiB;gBACrD,IAAI,qCAAqC,EAAE,CAAC;QAChD,CAAC;QACD,OAAO,qCAAqC,CAAC,iBAAiB,CAAC;IACjE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,MAAY;QAC9B,MAAM,UAAU,GAAG,MAAM,qCAAqC,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QACzF,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,MAA8B,CAAC;IACxC,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { NonogramKatanaItem, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
3
3
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
4
  import CleanDocument from '../../util/DocumentCleaner.js';
5
5
  import DashboardNonogramKatanaItemValidator from '../../validators/dashboard/NonogramKatanaItemValidator.js';
@@ -23,13 +23,19 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
23
23
  const nonogramKatanaRepo = DashboardNonogramKatanaItemRepository.getRepo();
24
24
  return {
25
25
  deleteOne: async (userId) => {
26
- await (await nonogramKatanaRepo.getCollection()).deleteMany({ userId });
26
+ await (
27
+ await nonogramKatanaRepo.getCollection()
28
+ ).deleteMany({
29
+ userId,
30
+ docType: NonogramKatanaItem.docType
31
+ });
27
32
  },
28
33
  deleteList: async (userIds) => {
29
34
  await (
30
35
  await nonogramKatanaRepo.getCollection()
31
36
  ).deleteMany({
32
- userId: { $in: userIds }
37
+ userId: { $in: userIds },
38
+ docType: NonogramKatanaItem.docType
33
39
  });
34
40
  }
35
41
  };
@@ -53,8 +59,8 @@ export default class DashboardNonogramKatanaItemRepository extends DashboardBase
53
59
  *
54
60
  * @param userId The ID of the user to get items for.
55
61
  */
56
- async getAllForUser(userId: ObjectId): Promise<NonogramKatanaItem[]> {
57
- const collection = await this.getCollection();
62
+ async getAllForUser(userId: UUID): Promise<NonogramKatanaItem[]> {
63
+ const collection = await DashboardNonogramKatanaItemRepository.getRepo().getCollection();
58
64
  const filter = {
59
65
  $and: [this.getFilterWithDefault(), { userId }]
60
66
  };
@@ -1,5 +1,5 @@
1
1
  import { NonogramKatanaUpgrade, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
3
3
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
4
  import DashboardBaseRepository from './DashboardBaseRepository.js';
5
5
  /**
@@ -19,6 +19,6 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
19
19
  *
20
20
  * @param userId The ID of the user to get upgrades for.
21
21
  */
22
- getAllForUser(userId: ObjectId): Promise<NonogramKatanaUpgrade[]>;
22
+ getAllForUser(userId: UUID): Promise<NonogramKatanaUpgrade[]>;
23
23
  }
24
24
  //# sourceMappingURL=DashboardNonogramKatanaUpgradeRepository.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,uBAAuB,CAAC,qBAAqB,CAAC;IAClH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAuD;IAEvF,OAAO;IAQP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAgBrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,wCAAwC;IAQjE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAQxE"}
1
+ {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,uBAAuB,CAAC,qBAAqB,CAAC;IAClH,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAuD;IAEvF,OAAO;IAQP,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAsBrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;OAEG;WACW,OAAO,IAAI,wCAAwC;IAQjE;;;;OAIG;IACG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;CAQpE"}
@@ -1,5 +1,4 @@
1
1
  import { NonogramKatanaUpgrade, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
3
2
  import CleanDocument from '../../util/DocumentCleaner.js';
4
3
  import DashboardNonogramKatanaUpgradeValidator from '../../validators/dashboard/NonogramKatanaUpgradeValidator.js';
5
4
  import DashboardBaseRepository from './DashboardBaseRepository.js';
@@ -15,11 +14,15 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
15
14
  const upgradeRepo = DashboardNonogramKatanaUpgradeRepository.getRepo();
16
15
  return {
17
16
  deleteOne: async (userId) => {
18
- await (await upgradeRepo.getCollection()).deleteMany({ userId });
17
+ await (await upgradeRepo.getCollection()).deleteMany({
18
+ userId,
19
+ docType: NonogramKatanaUpgrade.docType
20
+ });
19
21
  },
20
22
  deleteList: async (userIds) => {
21
23
  await (await upgradeRepo.getCollection()).deleteMany({
22
- userId: { $in: userIds }
24
+ userId: { $in: userIds },
25
+ docType: NonogramKatanaUpgrade.docType
23
26
  });
24
27
  }
25
28
  };
@@ -41,7 +44,7 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
41
44
  * @param userId The ID of the user to get upgrades for.
42
45
  */
43
46
  async getAllForUser(userId) {
44
- const collection = await this.getCollection();
47
+ const collection = await DashboardNonogramKatanaUpgradeRepository.getRepo().getCollection();
45
48
  const filter = {
46
49
  $and: [this.getFilterWithDefault(), { userId }]
47
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACvE,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAEhC,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,uCAAuC,MAAM,8DAA8D,CAAC;AACnH,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,uBAA8C;IAC1G,MAAM,CAAC,iBAAiB,CAAuD;IAEvF;QACE,KAAK,CACH,qBAAqB,CAAC,OAAO,EAC7B,IAAI,uCAAuC,EAAE,EAC7C,aAAa,CAAC,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC1B,MAAM,CAAC,MAAM,WAAW,CAAC,aAAa,EAAE,CAAC,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,CACJ,MAAM,WAAW,CAAC,aAAa,EAAE,CAClC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;iBACzB,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wCAAwC,CAAC,iBAAiB,EAAE,CAAC;YAChE,wCAAwC,CAAC,iBAAiB;gBACxD,IAAI,wCAAwC,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,wCAAwC,CAAC,iBAAiB,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,MAAgB;QAClC,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,MAAiC,CAAC;IAC3C,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardNonogramKatanaUpgradeRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGvE,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,uCAAuC,MAAM,8DAA8D,CAAC;AACnH,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,wCAAyC,SAAQ,uBAA8C;IAC1G,MAAM,CAAC,iBAAiB,CAAuD;IAEvF;QACE,KAAK,CACH,qBAAqB,CAAC,OAAO,EAC7B,IAAI,uCAAuC,EAAE,EAC7C,aAAa,CAAC,MAAM,CACrB,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,uBAAuB;QAC5B,MAAM,WAAW,GAAG,wCAAwC,CAAC,OAAO,EAAE,CAAC;QACvE,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC1B,MAAM,CACJ,MAAM,WAAW,CAAC,aAAa,EAAE,CAClC,CAAC,UAAU,CAAC;oBACX,MAAM;oBACN,OAAO,EAAE,qBAAqB,CAAC,OAAO;iBACvC,CAAC,CAAC;YACL,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,CACJ,MAAM,WAAW,CAAC,aAAa,EAAE,CAClC,CAAC,UAAU,CAAC;oBACX,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBACxB,OAAO,EAAE,qBAAqB,CAAC,OAAO;iBACvC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;OAEG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,wCAAwC,CAAC,iBAAiB,EAAE,CAAC;YAChE,wCAAwC,CAAC,iBAAiB;gBACxD,IAAI,wCAAwC,EAAE,CAAC;QACnD,CAAC;QACD,OAAO,wCAAwC,CAAC,iBAAiB,CAAC;IACpE,CAAC;IAED;;;;OAIG;IACH,KAAK,CAAC,aAAa,CAAC,MAAY;QAC9B,MAAM,UAAU,GAAG,MAAM,wCAAwC,CAAC,OAAO,EAAE,CAAC,aAAa,EAAE,CAAC;QAC5F,MAAM,MAAM,GAAG;YACb,IAAI,EAAE,CAAC,IAAI,CAAC,oBAAoB,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC;SAChD,CAAC;QACF,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,CAAC;QACvD,OAAO,MAAM,CAAC;IAChB,CAAC;CACF"}
@@ -1,5 +1,5 @@
1
1
  import { NonogramKatanaUpgrade, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
3
3
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
4
4
  import CleanDocument from '../../util/DocumentCleaner.js';
5
5
  import DashboardNonogramKatanaUpgradeValidator from '../../validators/dashboard/NonogramKatanaUpgradeValidator.js';
@@ -23,13 +23,19 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
23
23
  const upgradeRepo = DashboardNonogramKatanaUpgradeRepository.getRepo();
24
24
  return {
25
25
  deleteOne: async (userId) => {
26
- await (await upgradeRepo.getCollection()).deleteMany({ userId });
26
+ await (
27
+ await upgradeRepo.getCollection()
28
+ ).deleteMany({
29
+ userId,
30
+ docType: NonogramKatanaUpgrade.docType
31
+ });
27
32
  },
28
33
  deleteList: async (userIds) => {
29
34
  await (
30
35
  await upgradeRepo.getCollection()
31
36
  ).deleteMany({
32
- userId: { $in: userIds }
37
+ userId: { $in: userIds },
38
+ docType: NonogramKatanaUpgrade.docType
33
39
  });
34
40
  }
35
41
  };
@@ -53,12 +59,12 @@ export default class DashboardNonogramKatanaUpgradeRepository extends DashboardB
53
59
  *
54
60
  * @param userId The ID of the user to get upgrades for.
55
61
  */
56
- async getAllForUser(userId: ObjectId): Promise<NonogramKatanaUpgrade[]> {
57
- const collection = await this.getCollection();
62
+ async getAllForUser(userId: UUID): Promise<NonogramKatanaUpgrade[]> {
63
+ const collection = await DashboardNonogramKatanaUpgradeRepository.getRepo().getCollection();
58
64
  const filter = {
59
65
  $and: [this.getFilterWithDefault(), { userId }]
60
66
  };
61
67
  const result = await collection.find(filter).toArray();
62
- return result as NonogramKatanaUpgrade[];
68
+ return result;
63
69
  }
64
70
  }
@@ -1,5 +1,5 @@
1
1
  import { DashboardTask, User } from '@aneuhold/core-ts-db-lib';
2
- import { ObjectId } from 'bson';
2
+ import type { UUID } from 'crypto';
3
3
  import type { DeleteResult } from 'mongodb';
4
4
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
5
5
  import DashboardBaseRepository from './DashboardBaseRepository.js';
@@ -33,14 +33,14 @@ export default class DashboardTaskRepository extends DashboardBaseRepository<Das
33
33
  * @param docId The ID of the document to delete.
34
34
  * @returns The result of the delete operation.
35
35
  */
36
- delete(docId: ObjectId): Promise<DeleteResult>;
36
+ delete(docId: UUID): Promise<DeleteResult>;
37
37
  /**
38
38
  * Deletes a list of tasks and all children of those tasks.
39
39
  *
40
40
  * @param docIds The IDs of the documents to delete.
41
41
  * @returns The result of the delete operation.
42
42
  */
43
- deleteList(docIds: ObjectId[]): Promise<DeleteResult>;
43
+ deleteList(docIds: UUID[]): Promise<DeleteResult>;
44
44
  /**
45
45
  * Gets all tasks for a given user. Only the tasks that are owned by the user
46
46
  * or shared with the user, while they have the user ID as a collaborator,
@@ -49,7 +49,7 @@ export default class DashboardTaskRepository extends DashboardBaseRepository<Das
49
49
  * @param userId The ID of the user to get tasks for.
50
50
  * @returns The list of tasks for the user.
51
51
  */
52
- getAllForUser(userId: ObjectId): Promise<DashboardTask[]>;
52
+ getAllForUser(userId: UUID): Promise<DashboardTask[]>;
53
53
  /**
54
54
  * Gets all the task IDs that need to be deleted if the provided list of
55
55
  * tasks is deleted.
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardTaskRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAChC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,uBAAuB,CAAC,aAAa,CAAC;IACzF,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA0B;IAE3D;;OAEG;IACH,OAAO;IASP;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IA4BrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,uBAAuB;IAOhD;;;;;;OAMG;IACY,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,YAAY,CAAC;IAM7D;;;;;OAKG;IACY,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAMpE;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyB/D;;;;;;OAMG;YACW,qBAAqB;CAYpC"}
1
+ {"version":3,"file":"DashboardTaskRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardTaskRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAwB,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrF,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAGnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAwB,SAAQ,uBAAuB,CAAC,aAAa,CAAC;IACzF,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAA0B;IAE3D;;OAEG;IACH,OAAO;IASP;;;;;OAKG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IA6BrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,uBAAuB;IAOhD;;;;;;OAMG;IACY,MAAM,CAAC,KAAK,EAAE,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAMzD;;;;;OAKG;IACY,UAAU,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,CAAC,YAAY,CAAC;IAMhE;;;;;;;OAOG;IACG,aAAa,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAyB3D;;;;;;OAMG;YACW,qBAAqB;CAYpC"}