@lenne.tech/nest-server 11.0.0 → 11.1.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 (129) hide show
  1. package/dist/core/common/args/filter.args.js +6 -8
  2. package/dist/core/common/args/filter.args.js.map +1 -1
  3. package/dist/core/common/args/pagination.args.js +16 -16
  4. package/dist/core/common/args/pagination.args.js.map +1 -1
  5. package/dist/core/common/decorators/graphql-service-options.decorator.js +5 -0
  6. package/dist/core/common/decorators/graphql-service-options.decorator.js.map +1 -1
  7. package/dist/core/common/decorators/rest-service-options.decorator.d.ts +2 -0
  8. package/dist/core/common/decorators/rest-service-options.decorator.js +14 -0
  9. package/dist/core/common/decorators/rest-service-options.decorator.js.map +1 -0
  10. package/dist/core/common/decorators/restricted.decorator.js +1 -1
  11. package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
  12. package/dist/core/common/decorators/translatable.decorator.d.ts +3 -0
  13. package/dist/core/common/decorators/translatable.decorator.js +22 -0
  14. package/dist/core/common/decorators/translatable.decorator.js.map +1 -0
  15. package/dist/core/common/decorators/unified-field.decorator.d.ts +25 -0
  16. package/dist/core/common/decorators/unified-field.decorator.js +144 -0
  17. package/dist/core/common/decorators/unified-field.decorator.js.map +1 -0
  18. package/dist/core/common/helpers/config.helper.js +1 -1
  19. package/dist/core/common/helpers/config.helper.js.map +1 -1
  20. package/dist/core/common/helpers/db.helper.js +1 -1
  21. package/dist/core/common/helpers/db.helper.js.map +1 -1
  22. package/dist/core/common/helpers/graphql.helper.js.map +1 -1
  23. package/dist/core/common/helpers/input.helper.js +2 -2
  24. package/dist/core/common/helpers/input.helper.js.map +1 -1
  25. package/dist/core/common/helpers/service.helper.d.ts +1 -0
  26. package/dist/core/common/helpers/service.helper.js +14 -2
  27. package/dist/core/common/helpers/service.helper.js.map +1 -1
  28. package/dist/core/common/inputs/combined-filter.input.js +8 -4
  29. package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
  30. package/dist/core/common/inputs/filter.input.js +10 -7
  31. package/dist/core/common/inputs/filter.input.js.map +1 -1
  32. package/dist/core/common/inputs/single-filter.input.js +26 -18
  33. package/dist/core/common/inputs/single-filter.input.js.map +1 -1
  34. package/dist/core/common/inputs/sort.input.js +10 -4
  35. package/dist/core/common/inputs/sort.input.js.map +1 -1
  36. package/dist/core/common/models/core-persistence.model.js +18 -11
  37. package/dist/core/common/models/core-persistence.model.js.map +1 -1
  38. package/dist/core/common/pipes/map-and-validate.pipe.js +12 -3
  39. package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
  40. package/dist/core/common/services/brevo.service.js +1 -1
  41. package/dist/core/common/services/brevo.service.js.map +1 -1
  42. package/dist/core/common/services/config.service.js +1 -1
  43. package/dist/core/common/services/config.service.js.map +1 -1
  44. package/dist/core/common/services/email.service.js +1 -1
  45. package/dist/core/common/services/email.service.js.map +1 -1
  46. package/dist/core/common/services/model-doc.service.js +1 -1
  47. package/dist/core/common/services/model-doc.service.js.map +1 -1
  48. package/dist/core/common/services/module.service.js +2 -1
  49. package/dist/core/common/services/module.service.js.map +1 -1
  50. package/dist/core/common/services/template.service.js +2 -2
  51. package/dist/core/common/services/template.service.js.map +1 -1
  52. package/dist/core/modules/auth/core-auth.model.js +10 -11
  53. package/dist/core/modules/auth/core-auth.model.js.map +1 -1
  54. package/dist/core/modules/auth/guards/auth.guard.js +1 -1
  55. package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
  56. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js +25 -21
  57. package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
  58. package/dist/core/modules/auth/services/core-auth.service.js +1 -1
  59. package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
  60. package/dist/core/modules/health-check/core-health-check-result.model.js +18 -11
  61. package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
  62. package/dist/core/modules/user/core-user.service.js +2 -2
  63. package/dist/core/modules/user/core-user.service.js.map +1 -1
  64. package/dist/core/modules/user/inputs/core-user-create.input.js +6 -3
  65. package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
  66. package/dist/core/modules/user/inputs/core-user.input.js +32 -18
  67. package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
  68. package/dist/core.module.js +1 -1
  69. package/dist/core.module.js.map +1 -1
  70. package/dist/index.d.ts +3 -0
  71. package/dist/index.js +3 -0
  72. package/dist/index.js.map +1 -1
  73. package/dist/main.js +2 -2
  74. package/dist/main.js.map +1 -1
  75. package/dist/server/common/models/persistence.model.js +1 -1
  76. package/dist/server/common/models/persistence.model.js.map +1 -1
  77. package/dist/server/modules/auth/inputs/auth-sign-up.input.js +11 -4
  78. package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
  79. package/dist/server/modules/file/file.resolver.js +2 -2
  80. package/dist/server/modules/file/file.resolver.js.map +1 -1
  81. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js +11 -4
  82. package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
  83. package/dist/server/modules/user/user.service.js +1 -1
  84. package/dist/server/modules/user/user.service.js.map +1 -1
  85. package/dist/test/test.helper.js +1 -1
  86. package/dist/test/test.helper.js.map +1 -1
  87. package/dist/tsconfig.build.tsbuildinfo +1 -1
  88. package/package.json +23 -23
  89. package/src/core/common/args/filter.args.ts +7 -10
  90. package/src/core/common/args/pagination.args.ts +17 -17
  91. package/src/core/common/decorators/graphql-service-options.decorator.ts +8 -0
  92. package/src/core/common/decorators/rest-service-options.decorator.ts +22 -0
  93. package/src/core/common/decorators/restricted.decorator.ts +1 -2
  94. package/src/core/common/decorators/translatable.decorator.ts +24 -0
  95. package/src/core/common/decorators/unified-field.decorator.ts +243 -0
  96. package/src/core/common/helpers/config.helper.ts +1 -4
  97. package/src/core/common/helpers/db.helper.ts +1 -2
  98. package/src/core/common/helpers/graphql.helper.ts +0 -1
  99. package/src/core/common/helpers/input.helper.ts +2 -3
  100. package/src/core/common/helpers/service.helper.ts +18 -3
  101. package/src/core/common/inputs/combined-filter.input.ts +9 -5
  102. package/src/core/common/inputs/filter.input.ts +14 -11
  103. package/src/core/common/inputs/single-filter.input.ts +28 -19
  104. package/src/core/common/inputs/sort.input.ts +11 -5
  105. package/src/core/common/models/core-persistence.model.ts +19 -12
  106. package/src/core/common/pipes/map-and-validate.pipe.ts +15 -4
  107. package/src/core/common/services/brevo.service.ts +1 -2
  108. package/src/core/common/services/config.service.ts +1 -2
  109. package/src/core/common/services/email.service.ts +1 -2
  110. package/src/core/common/services/model-doc.service.ts +1 -2
  111. package/src/core/common/services/module.service.ts +2 -2
  112. package/src/core/common/services/template.service.ts +2 -3
  113. package/src/core/modules/auth/core-auth.model.ts +11 -12
  114. package/src/core/modules/auth/guards/auth.guard.ts +1 -2
  115. package/src/core/modules/auth/inputs/core-auth-sign-in.input.ts +27 -23
  116. package/src/core/modules/auth/services/core-auth.service.ts +1 -2
  117. package/src/core/modules/health-check/core-health-check-result.model.ts +19 -12
  118. package/src/core/modules/user/core-user.service.ts +2 -3
  119. package/src/core/modules/user/inputs/core-user-create.input.ts +7 -4
  120. package/src/core/modules/user/inputs/core-user.input.ts +34 -20
  121. package/src/core.module.ts +1 -2
  122. package/src/index.ts +3 -0
  123. package/src/main.ts +2 -3
  124. package/src/server/common/models/persistence.model.ts +1 -2
  125. package/src/server/modules/auth/inputs/auth-sign-up.input.ts +12 -5
  126. package/src/server/modules/file/file.resolver.ts +2 -3
  127. package/src/server/modules/user/outputs/find-and-count-users-result.output.ts +12 -5
  128. package/src/server/modules/user/user.service.ts +1 -2
  129. package/src/test/test.helper.ts +2 -3
