@cryptexlabs/codex-nodejs-common 0.12.0 → 0.12.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 (53) hide show
  1. package/lib/package.json +1 -1
  2. package/lib/src/auth/authf.guard.js +12 -4
  3. package/lib/src/auth/authf.guard.js.map +1 -1
  4. package/lib/src/decorator/index.d.ts +3 -0
  5. package/lib/src/decorator/index.js +3 -0
  6. package/lib/src/decorator/index.js.map +1 -1
  7. package/lib/src/decorator/is-valid-email-type.d.ts +7 -0
  8. package/lib/src/decorator/is-valid-email-type.js +39 -0
  9. package/lib/src/decorator/is-valid-email-type.js.map +1 -0
  10. package/lib/src/decorator/is-valid-phone-type.d.ts +7 -0
  11. package/lib/src/decorator/is-valid-phone-type.js +39 -0
  12. package/lib/src/decorator/is-valid-phone-type.js.map +1 -0
  13. package/lib/src/decorator/is-valid-utc-timezone.d.ts +7 -0
  14. package/lib/src/decorator/is-valid-utc-timezone.js +80 -0
  15. package/lib/src/decorator/is-valid-utc-timezone.js.map +1 -0
  16. package/lib/src/dto/email.dto.d.ts +5 -0
  17. package/lib/src/dto/email.dto.js +29 -0
  18. package/lib/src/dto/email.dto.js.map +1 -0
  19. package/lib/src/dto/index.d.ts +6 -0
  20. package/lib/src/dto/index.js +23 -0
  21. package/lib/src/dto/index.js.map +1 -0
  22. package/lib/src/dto/name.dto.d.ts +7 -0
  23. package/lib/src/dto/name.dto.js +37 -0
  24. package/lib/src/dto/name.dto.js.map +1 -0
  25. package/lib/src/dto/phone.dto.d.ts +5 -0
  26. package/lib/src/dto/phone.dto.js +29 -0
  27. package/lib/src/dto/phone.dto.js.map +1 -0
  28. package/lib/src/dto/photo.dto.d.ts +4 -0
  29. package/lib/src/dto/photo.dto.js +22 -0
  30. package/lib/src/dto/photo.dto.js.map +1 -0
  31. package/lib/src/dto/profile.dto.d.ts +20 -0
  32. package/lib/src/dto/profile.dto.js +7 -0
  33. package/lib/src/dto/profile.dto.js.map +1 -0
  34. package/lib/src/dto/user.dto.d.ts +7 -0
  35. package/lib/src/dto/user.dto.js +26 -0
  36. package/lib/src/dto/user.dto.js.map +1 -0
  37. package/lib/src/index.d.ts +1 -0
  38. package/lib/src/index.js +1 -0
  39. package/lib/src/index.js.map +1 -1
  40. package/package.json +1 -1
  41. package/src/auth/authf.guard.ts +15 -3
  42. package/src/decorator/index.ts +3 -0
  43. package/src/decorator/is-valid-email-type.ts +34 -0
  44. package/src/decorator/is-valid-phone-type.ts +34 -0
  45. package/src/decorator/is-valid-utc-timezone.ts +76 -0
  46. package/src/dto/email.dto.ts +13 -0
  47. package/src/dto/index.ts +6 -0
  48. package/src/dto/name.dto.ts +20 -0
  49. package/src/dto/phone.dto.ts +13 -0
  50. package/src/dto/photo.dto.ts +8 -0
  51. package/src/dto/profile.dto.ts +30 -0
  52. package/src/dto/user.dto.ts +14 -0
  53. package/src/index.ts +1 -0
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Common code for Codex framework",
5
5
  "main": "lib/src/index.js",
6
6
  "type": "commonjs",
@@ -99,18 +99,26 @@ let AuthfGuard = class AuthfGuard {
99
99
  }, this.config.blacklistRefreshIntervalInSeconds * 1000);
100
100
  }
101
101
  async _updateBlacklist(context) {
102
- var _a, _b, _c;
102
+ var _a, _b, _c, _d, _e, _f;
103
103
  const headers = this._getApiHeaders(context);
104
+ context.logger.verbose(`Fetching blacklist`);
104
105
  const subjectBlacklistResponse = await axios_1.default.get(`/api/v1/blacklisted-subjects`, {
105
106
  baseURL: this.config.authfUrl,
106
107
  headers,
107
108
  });
109
+ context.logger.verbose(`Blacklist response`, subjectBlacklistResponse.data);
108
110
  if (((_a = subjectBlacklistResponse.data) === null || _a === void 0 ? void 0 : _a.data) !== undefined &&
109
111
  Array.isArray((_b = subjectBlacklistResponse.data) === null || _b === void 0 ? void 0 : _b.data)) {
110
- this._blacklistedSubjects = (_c = subjectBlacklistResponse.data) === null || _c === void 0 ? void 0 : _c.data;
111
- if (this._blacklistedSubjects.length > 0) {
112
- context.logger.verbose(`Got blacklist`, this._blacklistedSubjects);
112
+ if (this._blacklistedSubjects.length !== ((_c = subjectBlacklistResponse.data) === null || _c === void 0 ? void 0 : _c.data)) {
113
+ context.logger.debug(`Got change in blacklist`, {
114
+ old: this._blacklistedSubjects,
115
+ new: (_d = subjectBlacklistResponse.data) === null || _d === void 0 ? void 0 : _d.data,
116
+ });
113
117
  }
118
+ else if (this._blacklistedSubjects.length > 0) {
119
+ context.logger.verbose(`Got blacklist`, (_e = subjectBlacklistResponse.data) === null || _e === void 0 ? void 0 : _e.data);
120
+ }
121
+ this._blacklistedSubjects = (_f = subjectBlacklistResponse.data) === null || _f === void 0 ? void 0 : _f.data;
114
122
  }
115
123
  }
116
124
  };
