@aneuhold/be-ts-db-lib 3.0.4 → 4.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 (96) hide show
  1. package/CHANGELOG.md +34 -0
  2. package/lib/repositories/BaseRepository.d.ts +3 -3
  3. package/lib/repositories/BaseRepository.d.ts.map +1 -1
  4. package/lib/repositories/BaseRepository.js +1 -3
  5. package/lib/repositories/BaseRepository.js.map +1 -1
  6. package/lib/repositories/BaseRepository.ts +3 -3
  7. package/lib/repositories/common/ApiKeyRepository.d.ts +1 -1
  8. package/lib/repositories/common/ApiKeyRepository.d.ts.map +1 -1
  9. package/lib/repositories/common/ApiKeyRepository.js +3 -3
  10. package/lib/repositories/common/ApiKeyRepository.js.map +1 -1
  11. package/lib/repositories/common/ApiKeyRepository.ts +4 -3
  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 +0 -1
  15. package/lib/repositories/common/UserRepository.js.map +1 -1
  16. package/lib/repositories/common/UserRepository.ts +1 -2
  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 +0 -1
  20. package/lib/repositories/dashboard/DashboardBaseRepository.js.map +1 -1
  21. package/lib/repositories/dashboard/DashboardBaseRepository.ts +1 -1
  22. package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts +1 -1
  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 +6 -5
  27. package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts +1 -1
  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 -4
  32. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +1 -1
  33. package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
  34. package/lib/repositories/dashboard/DashboardTaskRepository.js +6 -6
  35. package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
  36. package/lib/repositories/dashboard/DashboardTaskRepository.ts +7 -6
  37. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +1 -1
  38. package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
  39. package/lib/repositories/dashboard/DashboardUserConfigRepository.js +12 -12
  40. package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
  41. package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +14 -13
  42. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts.map +1 -1
  43. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js +3 -3
  44. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js.map +1 -1
  45. package/lib/services/DemoAccountsService/DashboardDemoAccountsService.ts +4 -3
  46. package/lib/services/RepoSubscriptionService.d.ts +1 -1
  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 +1 -1
  51. package/lib/tests/testsUtil.d.ts +1 -1
  52. package/lib/tests/testsUtil.d.ts.map +1 -1
  53. package/lib/tests/testsUtil.js +0 -1
  54. package/lib/tests/testsUtil.js.map +1 -1
  55. package/lib/tests/testsUtil.ts +1 -1
  56. package/lib/util/DocumentCleaner.d.ts +1 -1
  57. package/lib/util/DocumentCleaner.d.ts.map +1 -1
  58. package/lib/util/DocumentCleaner.js +0 -1
  59. package/lib/util/DocumentCleaner.js.map +1 -1
  60. package/lib/util/DocumentCleaner.ts +1 -1
  61. package/lib/validators/BaseValidator.d.ts +52 -20
  62. package/lib/validators/BaseValidator.d.ts.map +1 -1
  63. package/lib/validators/BaseValidator.js +84 -17
  64. package/lib/validators/BaseValidator.js.map +1 -1
  65. package/lib/validators/BaseValidator.ts +99 -23
  66. package/lib/validators/common/ApiKeyValidator.d.ts +4 -3
  67. package/lib/validators/common/ApiKeyValidator.d.ts.map +1 -1
  68. package/lib/validators/common/ApiKeyValidator.js +7 -5
  69. package/lib/validators/common/ApiKeyValidator.js.map +1 -1
  70. package/lib/validators/common/ApiKeyValidator.ts +9 -5
  71. package/lib/validators/common/UserValidator.d.ts +4 -4
  72. package/lib/validators/common/UserValidator.d.ts.map +1 -1
  73. package/lib/validators/common/UserValidator.js +8 -7
  74. package/lib/validators/common/UserValidator.js.map +1 -1
  75. package/lib/validators/common/UserValidator.ts +10 -7
  76. package/lib/validators/dashboard/NonogramKatanaItemValidator.d.ts +4 -3
  77. package/lib/validators/dashboard/NonogramKatanaItemValidator.d.ts.map +1 -1
  78. package/lib/validators/dashboard/NonogramKatanaItemValidator.js +7 -8
  79. package/lib/validators/dashboard/NonogramKatanaItemValidator.js.map +1 -1
  80. package/lib/validators/dashboard/NonogramKatanaItemValidator.ts +11 -8
  81. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.d.ts +4 -3
  82. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.d.ts.map +1 -1
  83. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js +7 -8
  84. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js.map +1 -1
  85. package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.ts +11 -8
  86. package/lib/validators/dashboard/TaskValidator.d.ts +4 -3
  87. package/lib/validators/dashboard/TaskValidator.d.ts.map +1 -1
  88. package/lib/validators/dashboard/TaskValidator.js +10 -6
  89. package/lib/validators/dashboard/TaskValidator.js.map +1 -1
  90. package/lib/validators/dashboard/TaskValidator.ts +14 -6
  91. package/lib/validators/dashboard/UserConfigValidator.d.ts +4 -3
  92. package/lib/validators/dashboard/UserConfigValidator.d.ts.map +1 -1
  93. package/lib/validators/dashboard/UserConfigValidator.js +9 -5
  94. package/lib/validators/dashboard/UserConfigValidator.js.map +1 -1
  95. package/lib/validators/dashboard/UserConfigValidator.ts +15 -5
  96. package/package.json +12 -11