@@ -1,7 +1,8 @@
1
- import { Field, InputType } from '@nestjs/graphql';
2
- import { IsEmail, IsOptional } from 'class-validator';
1
+ import { InputType } from '@nestjs/graphql';
2
+ import { IsEmail } from 'class-validator';
3
3
 
4
4
  import { Restricted } from '../../../common/decorators/restricted.decorator';
5
+ import { UnifiedField } from '../../../common/decorators/unified-field.decorator';
5
6
  import { ProcessType } from '../../../common/enums/process-type.enum';
6
7
  import { RoleEnum } from '../../../common/enums/role.enum';
7
8
  import { CoreInput } from '../../../common/inputs/core-input.input';
@@ -19,49 +20,62 @@ export abstract class CoreUserInput extends CoreInput {
19
20
  /**
20
21
  * Email of the user
21
22
  */
22
- @Field({ description: 'Email of the user', nullable: true })
23
- @IsEmail()
24
- @IsOptional()
25
- @Restricted(RoleEnum.S_EVERYONE)
23
+ @UnifiedField({
24
+ description: 'Email of the user',
25
+ isOptional: true,
26
+ roles: RoleEnum.S_EVERYONE,
27
+ validator: () => [IsEmail()],
28
+ })
26
29
  email?: string = undefined;
27
30
 
28
31
  /**
29
32
  * First name of the user
30
33
  */
31
- @Field({ description: 'First name of the user', nullable: true })
32
- @IsOptional()
33
- @Restricted(RoleEnum.S_EVERYONE)
34
+ @UnifiedField({
35
+ description: 'Last name of the user',
36
+ isOptional: true,
37
+ roles: RoleEnum.S_EVERYONE,
38
+ })
34
39
  firstName?: string = undefined;
35
40
 
36
41
  /**
37
42
  * Last name of the user
38
43
  */
39
- @Field({ description: 'Last name of the user', nullable: true })
40
- @IsOptional()
41
- @Restricted(RoleEnum.S_EVERYONE)
44
+ @UnifiedField({
45
+ description: 'Last name of the user',
46
+ isOptional: true,
47
+ roles: RoleEnum.S_EVERYONE,
48
+ })
42
49
  lastName?: string = undefined;
43
50
 
44
51
  /**
45
52
  * Roles of the user
46
53
  */
47
- @Field(() => [String], { description: 'Roles of the user', nullable: true })
48
- @IsOptional()
49
54
  @Restricted({ processType: ProcessType.INPUT, roles: RoleEnum.ADMIN })
55
+ @UnifiedField({
56
+ array: true,
57
+ isOptional: true,
58
+ type: String,
59
+ })
50
60
  roles?: string[] = undefined;
51
61
 
52
62
  /**
53
63
  * Username / alias of the user
54
64
  */
55
- @Field({ description: 'Username / alias of the user', nullable: true })
56
- @IsOptional()
57
- @Restricted(RoleEnum.S_EVERYONE)
65
+ @UnifiedField({
66
+ description: 'Username / alias of the user',
67
+ isOptional: true,
68
+ roles: RoleEnum.S_EVERYONE,
69
+ })
58
70
  username?: string = undefined;
59
71
 
60
72
  /**
61
73
  * Password of the user
62
74
  */
63
- @Field({ description: 'Password of the user', nullable: true })
64
- @IsOptional()
65
- @Restricted(RoleEnum.S_EVERYONE)
75
+ @UnifiedField({
76
+ description: 'Password of the user',
77
+ isOptional: true,
78
+ roles: RoleEnum.S_EVERYONE,
79
+ })
66
80
  password?: string = undefined;
67
81
  }