@@ -1 +1 @@
1
- {"version":3,"file":"authf.guard.js","sourceRoot":"","sources":["../../../src/auth/authf.guard.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"authf.guard.js","sourceRoot":"","sources":["../../../src/auth/authf.guard.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,6 @@
1
1
  export * from "./api-meta-headers";
2
2
  export * from "./api-pagination";
3
3
  export * from "./api-query-options";
4
+ export * from "./is-valid-email-type";
5
+ export * from "./is-valid-phone-type";
6
+ export * from "./is-valid-utc-timezone";
@@ -17,4 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./api-meta-headers"), exports);
18
18
  __exportStar(require("./api-pagination"), exports);
19
19
  __exportStar(require("./api-query-options"), exports);
20
+ __exportStar(require("./is-valid-email-type"), exports);
21
+ __exportStar(require("./is-valid-phone-type"), exports);
22
+ __exportStar(require("./is-valid-utc-timezone"), exports);
20
23
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,mDAAiC;AACjC,sDAAoC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/decorator/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,mDAAiC;AACjC,sDAAoC;AACpC,wDAAsC;AACtC,wDAAsC;AACtC,0DAAwC"}
@@ -0,0 +1,7 @@
1
+ import { ValidatorConstraintInterface, ValidationArguments, ValidationOptions } from "class-validator";
2
+ export declare class IsValidEmailTypeConstraint implements ValidatorConstraintInterface {
3
+ private readonly EMAIL_TYPES;
4
+ validate(timezone: any, args: ValidationArguments): boolean;
5
+ defaultMessage(args: ValidationArguments): string;
6
+ }
7
+ export declare function IsValidEmailType(validationOptions?: ValidationOptions): (object: any, propertyName: string) => void;
@@ -0,0 +1,39 @@
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.IsValidEmailTypeConstraint = void 0;
10
+ exports.IsValidEmailType = IsValidEmailType;
11
+ const class_validator_1 = require("class-validator");
12
+ const authf_data_model_1 = require("@cryptexlabs/authf-data-model");
13
+ let IsValidEmailTypeConstraint = class IsValidEmailTypeConstraint {
14
+ constructor() {
15
+ this.EMAIL_TYPES = Object.values(authf_data_model_1.EmailTypeEnum);
16
+ }
17
+ validate(timezone, args) {
18
+ return this.EMAIL_TYPES.includes(timezone);
19
+ }
20
+ defaultMessage(args) {
21
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
22
+ }
23
+ };
24
+ exports.IsValidEmailTypeConstraint = IsValidEmailTypeConstraint;
25
+ exports.IsValidEmailTypeConstraint = IsValidEmailTypeConstraint = __decorate([
26
+ (0, class_validator_1.ValidatorConstraint)({ name: "IsValidEmailType", async: false })
27
+ ], IsValidEmailTypeConstraint);
28
+ function IsValidEmailType(validationOptions) {
29
+ return (object, propertyName) => {
30
+ (0, class_validator_1.registerDecorator)({
31
+ target: object.constructor,
32
+ propertyName,
33
+ options: validationOptions,
34
+ constraints: [],
35
+ validator: IsValidEmailTypeConstraint,
36
+ });
37
+ };
38
+ }
39
+ //# sourceMappingURL=is-valid-email-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-email-type.js","sourceRoot":"","sources":["../../../src/decorator/is-valid-email-type.ts"],"names":[],"mappings":";;;;;;;;;AAuBA,4CAUC;AAjCD,qDAMyB;AACzB,oEAA8D;AAGvD,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAEY,gBAAW,GAAa,MAAM,CAAC,MAAM,CAAC,gCAAa,CAAC,CAAC;IASxE,CAAC;IAPC,QAAQ,CAAC,QAAa,EAAE,IAAyB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,IAAI,IAAI,CAAC,KAAK,qEAAqE,CAAC;IAC7F,CAAC;CACF,CAAA;AAXY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACnD,0BAA0B,CAWtC;AAED,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,CAAC,MAAW,EAAE,YAAoB,EAAE,EAAE;QAC3C,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,0BAA0B;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidatorConstraintInterface, ValidationArguments, ValidationOptions } from "class-validator";
2
+ export declare class IsValidPhoneTypeConstraint implements ValidatorConstraintInterface {
3
+ private readonly PHONE_TYPES;
4
+ validate(timezone: any, args: ValidationArguments): boolean;
5
+ defaultMessage(args: ValidationArguments): string;
6
+ }
7
+ export declare function IsValidPhoneType(validationOptions?: ValidationOptions): (object: any, propertyName: string) => void;
@@ -0,0 +1,39 @@
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.IsValidPhoneTypeConstraint = void 0;
10
+ exports.IsValidPhoneType = IsValidPhoneType;
11
+ const class_validator_1 = require("class-validator");
12
+ const authf_data_model_1 = require("@cryptexlabs/authf-data-model");
13
+ let IsValidPhoneTypeConstraint = class IsValidPhoneTypeConstraint {
14
+ constructor() {
15
+ this.PHONE_TYPES = Object.values(authf_data_model_1.PhoneTypeEnum);
16
+ }
17
+ validate(timezone, args) {
18
+ return this.PHONE_TYPES.includes(timezone);
19
+ }
20
+ defaultMessage(args) {
21
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
22
+ }
23
+ };
24
+ exports.IsValidPhoneTypeConstraint = IsValidPhoneTypeConstraint;
25
+ exports.IsValidPhoneTypeConstraint = IsValidPhoneTypeConstraint = __decorate([
26
+ (0, class_validator_1.ValidatorConstraint)({ name: "IsValidPhoneType", async: false })
27
+ ], IsValidPhoneTypeConstraint);
28
+ function IsValidPhoneType(validationOptions) {
29
+ return (object, propertyName) => {
30
+ (0, class_validator_1.registerDecorator)({
31
+ target: object.constructor,
32
+ propertyName,
33
+ options: validationOptions,
34
+ constraints: [],
35
+ validator: IsValidPhoneTypeConstraint,
36
+ });
37
+ };
38
+ }
39
+ //# sourceMappingURL=is-valid-phone-type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-phone-type.js","sourceRoot":"","sources":["../../../src/decorator/is-valid-phone-type.ts"],"names":[],"mappings":";;;;;;;;;AAuBA,4CAUC;AAjCD,qDAMyB;AACzB,oEAA6E;AAGtE,IAAM,0BAA0B,GAAhC,MAAM,0BAA0B;IAAhC;QAEY,gBAAW,GAAa,MAAM,CAAC,MAAM,CAAC,gCAAa,CAAC,CAAC;IASxE,CAAC;IAPC,QAAQ,CAAC,QAAa,EAAE,IAAyB;QAC/C,OAAO,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC7C,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,IAAI,IAAI,CAAC,KAAK,qEAAqE,CAAC;IAC7F,CAAC;CACF,CAAA;AAXY,gEAA0B;qCAA1B,0BAA0B;IADtC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACnD,0BAA0B,CAWtC;AAED,SAAgB,gBAAgB,CAAC,iBAAqC;IACpE,OAAO,CAAC,MAAW,EAAE,YAAoB,EAAE,EAAE;QAC3C,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,0BAA0B;SACtC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ValidatorConstraintInterface, ValidationArguments, ValidationOptions } from "class-validator";
2
+ export declare class IsValidUtcTimezoneConstraint implements ValidatorConstraintInterface {
3
+ private readonly TIMEZONES;
4
+ validate(timezone: any, args: ValidationArguments): boolean;
5
+ defaultMessage(args: ValidationArguments): string;
6
+ }
7
+ export declare function IsValidUtcTimezone(validationOptions?: ValidationOptions): (object: any, propertyName: string) => void;
@@ -0,0 +1,80 @@
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.IsValidUtcTimezoneConstraint = void 0;
10
+ exports.IsValidUtcTimezone = IsValidUtcTimezone;
11
+ const class_validator_1 = require("class-validator");
12
+ let IsValidUtcTimezoneConstraint = class IsValidUtcTimezoneConstraint {
13
+ constructor() {
14
+ this.TIMEZONES = [
15
+ "-12:00",
16
+ "-11:00",
17
+ "-10:30",
18
+ "-10:00",
19
+ "-09:30",
20
+ "-09:00",
21
+ "-08:00",
22
+ "-07:00",
23
+ "-06:00",
24
+ "-05:00",
25
+ "-04:00",
26
+ "-04:30",
27
+ "-03:30",
28
+ "-03:00",
29
+ "-02:00",
30
+ "-01:00",
31
+ "-00:00",
32
+ "+00:00",
33
+ "+01:00",
34
+ "+02:00",
35
+ "+03:00",
36
+ "+03:30",
37
+ "+04:00",
38
+ "+04:30",
39
+ "+05:00",
40
+ "+05:30",
41
+ "+05:45",
42
+ "+06:00",
43
+ "+06:30",
44
+ "+07:00",
45
+ "+08:00",
46
+ "+08:45",
47
+ "+09:00",
48
+ "+09:30",
49
+ "+10:00",
50
+ "+10:30",
51
+ "+11:00",
52
+ "+12:00",
53
+ "+12:45",
54
+ "+13:00",
55
+ "+14:00",
56
+ ];
57
+ }
58
+ validate(timezone, args) {
59
+ return this.TIMEZONES.includes(timezone);
60
+ }
61
+ defaultMessage(args) {
62
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
63
+ }
64
+ };
65
+ exports.IsValidUtcTimezoneConstraint = IsValidUtcTimezoneConstraint;
66
+ exports.IsValidUtcTimezoneConstraint = IsValidUtcTimezoneConstraint = __decorate([
67
+ (0, class_validator_1.ValidatorConstraint)({ name: "IsValidUtcTimezone", async: false })
68
+ ], IsValidUtcTimezoneConstraint);
69
+ function IsValidUtcTimezone(validationOptions) {
70
+ return (object, propertyName) => {
71
+ (0, class_validator_1.registerDecorator)({
72
+ target: object.constructor,
73
+ propertyName,
74
+ options: validationOptions,
75
+ constraints: [],
76
+ validator: IsValidUtcTimezoneConstraint,
77
+ });
78
+ };
79
+ }
80
+ //# sourceMappingURL=is-valid-utc-timezone.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"is-valid-utc-timezone.js","sourceRoot":"","sources":["../../../src/decorator/is-valid-utc-timezone.ts"],"names":[],"mappings":";;;;;;;;;AAiEA,gDAUC;AA3ED,qDAMyB;AAIlB,IAAM,4BAA4B,GAAlC,MAAM,4BAA4B;IAAlC;QAEY,cAAS,GAAa;YACrC,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;YACR,QAAQ;SACT,CAAC;IASJ,CAAC;IAPC,QAAQ,CAAC,QAAa,EAAE,IAAyB;QAC/C,OAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IAED,cAAc,CAAC,IAAyB;QACtC,OAAO,IAAI,IAAI,CAAC,KAAK,qEAAqE,CAAC;IAC7F,CAAC;CACF,CAAA;AArDY,oEAA4B;uCAA5B,4BAA4B;IADxC,IAAA,qCAAmB,EAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC;GACrD,4BAA4B,CAqDxC;AAED,SAAgB,kBAAkB,CAAC,iBAAqC;IACtE,OAAO,CAAC,MAAW,EAAE,YAAoB,EAAE,EAAE;QAC3C,IAAA,mCAAiB,EAAC;YAChB,MAAM,EAAE,MAAM,CAAC,WAAW;YAC1B,YAAY;YACZ,OAAO,EAAE,iBAAiB;YAC1B,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,4BAA4B;SACxC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,5 @@
1
+ import { EmailInterface, EmailTypeEnum } from "@cryptexlabs/authf-data-model";
2
+ export declare class EmailDto implements EmailInterface {
3
+ value: string | null;
4
+ type: EmailTypeEnum;
5
+ }
@@ -0,0 +1,29 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EmailDto = void 0;
13
+ const authf_data_model_1 = require("@cryptexlabs/authf-data-model");
14
+ const class_validator_1 = require("class-validator");
15
+ const decorator_1 = require("../decorator");
16
+ class EmailDto {
17
+ }
18
+ exports.EmailDto = EmailDto;
19
+ __decorate([
20
+ (0, class_validator_1.IsOptional)(),
21
+ (0, class_validator_1.IsEmail)(),
22
+ __metadata("design:type", String)
23
+ ], EmailDto.prototype, "value", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, decorator_1.IsValidEmailType)(),
27
+ __metadata("design:type", String)
28
+ ], EmailDto.prototype, "type", void 0);
29
+ //# sourceMappingURL=email.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.dto.js","sourceRoot":"","sources":["../../../src/dto/email.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAA8E;AAC9E,qDAAsD;AACtD,4CAAgD;AAEhD,MAAa,QAAQ;CAQpB;AARD,4BAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,yBAAO,GAAE;;uCACW;AAIrB;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAgB,GAAE;;sCACC"}
@@ -0,0 +1,6 @@
1
+ export * from "./email.dto";
2
+ export * from "./name.dto";
3
+ export * from "./phone.dto";
4
+ export * from "./photo.dto";
5
+ export * from "./profile.dto";
6
+ export * from "./user.dto";
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./email.dto"), exports);
18
+ __exportStar(require("./name.dto"), exports);
19
+ __exportStar(require("./phone.dto"), exports);
20
+ __exportStar(require("./photo.dto"), exports);
21
+ __exportStar(require("./profile.dto"), exports);
22
+ __exportStar(require("./user.dto"), exports);
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/dto/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,8CAA4B;AAC5B,6CAA2B;AAC3B,8CAA4B;AAC5B,8CAA4B;AAC5B,gDAA8B;AAC9B,6CAA2B"}
@@ -0,0 +1,7 @@
1
+ import { NameInterface } from "@cryptexlabs/authf-data-model";
2
+ export declare class NameDto implements NameInterface {
3
+ first: string;
4
+ middle: string;
5
+ last: string;
6
+ display: string;
7
+ }
@@ -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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.NameDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class NameDto {
15
+ }
16
+ exports.NameDto = NameDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsOptional)(),
19
+ (0, class_validator_1.IsString)(),
20
+ __metadata("design:type", String)
21
+ ], NameDto.prototype, "first", void 0);
22
+ __decorate([
23
+ (0, class_validator_1.IsOptional)(),
24
+ (0, class_validator_1.IsString)(),
25
+ __metadata("design:type", String)
26
+ ], NameDto.prototype, "middle", void 0);
27
+ __decorate([
28
+ (0, class_validator_1.IsOptional)(),
29
+ (0, class_validator_1.IsString)(),
30
+ __metadata("design:type", String)
31
+ ], NameDto.prototype, "last", void 0);
32
+ __decorate([
33
+ (0, class_validator_1.IsOptional)(),
34
+ (0, class_validator_1.IsString)(),
35
+ __metadata("design:type", String)
36
+ ], NameDto.prototype, "display", void 0);
37
+ //# sourceMappingURL=name.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"name.dto.js","sourceRoot":"","sources":["../../../src/dto/name.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAuD;AAEvD,MAAa,OAAO;CAgBnB;AAhBD,0BAgBC;AAbC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;sCACG;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCACI;AAIf;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;qCACE;AAIb;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;wCACK"}
@@ -0,0 +1,5 @@
1
+ import { PhoneInterface, PhoneTypeEnum } from "@cryptexlabs/authf-data-model";
2
+ export declare class PhoneDto implements PhoneInterface {
3
+ value: string;
4
+ type: PhoneTypeEnum;
5
+ }
@@ -0,0 +1,29 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PhoneDto = void 0;
13
+ const authf_data_model_1 = require("@cryptexlabs/authf-data-model");
14
+ const class_validator_1 = require("class-validator");
15
+ const decorator_1 = require("../decorator");
16
+ class PhoneDto {
17
+ }
18
+ exports.PhoneDto = PhoneDto;
19
+ __decorate([
20
+ (0, class_validator_1.IsOptional)(),
21
+ (0, class_validator_1.IsString)(),
22
+ __metadata("design:type", String)
23
+ ], PhoneDto.prototype, "value", void 0);
24
+ __decorate([
25
+ (0, class_validator_1.IsOptional)(),
26
+ (0, decorator_1.IsValidPhoneType)(),
27
+ __metadata("design:type", String)
28
+ ], PhoneDto.prototype, "type", void 0);
29
+ //# sourceMappingURL=phone.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"phone.dto.js","sourceRoot":"","sources":["../../../src/dto/phone.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oEAA8E;AAC9E,qDAAuD;AACvD,4CAAgD;AAEhD,MAAa,QAAQ;CAQpB;AARD,4BAQC;AALC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,0BAAQ,GAAE;;uCACG;AAId;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,4BAAgB,GAAE;;sCACC"}
@@ -0,0 +1,4 @@
1
+ import { PhotoInterface } from "@cryptexlabs/authf-data-model";
2
+ export declare class PhotoDto implements PhotoInterface {
3
+ url: string;
4
+ }
@@ -0,0 +1,22 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PhotoDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ class PhotoDto {
15
+ }
16
+ exports.PhotoDto = PhotoDto;
17
+ __decorate([
18
+ (0, class_validator_1.IsOptional)(),
19
+ (0, class_validator_1.IsUrl)(),
20
+ __metadata("design:type", String)
21
+ ], PhotoDto.prototype, "url", void 0);
22
+ //# sourceMappingURL=photo.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"photo.dto.js","sourceRoot":"","sources":["../../../src/dto/photo.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAAoD;AAEpD,MAAa,QAAQ;CAIpB;AAJD,4BAIC;AADC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,uBAAK,GAAE;;qCACI"}
@@ -0,0 +1,20 @@
1
+ import { ProfileInterface } from "@cryptexlabs/authf-data-model";
2
+ import { EmailDto } from "./email.dto";
3
+ import { PhoneDto } from "./phone.dto";
4
+ import { PhotoDto } from "./photo.dto";
5
+ import { NameDto } from "./name.dto";
6
+ export declare class ProfileDto implements ProfileInterface {
7
+ email: {
8
+ primary: EmailDto | null;
9
+ other: EmailDto[];
10
+ };
11
+ phone: {
12
+ primary: PhoneDto | null;
13
+ other: PhoneDto[];
14
+ };
15
+ photo: {
16
+ primary: PhotoDto | null;
17
+ other: PhotoDto[];
18
+ };
19
+ name: NameDto;
20
+ }
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfileDto = void 0;
4
+ class ProfileDto {
5
+ }
6
+ exports.ProfileDto = ProfileDto;
7
+ //# sourceMappingURL=profile.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profile.dto.js","sourceRoot":"","sources":["../../../src/dto/profile.dto.ts"],"names":[],"mappings":";;;AAYA,MAAa,UAAU;CAiBtB;AAjBD,gCAiBC"}
@@ -0,0 +1,7 @@
1
+ import { UserInterface, UtcTimezone } from "@cryptexlabs/authf-data-model";
2
+ import { ProfileDto } from "./profile.dto";
3
+ export declare class UserDto implements UserInterface {
4
+ username: string;
5
+ profile: ProfileDto;
6
+ timezone: UtcTimezone;
7
+ }
@@ -0,0 +1,26 @@
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
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.UserDto = void 0;
13
+ const class_validator_1 = require("class-validator");
14
+ const decorator_1 = require("../decorator");
15
+ class UserDto {
16
+ }
17
+ exports.UserDto = UserDto;
18
+ __decorate([
19
+ (0, class_validator_1.IsString)(),
20
+ __metadata("design:type", String)
21
+ ], UserDto.prototype, "username", void 0);
22
+ __decorate([
23
+ (0, decorator_1.IsValidUtcTimezone)(),
24
+ __metadata("design:type", String)
25
+ ], UserDto.prototype, "timezone", void 0);
26
+ //# sourceMappingURL=user.dto.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.dto.js","sourceRoot":"","sources":["../../../src/dto/user.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,qDAA2C;AAE3C,4CAAkD;AAElD,MAAa,OAAO;CAQnB;AARD,0BAQC;AANC;IADC,IAAA,0BAAQ,GAAE;;yCACM;AAKjB;IADC,IAAA,8BAAkB,GAAE;;yCACC"}
@@ -3,6 +3,7 @@ export * from "./client";
3
3
  export * from "./config";
