@lenne.tech/nest-server 3.1.2 → 3.3.0

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 (122) hide show
  1. package/dist/core/common/args/filter.args.d.ts +5 -0
  2. package/dist/core/common/args/filter.args.js +10 -0
  3. package/dist/core/common/args/filter.args.js.map +1 -1
  4. package/dist/core/common/args/pagination.args.d.ts +8 -1
  5. package/dist/core/common/args/pagination.args.js +24 -6
  6. package/dist/core/common/args/pagination.args.js.map +1 -1
  7. package/dist/core/common/decorators/restricted.decorator.d.ts +3 -0
  8. package/dist/core/common/decorators/restricted.decorator.js +16 -5
  9. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  10. package/dist/core/common/helpers/context.helper.js +15 -5
  11. package/dist/core/common/helpers/context.helper.js.map +1 -1
  12. package/dist/core/common/helpers/filter.helper.d.ts +3 -3
  13. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  14. package/dist/core/common/helpers/input.helper.js +13 -7
  15. package/dist/core/common/helpers/input.helper.js.map +1 -1
  16. package/dist/core/common/helpers/service.helper.d.ts +6 -8
  17. package/dist/core/common/helpers/service.helper.js +34 -12
  18. package/dist/core/common/helpers/service.helper.js.map +1 -1
  19. package/dist/core/common/inputs/combined-filter.input.d.ts +8 -2
  20. package/dist/core/common/inputs/combined-filter.input.js +16 -5
  21. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  22. package/dist/core/common/inputs/core-input.input.d.ts +8 -0
  23. package/dist/core/common/inputs/core-input.input.js +15 -0
  24. package/dist/core/common/inputs/core-input.input.js.map +1 -0
  25. package/dist/core/common/inputs/filter.input.d.ts +7 -1
  26. package/dist/core/common/inputs/filter.input.js +14 -1
  27. package/dist/core/common/inputs/filter.input.js.map +1 -1
  28. package/dist/core/common/inputs/single-filter.input.d.ts +2 -1
  29. package/dist/core/common/inputs/single-filter.input.js +10 -1
  30. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  31. package/dist/core/common/inputs/sort.input.d.ts +2 -1
  32. package/dist/core/common/inputs/sort.input.js +7 -1
  33. package/dist/core/common/inputs/sort.input.js.map +1 -1
  34. package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
  35. package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
  36. package/dist/core/common/models/core-model.model.d.ts +6 -0
  37. package/dist/core/common/models/core-model.model.js +10 -3
  38. package/dist/core/common/models/core-model.model.js.map +1 -1
  39. package/dist/core/common/models/core-persistence.model.d.ts +5 -29
  40. package/dist/core/common/models/core-persistence.model.js +19 -41
  41. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  42. package/dist/core/common/pipes/check-input.pipe.d.ts +2 -3
  43. package/dist/core/common/pipes/check-input.pipe.js +5 -20
  44. package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
  45. package/dist/core/common/pipes/map-and-validate.pipe.d.ts +4 -0
  46. package/dist/core/common/pipes/map-and-validate.pipe.js +40 -0
  47. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -0
  48. package/dist/core/common/types/plain-input.type.d.ts +3 -0
  49. package/dist/core/common/types/plain-input.type.js +3 -0
  50. package/dist/core/common/types/plain-input.type.js.map +1 -0
  51. package/dist/core/modules/auth/core-auth.model.d.ts +3 -1
  52. package/dist/core/modules/auth/core-auth.model.js +7 -1
  53. package/dist/core/modules/auth/core-auth.model.js.map +1 -1
  54. package/dist/core/modules/auth/core-auth.resolver.d.ts +1 -1
  55. package/dist/core/modules/user/core-user.model.d.ts +3 -0
  56. package/dist/core/modules/user/core-user.model.js +10 -4
  57. package/dist/core/modules/user/core-user.model.js.map +1 -1
  58. package/dist/core/modules/user/core-user.service.d.ts +9 -13
  59. package/dist/core/modules/user/core-user.service.js +38 -67
  60. package/dist/core/modules/user/core-user.service.js.map +1 -1
  61. package/dist/core/modules/user/inputs/core-user-create.input.js +4 -0
  62. package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
  63. package/dist/core/modules/user/inputs/core-user.input.d.ts +2 -1
  64. package/dist/core/modules/user/inputs/core-user.input.js +12 -2
  65. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  66. package/dist/core.module.js +2 -3
  67. package/dist/core.module.js.map +1 -1
  68. package/dist/index.d.ts +6 -2
  69. package/dist/index.js +6 -2
  70. package/dist/index.js.map +1 -1
  71. package/dist/server/common/models/persistence.model.d.ts +1 -0
  72. package/dist/server/common/models/persistence.model.js +4 -0
  73. package/dist/server/common/models/persistence.model.js.map +1 -1
  74. package/dist/server/modules/auth/auth.model.d.ts +1 -0
  75. package/dist/server/modules/auth/auth.model.js +4 -0
  76. package/dist/server/modules/auth/auth.model.js.map +1 -1
  77. package/dist/server/modules/user/inputs/user-create.input.js.map +1 -1
  78. package/dist/server/modules/user/inputs/user.input.js.map +1 -1
  79. package/dist/server/modules/user/user.model.d.ts +3 -2
  80. package/dist/server/modules/user/user.model.js +9 -5
  81. package/dist/server/modules/user/user.model.js.map +1 -1
  82. package/dist/server/modules/user/user.resolver.d.ts +2 -2
  83. package/dist/server/modules/user/user.resolver.js +10 -12
  84. package/dist/server/modules/user/user.resolver.js.map +1 -1
  85. package/dist/server/modules/user/user.service.d.ts +7 -9
  86. package/dist/server/modules/user/user.service.js +12 -4
  87. package/dist/server/modules/user/user.service.js.map +1 -1
  88. package/dist/tsconfig.build.tsbuildinfo +1 -1
  89. package/package.json +1 -1
  90. package/src/core/common/args/filter.args.ts +22 -1
  91. package/src/core/common/args/pagination.args.ts +42 -7
  92. package/src/core/common/decorators/restricted.decorator.ts +24 -5
  93. package/src/core/common/helpers/context.helper.ts +14 -3
  94. package/src/core/common/helpers/filter.helper.ts +3 -3
  95. package/src/core/common/helpers/input.helper.ts +17 -11
  96. package/src/core/common/helpers/service.helper.ts +42 -19
  97. package/src/core/common/inputs/combined-filter.input.ts +30 -9
  98. package/src/core/common/inputs/core-input.input.ts +36 -0
  99. package/src/core/common/inputs/filter.input.ts +27 -3
  100. package/src/core/common/inputs/single-filter.input.ts +7 -6
  101. package/src/core/common/inputs/sort.input.ts +4 -3
  102. package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
  103. package/src/core/common/models/core-model.model.ts +30 -1
  104. package/src/core/common/models/core-persistence.model.ts +33 -120
  105. package/src/core/common/pipes/check-input.pipe.ts +13 -33
  106. package/src/core/common/pipes/map-and-validate.pipe.ts +32 -0
  107. package/src/core/common/types/plain-input.type.ts +6 -0
  108. package/src/core/modules/auth/core-auth.model.ts +15 -1
  109. package/src/core/modules/auth/core-auth.resolver.ts +1 -1
  110. package/src/core/modules/user/core-user.model.ts +17 -4
  111. package/src/core/modules/user/core-user.service.ts +59 -115
  112. package/src/core/modules/user/inputs/core-user-create.input.ts +5 -1
  113. package/src/core/modules/user/inputs/core-user.input.ts +13 -8
  114. package/src/core.module.ts +11 -5
  115. package/src/index.ts +6 -2
  116. package/src/server/common/models/persistence.model.ts +13 -0
  117. package/src/server/modules/auth/auth.model.ts +13 -0
  118. package/src/server/modules/user/inputs/user-create.input.ts +4 -0
  119. package/src/server/modules/user/inputs/user.input.ts +4 -0
  120. package/src/server/modules/user/user.model.ts +18 -5
  121. package/src/server/modules/user/user.resolver.ts +15 -19
  122. package/src/server/modules/user/user.service.ts +22 -7