@@ -4,6 +4,7 @@ import { APP_INTERCEPTOR, APP_PIPE } from '@nestjs/core';
4
4
  import { GraphQLModule } from '@nestjs/graphql';
5
5
  import { MongooseModule } from '@nestjs/mongoose';
6
6
  import { Context } from 'apollo-server-core';
7
+ import graphqlUploadExpress = require('graphql-upload/graphqlUploadExpress.js');
7
8
  import mongoose from 'mongoose';
8
9
 
9
10
  import { merge } from './core/common/helpers/config.helper';
@@ -19,8 +20,6 @@ import { ModelDocService } from './core/common/services/model-doc.service';
19
20
  import { TemplateService } from './core/common/services/template.service';
20
21
  import { CoreHealthCheckModule } from './core/modules/health-check/core-health-check.module';
21
22
 
22
- import graphqlUploadExpress = require('graphql-upload/graphqlUploadExpress.js');
23
-
24
23
  /**
25
24
  * Core module (dynamic)
26
25
  *
package/src/index.ts CHANGED
@@ -14,9 +14,12 @@ export * from './core/common/decorators/current-user.decorator';
14
14
  export * from './core/common/decorators/graphql-populate.decorator';
15
15
  export * from './core/common/decorators/graphql-service-options.decorator';
16
16
  export * from './core/common/decorators/graphql-user.decorator';
17
+ export * from './core/common/decorators/rest-service-options.decorator';
17
18
  export * from './core/common/decorators/rest-user.decorator';
18
19
  export * from './core/common/decorators/restricted.decorator';
19
20
  export * from './core/common/decorators/roles.decorator';
21
+ export * from './core/common/decorators/translatable.decorator';
22
+ export * from './core/common/decorators/unified-field.decorator';
20
23
  export * from './core/common/enums/comparison-operator.enum';
21
24
  export * from './core/common/enums/logical-operator.enum';
22
25
  export * from './core/common/enums/process-type.enum';
package/src/main.ts CHANGED
@@ -1,14 +1,13 @@
1
1
  import { NestFactory } from '@nestjs/core';
2
2
  import { NestExpressApplication } from '@nestjs/platform-express';
3
3
  import { exec } from 'child_process';
4
+ import compression = require('compression');
5
+ import cookieParser = require('cookie-parser');
4
6
 
5
7
  import envConfig from './config.env';
6
8
  import { HttpExceptionLogFilter } from './core/common/filters/http-exception-log.filter';
7
9
  import { ServerModule } from './server/server.module';
8
10
 
9
- import compression = require('compression');
10
- import cookieParser = require('cookie-parser');
11
-
12
11
  /**
13
12
  * Preparations for server start
14
13
  */