4
4
  export * from "./context";
5
5
  export * from "./decorator";
6
+ export * from "./dto";
6
7
  export * from "./event";
7
8
  export * from "./filter";
8
9
  export * from "./logger";
package/lib/src/index.js CHANGED
@@ -19,6 +19,7 @@ __exportStar(require("./client"), exports);
19
19
  __exportStar(require("./config"), exports);
20
20
  __exportStar(require("./context"), exports);
21
21
  __exportStar(require("./decorator"), exports);
22
+ __exportStar(require("./dto"), exports);
22
23
  __exportStar(require("./event"), exports);
23
24
  __exportStar(require("./filter"), exports);
24
25
  __exportStar(require("./logger"), exports);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,8CAA4B;AAC5B,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,yCAAuB;AACvB,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB;AACvB,+CAA6B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB;AACvB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,8CAA4B;AAC5B,wCAAsB;AACtB,0CAAwB;AACxB,2CAAyB;AACzB,2CAAyB;AACzB,4CAA0B;AAC1B,yCAAuB;AACvB,6CAA2B;AAC3B,2CAAyB;AACzB,8CAA4B;AAC5B,4CAA0B;AAC1B,4CAA0B;AAC1B,yCAAuB;AACvB,+CAA6B"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cryptexlabs/codex-nodejs-common",
