@lenne.tech/nest-server 10.0.0 → 10.0.3

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 (214) hide show
  1. package/dist/config.env.js +29 -17
  2. package/dist/config.env.js.map +1 -1
  3. package/dist/core/common/args/filter.args.js +3 -3
  4. package/dist/core/common/args/filter.args.js.map +1 -1
  5. package/dist/core/common/args/pagination.args.js +6 -6
  6. package/dist/core/common/args/pagination.args.js.map +1 -1
  7. package/dist/core/common/decorators/restricted.decorator.js +15 -17
  8. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  9. package/dist/core/common/filters/http-exception-log.filter.js +1 -3
  10. package/dist/core/common/filters/http-exception-log.filter.js.map +1 -1
  11. package/dist/core/common/helpers/db.helper.js +14 -14
  12. package/dist/core/common/helpers/db.helper.js.map +1 -1
  13. package/dist/core/common/helpers/file.helper.js +2 -2
  14. package/dist/core/common/helpers/file.helper.js.map +1 -1
  15. package/dist/core/common/helpers/filter.helper.d.ts +2 -2
  16. package/dist/core/common/helpers/filter.helper.js +1 -1
  17. package/dist/core/common/helpers/filter.helper.js.map +1 -1
  18. package/dist/core/common/helpers/graphql.helper.js +1 -1
  19. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  20. package/dist/core/common/helpers/input.helper.js +31 -38
  21. package/dist/core/common/helpers/input.helper.js.map +1 -1
  22. package/dist/core/common/helpers/model.helper.js +7 -7
  23. package/dist/core/common/helpers/model.helper.js.map +1 -1
  24. package/dist/core/common/helpers/service.helper.js +2 -2
  25. package/dist/core/common/helpers/service.helper.js.map +1 -1
  26. package/dist/core/common/inputs/combined-filter.input.js +3 -3
  27. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  28. package/dist/core/common/inputs/core-input.input.js +1 -1
  29. package/dist/core/common/inputs/core-input.input.js.map +1 -1
  30. package/dist/core/common/inputs/filter.input.js +3 -3
  31. package/dist/core/common/inputs/filter.input.js.map +1 -1
  32. package/dist/core/common/inputs/single-filter.input.js +4 -4
  33. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  34. package/dist/core/common/inputs/sort.input.js +1 -1
  35. package/dist/core/common/inputs/sort.input.js.map +1 -1
  36. package/dist/core/common/interceptors/check-security.interceptor.d.ts +1 -1
  37. package/dist/core/common/interceptors/check-security.interceptor.js +2 -2
  38. package/dist/core/common/interceptors/check-security.interceptor.js.map +1 -1
  39. package/dist/core/common/interfaces/server-options.interface.d.ts +27 -0
  40. package/dist/core/common/models/core-model.model.js.map +1 -1
  41. package/dist/core/common/models/core-persistence.model.js +3 -3
  42. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  43. package/dist/core/common/pipes/map-and-validate.pipe.d.ts +1 -1
  44. package/dist/core/common/pipes/map-and-validate.pipe.js +1 -1
  45. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  46. package/dist/core/common/scalars/any.scalar.js +2 -2
  47. package/dist/core/common/scalars/any.scalar.js.map +1 -1
  48. package/dist/core/common/scalars/date-timestamp.scalar.js +1 -1
  49. package/dist/core/common/scalars/date-timestamp.scalar.js.map +1 -1
  50. package/dist/core/common/scalars/date.scalar.js +1 -1
  51. package/dist/core/common/scalars/date.scalar.js.map +1 -1
  52. package/dist/core/common/scalars/json.scalar.js +2 -2
  53. package/dist/core/common/scalars/json.scalar.js.map +1 -1
  54. package/dist/core/common/services/config.service.js +7 -7
  55. package/dist/core/common/services/config.service.js.map +1 -1
  56. package/dist/core/common/services/core-cron-jobs.service.js +5 -5
  57. package/dist/core/common/services/core-cron-jobs.service.js.map +1 -1
  58. package/dist/core/common/services/crud.service.js +1 -1
  59. package/dist/core/common/services/crud.service.js.map +1 -1
  60. package/dist/core/common/services/mailjet.service.js +5 -5
  61. package/dist/core/common/services/mailjet.service.js.map +1 -1
  62. package/dist/core/common/services/module.service.js.map +1 -1
  63. package/dist/core/common/services/template.service.js +3 -3
  64. package/dist/core/common/services/template.service.js.map +1 -1
  65. package/dist/core/common/types/core-model-constructor.type.d.ts +2 -2
  66. package/dist/core/modules/auth/core-auth.module.js +3 -3
  67. package/dist/core/modules/auth/core-auth.module.js.map +1 -1
  68. package/dist/core/modules/auth/core-auth.resolver.js +5 -5
  69. package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
  70. package/dist/core/modules/auth/guards/auth.guard.js +4 -4
  71. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  72. package/dist/core/modules/auth/guards/roles.guard.js +1 -1
  73. package/dist/core/modules/auth/guards/roles.guard.js.map +1 -1
  74. package/dist/core/modules/auth/services/core-auth.service.js +5 -5
  75. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  76. package/dist/core/modules/auth/strategies/jwt.strategy.js.map +1 -1
  77. package/dist/core/modules/auth/tokens.decorator.js +2 -2
  78. package/dist/core/modules/auth/tokens.decorator.js.map +1 -1
  79. package/dist/core/modules/file/core-file-info.model.js +2 -2
  80. package/dist/core/modules/file/core-file-info.model.js.map +1 -1
  81. package/dist/core/modules/file/core-file.controller.d.ts +1 -2
  82. package/dist/core/modules/file/core-file.controller.js +3 -6
  83. package/dist/core/modules/file/core-file.controller.js.map +1 -1
  84. package/dist/core/modules/file/core-file.service.js +1 -1
  85. package/dist/core/modules/file/core-file.service.js.map +1 -1
  86. package/dist/core/modules/file/interfaces/file-upload.interface.d.ts +1 -1
  87. package/dist/core/modules/health-check/core-health-check-result.model.d.ts +8 -0
  88. package/dist/core/modules/health-check/core-health-check-result.model.js +53 -0
  89. package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -0
  90. package/dist/core/modules/health-check/core-health-check.controller.d.ts +6 -0
  91. package/dist/core/modules/health-check/core-health-check.controller.js +33 -0
  92. package/dist/core/modules/health-check/core-health-check.controller.js.map +1 -0
  93. package/dist/core/modules/health-check/core-health-check.module.d.ts +2 -0
  94. package/dist/core/modules/health-check/core-health-check.module.js +24 -0
  95. package/dist/core/modules/health-check/core-health-check.module.js.map +1 -0
  96. package/dist/core/modules/health-check/core-health-check.resolver.d.ts +6 -0
  97. package/dist/core/modules/health-check/core-health-check.resolver.js +38 -0
  98. package/dist/core/modules/health-check/core-health-check.resolver.js.map +1 -0
  99. package/dist/core/modules/health-check/core-health-check.service.d.ts +11 -0
  100. package/dist/core/modules/health-check/core-health-check.service.js +52 -0
  101. package/dist/core/modules/health-check/core-health-check.service.js.map +1 -0
  102. package/dist/core/modules/user/core-user.model.js +4 -4
  103. package/dist/core/modules/user/core-user.model.js.map +1 -1
  104. package/dist/core/modules/user/core-user.service.js +2 -2
  105. package/dist/core/modules/user/core-user.service.js.map +1 -1
  106. package/dist/core/modules/user/inputs/core-user.input.js +1 -1
  107. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  108. package/dist/core.module.js +10 -5
  109. package/dist/core.module.js.map +1 -1
  110. package/dist/index.d.ts +5 -0
  111. package/dist/index.js +5 -0
  112. package/dist/index.js.map +1 -1
  113. package/dist/main.js +1 -1
  114. package/dist/main.js.map +1 -1
  115. package/dist/server/modules/auth/auth.service.js +1 -1
  116. package/dist/server/modules/auth/auth.service.js.map +1 -1
  117. package/dist/server/modules/file/file.controller.js +1 -1
  118. package/dist/server/modules/file/file.controller.js.map +1 -1
  119. package/dist/server/modules/file/file.resolver.js +2 -2
  120. package/dist/server/modules/file/file.resolver.js.map +1 -1
  121. package/dist/server/modules/file/file.service.js +1 -1
  122. package/dist/server/modules/file/file.service.js.map +1 -1
  123. package/dist/server/modules/file/multer-config.service.js +1 -1
  124. package/dist/server/modules/file/multer-config.service.js.map +1 -1
  125. package/dist/server/modules/user/avatar.controller.js +1 -1
  126. package/dist/server/modules/user/avatar.controller.js.map +1 -1
  127. package/dist/server/modules/user/user.resolver.js +1 -1
  128. package/dist/server/modules/user/user.resolver.js.map +1 -1
  129. package/dist/server/modules/user/user.service.js +3 -3
  130. package/dist/server/modules/user/user.service.js.map +1 -1
  131. package/dist/templates/index.ejs +2 -0
  132. package/dist/templates/password-reset.ejs +3 -0
  133. package/dist/templates/welcome.ejs +3 -0
  134. package/dist/test/test.helper.d.ts +1 -1
  135. package/dist/test/test.helper.js +7 -7
  136. package/dist/test/test.helper.js.map +1 -1
  137. package/dist/tsconfig.build.tsbuildinfo +1 -1
  138. package/package.json +28 -25
  139. package/src/config.env.ts +32 -20
  140. package/src/core/common/args/filter.args.ts +4 -4
  141. package/src/core/common/args/pagination.args.ts +7 -7
  142. package/src/core/common/decorators/graphql-service-options.decorator.ts +2 -2
  143. package/src/core/common/decorators/graphql-user.decorator.ts +1 -1
  144. package/src/core/common/decorators/rest-user.decorator.ts +1 -1
  145. package/src/core/common/decorators/restricted.decorator.ts +18 -18
  146. package/src/core/common/filters/http-exception-log.filter.ts +4 -4
  147. package/src/core/common/helpers/db.helper.ts +35 -40
  148. package/src/core/common/helpers/decorator.helper.ts +1 -1
  149. package/src/core/common/helpers/file.helper.ts +2 -2
  150. package/src/core/common/helpers/filter.helper.ts +7 -8
  151. package/src/core/common/helpers/graphql.helper.ts +6 -6
  152. package/src/core/common/helpers/input.helper.ts +54 -61
  153. package/src/core/common/helpers/model.helper.ts +33 -41
  154. package/src/core/common/helpers/service.helper.ts +8 -8
  155. package/src/core/common/inputs/combined-filter.input.ts +4 -4
  156. package/src/core/common/inputs/core-input.input.ts +2 -2
  157. package/src/core/common/inputs/filter.input.ts +4 -4
  158. package/src/core/common/inputs/single-filter.input.ts +4 -4
  159. package/src/core/common/inputs/sort.input.ts +1 -1
  160. package/src/core/common/interceptors/check-response.interceptor.ts +1 -1
  161. package/src/core/common/interceptors/check-security.interceptor.ts +5 -5
  162. package/src/core/common/interfaces/server-options.interface.ts +31 -0
  163. package/src/core/common/models/core-model.model.ts +6 -4
  164. package/src/core/common/models/core-persistence.model.ts +3 -3
  165. package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
  166. package/src/core/common/scalars/any.scalar.ts +2 -2
  167. package/src/core/common/scalars/date-timestamp.scalar.ts +1 -2
  168. package/src/core/common/scalars/date.scalar.ts +1 -2
  169. package/src/core/common/scalars/json.scalar.ts +4 -4
  170. package/src/core/common/services/config.service.ts +16 -16
  171. package/src/core/common/services/core-cron-jobs.service.ts +7 -7
  172. package/src/core/common/services/crud.service.ts +22 -22
  173. package/src/core/common/services/email.service.ts +1 -1
  174. package/src/core/common/services/mailjet.service.ts +8 -8
  175. package/src/core/common/services/module.service.ts +5 -6
  176. package/src/core/common/services/template.service.ts +4 -4
  177. package/src/core/common/types/core-model-constructor.type.ts +2 -2
  178. package/src/core/modules/auth/core-auth.controller.ts +2 -2
  179. package/src/core/modules/auth/core-auth.module.ts +4 -4
  180. package/src/core/modules/auth/core-auth.resolver.ts +9 -9
  181. package/src/core/modules/auth/guards/auth.guard.ts +8 -7
  182. package/src/core/modules/auth/guards/roles.guard.ts +1 -1
  183. package/src/core/modules/auth/services/core-auth.service.ts +9 -9
  184. package/src/core/modules/auth/strategies/jwt-refresh.strategy.ts +1 -1
  185. package/src/core/modules/auth/strategies/jwt.strategy.ts +1 -1
  186. package/src/core/modules/auth/tokens.decorator.ts +6 -7
  187. package/src/core/modules/file/core-file-info.model.ts +2 -2
  188. package/src/core/modules/file/core-file.controller.ts +2 -4
  189. package/src/core/modules/file/core-file.service.ts +6 -5
  190. package/src/core/modules/file/interfaces/file-upload.interface.ts +1 -1
  191. package/src/core/modules/health-check/core-health-check-result.model.ts +46 -0
  192. package/src/core/modules/health-check/core-health-check.controller.ts +24 -0
  193. package/src/core/modules/health-check/core-health-check.module.ts +17 -0
  194. package/src/core/modules/health-check/core-health-check.resolver.ts +32 -0
  195. package/src/core/modules/health-check/core-health-check.service.ts +60 -0
  196. package/src/core/modules/user/core-user.model.ts +5 -5
  197. package/src/core/modules/user/core-user.service.ts +10 -9
  198. package/src/core/modules/user/inputs/core-user.input.ts +1 -2
  199. package/src/core.module.ts +16 -10
  200. package/src/index.ts +10 -0
  201. package/src/main.ts +2 -2
  202. package/src/server/modules/auth/auth.controller.ts +1 -1
  203. package/src/server/modules/auth/auth.resolver.ts +3 -3
  204. package/src/server/modules/auth/auth.service.ts +2 -2
  205. package/src/server/modules/file/file.controller.ts +1 -2
  206. package/src/server/modules/file/file.module.ts +1 -1
  207. package/src/server/modules/file/file.resolver.ts +4 -3
  208. package/src/server/modules/file/file.service.ts +1 -1
  209. package/src/server/modules/file/multer-config.service.ts +1 -1
  210. package/src/server/modules/user/avatar.controller.ts +3 -3
  211. package/src/server/modules/user/user.model.ts +1 -1
  212. package/src/server/modules/user/user.resolver.ts +4 -4
  213. package/src/server/modules/user/user.service.ts +4 -4
  214. package/src/test/test.helper.ts +11 -11
