@cv-tec/validations 0.4.3 → 0.4.4

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 (69) hide show
  1. package/dist/custom-decorators/class-transforms/map-transform.d.ts +28 -0
  2. package/dist/custom-decorators/class-transforms/map-transform.d.ts.map +1 -0
  3. package/dist/custom-decorators/class-transforms/map-transform.js +61 -0
  4. package/dist/custom-decorators/class-transforms/map-transform.js.map +1 -0
  5. package/dist/custom-decorators/class-validators/check-array-id.d.ts +9 -0
  6. package/dist/custom-decorators/class-validators/check-array-id.d.ts.map +1 -0
  7. package/dist/custom-decorators/class-validators/check-array-id.js +37 -0
  8. package/dist/custom-decorators/class-validators/check-array-id.js.map +1 -0
  9. package/dist/custom-decorators/class-validators/cross-validation.d.ts +5 -0
  10. package/dist/custom-decorators/class-validators/cross-validation.d.ts.map +1 -0
  11. package/dist/custom-decorators/class-validators/cross-validation.js +23 -0
  12. package/dist/custom-decorators/class-validators/cross-validation.js.map +1 -0
  13. package/dist/custom-decorators/class-validators/is-bcrypt-hash.d.ts +7 -0
  14. package/dist/custom-decorators/class-validators/is-bcrypt-hash.d.ts.map +1 -0
  15. package/dist/custom-decorators/class-validators/is-bcrypt-hash.js +43 -0
  16. package/dist/custom-decorators/class-validators/is-bcrypt-hash.js.map +1 -0
  17. package/dist/custom-decorators/class-validators/is-record-key-locale.d.ts +7 -0
  18. package/dist/custom-decorators/class-validators/is-record-key-locale.d.ts.map +1 -0
  19. package/dist/custom-decorators/class-validators/is-record-key-locale.js +37 -0
  20. package/dist/custom-decorators/class-validators/is-record-key-locale.js.map +1 -0
  21. package/dist/custom-decorators/class-validators/is-record-key-uuid.d.ts +7 -0
  22. package/dist/custom-decorators/class-validators/is-record-key-uuid.d.ts.map +1 -0
  23. package/dist/custom-decorators/class-validators/is-record-key-uuid.js +37 -0
  24. package/dist/custom-decorators/class-validators/is-record-key-uuid.js.map +1 -0
  25. package/dist/custom-decorators/class-validators/is-valid-email-domain/black-list.json +184906 -0
  26. package/dist/custom-decorators/class-validators/is-valid-email-domain/disposable-mail-validation.d.ts +13 -0
  27. package/dist/custom-decorators/class-validators/is-valid-email-domain/disposable-mail-validation.d.ts.map +1 -0
  28. package/dist/custom-decorators/class-validators/is-valid-email-domain/disposable-mail-validation.js +66 -0
  29. package/dist/custom-decorators/class-validators/is-valid-email-domain/disposable-mail-validation.js.map +1 -0
  30. package/dist/custom-decorators/class-validators/is-valid-email-domain/index.d.ts +7 -0
  31. package/dist/custom-decorators/class-validators/is-valid-email-domain/index.d.ts.map +1 -0
  32. package/dist/custom-decorators/class-validators/is-valid-email-domain/index.js +40 -0
  33. package/dist/custom-decorators/class-validators/is-valid-email-domain/index.js.map +1 -0
  34. package/dist/custom-decorators/class-validators/validate-single-property-sync.d.ts +2 -0
  35. package/dist/custom-decorators/class-validators/validate-single-property-sync.d.ts.map +1 -0
  36. package/dist/custom-decorators/class-validators/validate-single-property-sync.js +12 -0
  37. package/dist/custom-decorators/class-validators/validate-single-property-sync.js.map +1 -0
  38. package/dist/type-validation/common/cv-info/coordinates.js +1 -1
  39. package/dist/type-validation/common/cv-info/coordinates.js.map +1 -1
  40. package/dist/type-validation/common/cv-info/interval-date.d.ts.map +1 -1
  41. package/dist/type-validation/common/cv-info/interval-date.js +13 -1
  42. package/dist/type-validation/common/cv-info/interval-date.js.map +1 -1
  43. package/dist/type-validation/common/cv-info/reference.js +1 -1
  44. package/dist/type-validation/common/cv-info/reference.js.map +1 -1
  45. package/dist/type-validation/dto/auth.js +2 -2
  46. package/dist/type-validation/dto/auth.js.map +1 -1
  47. package/dist/type-validation/dto/cv-info/cv-info-dto.js +1 -1
  48. package/dist/type-validation/dto/cv-info/cv-info-dto.js.map +1 -1
  49. package/dist/type-validation/dto/cv-info/experiences-dto.js +2 -2
  50. package/dist/type-validation/dto/cv-info/experiences-dto.js.map +1 -1
  51. package/dist/type-validation/dto/cv-info/formations-dto.js +2 -2
  52. package/dist/type-validation/dto/cv-info/formations-dto.js.map +1 -1
  53. package/dist/type-validation/dto/cv-info/skills-dto.js +2 -2
  54. package/dist/type-validation/dto/cv-info/skills-dto.js.map +1 -1
  55. package/dist/type-validation/dto/reset-password.js +1 -1
  56. package/dist/type-validation/dto/reset-password.js.map +1 -1
  57. package/dist/type-validation/entities/cv-info/cv-info.js +3 -3
  58. package/dist/type-validation/entities/cv-info/cv-info.js.map +1 -1
  59. package/dist/type-validation/entities/cv-info/experiences.js +2 -2
  60. package/dist/type-validation/entities/cv-info/experiences.js.map +1 -1
  61. package/dist/type-validation/entities/cv-info/formations.js +2 -2
  62. package/dist/type-validation/entities/cv-info/formations.js.map +1 -1
  63. package/dist/type-validation/entities/cv-info/skills.js +2 -2
  64. package/dist/type-validation/entities/cv-info/skills.js.map +1 -1
  65. package/dist/type-validation/entities/cv-tec-user.js +2 -2
  66. package/dist/type-validation/entities/cv-tec-user.js.map +1 -1
  67. package/dist/type-validation/mocks/index.js +1 -1
  68. package/dist/type-validation/mocks/index.js.map +1 -1
  69. package/package.json +1 -1