3
- "version": "0.12.0",
3
+ "version": "0.12.1",
4
4
  "description": "Common code for Codex framework",
5
5
  "main": "lib/src/index.js",
6
6
  "type": "commonjs",
@@ -119,6 +119,7 @@ export class AuthfGuard implements CanActivate {
119
119
  private async _updateBlacklist(context: Context) {
120
120
  const headers = this._getApiHeaders(context);
121
121
 
122
+ context.logger.verbose(`Fetching blacklist`);
122
123
  const subjectBlacklistResponse = await axios.get(
123
124
  `/api/v1/blacklisted-subjects`,
124
125
  {
@@ -126,15 +127,26 @@ export class AuthfGuard implements CanActivate {
126
127
  headers,
127
128
  }
128
129
  );
130
+ context.logger.verbose(`Blacklist response`, subjectBlacklistResponse.data);
129
131
 
130
132
  if (
131
133
  subjectBlacklistResponse.data?.data !== undefined &&
132
134
  Array.isArray(subjectBlacklistResponse.data?.data)
133
135
  ) {
134
- this._blacklistedSubjects = subjectBlacklistResponse.data?.data;
135
- if (this._blacklistedSubjects.length > 0) {
136
- context.logger.verbose(`Got blacklist`, this._blacklistedSubjects);
136
+ if (
137
+ this._blacklistedSubjects.length !== subjectBlacklistResponse.data?.data
138
+ ) {
139
+ context.logger.debug(`Got change in blacklist`, {
140
+ old: this._blacklistedSubjects,
141
+ new: subjectBlacklistResponse.data?.data,
142
+ });
143
+ } else if (this._blacklistedSubjects.length > 0) {
144
+ context.logger.verbose(
145
+ `Got blacklist`,
146
+ subjectBlacklistResponse.data?.data
147
+ );
137
148
  }
149
+ this._blacklistedSubjects = subjectBlacklistResponse.data?.data;
138
150
  }
139
151
  }
140
152
  }
@@ -1,3 +1,6 @@
1
1
  export * from "./api-meta-headers";
2
2
  export * from "./api-pagination";
3
3
  export * from "./api-query-options";
4
+ export * from "./is-valid-email-type";
5
+ export * from "./is-valid-phone-type";
6
+ export * from "./is-valid-utc-timezone";
@@ -0,0 +1,34 @@
1
+ import {
2
+ ValidatorConstraint,
3
+ ValidatorConstraintInterface,
4
+ ValidationArguments,
5
+ registerDecorator,
6
+ ValidationOptions,
7
+ } from "class-validator";
8
+ import { EmailTypeEnum } from "@cryptexlabs/authf-data-model";
9
+
10
+ @ValidatorConstraint({ name: "IsValidEmailType", async: false })
11
+ export class IsValidEmailTypeConstraint
12
+ implements ValidatorConstraintInterface {
13
+ private readonly EMAIL_TYPES: string[] = Object.values(EmailTypeEnum);
14
+
15
+ validate(timezone: any, args: ValidationArguments): boolean {
16
+ return this.EMAIL_TYPES.includes(timezone);
17
+ }
18
+
19
+ defaultMessage(args: ValidationArguments): string {
20
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
21
+ }
22
+ }
23
+
24
+ export function IsValidEmailType(validationOptions?: ValidationOptions) {
25
+ return (object: any, propertyName: string) => {
26
+ registerDecorator({
27
+ target: object.constructor,
28
+ propertyName,
29
+ options: validationOptions,
30
+ constraints: [],
31
+ validator: IsValidEmailTypeConstraint,
32
+ });
33
+ };
34
+ }
@@ -0,0 +1,34 @@
1
+ import {
2
+ ValidatorConstraint,
3
+ ValidatorConstraintInterface,
4
+ ValidationArguments,
5
+ registerDecorator,
6
+ ValidationOptions,
7
+ } from "class-validator";
8
+ import { EmailTypeEnum, PhoneTypeEnum } from "@cryptexlabs/authf-data-model";
9
+
10
+ @ValidatorConstraint({ name: "IsValidPhoneType", async: false })
11
+ export class IsValidPhoneTypeConstraint
12
+ implements ValidatorConstraintInterface {
13
+ private readonly PHONE_TYPES: string[] = Object.values(PhoneTypeEnum);
14
+
15
+ validate(timezone: any, args: ValidationArguments): boolean {
16
+ return this.PHONE_TYPES.includes(timezone);
17
+ }
18
+
19
+ defaultMessage(args: ValidationArguments): string {
20
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
21
+ }
22
+ }
23
+
24
+ export function IsValidPhoneType(validationOptions?: ValidationOptions) {
25
+ return (object: any, propertyName: string) => {
26
+ registerDecorator({
27
+ target: object.constructor,
28
+ propertyName,
29
+ options: validationOptions,
30
+ constraints: [],
31
+ validator: IsValidPhoneTypeConstraint,
32
+ });
33
+ };
34
+ }
@@ -0,0 +1,76 @@
1
+ import {
2
+ ValidatorConstraint,
3
+ ValidatorConstraintInterface,
4
+ ValidationArguments,
5
+ registerDecorator,
6
+ ValidationOptions,
7
+ } from "class-validator";
8
+
9
+ // Step 1: Define the custom validator
10
+ @ValidatorConstraint({ name: "IsValidUtcTimezone", async: false })
11
+ export class IsValidUtcTimezoneConstraint
12
+ implements ValidatorConstraintInterface {
13
+ private readonly TIMEZONES: string[] = [
14
+ "-12:00",
15
+ "-11:00",
16
+ "-10:30",
17
+ "-10:00",
18
+ "-09:30",
19
+ "-09:00",
20
+ "-08:00",
21
+ "-07:00",
22
+ "-06:00",
23
+ "-05:00",
24
+ "-04:00",
25
+ "-04:30",
26
+ "-03:30",
27
+ "-03:00",
28
+ "-02:00",
29
+ "-01:00",
30
+ "-00:00",
31
+ "+00:00",
32
+ "+01:00",
33
+ "+02:00",
34
+ "+03:00",
35
+ "+03:30",
36
+ "+04:00",
37
+ "+04:30",
38
+ "+05:00",
39
+ "+05:30",
40
+ "+05:45",
41
+ "+06:00",
42
+ "+06:30",
43
+ "+07:00",
44
+ "+08:00",
45
+ "+08:45",
46
+ "+09:00",
47
+ "+09:30",
48
+ "+10:00",
49
+ "+10:30",
50
+ "+11:00",
51
+ "+12:00",
52
+ "+12:45",
53
+ "+13:00",
54
+ "+14:00",
55
+ ];
56
+
57
+ validate(timezone: any, args: ValidationArguments): boolean {
58
+ return this.TIMEZONES.includes(timezone);
59
+ }
60
+
61
+ defaultMessage(args: ValidationArguments): string {
62
+ return `"${args.value}" is not a valid UTC timezone. Choose one of the allowed timezones.`;
63
+ }
64
+ }
65
+
66
+ export function IsValidUtcTimezone(validationOptions?: ValidationOptions) {
67
+ return (object: any, propertyName: string) => {
68
+ registerDecorator({
69
+ target: object.constructor,
70
+ propertyName,
71
+ options: validationOptions,
72
+ constraints: [],
73
+ validator: IsValidUtcTimezoneConstraint,
74
+ });
75
+ };
76
+ }
@@ -0,0 +1,13 @@
1
+ import { EmailInterface, EmailTypeEnum } from "@cryptexlabs/authf-data-model";
2
+ import { IsEmail, IsOptional } from "class-validator";
3
+ import { IsValidEmailType } from "../decorator";
4
+
5
+ export class EmailDto implements EmailInterface {
6
+ @IsOptional()
7
+ @IsEmail()
8
+ value: string | null;
9
+
10
+ @IsOptional()
11
+ @IsValidEmailType()
12
+ type: EmailTypeEnum;
13
+ }
@@ -0,0 +1,6 @@
1
+ export * from "./email.dto";
2
+ export * from "./name.dto";
3
+ export * from "./phone.dto";
4
+ export * from "./photo.dto";
5
+ export * from "./profile.dto";
6
+ export * from "./user.dto";
@@ -0,0 +1,20 @@
1
+ import { NameInterface } from "@cryptexlabs/authf-data-model";
2
+ import { IsOptional, IsString } from "class-validator";
3
+
4
+ export class NameDto implements NameInterface {
5
+ @IsOptional()
6
+ @IsString()
7
+ first: string;
8
+
9
+ @IsOptional()
10
+ @IsString()
11
+ middle: string;
12
+
13
+ @IsOptional()
14
+ @IsString()
15
+ last: string;
16
+
17
+ @IsOptional()
18
+ @IsString()
19
+ display: string;
20
+ }
@@ -0,0 +1,13 @@
1
+ import { PhoneInterface, PhoneTypeEnum } from "@cryptexlabs/authf-data-model";
2
+ import { IsOptional, IsString } from "class-validator";
3
+ import { IsValidPhoneType } from "../decorator";
4
+
5
+ export class PhoneDto implements PhoneInterface {
6
+ @IsOptional()
7
+ @IsString()
8
+ value: string;
9
+
10
+ @IsOptional()
11
+ @IsValidPhoneType()
12
+ type: PhoneTypeEnum;
13
+ }
@@ -0,0 +1,8 @@
1
+ import { PhotoInterface } from "@cryptexlabs/authf-data-model";
2
+ import { IsOptional, IsUrl } from "class-validator";
3
+
4
+ export class PhotoDto implements PhotoInterface {
5
+ @IsOptional()
6
+ @IsUrl()
7
+ url: string;
8
+ }
@@ -0,0 +1,30 @@
1
+ import {
2
+ EmailInterface,
3
+ NameInterface,
4
+ PhoneInterface,
5
+ PhotoInterface,
6
+ ProfileInterface,
7
+ } from "@cryptexlabs/authf-data-model";
8
+ import { EmailDto } from "./email.dto";
9
+ import { PhoneDto } from "./phone.dto";
10
+ import { PhotoDto } from "./photo.dto";
11
+ import { NameDto } from "./name.dto";
12
+
13
+ export class ProfileDto implements ProfileInterface {
14
+ email: {
15
+ primary: EmailDto | null;
16
+ other: EmailDto[];
17
+ };
18
+
19
+ phone: {
20
+ primary: PhoneDto | null;
21
+ other: PhoneDto[];
22
+ };
23
+
24
+ photo: {
25
+ primary: PhotoDto | null;
26
+ other: PhotoDto[];
27
+ };
28
+
29
+ name: NameDto;
30
+ }
@@ -0,0 +1,14 @@
1
+ import { UserInterface, UtcTimezone } from "@cryptexlabs/authf-data-model";
2
+ import { IsString } from "class-validator";
3
+ import { ProfileDto } from "./profile.dto";
4
+ import { IsValidUtcTimezone } from "../decorator";
5
+
6
+ export class UserDto implements UserInterface {
7
+ @IsString()
8
+ username: string;
9
+
10
+ profile: ProfileDto;
11
+
12
+ @IsValidUtcTimezone()
13
+ timezone: UtcTimezone;
14
+ }
package/src/index.ts CHANGED
@@ -3,6 +3,7 @@ export * from "./client";
3
3
  export * from "./config";
4
4
  export * from "./context";
5
5
  export * from "./decorator";
6
+ export * from "./dto";
6
7
  export * from "./event";
7
8
  export * from "./filter";
8
9
  export * from "./logger";