@@ -1,5 +1,6 @@
1
1
  import { SortOrderEnum } from '../enums/sort-order.emum';
2
- export declare class SortInput {
2
+ import { CoreInput } from './core-input.input';
3
+ export declare class SortInput extends CoreInput {
3
4
  field: string;
4
5
  order: SortOrderEnum;
5
6
  }
@@ -12,7 +12,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.SortInput = void 0;
13
13
  const graphql_1 = require("@nestjs/graphql");
14
14
  const sort_order_emum_1 = require("../enums/sort-order.emum");
15
- let SortInput = class SortInput {
15
+ const core_input_input_1 = require("./core-input.input");
16
+ let SortInput = class SortInput extends core_input_input_1.CoreInput {
17
+ constructor() {
18
+ super(...arguments);
19
+ this.field = undefined;
20
+ this.order = undefined;
21
+ }
16
22
  };
17
23
  __decorate([
18
24
  (0, graphql_1.Field)({ description: 'Field that is to be used for sorting' }),
@@ -1 +1 @@
1
- {"version":3,"file":"sort.input.js","sourceRoot":"","sources":["../../../../src/core/common/inputs/sort.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmD;AACnD,8DAAyD;AAMzD,IAAa,SAAS,GAAtB,MAAa,SAAS;CAYrB,CAAA;AAPC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;;wCACjD;AAMd;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;;wCAC3D;AAXV,SAAS;IADrB,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;GAC/C,SAAS,CAYrB;AAZY,8BAAS"}
1
+ {"version":3,"file":"sort.input.js","sourceRoot":"","sources":["../../../../src/core/common/inputs/sort.input.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAmD;AACnD,8DAAyD;AACzD,yDAA+C;AAM/C,IAAa,SAAS,GAAtB,MAAa,SAAU,SAAQ,4BAAS;IAAxC;;QAKE,UAAK,GAAW,SAAS,CAAC;QAM1B,UAAK,GAAkB,SAAS,CAAC;IACnC,CAAC;CAAA,CAAA;AAPC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,sCAAsC,EAAE,CAAC;;wCACrC;AAM1B;IADC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,WAAW,EAAE,8BAA8B,EAAE,CAAC;;wCAC/C;AAXtB,SAAS;IADrB,IAAA,mBAAS,EAAC,EAAE,WAAW,EAAE,+BAA+B,EAAE,CAAC;GAC/C,SAAS,CAYrB;AAZY,8BAAS"}
@@ -15,7 +15,7 @@ let CheckResponseInterceptor = class CheckResponseInterceptor {
15
15
  intercept(context, next) {
16
16
  const { currentUser } = context_helper_1.Context.getData(context);
17
17
  return next.handle().pipe((0, operators_1.map)((data) => {
18
- return (0, restricted_decorator_1.checkRestricted)(data, currentUser);
18
+ return (0, restricted_decorator_1.checkRestricted)(data, currentUser, { throwError: false });
19
19
  }));
20
20
  }
21
21
  };
@@ -1 +1 @@
1
- {"version":3,"file":"check-response.interceptor.js","sourceRoot":"","sources":["../../../../src/core/common/interceptors/check-response.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4F;AAE5F,8CAAqC;AACrC,6EAAqE;AACrE,8DAAoD;AAMpD,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAEpD,MAAM,EAAE,WAAW,EAAE,GAAQ,wBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAGtD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YAEX,OAAO,IAAA,sCAAe,EAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QAC5C,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAhBY,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CAgBpC;AAhBY,4DAAwB"}
1
+ {"version":3,"file":"check-response.interceptor.js","sourceRoot":"","sources":["../../../../src/core/common/interceptors/check-response.interceptor.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA4F;AAE5F,8CAAqC;AACrC,6EAAqE;AACrE,8DAAoD;AAMpD,IAAa,wBAAwB,GAArC,MAAa,wBAAwB;IAInC,SAAS,CAAC,OAAyB,EAAE,IAAiB;QAEpD,MAAM,EAAE,WAAW,EAAE,GAAQ,wBAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAGtD,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,CACvB,IAAA,eAAG,EAAC,CAAC,IAAI,EAAE,EAAE;YAEX,OAAO,IAAA,sCAAe,EAAC,IAAI,EAAE,WAAW,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC;QACnE,CAAC,CAAC,CACH,CAAC;IACJ,CAAC;CACF,CAAA;AAhBY,wBAAwB;IADpC,IAAA,mBAAU,GAAE;GACA,wBAAwB,CAgBpC;AAhBY,4DAAwB"}
@@ -1,24 +1,30 @@
1
1
  export declare abstract class CoreModel {
2
+ static init<T extends CoreModel>(this: new (...args: any[]) => T, ...args: any[]): T;
2
3
  static map<T extends CoreModel>(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
3
4
  cloneDeep?: boolean;
4
5
  funcAllowed?: boolean;
6
+ init?: boolean;
5
7
  item?: T;
6
8
  mapId?: boolean;
7
9
  }): T;
8
10
  static mapDeep<T extends CoreModel>(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
9
11
  cloneDeep?: boolean;
10
12
  funcAllowed?: boolean;
13
+ init?: boolean;
11
14
  item?: T;
12
15
  mapId?: boolean;
13
16
  }): T;
17
+ init<T extends CoreModel>(...args: any[]): this;
14
18
  map(data: Partial<this> | Record<string, any>, options?: {
15
19
  cloneDeep?: boolean;
16
20
  funcAllowed?: boolean;
21
+ init?: any;
17
22
  mapId?: boolean;
18
23
  }): this;
19
24
  mapDeep(data: Partial<this> | Record<string, any>, options?: {
20
25
  cloneDeep?: boolean;
21
26
  funcAllowed?: boolean;
27
+ init?: boolean;
22
28
  mapId?: boolean;
23
29
  }): this;
24
30
  }
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.CoreModel = void 0;
4
4
  const model_helper_1 = require("../helpers/model.helper");
5
5
  class CoreModel {
6
+ static init(...args) {
7
+ const item = new this();
8
+ return item.init(args);
9
+ }
6
10
  static map(data, options = {}) {
7
11
  const item = options.item || new this();
8
12
  delete options.item;
@@ -13,12 +17,15 @@ class CoreModel {
13
17
  delete options.item;
14
18
  return item.mapDeep(data, options);
15
19
  }
20
+ init(...args) {
21
+ return this;
22
+ }
16
23
  map(data, options = {}) {
17
- const config = Object.assign({ cloneDeep: false, funcAllowed: false, mapId: false }, options);
18
- return model_helper_1.ModelHelper.map(data, this, config);
24
+ const config = Object.assign({ cloneDeep: false, funcAllowed: false, init: undefined, mapId: false }, options);
25
+ return config.init ? model_helper_1.ModelHelper.map(data, this, config).init(config.init) : model_helper_1.ModelHelper.map(data, this, config);
19
26
  }
20
27
  mapDeep(data, options = {}) {
21
- const config = Object.assign({ cloneDeep: true, funcAllowed: false, mapId: false }, options);
28
+ const config = Object.assign({ cloneDeep: true, funcAllowed: false, init: false, mapId: false }, options);
22
29
  return this.map(data, config);
23
30
  }
24
31
  }
@@ -1 +1 @@
1
- {"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAAsD;AAKtD,MAAsB,SAAS;IAItB,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAKI,EAAE;QAEN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAKI,EAAE;QAEN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAKM,GAAG,CACR,IAAyC,EACzC,UAII,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,0BAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IAC7C,CAAC;IAUM,OAAO,CACZ,IAAyC,EACzC,UAII,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AAtFD,8BAsFC"}
1
+ {"version":3,"file":"core-model.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-model.model.ts"],"names":[],"mappings":";;;AAAA,0DAAsD;AAYtD,MAAsB,SAAS;IAItB,MAAM,CAAC,IAAI,CAAuD,GAAG,IAAW;QACrF,MAAM,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QACxB,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACzB,CAAC;IAKM,MAAM,CAAC,GAAG,CAEf,IAAsC,EACtC,UAMI,EAAE;QAEN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACjC,CAAC;IAUM,MAAM,CAAC,OAAO,CAEnB,IAAsC,EACtC,UAMI,EAAE;QAEN,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,IAAI,EAAE,CAAC;QACxC,OAAO,OAAO,CAAC,IAAI,CAAC;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACrC,CAAC;IAMM,IAAI,CAAsB,GAAG,IAAW;QAC7C,OAAO,IAAI,CAAC;IACd,CAAC;IAKM,GAAG,CACR,IAAyC,EACzC,UAKI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,KAAK,EAChB,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,SAAS,EACf,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,0BAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAAW,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACnH,CAAC;IAUM,OAAO,CACZ,IAAyC,EACzC,UAKI,EAAE;QAEN,MAAM,MAAM,mBACV,SAAS,EAAE,IAAI,EACf,WAAW,EAAE,KAAK,EAClB,IAAI,EAAE,KAAK,EACX,KAAK,EAAE,KAAK,IACT,OAAO,CACX,CAAC;QACF,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAChC,CAAC;CACF;AA5GD,8BA4GC"}
@@ -1,36 +1,12 @@
1
- import * as mongoose from 'mongoose';
2
- export declare abstract class CorePersistenceModel {
3
- get _id(): mongoose.Types.ObjectId;
1
+ import { Types } from 'mongoose';
2
+ import { CoreModel } from './core-model.model';
3
+ export declare abstract class CorePersistenceModel extends CoreModel {
4
+ get _id(): Types.ObjectId;
4
5
  id: string;
5
6
  createdAt: Date;
6
7
  labels: string[];
7
8
  ownerIds: string[];
8
9
  tags: string[];
9
10
  updatedAt: Date;
10
- static map<T extends CorePersistenceModel>(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
11
- cloneDeep?: boolean;
12
- funcAllowed?: boolean;
13
- item?: T;
14
- mapId?: boolean;
15
- merge?: boolean;
16
- }): T;
17
- static mapDeep<T extends CorePersistenceModel>(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
18
- cloneDeep?: boolean;
19
- funcAllowed?: boolean;
20
- item?: T;
21
- mapId?: boolean;
22
- merge?: boolean;
23
- }): T;
24
- map(data: Partial<this> | Record<string, any>, options?: {
25
- cloneDeep?: boolean;
26
- funcAllowed?: boolean;
27
- mapId?: boolean;
28
- merge?: boolean;
29
- }): this;
30
- mapDeep(data: Partial<this> | Record<string, any>, options?: {
31
- cloneDeep?: boolean;
32
- funcAllowed?: boolean;
33
- mapId?: boolean;
34
- merge?: boolean;
35
- }): this;
11
+ init(): this;
36
12
  }
@@ -11,53 +11,31 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CorePersistenceModel = void 0;
13
13
  const graphql_1 = require("@nestjs/graphql");
14
- const _ = require("lodash");
15
- const model_helper_1 = require("../helpers/model.helper");
16
14
  const mongoose_1 = require("@nestjs/mongoose");
17
- const mongoose = require("mongoose");
18
- let CorePersistenceModel = class CorePersistenceModel {
15
+ const mongoose_2 = require("mongoose");
16
+ const core_model_model_1 = require("./core-model.model");
17
+ let CorePersistenceModel = class CorePersistenceModel extends core_model_model_1.CoreModel {
19
18
  constructor() {
19
+ super(...arguments);
20
20
  this.id = undefined;
21
- this.createdAt = new Date();
22
- this.labels = [];
23
- this.ownerIds = [];
24
- this.tags = [];
25
- this.updatedAt = new Date();
21
+ this.createdAt = undefined;
22
+ this.labels = undefined;
23
+ this.ownerIds = undefined;
24
+ this.tags = undefined;
25
+ this.updatedAt = undefined;
26
26
  }
27
27
  get _id() {
28
- return new mongoose.Types.ObjectId(this.id);
28
+ return new mongoose_2.Types.ObjectId(this.id);
29
29
  }
30
- static map(data, options = {}) {
31
- const item = options.item || new this();
32
- delete options.item;
33
- return item.map(data, options);
34
- }
35
- static mapDeep(data, options = {}) {
36
- const item = options.item || new this();
37
- delete options.item;
38
- return item.mapDeep(data, options);
39
- }
40
- map(data, options = {}) {
41
- const config = Object.assign({ cloneDeep: false, funcAllowed: false, mapId: false, merge: false }, options);
42
- let preparedData = data;
43
- preparedData = model_helper_1.ModelHelper.prepareMap(preparedData, this, config);
44
- if (config.cloneDeep) {
45
- preparedData = _.cloneDeep(preparedData);
46
- }
47
- if (this['assign'] !== 'function') {
48
- if (!config.merge) {
49
- Object.assign(this, preparedData);
50
- }
51
- }
52
- else {
53
- this['assign'](preparedData, { mergeObjects: config.merge });
54
- }
30
+ init() {
31
+ super.init();
32
+ this.createdAt = this.createdAt === undefined ? new Date() : this.createdAt;
33
+ this.labels = this.labels === undefined ? [] : this.labels;
34
+ this.ownerIds = this.ownerIds === undefined ? [] : this.ownerIds;
35
+ this.tags = this.tags === undefined ? [] : this.tags;
36
+ this.updatedAt = this.tags === undefined ? this.createdAt : this.updatedAt;
55
37
  return this;
56
38
  }
57
- mapDeep(data, options = {}) {
58
- const config = Object.assign({ cloneDeep: true, funcAllowed: false, mapId: false, merge: false }, options);
59
- return this.map(data, config);
60
- }
61
39
  };
62
40
  __decorate([
63
41
  (0, graphql_1.Field)((type) => graphql_1.ID, {
@@ -68,7 +46,7 @@ __decorate([
68
46
  ], CorePersistenceModel.prototype, "id", void 0);
69
47
  __decorate([
70
48
  (0, graphql_1.Field)({ description: 'Created date', nullable: true }),
71
- (0, mongoose_1.Prop)(),
49
+ (0, mongoose_1.Prop)({ onCreate: () => new Date() }),
72
50
  __metadata("design:type", Date)
73
51
  ], CorePersistenceModel.prototype, "createdAt", void 0);
74
52
  __decorate([
@@ -105,7 +83,7 @@ CorePersistenceModel = __decorate([
105
83
  description: 'Persistence model which will be saved in DB',
106
84
  isAbstract: true,
107
85
  }),
108
- (0, mongoose_1.Schema)()
86
+ (0, mongoose_1.Schema)({ timestamps: true })
109
87
  ], CorePersistenceModel);
110
88
  exports.CorePersistenceModel = CorePersistenceModel;
111
89
  //# sourceMappingURL=core-persistence.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-persistence.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-persistence.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-persistence.model.js","sourceRoot":"","sources":["../../../../src/core/common/models/core-persistence.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAwD;AACxD,+CAAgD;AAChD,uCAAiC;AACjC,yDAA+C;AAmB/C,IAAsB,oBAAoB,GAA1C,MAAsB,oBAAqB,SAAQ,4BAAS;IAA5D;;QAoBE,OAAE,GAAW,SAAS,CAAC;QAOvB,cAAS,GAAS,SAAS,CAAC;QAU5B,WAAM,GAAa,SAAS,CAAC;QAU7B,aAAQ,GAAa,SAAS,CAAC;QAU/B,SAAI,GAAa,SAAS,CAAC;QAO3B,cAAS,GAAS,SAAS,CAAC;IAkB9B,CAAC;IA7EC,IAAI,GAAG;QACL,OAAO,IAAI,gBAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAkED,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5E,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;QAC3D,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;QACjE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC;QACrD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;QAC3E,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AA9DC;IAJC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAE,EAAE;QACnB,WAAW,EAAE,8BAA8B;QAC3C,QAAQ,EAAE,IAAI;KACf,CAAC;;gDACqB;AAOvB;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtD,IAAA,eAAI,EAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAC1B,IAAI;uDAAa;AAU5B;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;QACzB,WAAW,EAAE,sBAAsB;QACnC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,CAAC,MAAM,CAAC,CAAC;;oDACc;AAU7B;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;QACzB,WAAW,EAAE,0BAA0B;QACvC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,CAAC,MAAM,CAAC,CAAC;;sDACgB;AAU/B;IALC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE;QACzB,WAAW,EAAE,qBAAqB;QAClC,QAAQ,EAAE,IAAI;KACf,CAAC;IACD,IAAA,eAAI,EAAC,CAAC,MAAM,CAAC,CAAC;;kDACY;AAO3B;IAFC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IACtD,IAAA,eAAI,EAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,EAAE,CAAC;8BAC1B,IAAI;uDAAa;AAhER,oBAAoB;IALzC,IAAA,oBAAU,EAAC;QACV,WAAW,EAAE,6CAA6C;QAC1D,UAAU,EAAE,IAAI;KACjB,CAAC;IACD,IAAA,iBAAM,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GACP,oBAAoB,CAkFzC;AAlFqB,oDAAoB"}
@@ -1,7 +1,6 @@
1
1
  import { ArgumentMetadata, PipeTransform } from '@nestjs/common';
2
- export declare class CheckInputPipe implements PipeTransform<any> {
2
+ export declare class CheckInputPipe implements PipeTransform {
3
3
  protected readonly context: any;
4
4
  constructor(context: any);
5
- transform(value: any, { metatype }: ArgumentMetadata): Promise<any>;
6
- protected isBasicType(metatype: any): boolean;
5
+ transform(value: any, metadata: ArgumentMetadata): Promise<any>;
7
6
  }
@@ -15,35 +15,20 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.CheckInputPipe = void 0;
16
16
  const common_1 = require("@nestjs/common");
17
17
  const graphql_1 = require("@nestjs/graphql");
18
- const class_transformer_1 = require("class-transformer");
19
- const class_validator_1 = require("class-validator");
20
- const restricted_decorator_1 = require("../decorators/restricted.decorator");
21
18
  const context_helper_1 = require("../helpers/context.helper");
19
+ const input_helper_1 = require("../helpers/input.helper");
22
20
  let CheckInputPipe = class CheckInputPipe {
23
21
  constructor(context) {
24
22
  this.context = context;
25
23
  }
26
- async transform(value, { metatype }) {
27
- if (!metatype || this.isBasicType(metatype)) {
28
- return value;
29
- }
24
+ async transform(value, metadata) {
25
+ const metatype = metadata === null || metadata === void 0 ? void 0 : metadata.metatype;
30
26
  const { user } = context_helper_1.Context.getData(this.context);
31
- value = (0, restricted_decorator_1.checkRestricted)(value, user);
32
- const plainValue = JSON.parse(JSON.stringify(value));
33
- const object = (0, class_transformer_1.plainToClass)(metatype, plainValue);
34
- const errors = await (0, class_validator_1.validate)(object);
35
- if (errors.length > 0) {
36
- throw new common_1.BadRequestException('Validation failed');
37
- }
38
- return value;
39
- }
40
- isBasicType(metatype) {
41
- const types = [String, Boolean, Number, Array, Object, Buffer, ArrayBuffer];
42
- return types.includes(metatype);
27
+ return input_helper_1.InputHelper.check(value, user, metatype);
43
28
  }
44
29
  };
45
30
  CheckInputPipe = __decorate([
46
- (0, common_1.Injectable)({ scope: common_1.Scope.REQUEST }),
31
+ (0, common_1.Injectable)(),
47
32
  __param(0, (0, common_1.Inject)(graphql_1.CONTEXT)),
48
33
  __metadata("design:paramtypes", [Object])
49
34
  ], CheckInputPipe);
@@ -1 +1 @@
1
- {"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAiH;AACjH,6CAA0C;AAC1C,yDAAiD;AACjD,qDAA4D;AAC5D,6EAAqE;AACrE,8DAAoD;AAOpD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,EAAE,QAAQ,EAAoB;QAExD,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC3C,OAAO,KAAK,CAAC;SACd;QAGD,MAAM,EAAE,IAAI,EAAE,GAAQ,wBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpD,KAAK,GAAG,IAAA,sCAAe,EAAC,KAAK,EAAE,IAAI,CAAC,CAAC;QAGrC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,IAAA,gCAAY,EAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;QAClD,MAAM,MAAM,GAAsB,MAAM,IAAA,0BAAQ,EAAC,MAAM,CAAC,CAAC;QAGzD,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,4BAAmB,CAAC,mBAAmB,CAAC,CAAC;SACpD;QAGD,OAAO,KAAK,CAAC;IACf,CAAC;IAKS,WAAW,CAAC,QAAa;QACjC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;CACF,CAAA;AAxCY,cAAc;IAD1B,IAAA,mBAAU,EAAC,EAAE,KAAK,EAAE,cAAK,CAAC,OAAO,EAAE,CAAC;IAKtB,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAA;;GAJjB,cAAc,CAwC1B;AAxCY,wCAAc"}
1
+ {"version":3,"file":"check-input.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/check-input.pipe.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAqF;AACrF,6CAA0C;AAC1C,8DAAoD;AACpD,0DAAsD;AAUtD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAAgD,OAAO;QAAP,YAAO,GAAP,OAAO,CAAA;IAAG,CAAC;IAK3D,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;QAEpD,MAAM,QAAQ,GAAG,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,CAAE,QAAQ,CAAC;QAGpC,MAAM,EAAE,IAAI,EAAE,GAAQ,wBAAO,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAGpD,OAAO,0BAAW,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;IAClD,CAAC;CACF,CAAA;AAnBY,cAAc;IAD1B,IAAA,mBAAU,GAAE;IAKE,WAAA,IAAA,eAAM,EAAC,iBAAO,CAAC,CAAA;;GAJjB,cAAc,CAmB1B;AAnBY,wCAAc"}
@@ -0,0 +1,4 @@
1
+ import { PipeTransform, ArgumentMetadata } from '@nestjs/common';
2
+ export declare class MapAndValidatePipe implements PipeTransform {
3
+ transform(value: any, metadata: ArgumentMetadata): Promise<any>;
4
+ }
@@ -0,0 +1,40 @@
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.MapAndValidatePipe = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const class_transformer_1 = require("class-transformer");
12
+ const class_validator_1 = require("class-validator");
13
+ const input_helper_1 = require("../helpers/input.helper");
14
+ let MapAndValidatePipe = class MapAndValidatePipe {
15
+ async transform(value, metadata) {
16
+ var _a, _b;
17
+ const { metatype } = metadata;
18
+ if (typeof value !== 'object' || !metatype || input_helper_1.InputHelper.isBasicType(metatype)) {
19
+ return value;
20
+ }
21
+ if (!(value instanceof metatype)) {
22
+ if ((_a = metatype) === null || _a === void 0 ? void 0 : _a.map) {
23
+ value = (_b = metatype) === null || _b === void 0 ? void 0 : _b.map(value);
24
+ }
25
+ else {
26
+ value = (0, class_transformer_1.plainToInstance)(metatype, value);
27
+ }
28
+ }
29
+ const errors = await (0, class_validator_1.validate)(value);
30
+ if (errors.length > 0) {
31
+ throw new common_1.BadRequestException('Input validation failed');
32
+ }
33
+ return value;
34
+ }
35
+ };
36
+ MapAndValidatePipe = __decorate([
37
+ (0, common_1.Injectable)()
38
+ ], MapAndValidatePipe);
39
+ exports.MapAndValidatePipe = MapAndValidatePipe;
40
+ //# sourceMappingURL=map-and-validate.pipe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-and-validate.pipe.js","sourceRoot":"","sources":["../../../../src/core/common/pipes/map-and-validate.pipe.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAkG;AAClG,yDAAoD;AACpD,qDAA2C;AAC3C,0DAAsD;AAGtD,IAAa,kBAAkB,GAA/B,MAAa,kBAAkB;IAC7B,KAAK,CAAC,SAAS,CAAC,KAAU,EAAE,QAA0B;;QACpD,MAAM,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC;QAE9B,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,QAAQ,IAAI,0BAAW,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;YAC/E,OAAO,KAAK,CAAC;SACd;QAGD,IAAI,CAAC,CAAC,KAAK,YAAY,QAAQ,CAAC,EAAE;YAChC,IAAI,MAAC,QAAgB,0CAAE,GAAG,EAAE;gBAC1B,KAAK,GAAG,MAAC,QAAgB,0CAAE,GAAG,CAAC,KAAK,CAAC,CAAC;aACvC;iBAAM;gBACL,KAAK,GAAG,IAAA,mCAAe,EAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;aAC1C;SACF;QAGD,MAAM,MAAM,GAAG,MAAM,IAAA,0BAAQ,EAAC,KAAK,CAAC,CAAC;QACrC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;YACrB,MAAM,IAAI,4BAAmB,CAAC,yBAAyB,CAAC,CAAC;SAC1D;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF,CAAA;AAzBY,kBAAkB;IAD9B,IAAA,mBAAU,GAAE;GACA,kBAAkB,CAyB9B;AAzBY,gDAAkB"}
@@ -0,0 +1,3 @@
1
+ export declare type PlainInput<T> = {
2
+ [P in keyof T]?: Partial<T[P]> | Partial<PlainInput<T[P]>>;
3
+ };
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=plain-input.type.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plain-input.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/plain-input.type.ts"],"names":[],"mappings":""}
@@ -1,3 +1,5 @@
1
- export declare class CoreAuthModel {
1
+ import { CoreModel } from '../../common/models/core-model.model';
2
+ export declare class CoreAuthModel extends CoreModel {
2
3
  token: string;
4
+ init(): this;
3
5
  }
@@ -11,10 +11,16 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.CoreAuthModel = void 0;
13
13
  const graphql_1 = require("@nestjs/graphql");
14
- let CoreAuthModel = class CoreAuthModel {
14
+ const core_model_model_1 = require("../../common/models/core-model.model");
15
+ let CoreAuthModel = class CoreAuthModel extends core_model_model_1.CoreModel {
15
16
  constructor() {
17
+ super(...arguments);
16
18
  this.token = undefined;
17
19
  }
20
+ init() {
21
+ super.init();
22
+ return this;
23
+ }
18
24
  };
19
25
  __decorate([
20
26
  (0, graphql_1.Field)({ description: 'JavaScript Web Token (JWT)' }),
@@ -1 +1 @@
1
- {"version":3,"file":"core-auth.model.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AAMpD,IAAa,aAAa,GAA1B,MAAa,aAAa;IAA1B;QASE,UAAK,GAAW,SAAS,CAAC;IAC5B,CAAC;CAAA,CAAA;AADC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;4CAC3B;AATf,aAAa;IADzB,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAC7C,aAAa,CAUzB;AAVY,sCAAa"}
1
+ {"version":3,"file":"core-auth.model.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AACpD,2EAAiE;AAMjE,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,4BAAS;IAA5C;;QASE,UAAK,GAAW,SAAS,CAAC;IAc5B,CAAC;IALC,IAAI;QACF,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAdC;IADC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,4BAA4B,EAAE,CAAC;;4CAC3B;AATf,aAAa;IADzB,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GAC7C,aAAa,CAuBzB;AAvBY,sCAAa"}
@@ -3,5 +3,5 @@ import { CoreAuthService } from './services/core-auth.service';
3
3
  export declare class CoreAuthResolver {
4
4
  protected readonly authService: CoreAuthService;
5
5
  constructor(authService: CoreAuthService);
6
- signIn(email: string, password: string): Promise<CoreAuthModel>;
6
+ signIn(email: string, password: string): Promise<Partial<CoreAuthModel>>;
7
7
  }
@@ -1,4 +1,6 @@
1
+ import { Document } from 'mongoose';
1
2
  import { CorePersistenceModel } from '../../common/models/core-persistence.model';
3
+ export declare type CoreUserModelDocument = CoreUserModel & Document;
2
4
  export declare abstract class CoreUserModel extends CorePersistenceModel {
3
5
  email: string;
4
6
  firstName: string;
@@ -11,4 +13,5 @@ export declare abstract class CoreUserModel extends CorePersistenceModel {
11
13
  verified: boolean;
12
14
  hasRole(roles: string | string[]): boolean;
13
15
  hasAllRoles(roles: string | string[]): boolean;
16
+ init(): this;
14
17
  }
@@ -21,11 +21,11 @@ let CoreUserModel = class CoreUserModel extends core_persistence_model_1.CorePer
21
21
  this.firstName = undefined;
22
22
  this.lastName = undefined;
23
23
  this.password = undefined;
24
- this.roles = [];
24
+ this.roles = undefined;
25
25
  this.username = undefined;
26
26
  this.passwordResetToken = undefined;
27
27
  this.verificationToken = undefined;
28
- this.verified = false;
28
+ this.verified = undefined;
29
29
  }
30
30
  hasRole(roles) {
31
31
  if (typeof roles === 'string') {
@@ -45,6 +45,11 @@ let CoreUserModel = class CoreUserModel extends core_persistence_model_1.CorePer
45
45
  }
46
46
  return !roles ? true : roles.every((role) => this.roles.includes(role));
47
47
  }
48
+ init() {
49
+ super.init();
50
+ this.roles = this.roles === undefined ? [] : this.roles;
51
+ return this;
52
+ }
48
53
  };
49
54
  __decorate([
50
55
  (0, graphql_1.Field)({ description: 'Email of the user', nullable: true }),
@@ -91,12 +96,13 @@ __decorate([
91
96
  __metadata("design:type", String)
92
97
  ], CoreUserModel.prototype, "verificationToken", void 0);
93
98
  __decorate([
99
+ (0, graphql_1.Field)((type) => Boolean, { description: 'Verification state of the user', nullable: true }),
94
100
  (0, mongoose_1.Prop)({ type: Boolean }),
95
- __metadata("design:type", Object)
101
+ __metadata("design:type", Boolean)
96
102
  ], CoreUserModel.prototype, "verified", void 0);
97
103
  CoreUserModel = __decorate([
98
104
  (0, graphql_1.ObjectType)({ description: 'User', isAbstract: true }),
99
- (0, mongoose_1.Schema)()
105
+ (0, mongoose_1.Schema)({ timestamps: true })
100
106
  ], CoreUserModel);
101
107
  exports.CoreUserModel = CoreUserModel;
102
108
  //# sourceMappingURL=core-user.model.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":"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"}
@@ -3,30 +3,26 @@ import { CoreBasicUserService } from './core-basic-user.service';
3
3
  import { CoreUserModel } from './core-user.model';
4
4
  import { CoreUserCreateInput } from './inputs/core-user-create.input';
5
5
  import { CoreUserInput } from './inputs/core-user.input';
6
- import { Model } from 'mongoose';
6
+ import { Model, Document } from 'mongoose';
7
7
  import { EmailService } from '../../common/services/email.service';
8
8
  export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CoreBasicUserService<TUser, TUserInput, TUserCreateInput> {
9
- protected readonly userModel: Model<any>;
9
+ protected readonly userModel: Model<TUser & Document>;
10
10
  protected emailService: EmailService;
11
- protected constructor(userModel: Model<any>, emailService: EmailService);
11
+ protected constructor(userModel: Model<TUser & Document>, emailService: EmailService);
12
12
  create(input: TUserCreateInput, currentUser?: TUser, ...args: any[]): Promise<TUser>;
13
13
  delete(id: string, ...args: any[]): Promise<TUser>;
14
14
  get(id: string, ...args: any[]): Promise<TUser>;
15
15
  find(filterArgs?: FilterArgs, ...args: any[]): Promise<TUser[]>;
16
- verify(token: string): Promise<boolean>;
17
- resetPassword(token: string, newPassword: string): Promise<boolean>;
18
- requestPasswordResetMail(email: string): Promise<boolean>;
19
- setRoles(userId: string, roles: string[]): Promise<TUser>;
16
+ verify(token: string, ...args: any[]): Promise<TUser>;
17
+ resetPassword(token: string, newPassword: string, ...args: any[]): Promise<TUser>;
18
+ setPasswordResetTokenForEmail(email: string, ...args: any[]): Promise<TUser>;
19
+ setRoles(userId: string, roles: string[], ...args: any[]): Promise<TUser>;
20
20
  update(id: string, input: TUserInput, currentUser: TUser, ...args: any[]): Promise<TUser>;
21
- protected prepareInput(input: {
22
- [key: string]: any;
23
- }, currentUser?: TUser, options?: {
21
+ protected prepareInput(input: Record<string, any>, currentUser?: TUser, options?: {
24
22
  [key: string]: any;
25
23
  checkRoles?: boolean;
26
24
  clone?: boolean;
27
- }, ...args: any[]): Promise<{
28
- [key: string]: any;
29
- }>;
25
+ }, ...args: any[]): Promise<Record<string, any>>;
30
26
  protected prepareOutput(user: TUser, options?: {
31
27
  [key: string]: any;
32
28
  clone?: boolean;