@@ -0,0 +1,28 @@
1
+ import { ClassConstructor } from 'class-transformer';
2
+ /**
3
+ * Decorator function that transforms a plain object into a Map of class instances
4
+ *
5
+ * @param className - The class constructor to instantiate for each value in the map
6
+ * @returns A Transform decorator that converts object properties to a Map of class instances
7
+ *
8
+ * @example
9
+ * class UserPreferences {
10
+ * @TransformToMapOf(Setting)
11
+ * settings: Map<string, Setting>;
12
+ * }
13
+ */
14
+ export declare function TransformToMapOf<T>(className: ClassConstructor<T>): PropertyDecorator;
15
+ /**
16
+ * Decorator function that serializes a Map back to a plain JavaScript object
17
+ *
18
+ * @returns A Transform decorator that converts Map instances to plain objects
19
+ * @throws Error if the decorated property is not a Map instance
20
+ *
21
+ * @example
22
+ * class UserPreferences {
23
+ * @SerializeToPlainObject()
24
+ * settings: Map<string, any>;
25
+ * }
26
+ */
27
+ export declare function SerializeToPlainObject(): PropertyDecorator;
28
+ //# sourceMappingURL=map-transform.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-transform.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-transforms/map-transform.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAA8B,MAAM,mBAAmB,CAAA;AAEhF;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAAE,SAAS,EAAE,gBAAgB,CAAC,CAAC,CAAC,qBAejE;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,sBAAsB,sBAsBrC"}
@@ -0,0 +1,61 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.TransformToMapOf = TransformToMapOf;
4
+ exports.SerializeToPlainObject = SerializeToPlainObject;
5
+ const class_transformer_1 = require("class-transformer");
6
+ /**
7
+ * Decorator function that transforms a plain object into a Map of class instances
8
+ *
9
+ * @param className - The class constructor to instantiate for each value in the map
10
+ * @returns A Transform decorator that converts object properties to a Map of class instances
11
+ *
12
+ * @example
13
+ * class UserPreferences {
14
+ * @TransformToMapOf(Setting)
15
+ * settings: Map<string, Setting>;
16
+ * }
17
+ */
18
+ function TransformToMapOf(className) {
19
+ return (0, class_transformer_1.Transform)(({ value }) => {
20
+ // Create a new Map to store the transformed values
21
+ const map = new Map();
22
+ // Convert each key-value pair in the object to a Map entry
23
+ // where the value is transformed into an instance of the specified class
24
+ Object.entries(value).forEach(([k, v]) => map.set(k, (0, class_transformer_1.plainToInstance)(className, v)));
25
+ return map;
26
+ }, {
27
+ // Only apply this transformation when converting to class instances
28
+ toClassOnly: true,
29
+ });
30
+ }
31
+ /**
32
+ * Decorator function that serializes a Map back to a plain JavaScript object
33
+ *
34
+ * @returns A Transform decorator that converts Map instances to plain objects
35
+ * @throws Error if the decorated property is not a Map instance
36
+ *
37
+ * @example
38
+ * class UserPreferences {
39
+ * @SerializeToPlainObject()
40
+ * settings: Map<string, any>;
41
+ * }
42
+ */
43
+ function SerializeToPlainObject() {
44
+ return (0, class_transformer_1.Transform)(({ value }) => {
45
+ // Validate that the value is a Map instance
46
+ if (!(value instanceof Map)) {
47
+ throw `this decorator can't be applied on non-Map objects`;
48
+ }
49
+ // Cast the value to Map<string, unknown> for type safety
50
+ const mapVal = value;
51
+ // Convert the Map entries to a plain object using reduce
52
+ return Array.from(mapVal.entries()).reduce((acc, [k, v]) => {
53
+ acc[k] = v;
54
+ return acc;
55
+ }, {});
56
+ }, {
57
+ // Only apply this transformation when converting to plain objects
58
+ toPlainOnly: true,
59
+ });
60
+ }
61
+ //# sourceMappingURL=map-transform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-transform.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-transforms/map-transform.ts"],"names":[],"mappings":";;AAcA,4CAeC;AAcD,wDAsBC;AAjED,yDAAgF;AAEhF;;;;;;;;;;;GAWG;AACH,SAAgB,gBAAgB,CAAI,SAA8B;IAChE,OAAO,IAAA,6BAAS,EACd,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACZ,mDAAmD;QACnD,MAAM,GAAG,GAAG,IAAI,GAAG,EAAE,CAAA;QACrB,2DAA2D;QAC3D,yEAAyE;QACzE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,EAAE,IAAA,mCAAe,EAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QACpF,OAAO,GAAG,CAAA;IACZ,CAAC,EACD;QACE,oEAAoE;QACpE,WAAW,EAAE,IAAI;KAClB,CACF,CAAA;AACH,CAAC;AAED;;;;;;;;;;;GAWG;AACH,SAAgB,sBAAsB;IACpC,OAAO,IAAA,6BAAS,EACd,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE;QACZ,4CAA4C;QAC5C,IAAI,CAAC,CAAC,KAAK,YAAY,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,oDAAoD,CAAA;QAC5D,CAAC;QAED,yDAAyD;QACzD,MAAM,MAAM,GAAG,KAA6B,CAAA;QAE5C,yDAAyD;QACzD,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;YACzD,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAA;YACV,OAAO,GAAG,CAAA;QACZ,CAAC,EAAE,EAAE,CAAC,CAAA;IACR,CAAC,EACD;QACE,kEAAkE;QAClE,WAAW,EAAE,IAAI;KAClB,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,9 @@
1
+ import { ValidationOptions, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class CheckArrayIdConstraint implements ValidatorConstraintInterface {
3
+ validate(value: ({
4
+ $id: string;
5
+ } | null)[]): boolean;
6
+ defaultMessage(): string;
7
+ }
8
+ export declare function CheckArrayId(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
9
+ //# sourceMappingURL=check-array-id.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-array-id.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/check-array-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAA;AAExB,qBACa,sBAAuB,YAAW,4BAA4B;IACzE,QAAQ,CAAC,KAAK,EAAE,CAAC;QAAE,GAAG,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC,EAAE;IAQ1C,cAAc;CAGf;AAED,wBAAgB,YAAY,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,IAC/C,QAAQ,MAAM,EAAE,cAAc,MAAM,UAStD"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.CheckArrayIdConstraint = void 0;
10
+ exports.CheckArrayId = CheckArrayId;
11
+ const class_validator_1 = require("class-validator");
12
+ let CheckArrayIdConstraint = class CheckArrayIdConstraint {
13
+ validate(value) {
14
+ if (!value)
15
+ return true;
16
+ return (0, class_validator_1.arrayUnique)(value.filter((e) => e !== null), (e) => e.$id);
17
+ }
18
+ defaultMessage() {
19
+ return 'record Key contian not locale key';
20
+ }
21
+ };
22
+ exports.CheckArrayIdConstraint = CheckArrayIdConstraint;
23
+ exports.CheckArrayIdConstraint = CheckArrayIdConstraint = __decorate([
24
+ (0, class_validator_1.ValidatorConstraint)({ name: 'checkArrayId', async: false })
25
+ ], CheckArrayIdConstraint);
26
+ function CheckArrayId(validationOptions) {
27
+ return function (object, propertyName) {
28
+ (0, class_validator_1.registerDecorator)({
29
+ target: object.constructor,
30
+ propertyName: propertyName,
31
+ options: validationOptions,
32
+ constraints: [],
33
+ validator: CheckArrayIdConstraint,
34
+ });
35
+ };
36
+ }
37
+ //# sourceMappingURL=check-array-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"check-array-id.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/check-array-id.ts"],"names":[],"mappings":";;;;;;;;;AAuBA,oCAUC;AAjCD,qDAMwB;AAGjB,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,QAAQ,CAAC,KAAiC;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,OAAO,IAAA,6BAAW,EAChB,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,EAC/B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CACb,CAAA;IACH,CAAC;IAED,cAAc;QACZ,OAAO,mCAAmC,CAAA;IAC5C,CAAC;CACF,CAAA;AAZY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC/C,sBAAsB,CAYlC;AAED,SAAgB,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { ValidationOptions } from 'class-validator';
2
+ export declare function CrossValidation<T>(Fn: (o: object, v: T) => boolean, validationOptions?: ValidationOptions & {
3
+ name?: string;
4
+ }): (object: object, propertyName: string) => void;
5
+ //# sourceMappingURL=cross-validation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-validation.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/cross-validation.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAElB,MAAM,iBAAiB,CAAA;AAExB,wBAAgB,eAAe,CAAC,CAAC,EAC/B,EAAE,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,KAAK,OAAO,EAChC,iBAAiB,CAAC,EAAE,iBAAiB,GAAG;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,IAExC,QAAQ,MAAM,EAAE,cAAc,MAAM,UAgBtD"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrossValidation = CrossValidation;
4
+ const class_validator_1 = require("class-validator");
5
+ function CrossValidation(Fn, validationOptions) {
6
+ return function (object, propertyName) {
7
+ (0, class_validator_1.registerDecorator)({
8
+ name: (validationOptions === null || validationOptions === void 0 ? void 0 : validationOptions.name) || 'CrossValidation',
9
+ target: object.constructor,
10
+ propertyName: propertyName,
11
+ options: validationOptions,
12
+ validator: {
13
+ validate(value, args) {
14
+ return Fn(args.object, value);
15
+ },
16
+ defaultMessage(args) {
17
+ return `${args.property} must match ${args.constraints}`;
18
+ },
19
+ },
20
+ });
21
+ };
22
+ }
23
+ //# sourceMappingURL=cross-validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-validation.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/cross-validation.ts"],"names":[],"mappings":";;AAMA,0CAoBC;AA1BD,qDAIwB;AAExB,SAAgB,eAAe,CAC7B,EAAgC,EAChC,iBAAyD;IAEzD,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,IAAI,EAAE,CAAA,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,KAAI,iBAAiB;YAClD,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,SAAS,EAAE;gBACT,QAAQ,CAAC,KAAQ,EAAE,IAAyB;oBAC1C,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;gBAC/B,CAAC;gBACD,cAAc,CAAC,IAAyB;oBACtC,OAAO,GAAG,IAAI,CAAC,QAAQ,eAAe,IAAI,CAAC,WAAW,EAAE,CAAA;gBAC1D,CAAC;aACF;SACF,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidationOptions, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class IsBcryptHashConstraint implements ValidatorConstraintInterface {
3
+ validate(value: string): boolean;
4
+ defaultMessage(): string;
5
+ }
6
+ export declare function IsBcryptHash(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
7
+ //# sourceMappingURL=is-bcrypt-hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-bcrypt-hash.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-bcrypt-hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,iBAAiB,EAEjB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAA;AAExB,qBACa,sBAAuB,YAAW,4BAA4B;IACzE,QAAQ,CAAC,KAAK,EAAE,MAAM;IAatB,cAAc;CAGf;AAED,wBAAgB,YAAY,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,IAC/C,QAAQ,MAAM,EAAE,cAAc,MAAM,UAStD"}
@@ -0,0 +1,43 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IsBcryptHashConstraint = void 0;
10
+ exports.IsBcryptHash = IsBcryptHash;
11
+ const class_validator_1 = require("class-validator");
12
+ let IsBcryptHashConstraint = class IsBcryptHashConstraint {
13
+ validate(value) {
14
+ if (typeof value !== 'string') {
15
+ return false;
16
+ }
17
+ // Bcrypt hashes typically:
18
+ // 1. Are 60 characters long
19
+ // 2. Start with '$2a$', '$2b$', or '$2y$' (algorithm identifiers)
20
+ // 3. Have a specific format with cost factor and salt
21
+ const bcryptRegex = /^\$2[aby]\$[0-9]{2}\$[A-Za-z0-9./]{53}$/;
22
+ return bcryptRegex.test(value);
23
+ }
24
+ defaultMessage() {
25
+ return 'The string is not a valid bcrypt hash';
26
+ }
27
+ };
28
+ exports.IsBcryptHashConstraint = IsBcryptHashConstraint;
29
+ exports.IsBcryptHashConstraint = IsBcryptHashConstraint = __decorate([
30
+ (0, class_validator_1.ValidatorConstraint)({ name: 'isBcryptHash', async: false })
31
+ ], IsBcryptHashConstraint);
32
+ function IsBcryptHash(validationOptions) {
33
+ return function (object, propertyName) {
34
+ (0, class_validator_1.registerDecorator)({
35
+ target: object.constructor,
36
+ propertyName: propertyName,
37
+ options: validationOptions,
38
+ constraints: [],
39
+ validator: IsBcryptHashConstraint,
40
+ });
41
+ };
42
+ }
43
+ //# sourceMappingURL=is-bcrypt-hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-bcrypt-hash.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-bcrypt-hash.ts"],"names":[],"mappings":";;;;;;;;;AA2BA,oCAUC;AArCD,qDAKwB;AAGjB,IAAM,sBAAsB,GAA5B,MAAM,sBAAsB;IACjC,QAAQ,CAAC,KAAa;QACpB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,OAAO,KAAK,CAAA;QACd,CAAC;QAED,2BAA2B;QAC3B,4BAA4B;QAC5B,kEAAkE;QAClE,sDAAsD;QACtD,MAAM,WAAW,GAAG,yCAAyC,CAAA;QAC7D,OAAO,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAChC,CAAC;IAED,cAAc;QACZ,OAAO,uCAAuC,CAAA;IAChD,CAAC;CACF,CAAA;AAjBY,wDAAsB;iCAAtB,sBAAsB;IADlC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,cAAc,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAC/C,sBAAsB,CAiBlC;AAED,SAAgB,YAAY,CAAC,iBAAqC;IAChE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,sBAAsB;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidationOptions, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class IsRecordKeyLocaleConstraint implements ValidatorConstraintInterface {
3
+ validate(value: Map<string, unknown>): boolean;
4
+ defaultMessage(): string;
5
+ }
6
+ export declare function IsRecordKeyLocale(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
7
+ //# sourceMappingURL=is-record-key-locale.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-record-key-locale.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-record-key-locale.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,iBAAiB,EAEjB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAA;AAExB,qBACa,2BAA4B,YAAW,4BAA4B;IAC9E,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAKpC,cAAc;CAGf;AAED,wBAAgB,iBAAiB,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,IACpD,QAAQ,MAAM,EAAE,cAAc,MAAM,UAStD"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IsRecordKeyLocaleConstraint = void 0;
10
+ exports.IsRecordKeyLocale = IsRecordKeyLocale;
11
+ const class_validator_1 = require("class-validator");
12
+ let IsRecordKeyLocaleConstraint = class IsRecordKeyLocaleConstraint {
13
+ validate(value) {
14
+ if (!value)
15
+ return true;
16
+ return Array.from(value.keys()).every((k) => (0, class_validator_1.isLocale)(k) && (0, class_validator_1.maxLength)(k, 2));
17
+ }
18
+ defaultMessage() {
19
+ return 'record Key contian not locale key';
20
+ }
21
+ };
22
+ exports.IsRecordKeyLocaleConstraint = IsRecordKeyLocaleConstraint;
23
+ exports.IsRecordKeyLocaleConstraint = IsRecordKeyLocaleConstraint = __decorate([
24
+ (0, class_validator_1.ValidatorConstraint)({ name: 'isRecordKeyLocale', async: false })
25
+ ], IsRecordKeyLocaleConstraint);
26
+ function IsRecordKeyLocale(validationOptions) {
27
+ return function (object, propertyName) {
28
+ (0, class_validator_1.registerDecorator)({
29
+ target: object.constructor,
30
+ propertyName: propertyName,
31
+ options: validationOptions,
32
+ constraints: [],
33
+ validator: IsRecordKeyLocaleConstraint,
34
+ });
35
+ };
36
+ }
37
+ //# sourceMappingURL=is-record-key-locale.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-record-key-locale.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-record-key-locale.ts"],"names":[],"mappings":";;;;;;;;;AAqBA,8CAUC;AA/BD,qDAOwB;AAGjB,IAAM,2BAA2B,GAAjC,MAAM,2BAA2B;IACtC,QAAQ,CAAC,KAA2B;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,0BAAQ,EAAC,CAAC,CAAC,IAAI,IAAA,2BAAS,EAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;IAC9E,CAAC;IAED,cAAc;QACZ,OAAO,mCAAmC,CAAA;IAC5C,CAAC;CACF,CAAA;AATY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACpD,2BAA2B,CASvC;AAED,SAAgB,iBAAiB,CAAC,iBAAqC;IACrE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,2BAA2B;SACvC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidationOptions, ValidatorConstraintInterface } from 'class-validator';
2
+ export declare class IsRecordKeyUuidConstraint implements ValidatorConstraintInterface {
3
+ validate(value: Map<string, unknown>): boolean;
4
+ defaultMessage(): string;
5
+ }
6
+ export declare function IsRecordKeyUuid(validationOptions?: ValidationOptions): (object: object, propertyName: string) => void;
7
+ //# sourceMappingURL=is-record-key-uuid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-record-key-uuid.d.ts","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-record-key-uuid.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,iBAAiB,EAEjB,4BAA4B,EAC7B,MAAM,iBAAiB,CAAA;AAExB,qBACa,yBAA0B,YAAW,4BAA4B;IAC5E,QAAQ,CAAC,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC;IAKpC,cAAc;CAGf;AAED,wBAAgB,eAAe,CAAC,iBAAiB,CAAC,EAAE,iBAAiB,IAClD,QAAQ,MAAM,EAAE,cAAc,MAAM,UAStD"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.IsRecordKeyUuidConstraint = void 0;
10
+ exports.IsRecordKeyUuid = IsRecordKeyUuid;
11
+ const class_validator_1 = require("class-validator");
12
+ let IsRecordKeyUuidConstraint = class IsRecordKeyUuidConstraint {
13
+ validate(value) {
14
+ if (!value)
15
+ return true;
16
+ return Array.from(value.keys()).every((k) => (0, class_validator_1.isUUID)(k));
17
+ }
18
+ defaultMessage() {
19
+ return 'recod Key contian not uuid key';
20
+ }
21
+ };
22
+ exports.IsRecordKeyUuidConstraint = IsRecordKeyUuidConstraint;
23
+ exports.IsRecordKeyUuidConstraint = IsRecordKeyUuidConstraint = __decorate([
24
+ (0, class_validator_1.ValidatorConstraint)({ name: 'isRecordKeyUuid', async: false })
25
+ ], IsRecordKeyUuidConstraint);
26
+ function IsRecordKeyUuid(validationOptions) {
27
+ return function (object, propertyName) {
28
+ (0, class_validator_1.registerDecorator)({
29
+ target: object.constructor,
30
+ propertyName: propertyName,
31
+ options: validationOptions,
32
+ constraints: [],
33
+ validator: IsRecordKeyUuidConstraint,
34
+ });
35
+ };
36
+ }
37
+ //# sourceMappingURL=is-record-key-uuid.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-record-key-uuid.js","sourceRoot":"","sources":["../../../src/custom-decorators/class-validators/is-record-key-uuid.ts"],"names":[],"mappings":";;;;;;;;;AAoBA,0CAUC;AA9BD,qDAMwB;AAGjB,IAAM,yBAAyB,GAA/B,MAAM,yBAAyB;IACpC,QAAQ,CAAC,KAA2B;QAClC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAA;QACvB,OAAO,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,wBAAM,EAAC,CAAC,CAAC,CAAC,CAAA;IACzD,CAAC;IAED,cAAc;QACZ,OAAO,gCAAgC,CAAA;IACzC,CAAC;CACF,CAAA;AATY,8DAAyB;oCAAzB,yBAAyB;IADrC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GAClD,yBAAyB,CASrC;AAED,SAAgB,eAAe,CAAC,iBAAqC;IACnE,OAAO,UAAU,MAAc,EAAE,YAAoB;QACnD,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY,EAAE,YAAY;YAC1B,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,yBAAyB;SACrC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}