@@ -46,7 +46,7 @@ export class UserResolver {
46
46
  @Query(() => FindAndCountUsersResult, { description: 'Find users (via filter)' })
47
47
  async findAndCountUsers(
48
48
  @GraphQLServiceOptions({ gqlPath: 'findAndCountUsers.items' }) serviceOptions: ServiceOptions,
49
- @Args() args?: FilterArgs
49
+ @Args() args?: FilterArgs,
50
50
  ) {
51
51
  return await this.userService.findAndCount(args, {
52
52
  ...serviceOptions,
@@ -95,7 +95,7 @@ export class UserResolver {
95
95
  @Mutation(() => User, { description: 'Create a new user' })
96
96
  async createUser(
97
97
  @GraphQLServiceOptions() serviceOptions: ServiceOptions,
98
- @Args('input') input: UserCreateInput
98
+ @Args('input') input: UserCreateInput,
99
99
  ): Promise<User> {
100
100
  return await this.userService.create(input, {
101
101
  ...serviceOptions,
@@ -132,7 +132,7 @@ export class UserResolver {
132
132
  async updateUser(
133
133
  @GraphQLServiceOptions() serviceOptions: ServiceOptions,
134
134
  @Args('input') input: UserInput,
135
- @Args('id') id: string
135
+ @Args('id') id: string,
136
136
  ): Promise<User> {
137
137
  // Update user
138
138
  return await this.userService.update(id, input, {
@@ -162,7 +162,7 @@ export class UserResolver {
162
162
  filter(this: UserResolver, payload, variables, context) {
163
163
  return context?.user?.hasRole?.(RoleEnum.ADMIN);
164
164
  },
165
- resolve: (user) => user,
165
+ resolve: user => user,
166
166
  })
167
167
  async userCreated() {
168
168
  return this.pubSub.asyncIterator('userCreated');
@@ -1,6 +1,6 @@
1
+ import fs = require('fs');
1
2
  import { Inject, Injectable, UnauthorizedException, UnprocessableEntityException } from '@nestjs/common';
2
3
  import { InjectModel } from '@nestjs/mongoose';
3
- import fs = require('fs');
4
4
  import { PubSub } from 'graphql-subscriptions';
5
5
  import { Model } from 'mongoose';
6
6
  import { ServiceOptions } from '../../../core/common/interfaces/service-options.interface';
@@ -29,7 +29,7 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
29
29
  protected override readonly emailService: EmailService,
30
30
  @Inject('USER_CLASS') protected override readonly mainModelConstructor: CoreModelConstructor<User>,
31
31
  @InjectModel('User') protected override readonly mainDbModel: Model<UserDocument>,
32
- @Inject('PUB_SUB') protected readonly pubSub: PubSub
32
+ @Inject('PUB_SUB') protected readonly pubSub: PubSub,
33
33
  ) {
34
34
  super(configService, emailService, mainDbModel, mainModelConstructor);
35
35
  }
@@ -73,7 +73,7 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
73
73
  htmlTemplate: 'password-reset',
74
74
  templateData: {
75
75
  name: user.username,
76
- link: this.configService.configFastButReadOnly.email.passwordResetLink + '/' + user.passwordResetToken,
76
+ link: `${this.configService.configFastButReadOnly.email.passwordResetLink}/${user.passwordResetToken}`,
77
77
  },
78
78
  });
79
79
 
@@ -98,7 +98,7 @@ export class UserService extends CoreUserService<User, UserInput, UserCreateInpu
98
98
 
99
99
  // Remove old avatar image
100
100
  if (user.avatar) {
101
- fs.unlink(this.configService.configFastButReadOnly.staticAssets.path + '/avatars/' + user.avatar, (err) => {
101
+ fs.unlink(`${this.configService.configFastButReadOnly.staticAssets.path}/avatars/${user.avatar}`, (err) => {
102
102
  if (err) {
103
103
  console.error(err);
104
104
  }
@@ -1,10 +1,10 @@
1
- import { INestApplication } from '@nestjs/common';
2
1
  import { Blob } from 'buffer';
2
+ import util = require('util');
3
+ import { INestApplication } from '@nestjs/common';
3
4
  import { createClient } from 'graphql-ws';
4
5
  import { jsonToGraphQLQuery } from 'json-to-graphql-query';
5
6
  import { Types } from 'mongoose';
6
7
  import supertest = require('supertest');
7
- import util = require('util');
8
8
  import ws = require('ws');
9
9
  import { getStringIds } from '../core/common/helpers/db.helper';
10
10
 
@@ -158,7 +158,7 @@ export class TestHelper {
158
158
  return new Promise((resolve, reject) => {
159
159
  const request = supertest((this.app as INestApplication).getHttpServer()).get(url);
160
160
  if (token) {
161
- request.set('Authorization', 'bearer ' + token);
161
+ request.set('Authorization', `bearer ${token}`);
162
162
  }
163
163
  let data = '';
164
164
  request
@@ -220,7 +220,7 @@ export class TestHelper {
220
220
  name: null,
221
221
  type: TestGraphQLType.QUERY,
222
222
  },
223
- graphql
223
+ graphql,
224
224
  ) as TestGraphQLConfig;
225
225
 
226
226
  // Init request
@@ -256,7 +256,7 @@ export class TestHelper {
256
256
  if (config.convertEnums) {
257
257
  if (Array.isArray(config.convertEnums)) {
258
258
  for (const key of Object.values(config.convertEnums)) {
259
- const regExpStr = '(' + key + ': )\\"([_A-Z][_0-9A-Z]*)\\"';
259
+ const regExpStr = `(${key}: )\\"([_A-Z][_0-9A-Z]*)\\"`;
260
260
  const regExp = new RegExp(regExpStr, 'g');
261
261
  query = query.replace(regExp, '$1$2');
262
262
  }
@@ -362,7 +362,7 @@ export class TestHelper {
362
362
  }
363
363
  if (Array.isArray(args)) {
364
364
  objects.set(args, args);
365
- return args.map((item) => this.prepareArguments(item, objects));
365
+ return args.map(item => this.prepareArguments(item, objects));
366
366
  }
367
367
  if (typeof args === 'object') {
368
368
  objects.set(args, args);
@@ -429,7 +429,7 @@ export class TestHelper {
429
429
  log: boolean,
430
430
  logError: boolean,
431
431
  variables?: Record<string, TestGraphQLVariable>,
432
- attachments?: Record<string, string>
432
+ attachments?: Record<string, string>,
433
433
  ): Promise<any> {
434
434
  // Token
435
435
  if (token) {
@@ -460,7 +460,7 @@ export class TestHelper {
460
460
  const method: string = requestConfig.method.toLowerCase();
461
461
  let request = supertest((this.app as INestApplication).getHttpServer())[method](requestConfig.url as string);
462
462
  if (token) {
463
- request.set('Authorization', 'bearer ' + token);
463
+ request.set('Authorization', `bearer ${token}`);
464
464
  }
465
465
 
466
466
  // Process variables (incl. attachments for GraphQL)
@@ -508,7 +508,7 @@ export class TestHelper {
508
508
  }
509
509
  const map = {};
510
510
  mapArray.forEach((item, index) => {
511
- map[index] = ['variables.' + item.key + ('index' in item ? '.' + item.index : '')];
511
+ map[index] = [`variables.${item.key}${'index' in item ? `.${item.index}` : ''}`];
512
512
  });
513
513
 
514
514
  // Add operations
@@ -565,7 +565,7 @@ export class TestHelper {
565
565
  async getSubscription(graphql: TestGraphQLConfig, query: string, options?: TestGraphQLOptions) {
566
566
  // Check url
567
567
  if (!this.subscriptionUrl) {
568
- throw new Error("Missing subscriptionUrl in TestHelper: new TestHelper(app, 'ws://localhost:3030/graphql')");
568
+ throw new Error('Missing subscriptionUrl in TestHelper: new TestHelper(app, \'ws://localhost:3030/graphql\')');
569
569
  }
570
570
 
571
571
  // Prepare subscription
@@ -599,7 +599,7 @@ export class TestHelper {
599
599
  next: onNext,
600
600
  error: reject,
601
601
  complete: resolve as any,
602
- }
602
+ },
603
603
  );
604
604
  });
605
605