@@ -2,14 +2,13 @@ import { Field, ObjectType } from '@nestjs/graphql';
2
2
  import { Prop } from '@nestjs/mongoose';
3
3
  import { ApiExtraModels, ApiProperty } from '@nestjs/swagger';
4
4
  import { Types } from 'mongoose';
5
+ import mongoose = require('mongoose');
5
6
 
6
7
  import { Restricted } from '../../../core/common/decorators/restricted.decorator';
7
8
  import { RoleEnum } from '../../../core/common/enums/role.enum';
8
9
  import { CorePersistenceModel } from '../../../core/common/models/core-persistence.model';
9
10
  import { User } from '../../modules/user/user.model';
10
11
 
11
- import mongoose = require('mongoose');
12
-
13
12
  /**
14
13
  * Metadata for persistent objects
15
14
  *
@@ -1,6 +1,7 @@
1
- import { Field, InputType } from '@nestjs/graphql';
1
+ import { InputType } from '@nestjs/graphql';
2
2
 
3
3
  import { Restricted } from '../../../../core/common/decorators/restricted.decorator';
4
+ import { UnifiedField } from '../../../../core/common/decorators/unified-field.decorator';
4
5
  import { RoleEnum } from '../../../../core/common/enums/role.enum';
5
6
  import { CoreAuthSignUpInput } from '../../../../core/modules/auth/inputs/core-auth-sign-up.input';
6
7
 
@@ -14,11 +15,17 @@ export class AuthSignUpInput extends CoreAuthSignUpInput {
14
15
  // Properties
15
16
  // ===================================================================================================================
16
17
 
17
- @Field({ description: 'firstName', nullable: true })
18
- @Restricted(RoleEnum.S_EVERYONE)
18
+ @UnifiedField({
19
+ description: 'firstName',
20
+ isOptional: true,
21
+ roles: RoleEnum.S_EVERYONE,
22
+ })
19
23
  firstName: string = undefined;
20
24
 
21
- @Field({ description: 'lastName', nullable: true })
22
- @Restricted(RoleEnum.S_EVERYONE)
25
+ @UnifiedField({
26
+ description: 'lastName',
27
+ isOptional: true,
28
+ roles: RoleEnum.S_EVERYONE,
29
+ })
23
30
  lastName: string = undefined;
24
31
  }
@@ -1,5 +1,7 @@
1
1
  import { Args, Mutation, Query, Resolver } from '@nestjs/graphql';
2
2
  import { createWriteStream } from 'fs';
3
+ import fs = require('fs');
4
+ import GraphQLUpload = require('graphql-upload/GraphQLUpload.js');
3
5
 
4
6
  import { Roles } from '../../../core/common/decorators/roles.decorator';
5
7
  import { RoleEnum } from '../../../core/common/enums/role.enum';
@@ -7,9 +9,6 @@ import { FileUpload } from '../../../core/modules/file/interfaces/file-upload.in
7
9
  import { FileInfo } from './file-info.model';
8
10
  import { FileService } from './file.service';
9
11
 
10
- import fs = require('fs');
11
- import GraphQLUpload = require('graphql-upload/GraphQLUpload.js');
12
-
13
12
  /**
14
13
  * File resolver
15
14
  */