@@ -1,4 +1,4 @@
1
- import { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
1
+ import type { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
2
2
  import type { UUID } from 'crypto';
3
3
  import type { BulkWriteResult, UpdateResult } from 'mongodb';
4
4
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardUserConfigRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AACrE,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAyB,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;IACrG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAgC;IAEjE;;OAEG;IACH,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAsCrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,6BAA6B;IAOtD;;;;;;OAMG;IACY,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAa1F;;;;;;;OAOG;IACY,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAYzF;;;;;;OAMG;IACY,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAU7C;;;;;;OAMG;IACY,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBhG;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAMnE;;;;;;;;;;;OAWG;YACW,2BAA2B;CAgD1C"}
1
+ {"version":3,"file":"DashboardUserConfigRepository.d.ts","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAE1E,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAyB,eAAe,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACpF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAG/E,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,uBAAuB,CAAC,mBAAmB,CAAC;IACrG,OAAO,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAgC;IAEjE;;OAEG;IACH,OAAO;IAIP;;;;OAIG;IACH,MAAM,CAAC,uBAAuB,IAAI,aAAa,CAAC,IAAI,CAAC;IAsCrD,SAAS,CAAC,gBAAgB,IAAI,IAAI;IAElC;;;;OAIG;WACW,OAAO,IAAI,6BAA6B;IAOtD;;;;;;OAMG;IACY,SAAS,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAa1F;;;;;;;OAOG;IACY,UAAU,CAAC,OAAO,EAAE,mBAAmB,EAAE,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAYzF;;;;;;OAMG;IACY,MAAM,CACnB,UAAU,EAAE,OAAO,CAAC,mBAAmB,CAAC,GACvC,OAAO,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IAU7C;;;;;;OAMG;IACY,UAAU,CAAC,WAAW,EAAE,OAAO,CAAC,mBAAmB,CAAC,EAAE,GAAG,OAAO,CAAC,eAAe,CAAC;IAkBhG;;;;;OAKG;IACG,UAAU,CAAC,MAAM,EAAE,IAAI,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAMnE;;;;;;;;;;;OAWG;YACW,2BAA2B;CAgD1C"}
@@ -1,4 +1,4 @@
1
- import { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
1
+ import { DashboardUserConfig_docType, DashboardUserConfigSchema } from '@aneuhold/core-ts-db-lib';
2
2
  import CleanDocument from '../../util/DocumentCleaner.js';
3
3
  import DashboardUserConfigValidator from '../../validators/dashboard/UserConfigValidator.js';
4
4
  import DashboardBaseRepository from './DashboardBaseRepository.js';
@@ -11,7 +11,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
11
11
  * Private constructor to enforce singleton pattern.
12
12
  */
13
13
  constructor() {
14
- super(DashboardUserConfig.docType, new DashboardUserConfigValidator(), CleanDocument.userId);
14
+ super(DashboardUserConfig_docType, new DashboardUserConfigValidator(), CleanDocument.userId);
15
15
  }
16
16
  /**
17
17
  * Gets the listeners for the user repository.
@@ -23,27 +23,27 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
23
23
  return {
24
24
  deleteOne: async (userId) => {
25
25
  const collection = await userConfigRepo.getCollection();
26
- await collection.deleteOne({ userId, docType: DashboardUserConfig.docType });
27
- await collection.updateMany({ collaborators: userId, docType: DashboardUserConfig.docType }, { $pull: { collaborators: userId } });
26
+ await collection.deleteOne({ userId, docType: DashboardUserConfig_docType });
27
+ await collection.updateMany({ collaborators: userId, docType: DashboardUserConfig_docType }, { $pull: { collaborators: userId } });
28
28
  },
29
29
  deleteList: async (userIds) => {
30
30
  const collection = await userConfigRepo.getCollection();
31
31
  await collection.deleteMany({
32
32
  userId: { $in: userIds },
33
- docType: DashboardUserConfig.docType
33
+ docType: DashboardUserConfig_docType
34
34
  });
35
- await collection.updateMany({ collaborators: { $in: userIds }, docType: DashboardUserConfig.docType }, {
35
+ await collection.updateMany({ collaborators: { $in: userIds }, docType: DashboardUserConfig_docType }, {
36
36
  $pull: { collaborators: { $in: userIds } }
37
37
  });
38
38
  },
39
39
  insertNew: async (user) => {
40
40
  if (user.projectAccess.dashboard) {
41
- await userConfigRepo.insertNew(new DashboardUserConfig(user._id));
41
+ await userConfigRepo.insertNew(DashboardUserConfigSchema.parse({ userId: user._id }));
42
42
  }
43
43
  },
44
44
  insertMany: async (users) => {
45
45
  const usersThatNeedConfig = users.filter((user) => user.projectAccess.dashboard);
46
- await userConfigRepo.insertMany(usersThatNeedConfig.map((user) => new DashboardUserConfig(user._id)));
46
+ await userConfigRepo.insertMany(usersThatNeedConfig.map((user) => DashboardUserConfigSchema.parse({ userId: user._id })));
47
47
  }
48
48
  };
49
49
  }
@@ -71,7 +71,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
71
71
  if (newDoc.collaborators.length > 0) {
72
72
  await this.updateCollaboratorsIfNeeded([
73
73
  {
74
- originalDoc: new DashboardUserConfig(newDoc.userId),
74
+ originalDoc: DashboardUserConfigSchema.parse({ userId: newDoc.userId }),
75
75
  updatedDoc: newDoc
76
76
  }
77
77
  ]);
@@ -90,7 +90,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
90
90
  const result = await super.insertMany(newDocs);
91
91
  // Simulate having no collaborators originally.
92
92
  await this.updateCollaboratorsIfNeeded(newDocs.map((doc) => ({
93
- originalDoc: new DashboardUserConfig(doc.userId),
93
+ originalDoc: DashboardUserConfigSchema.parse({ userId: doc.userId }),
94
94
  updatedDoc: doc
95
95
  })));
96
96
  return result;
@@ -170,7 +170,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
170
170
  if (!updatedCollaborators.includes(collaboratorId)) {
171
171
  bulkOps.push({
172
172
  updateOne: {
173
- filter: { userId: collaboratorId, docType: DashboardUserConfig.docType },
173
+ filter: { userId: collaboratorId, docType: DashboardUserConfig_docType },
174
174
  update: { $pull: { collaborators: docSet.originalDoc.userId } }
175
175
  }
176
176
  });
@@ -182,7 +182,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
182
182
  if (!originalCollaborators.includes(collaboratorId)) {
183
183
  bulkOps.push({
184
184
  updateOne: {
185
- filter: { userId: collaboratorId, docType: DashboardUserConfig.docType },
185
+ filter: { userId: collaboratorId, docType: DashboardUserConfig_docType },
186
186
  update: {
187
187
  $addToSet: { collaborators: docSet.originalDoc.userId }
188
188
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardUserConfigRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAIrE,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAC1D,OAAO,4BAA4B,MAAM,mDAAmD,CAAC;AAC7F,OAAO,uBAAuB,MAAM,8BAA8B,CAAC;AAEnE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,6BAA8B,SAAQ,uBAA4C;IAC7F,MAAM,CAAC,iBAAiB,CAAiC;IAEjE;;OAEG;IACH;QACE,KAAK,CAAC,mBAAmB,CAAC,OAAO,EAAE,IAAI,4BAA4B,EAAE,EAAE,aAAa,CAAC,MAAM,CAAC,CAAC;IAC/F,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,uBAAuB;QAC5B,MAAM,cAAc,GAAG,6BAA6B,CAAC,OAAO,EAAE,CAAC;QAC/D,OAAO;YACL,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;gBAC1B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;gBACxD,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,CAAC,CAAC;gBAC7E,MAAM,UAAU,CAAC,UAAU,CACzB,EAAE,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,EAC/D,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,CACrC,CAAC;YACJ,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE;gBAC5B,MAAM,UAAU,GAAG,MAAM,cAAc,CAAC,aAAa,EAAE,CAAC;gBACxD,MAAM,UAAU,CAAC,UAAU,CAAC;oBAC1B,MAAM,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE;oBACxB,OAAO,EAAE,mBAAmB,CAAC,OAAO;iBACrC,CAAC,CAAC;gBACH,MAAM,UAAU,CAAC,UAAU,CACzB,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE,EACzE;oBACE,KAAK,EAAE,EAAE,aAAa,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;iBAC3C,CACF,CAAC;YACJ,CAAC;YACD,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;gBACxB,IAAI,IAAI,CAAC,aAAa,CAAC,SAAS,EAAE,CAAC;oBACjC,MAAM,cAAc,CAAC,SAAS,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;gBACpE,CAAC;YACH,CAAC;YACD,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1B,MAAM,mBAAmB,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACjF,MAAM,cAAc,CAAC,UAAU,CAC7B,mBAAmB,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CACrE,CAAC;YACJ,CAAC;SACF,CAAC;IACJ,CAAC;IAES,gBAAgB,KAAU,CAAC;IAErC;;;;OAIG;IACI,MAAM,CAAC,OAAO;QACnB,IAAI,CAAC,6BAA6B,CAAC,iBAAiB,EAAE,CAAC;YACrD,6BAA6B,CAAC,iBAAiB,GAAG,IAAI,6BAA6B,EAAE,CAAC;QACxF,CAAC;QACD,OAAO,6BAA6B,CAAC,iBAAiB,CAAC;IACzD,CAAC;IAED;;;;;;OAMG;IACM,KAAK,CAAC,SAAS,CAAC,MAA2B;QAClD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;QAC7C,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpC,MAAM,IAAI,CAAC,2BAA2B,CAAC;gBACrC;oBACE,WAAW,EAAE,IAAI,mBAAmB,CAAC,MAAM,CAAC,MAAM,CAAC;oBACnD,UAAU,EAAE,MAAM;iBACnB;aACF,CAAC,CAAC;QACL,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;OAOG;IACM,KAAK,CAAC,UAAU,CAAC,OAA8B;QACtD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAC/C,+CAA+C;QAC/C,MAAM,IAAI,CAAC,2BAA2B,CACpC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACpB,WAAW,EAAE,IAAI,mBAAmB,CAAC,GAAG,CAAC,MAAM,CAAC;YAChD,UAAU,EAAE,GAAG;SAChB,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACM,KAAK,CAAC,MAAM,CACnB,UAAwC;QAExC,mCAAmC;QACnC,MAAM,WAAW,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;QAC7D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;QAC9C,IAAI,WAAW,EAAE,CAAC;YAChB,MAAM,IAAI,CAAC,2BAA2B,CAAC,CAAC,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;OAMG;IACM,KAAK,CAAC,UAAU,CAAC,WAA2C;QACnE,MAAM,MAAM,GAAW,EAAE,CAAC;QAC1B,WAAW,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,IAAI,GAAG,CAAC,GAAG,EAAE,CAAC;gBACZ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACvB,CAAC;QACH,CAAC,CAAC,CAAC;QACH,MAAM,YAAY,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QACnD,MAAM,IAAI,CAAC,2BAA2B,CACpC,YAAY,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC;YACxC,WAAW;YACX,UAAU,EAAE,WAAW,CAAC,KAAK,CAAwB;SACtD,CAAC,CAAC,CACJ,CAAC;QACF,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;OAKG;IACH,KAAK,CAAC,UAAU,CAAC,MAAY;QAC3B,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/E,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;OAWG;IACK,KAAK,CAAC,2BAA2B,CACvC,OAGE;QAEF,MAAM,OAAO,GAAiD,EAAE,CAAC;QACjE,4BAA4B;QAC5B,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;YACzB,MAAM,qBAAqB,GAAG,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC;YAC/D,MAAM,oBAAoB,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC;YAC7D,IACE,oBAAoB;gBACpB,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,EAAE,oBAAoB,CAAC,EACrE,CAAC;gBACD,uEAAuE;gBACvE,gDAAgD;gBAChD,qBAAqB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC/C,IAAI,CAAC,oBAAoB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wBACnD,OAAO,CAAC,IAAI,CAAC;4BACX,SAAS,EAAE;gCACT,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE;gCACxE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE;6BAChE;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;gBACH,uEAAuE;gBACvE,2CAA2C;gBAC3C,oBAAoB,CAAC,OAAO,CAAC,CAAC,cAAc,EAAE,EAAE;oBAC9C,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,cAAc,CAAC,EAAE,CAAC;wBACpD,OAAO,CAAC,IAAI,CAAC;4BACX,SAAS,EAAE;gCACT,MAAM,EAAE,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,mBAAmB,CAAC,OAAO,EAAE;gCACxE,MAAM,EAAE;oCACN,SAAS,EAAE,EAAE,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE;iCACxD;6BACF;yBACF,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC,CAAC,CAAC;YACL,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,aAAa,EAAE,CAAC;YAC9C,MAAM,UAAU,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;CACF"}
1
+ {"version":3,"file":"DashboardUserConfigRepository.js","sourceRoot":"","sources":["../../../src/repositories/dashboard/DashboardUserConfigRepository.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
1
+ import type { DashboardUserConfig, User } from '@aneuhold/core-ts-db-lib';
2
+ import { DashboardUserConfig_docType, DashboardUserConfigSchema } from '@aneuhold/core-ts-db-lib';
2
3
  import type { UUID } from 'crypto';
3
4
  import type { AnyBulkWriteOperation, BulkWriteResult, UpdateResult } from 'mongodb';
4
5
  import type { RepoListeners } from '../../services/RepoSubscriptionService.js';
@@ -16,7 +17,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
16
17
  * Private constructor to enforce singleton pattern.
17
18
  */
18
19
  private constructor() {
19
- super(DashboardUserConfig.docType, new DashboardUserConfigValidator(), CleanDocument.userId);
20
+ super(DashboardUserConfig_docType, new DashboardUserConfigValidator(), CleanDocument.userId);
20
21
  }
21
22
 
22
23
  /**
@@ -29,9 +30,9 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
29
30
  return {
30
31
  deleteOne: async (userId) => {
31
32
  const collection = await userConfigRepo.getCollection();
32
- await collection.deleteOne({ userId, docType: DashboardUserConfig.docType });
33
+ await collection.deleteOne({ userId, docType: DashboardUserConfig_docType });
33
34
  await collection.updateMany(
34
- { collaborators: userId, docType: DashboardUserConfig.docType },
35
+ { collaborators: userId, docType: DashboardUserConfig_docType },
35
36
  { $pull: { collaborators: userId } }
36
37
  );
37
38
  },
@@ -39,10 +40,10 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
39
40
  const collection = await userConfigRepo.getCollection();
40
41
  await collection.deleteMany({
41
42
  userId: { $in: userIds },
42
- docType: DashboardUserConfig.docType
43
+ docType: DashboardUserConfig_docType
43
44
  });
44
45
  await collection.updateMany(
45
- { collaborators: { $in: userIds }, docType: DashboardUserConfig.docType },
46
+ { collaborators: { $in: userIds }, docType: DashboardUserConfig_docType },
46
47
  {
47
48
  $pull: { collaborators: { $in: userIds } }
48
49
  }
@@ -50,13 +51,13 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
50
51
  },
51
52
  insertNew: async (user) => {
52
53
  if (user.projectAccess.dashboard) {
53
- await userConfigRepo.insertNew(new DashboardUserConfig(user._id));
54
+ await userConfigRepo.insertNew(DashboardUserConfigSchema.parse({ userId: user._id }));
54
55
  }
55
56
  },
56
57
  insertMany: async (users) => {
57
58
  const usersThatNeedConfig = users.filter((user) => user.projectAccess.dashboard);
58
59
  await userConfigRepo.insertMany(
59
- usersThatNeedConfig.map((user) => new DashboardUserConfig(user._id))
60
+ usersThatNeedConfig.map((user) => DashboardUserConfigSchema.parse({ userId: user._id }))
60
61
  );
61
62
  }
62
63
  };
@@ -88,7 +89,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
88
89
  if (newDoc.collaborators.length > 0) {
89
90
  await this.updateCollaboratorsIfNeeded([
90
91
  {
91
- originalDoc: new DashboardUserConfig(newDoc.userId),
92
+ originalDoc: DashboardUserConfigSchema.parse({ userId: newDoc.userId }),
92
93
  updatedDoc: newDoc
93
94
  }
94
95
  ]);
@@ -109,7 +110,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
109
110
  // Simulate having no collaborators originally.
110
111
  await this.updateCollaboratorsIfNeeded(
111
112
  newDocs.map((doc) => ({
112
- originalDoc: new DashboardUserConfig(doc.userId),
113
+ originalDoc: DashboardUserConfigSchema.parse({ userId: doc.userId }),
113
114
  updatedDoc: doc
114
115
  }))
115
116
  );
@@ -154,7 +155,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
154
155
  await this.updateCollaboratorsIfNeeded(
155
156
  originalDocs.map((originalDoc, index) => ({
156
157
  originalDoc,
157
- updatedDoc: updatedDocs[index] as DashboardUserConfig
158
+ updatedDoc: updatedDocs[index]
158
159
  }))
159
160
  );
160
161
  return result;
@@ -205,7 +206,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
205
206
  if (!updatedCollaborators.includes(collaboratorId)) {
206
207
  bulkOps.push({
207
208
  updateOne: {
208
- filter: { userId: collaboratorId, docType: DashboardUserConfig.docType },
209
+ filter: { userId: collaboratorId, docType: DashboardUserConfig_docType },
209
210
  update: { $pull: { collaborators: docSet.originalDoc.userId } }
210
211
  }
211
212
  });
@@ -217,7 +218,7 @@ export default class DashboardUserConfigRepository extends DashboardBaseReposito
217
218
  if (!originalCollaborators.includes(collaboratorId)) {
218
219
  bulkOps.push({
219
220
  updateOne: {
220
- filter: { userId: collaboratorId, docType: DashboardUserConfig.docType },
221
+ filter: { userId: collaboratorId, docType: DashboardUserConfig_docType },
221
222
  update: {
222
223
  $addToSet: { collaborators: docSet.originalDoc.userId }
223
224
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardDemoAccountsService.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccountsService.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA4B;IAC/C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAUlC;IAEF;;;;;;;;;;;OAWG;WACU,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlF;;;;;OAKG;mBACkB,iCAAiC;IA4BtD;;;;;OAKG;mBACkB,iBAAiB;IAYtC;;;;;;;;;;;;;;;;;OAiBG;mBACkB,UAAU;IAgC/B;;;;;OAKG;mBACkB,kBAAkB;IAqCvC;;;;;OAKG;mBACkB,oBAAoB;CAwD1C"}
1
+ {"version":3,"file":"DashboardDemoAccountsService.d.ts","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccountsService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAInC;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,4BAA4B;IAC/C;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,YAAY,CAUlC;IAEF;;;;;;;;;;;OAWG;WACU,gBAAgB,CAAC,WAAW,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;IAYlF;;;;;OAKG;mBACkB,iCAAiC;IA4BtD;;;;;OAKG;mBACkB,iBAAiB;IAYtC;;;;;;;;;;;;;;;;;OAiBG;mBACkB,UAAU;IAgC/B;;;;;OAKG;mBACkB,kBAAkB;IAqCvC;;;;;OAKG;mBACkB,oBAAoB;CAwD1C"}
@@ -1,4 +1,4 @@
1
- import { DashboardTask, DashboardUserConfig } from '@aneuhold/core-ts-db-lib';
1
+ import { DashboardTaskSchema, DashboardUserConfigSchema } from '@aneuhold/core-ts-db-lib';
2
2
  import DashboardTaskRepository from '../../repositories/dashboard/DashboardTaskRepository.js';
3
3
  import DashboardUserConfigRepository from '../../repositories/dashboard/DashboardUserConfigRepository.js';
4
4
  /**
@@ -52,7 +52,7 @@ export default class DashboardDemoAccountsService {
52
52
  let cfg = await cfgRepo.getForUser(ownerId);
53
53
  let isNew = false;
54
54
  if (!cfg) {
55
- cfg = new DashboardUserConfig(ownerId);
55
+ cfg = DashboardUserConfigSchema.parse({ userId: ownerId });
56
56
  isNew = true;
57
57
  }
58
58
  // Ensure collaborator and reset flags
@@ -110,7 +110,7 @@ export default class DashboardDemoAccountsService {
110
110
  */
111
111
  static async createTask(ownerId, title, opts) {
112
112
  const taskRepo = DashboardTaskRepository.getRepo();
113
- const task = new DashboardTask(ownerId);
113
+ const task = DashboardTaskSchema.parse({ userId: ownerId });
114
114
  task.title = title;
115
115
  if (opts?.description)
116
116
  task.description = opts.description;
@@ -1 +1 @@
1
- {"version":3,"file":"DashboardDemoAccountsService.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccountsService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DashboardDemoAccountsService.js","sourceRoot":"","sources":["../../../src/services/DemoAccountsService/DashboardDemoAccountsService.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
- import { DashboardTask, DashboardUserConfig } from '@aneuhold/core-ts-db-lib';
1
+ import type { DashboardTask } from '@aneuhold/core-ts-db-lib';
2
+ import { DashboardTaskSchema, DashboardUserConfigSchema } from '@aneuhold/core-ts-db-lib';
2
3
  import type { UUID } from 'crypto';
3
4
  import DashboardTaskRepository from '../../repositories/dashboard/DashboardTaskRepository.js';
4
5
  import DashboardUserConfigRepository from '../../repositories/dashboard/DashboardUserConfigRepository.js';
@@ -61,7 +62,7 @@ export default class DashboardDemoAccountsService {
61
62
  let cfg = await cfgRepo.getForUser(ownerId);
62
63
  let isNew = false;
63
64
  if (!cfg) {
64
- cfg = new DashboardUserConfig(ownerId);
65
+ cfg = DashboardUserConfigSchema.parse({ userId: ownerId });
65
66
  isNew = true;
66
67
  }
67
68
  // Ensure collaborator and reset flags
@@ -133,7 +134,7 @@ export default class DashboardDemoAccountsService {
133
134
  }
134
135
  ): Promise<DashboardTask> {
135
136
  const taskRepo = DashboardTaskRepository.getRepo();
136
- const task = new DashboardTask(ownerId);
137
+ const task = DashboardTaskSchema.parse({ userId: ownerId });
137
138
  task.title = title;
138
139
  if (opts?.description) task.description = opts.description;
139
140
  if (opts?.completed !== undefined) task.completed = opts.completed;
@@ -1,4 +1,4 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
2
  import type { UUID } from 'crypto';
3
3
  export type RepoSubscribers<TDocType extends BaseDocument> = {
4
4
  insertNew: InsertNewSubscriber<TDocType>[];
@@ -1 +1 @@
1
- {"version":3,"file":"RepoSubscriptionService.d.ts","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7C,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7C,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,YAAY,IAAI;IACzD,SAAS,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElG,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAChE,IAAI,EAAE,QAAQ,EAAE,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAC/D,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAChE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,SAAS,YAAY,KAAK,eAAe,CAAC,QAAQ,CAAC;CAUzF"}
1
+ {"version":3,"file":"RepoSubscriptionService.d.ts","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,MAAM,MAAM,eAAe,CAAC,QAAQ,SAAS,YAAY,IAAI;IAC3D,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7C,SAAS,EAAE,mBAAmB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC3C,UAAU,EAAE,oBAAoB,CAAC,QAAQ,CAAC,EAAE,CAAC;IAC7C,SAAS,EAAE,mBAAmB,EAAE,CAAC;IACjC,UAAU,EAAE,oBAAoB,EAAE,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,aAAa,CAAC,QAAQ,SAAS,YAAY,IAAI;IACzD,SAAS,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC,QAAQ,CAAC,CAAC;IAC1C,UAAU,CAAC,EAAE,oBAAoB,CAAC,QAAQ,CAAC,CAAC;IAC5C,SAAS,CAAC,EAAE,mBAAmB,CAAC;IAChC,UAAU,CAAC,EAAE,oBAAoB,CAAC;CACnC,CAAC;AAEF,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAAC,GAAG,EAAE,QAAQ,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAElG,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAChE,IAAI,EAAE,QAAQ,EAAE,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,mBAAmB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAC/D,GAAG,EAAE,OAAO,CAAC,QAAQ,CAAC,KACnB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,oBAAoB,CAAC,QAAQ,SAAS,YAAY,IAAI,CAChE,IAAI,EAAE,OAAO,CAAC,QAAQ,CAAC,EAAE,KACtB,OAAO,CAAC,IAAI,CAAC,CAAC;AAEnB,MAAM,MAAM,mBAAmB,GAAG,CAAC,KAAK,EAAE,IAAI,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjE,MAAM,MAAM,oBAAoB,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAErE;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;OAGG;IACH,MAAM,CAAC,qBAAqB,CAAC,QAAQ,SAAS,YAAY,KAAK,eAAe,CAAC,QAAQ,CAAC;CAUzF"}
@@ -1,4 +1,3 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
1
  /**
3
2
  * A subscription service that allows repositories to subscribe to events
4
3
  * that happen in other repositories.
@@ -1 +1 @@
1
- {"version":3,"file":"RepoSubscriptionService.js","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAuCxD;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;OAGG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO;YACL,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"RepoSubscriptionService.js","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"AAuCA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,uBAAuB;IAC1C;;;OAGG;IACH,MAAM,CAAC,qBAAqB;QAC1B,OAAO;YACL,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;YACd,SAAS,EAAE,EAAE;YACb,UAAU,EAAE,EAAE;SACf,CAAC;IACJ,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
2
  import type { UUID } from 'crypto';
3
3
 
4
4
  export type RepoSubscribers<TDocType extends BaseDocument> = {
@@ -1,4 +1,4 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
2
  import BaseRepository from '../repositories/BaseRepository.js';
3
3
  /**
4
4
  * Asserts that the provided asynchronous function throws an error.
@@ -1 +1 @@
1
- {"version":3,"file":"testsUtil.d.ts","sourceRoot":"","sources":["../../src/tests/testsUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAGxD,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAG/D;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAQ5D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,QAAQ,SAAS,YAAY,EAC5D,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9B,GAAG,EAAE,QAAQ,iBAMd;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAC7D,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9B,IAAI,EAAE,QAAQ,EAAE,iBAOjB"}
1
+ {"version":3,"file":"testsUtil.d.ts","sourceRoot":"","sources":["../../src/tests/testsUtil.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAG7D,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAG/D;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,iBAQ5D;AAED;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAGzD;AAED;;;;;;GAMG;AACH,wBAAsB,UAAU,CAAC,QAAQ,SAAS,YAAY,EAC5D,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9B,GAAG,EAAE,QAAQ,iBAMd;AAED;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,QAAQ,SAAS,YAAY,EAC7D,IAAI,EAAE,cAAc,CAAC,QAAQ,CAAC,EAC9B,IAAI,EAAE,QAAQ,EAAE,iBAOjB"}
@@ -1,4 +1,3 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
1
  import crypto from 'crypto';
3
2
  import { expect } from 'vitest';
4
3
  import BaseRepository from '../repositories/BaseRepository.js';
@@ -1 +1 @@
1
- {"version":3,"file":"testsUtil.js","sourceRoot":"","sources":["../../src/tests/testsUtil.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAyB;IAC3D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,qBAAqB,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACxE,OAAO,GAAG,qBAAqB,IAAI,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAA8B,EAC9B,GAAa;IAEb,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAuB,CAAC,CAAC;IACzE,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA8B,EAC9B,IAAgB;IAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
1
+ {"version":3,"file":"testsUtil.js","sourceRoot":"","sources":["../../src/tests/testsUtil.ts"],"names":[],"mappings":"AACA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,cAAc,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,IAAyB;IAC3D,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,IAAI,CAAC;QACH,MAAM,IAAI,EAAE,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,UAAU,GAAG,IAAI,CAAC;IACpB,CAAC;IACD,MAAM,CAAC,UAAU,CAAC,CAAC,UAAU,EAAE,CAAC;AAClC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,eAAe,CAAC,QAAiB;IAC/C,IAAI,CAAC,QAAQ;QAAE,OAAO,GAAG,qBAAqB,IAAI,MAAM,CAAC,UAAU,EAAE,EAAE,CAAC;IACxE,OAAO,GAAG,qBAAqB,IAAI,QAAQ,EAAE,CAAC;AAChD,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,IAA8B,EAC9B,GAAa;IAEb,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAChD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,GAAG,CAAC,GAAG,EAAuB,CAAC,CAAC;IACzE,MAAM,CAAC,UAAU,CAAC,CAAC,QAAQ,EAAE,CAAC;AAChC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,IAA8B,EAC9B,IAAgB;IAEhB,MAAM,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC/C,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;IACxD,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC,UAAU,EAAE,CAAC;IAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IACnD,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC"}
@@ -1,4 +1,4 @@
1
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument } from '@aneuhold/core-ts-db-lib';
2
2
  import crypto from 'crypto';
3
3
  import { expect } from 'vitest';
4
4
  import BaseRepository from '../repositories/BaseRepository.js';
@@ -1,4 +1,4 @@
1
- import { BaseDocument, BaseDocumentWithType, RequiredUserId } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument, BaseDocumentWithType, RequiredUserId } from '@aneuhold/core-ts-db-lib';
2
2
  /**
3
3
  * A class which contains some standard methods for cleaning update documents
4
4
  * before they are sent to the database.
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentCleaner.d.ts","sourceRoot":"","sources":["../../src/util/DocumentCleaner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,EAAE,CAAC,QAAQ,SAAS,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMrE,MAAM,CAAC,MAAM,CAAC,QAAQ,SAAS,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IAM3E,MAAM,CAAC,OAAO,CAAC,QAAQ,SAAS,oBAAoB,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;CAKnF"}
1
+ {"version":3,"file":"DocumentCleaner.d.ts","sourceRoot":"","sources":["../../src/util/DocumentCleaner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAEnG;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,EAAE,CAAC,QAAQ,SAAS,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IAMrE,MAAM,CAAC,MAAM,CAAC,QAAQ,SAAS,cAAc,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IAM3E,MAAM,CAAC,OAAO,CAAC,QAAQ,SAAS,oBAAoB,EAAE,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;CAKnF"}
@@ -1,4 +1,3 @@
1
- import { BaseDocument, BaseDocumentWithType, RequiredUserId } from '@aneuhold/core-ts-db-lib';
2
1
  /**
3
2
  * A class which contains some standard methods for cleaning update documents
4
3
  * before they are sent to the database.
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentCleaner.js","sourceRoot":"","sources":["../../src/util/DocumentCleaner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,oBAAoB,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE9F;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,EAAE,CAAgC,SAA4B;QACnE,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,MAAM,CAAkC,SAA4B;QACzE,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,OAAO,CAAwC,SAA4B;QAChF,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
1
+ {"version":3,"file":"DocumentCleaner.js","sourceRoot":"","sources":["../../src/util/DocumentCleaner.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAChC,MAAM,CAAC,EAAE,CAAgC,SAA4B;QACnE,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,GAAG,CAAC;QACnB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,MAAM,CAAkC,SAA4B;QACzE,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,MAAM,CAAC;QACtB,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,MAAM,CAAC,OAAO,CAAwC,SAA4B;QAChF,MAAM,OAAO,GAAG,EAAE,GAAG,SAAS,EAAE,CAAC;QACjC,OAAO,OAAO,CAAC,OAAO,CAAC;QACvB,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -1,4 +1,4 @@
1
- import { BaseDocument, BaseDocumentWithType, RequiredUserId } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument, BaseDocumentWithType, RequiredUserId } from '@aneuhold/core-ts-db-lib';
2
2
 
3
3
  /**
4
4
  * A class which contains some standard methods for cleaning update documents
@@ -1,23 +1,55 @@
1
- import type { DocumentValidator } from '@aneuhold/core-ts-db-lib';
2
- import { BaseDocument } from '@aneuhold/core-ts-db-lib';
1
+ import type { BaseDocument } from '@aneuhold/core-ts-db-lib';
3
2
  import type { UUID } from 'crypto';
3
+ import type { ZodType } from 'zod';
4
4
  export declare enum ObjectSchemaState {
5
5
  Valid = 0,
6
6
  InvalidAndCorrectable = 1,
7
7
  InvalidAndUncorrectable = 2
8
8
  }
9
+ /**
10
+ * Base validator class for document validation.
11
+ * Handles both Zod schema validation and business logic validation.
12
+ */
9
13
  export default abstract class IValidator<TBaseType extends BaseDocument> {
14
+ protected schema: ZodType<TBaseType>;
15
+ protected partialSchema: ZodType<Partial<TBaseType>>;
16
+ /**
17
+ * Constructs a new validator.
18
+ *
19
+ * @param schema - The Zod schema for the document type.
20
+ * @param partialSchema - The Zod schema for partial document updates.
21
+ */
22
+ constructor(schema: ZodType<TBaseType>, partialSchema: ZodType<Partial<TBaseType>>);
10
23
  /**
11
24
  * Validates that an object that is supposed to be inserted in to the database
12
- * is correct.
25
+ * is correct. This includes both schema validation and business logic validation.
26
+ *
27
+ * @param object - The object to validate.
13
28
  */
14
- abstract validateNewObject(object: TBaseType): Promise<void>;
29
+ validateNewObject(object: TBaseType): Promise<void>;
15
30
  /**
16
- * Validates an object that is suppposed to be updated in the database.
31
+ * Business logic validation for new objects.
32
+ * Override this method to add custom validation logic.
33
+ *
34
+ * @param object - The object to validate.
35
+ */
36
+ protected abstract validateNewObjectBusinessLogic(object: TBaseType): Promise<void>;
37
+ /**
38
+ * Validates an object that is supposed to be updated in the database.
39
+ * This includes both schema validation and business logic validation.
17
40
  *
18
41
  * At this point, the fields that do not change should already be stripped.
42
+ *
43
+ * @param partialObject - The partial object to validate.
44
+ */
45
+ validateUpdateObject(partialObject: Partial<TBaseType>): Promise<void>;
46
+ /**
47
+ * Business logic validation for update objects.
48
+ * Override this method to add custom validation logic.
49
+ *
50
+ * @param partialObject - The partial object to validate.
19
51
  */
20
- abstract validateUpdateObject(partialObject: Partial<TBaseType>): Promise<void>;
52
+ protected abstract validateUpdateObjectBusinessLogic(partialObject: Partial<TBaseType>): Promise<void>;
21
53
  /**
22
54
  * Validates the entire DB for the repository, and corrects where needed.
23
55
  *
@@ -34,32 +66,32 @@ export default abstract class IValidator<TBaseType extends BaseDocument> {
34
66
  /**
35
67
  * Runs the standard validation for a repository.
36
68
  *
37
- * @param input
38
- * @param shouldDelete A function that returns true if the document should be
39
- * deleted. This should also log the specific error because it will not be
40
- * logged elsewhere.
41
- * @param input.dryRun
42
- * @param input.docName
43
- * @param input.allDocs
44
- * @param input.shouldDelete
45
- * @param input.documentValidator
46
- * @param input.deletionFunction
47
- * @param input.updateFunction
69
+ * @param input - The validation configuration.
70
+ * @param input.dryRun - Whether to run in dry-run mode.
71
+ * @param input.docName - The name of the document type.
72
+ * @param input.allDocs - All documents to validate.
73
+ * @param input.shouldDelete - A function that returns true if the document should be deleted. This should also log the specific error because it will not be logged elsewhere.
74
+ * @param input.additionalValidation - Optional additional validation logic beyond schema validation.
75
+ * @param input.deletionFunction - Function to delete documents.
76
+ * @param input.updateFunction - Function to update documents.
48
77
  */
49
78
  protected runStandardValidationForRepository(input: {
50
79
  dryRun: boolean;
51
80
  docName: string;
52
81
  allDocs: Array<TBaseType>;
53
82
  shouldDelete: (doc: TBaseType) => boolean;
54
- documentValidator: DocumentValidator<TBaseType>;
83
+ additionalValidation?: (doc: TBaseType) => {
84
+ updatedDoc: TBaseType;
85
+ errors: string[];
86
+ };
55
87
  deletionFunction: (docIdsToDelete: UUID[]) => Promise<void>;
56
88
  updateFunction: (docsToUpdate: TBaseType[]) => Promise<void>;
57
89
  }): Promise<void>;
58
90
  /**
59
91
  * Checks that all elements that exist in array1, exist in array2.
60
92
  *
61
- * @param array1
62
- * @param array2
93
+ * @param array1 - The first array.
94
+ * @param array2 - The second array.
63
95
  */
64
96
  protected checkAllElementsExistInArr(array1: Array<unknown>, array2: Array<unknown>): boolean;
65
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BaseValidator.d.ts","sourceRoot":"","sources":["../../src/validators/BaseValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAExD,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAEnC,oBAAY,iBAAiB;IAC3B,KAAK,IAAA;IACL,qBAAqB,IAAA;IACrB,uBAAuB,IAAA;CACxB;AAED,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,UAAU,CAAC,SAAS,SAAS,YAAY;IACrE;;;OAGG;IACH,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAE5D;;;;OAIG;IACH,QAAQ,CAAC,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/E;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;;;;;;;;;;;;OAcG;cACa,kCAAkC,CAAC,KAAK,EAAE;QACxD,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC;QAC1C,iBAAiB,EAAE,iBAAiB,CAAC,SAAS,CAAC,CAAC;QAChD,gBAAgB,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9D;IAgED;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;CAG9F"}
1
+ {"version":3,"file":"BaseValidator.d.ts","sourceRoot":"","sources":["../../src/validators/BaseValidator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AACnC,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AAEnC,oBAAY,iBAAiB;IAC3B,KAAK,IAAA;IACL,qBAAqB,IAAA;IACrB,uBAAuB,IAAA;CACxB;AAED;;;GAGG;AACH,MAAM,CAAC,OAAO,CAAC,QAAQ,OAAO,UAAU,CAAC,SAAS,SAAS,YAAY;IAQnE,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC;IACpC,SAAS,CAAC,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IARtD;;;;;OAKG;gBAES,MAAM,EAAE,OAAO,CAAC,SAAS,CAAC,EAC1B,aAAa,EAAE,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IAGtD;;;;;OAKG;IACG,iBAAiB,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAazD;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,8BAA8B,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAEnF;;;;;;;OAOG;IACG,oBAAoB,CAAC,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAa5E;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,CAAC,iCAAiC,CAClD,aAAa,EAAE,OAAO,CAAC,SAAS,CAAC,GAChC,OAAO,CAAC,IAAI,CAAC;IAEhB;;;;;;;;;;;OAWG;IACH,QAAQ,CAAC,sBAAsB,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAE/D;;;;;;;;;;;OAWG;cACa,kCAAkC,CAAC,KAAK,EAAE;QACxD,MAAM,EAAE,OAAO,CAAC;QAChB,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAC1B,YAAY,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,OAAO,CAAC;QAC1C,oBAAoB,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK;YAAE,UAAU,EAAE,SAAS,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;QACvF,gBAAgB,EAAE,CAAC,cAAc,EAAE,IAAI,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;QAC5D,cAAc,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;KAC9D;IAmFD;;;;;OAKG;IACH,SAAS,CAAC,0BAA0B,CAAC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,GAAG,OAAO;CAG9F"}