@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.
- package/CHANGELOG.md +34 -0
- package/lib/repositories/BaseRepository.d.ts +3 -3
- package/lib/repositories/BaseRepository.d.ts.map +1 -1
- package/lib/repositories/BaseRepository.js +1 -3
- package/lib/repositories/BaseRepository.js.map +1 -1
- package/lib/repositories/BaseRepository.ts +3 -3
- package/lib/repositories/common/ApiKeyRepository.d.ts +1 -1
- package/lib/repositories/common/ApiKeyRepository.d.ts.map +1 -1
- package/lib/repositories/common/ApiKeyRepository.js +3 -3
- package/lib/repositories/common/ApiKeyRepository.js.map +1 -1
- package/lib/repositories/common/ApiKeyRepository.ts +4 -3
- package/lib/repositories/common/UserRepository.d.ts +1 -2
- package/lib/repositories/common/UserRepository.d.ts.map +1 -1
- package/lib/repositories/common/UserRepository.js +0 -1
- package/lib/repositories/common/UserRepository.js.map +1 -1
- package/lib/repositories/common/UserRepository.ts +1 -2
- package/lib/repositories/dashboard/DashboardBaseRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.js +0 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardBaseRepository.ts +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js +4 -4
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaItemRepository.ts +6 -5
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js +4 -4
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardNonogramKatanaUpgradeRepository.ts +5 -4
- package/lib/repositories/dashboard/DashboardTaskRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardTaskRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardTaskRepository.js +6 -6
- package/lib/repositories/dashboard/DashboardTaskRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardTaskRepository.ts +7 -6
- package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts +1 -1
- package/lib/repositories/dashboard/DashboardUserConfigRepository.d.ts.map +1 -1
- package/lib/repositories/dashboard/DashboardUserConfigRepository.js +12 -12
- package/lib/repositories/dashboard/DashboardUserConfigRepository.js.map +1 -1
- package/lib/repositories/dashboard/DashboardUserConfigRepository.ts +14 -13
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.d.ts.map +1 -1
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js +3 -3
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.js.map +1 -1
- package/lib/services/DemoAccountsService/DashboardDemoAccountsService.ts +4 -3
- package/lib/services/RepoSubscriptionService.d.ts +1 -1
- package/lib/services/RepoSubscriptionService.d.ts.map +1 -1
- package/lib/services/RepoSubscriptionService.js +0 -1
- package/lib/services/RepoSubscriptionService.js.map +1 -1
- package/lib/services/RepoSubscriptionService.ts +1 -1
- package/lib/tests/testsUtil.d.ts +1 -1
- package/lib/tests/testsUtil.d.ts.map +1 -1
- package/lib/tests/testsUtil.js +0 -1
- package/lib/tests/testsUtil.js.map +1 -1
- package/lib/tests/testsUtil.ts +1 -1
- package/lib/util/DocumentCleaner.d.ts +1 -1
- package/lib/util/DocumentCleaner.d.ts.map +1 -1
- package/lib/util/DocumentCleaner.js +0 -1
- package/lib/util/DocumentCleaner.js.map +1 -1
- package/lib/util/DocumentCleaner.ts +1 -1
- package/lib/validators/BaseValidator.d.ts +52 -20
- package/lib/validators/BaseValidator.d.ts.map +1 -1
- package/lib/validators/BaseValidator.js +84 -17
- package/lib/validators/BaseValidator.js.map +1 -1
- package/lib/validators/BaseValidator.ts +99 -23
- package/lib/validators/common/ApiKeyValidator.d.ts +4 -3
- package/lib/validators/common/ApiKeyValidator.d.ts.map +1 -1
- package/lib/validators/common/ApiKeyValidator.js +7 -5
- package/lib/validators/common/ApiKeyValidator.js.map +1 -1
- package/lib/validators/common/ApiKeyValidator.ts +9 -5
- package/lib/validators/common/UserValidator.d.ts +4 -4
- package/lib/validators/common/UserValidator.d.ts.map +1 -1
- package/lib/validators/common/UserValidator.js +8 -7
- package/lib/validators/common/UserValidator.js.map +1 -1
- package/lib/validators/common/UserValidator.ts +10 -7
- package/lib/validators/dashboard/NonogramKatanaItemValidator.d.ts +4 -3
- package/lib/validators/dashboard/NonogramKatanaItemValidator.d.ts.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaItemValidator.js +7 -8
- package/lib/validators/dashboard/NonogramKatanaItemValidator.js.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaItemValidator.ts +11 -8
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.d.ts +4 -3
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.d.ts.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js +7 -8
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.js.map +1 -1
- package/lib/validators/dashboard/NonogramKatanaUpgradeValidator.ts +11 -8
- package/lib/validators/dashboard/TaskValidator.d.ts +4 -3
- package/lib/validators/dashboard/TaskValidator.d.ts.map +1 -1
- package/lib/validators/dashboard/TaskValidator.js +10 -6
- package/lib/validators/dashboard/TaskValidator.js.map +1 -1
- package/lib/validators/dashboard/TaskValidator.ts +14 -6
- package/lib/validators/dashboard/UserConfigValidator.d.ts +4 -3
- package/lib/validators/dashboard/UserConfigValidator.d.ts.map +1 -1
- package/lib/validators/dashboard/UserConfigValidator.js +9 -5
- package/lib/validators/dashboard/UserConfigValidator.js.map +1 -1
- package/lib/validators/dashboard/UserConfigValidator.ts +15 -5
- 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;
|
|
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 {
|
|
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(
|
|
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:
|
|
27
|
-
await collection.updateMany({ collaborators: userId, docType:
|
|
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:
|
|
33
|
+
docType: DashboardUserConfig_docType
|
|
34
34
|
});
|
|
35
|
-
await collection.updateMany({ collaborators: { $in: userIds }, 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(
|
|
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) =>
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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":"
|
|
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(
|
|
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:
|
|
33
|
+
await collection.deleteOne({ userId, docType: DashboardUserConfig_docType });
|
|
33
34
|
await collection.updateMany(
|
|
34
|
-
{ collaborators: userId, 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:
|
|
43
|
+
docType: DashboardUserConfig_docType
|
|
43
44
|
});
|
|
44
45
|
await collection.updateMany(
|
|
45
|
-
{ collaborators: { $in: userIds }, 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(
|
|
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) =>
|
|
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:
|
|
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:
|
|
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]
|
|
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:
|
|
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:
|
|
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":"
|
|
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 {
|
|
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 =
|
|
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 =
|
|
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":"
|
|
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
|
|
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 =
|
|
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 =
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoSubscriptionService.d.ts","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RepoSubscriptionService.js","sourceRoot":"","sources":["../../src/services/RepoSubscriptionService.ts"],"names":[],"mappings":"
|
|
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"}
|
package/lib/tests/testsUtil.d.ts
CHANGED
|
@@ -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;
|
|
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"}
|
package/lib/tests/testsUtil.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testsUtil.js","sourceRoot":"","sources":["../../src/tests/testsUtil.ts"],"names":[],"mappings":"
|
|
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"}
|
package/lib/tests/testsUtil.ts
CHANGED
|
@@ -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;
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DocumentCleaner.js","sourceRoot":"","sources":["../../src/util/DocumentCleaner.ts"],"names":[],"mappings":"
|
|
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 {
|
|
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
|
-
|
|
29
|
+
validateNewObject(object: TBaseType): Promise<void>;
|
|
15
30
|
/**
|
|
16
|
-
*
|
|
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
|
|
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
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
* @param input.
|
|
42
|
-
* @param input.
|
|
43
|
-
* @param input.
|
|
44
|
-
* @param input.
|
|
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
|
-
|
|
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,
|
|
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"}
|