@@ -1,17 +1,24 @@
1
- import { Field, ObjectType } from '@nestjs/graphql';
1
+ import { ObjectType } from '@nestjs/graphql';
2
2
 
3
3
  import { Restricted } from '../../../../core/common/decorators/restricted.decorator';
4
+ import { UnifiedField } from '../../../../core/common/decorators/unified-field.decorator';
4
5
  import { RoleEnum } from '../../../../core/common/enums/role.enum';
5
6
  import { User } from '../user.model';
6
7
 
7
8
  @ObjectType({ description: 'Result of find and count' })
8
9
  @Restricted(RoleEnum.ADMIN)
9
10
  export class FindAndCountUsersResult {
10
- @Field(() => [User], { description: 'Found users' })
11
- @Restricted(RoleEnum.S_EVERYONE)
11
+ @UnifiedField({
12
+ array: true,
13
+ description: 'Found users',
14
+ isOptional: true,
15
+ type: () => User,
16
+ })
12
17
  items: User[];
13
18
 
14
- @Field({ description: 'Total count (skip/offset and limit/take are ignored in the count)' })
15
- @Restricted(RoleEnum.S_EVERYONE)
19
+ @UnifiedField({
20
+ description: 'Total count (skip/offset and limit/take are ignored in the count)',
21
+ isOptional: false,
22
+ })
16
23
  totalCount: number;
17
24
  }
@@ -1,5 +1,6 @@
1
1
  import { Inject, Injectable, UnauthorizedException, UnprocessableEntityException } from '@nestjs/common';
2
2
  import { InjectModel } from '@nestjs/mongoose';
3
+ import fs = require('fs');
3
4
  import { PubSub } from 'graphql-subscriptions';
4
5
  import { Model } from 'mongoose';
5
6
 
@@ -12,8 +13,6 @@ import { UserCreateInput } from './inputs/user-create.input';
12
13
  import { UserInput } from './inputs/user.input';
13
14
  import { User, UserDocument } from './user.model';
14
15
 
15
- import fs = require('fs');
16
-
17
16
  /**
18
17
  * User service
19
18
  */
@@ -3,13 +3,12 @@ import { Blob } from 'buffer';
3
3
  import { createClient } from 'graphql-ws';
4
4
  import { jsonToGraphQLQuery } from 'json-to-graphql-query';
5
5
  import { Types } from 'mongoose';
6
-
7
- import { getStringIds } from '../core/common/helpers/db.helper';
8
-
9
6
  import supertest = require('supertest');
10
7
  import util = require('util');
11
8
  import ws = require('ws');
12
9
 
10
+ import { getStringIds } from '../core/common/helpers/db.helper';
11
+
13
12
  /**
14
13
  * GraphQL request type
15
14
  */