@lenne.tech/nest-server 11.0.1 → 11.1.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.
- package/dist/core/common/args/filter.args.js +6 -8
- package/dist/core/common/args/filter.args.js.map +1 -1
- package/dist/core/common/args/pagination.args.js +16 -16
- package/dist/core/common/args/pagination.args.js.map +1 -1
- package/dist/core/common/decorators/restricted.decorator.js +1 -1
- package/dist/core/common/decorators/restricted.decorator.js.map +1 -1
- package/dist/core/common/decorators/unified-field.decorator.d.ts +25 -0
- package/dist/core/common/decorators/unified-field.decorator.js +167 -0
- package/dist/core/common/decorators/unified-field.decorator.js.map +1 -0
- package/dist/core/common/helpers/config.helper.js +1 -1
- package/dist/core/common/helpers/config.helper.js.map +1 -1
- package/dist/core/common/helpers/db.helper.js +1 -1
- package/dist/core/common/helpers/db.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql.helper.js.map +1 -1
- package/dist/core/common/helpers/input.helper.js +2 -2
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/helpers/service.helper.js +33 -12
- package/dist/core/common/helpers/service.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.js +8 -4
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/filter.input.js +10 -7
- package/dist/core/common/inputs/filter.input.js.map +1 -1
- package/dist/core/common/inputs/single-filter.input.js +26 -18
- package/dist/core/common/inputs/single-filter.input.js.map +1 -1
- package/dist/core/common/inputs/sort.input.js +10 -4
- package/dist/core/common/inputs/sort.input.js.map +1 -1
- package/dist/core/common/models/core-persistence.model.d.ts +2 -0
- package/dist/core/common/models/core-persistence.model.js +40 -11
- package/dist/core/common/models/core-persistence.model.js.map +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.js +12 -3
- package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
- package/dist/core/common/services/brevo.service.js +1 -1
- package/dist/core/common/services/brevo.service.js.map +1 -1
- package/dist/core/common/services/config.service.js +1 -1
- package/dist/core/common/services/config.service.js.map +1 -1
- package/dist/core/common/services/email.service.js +1 -1
- package/dist/core/common/services/email.service.js.map +1 -1
- package/dist/core/common/services/model-doc.service.js +1 -1
- package/dist/core/common/services/model-doc.service.js.map +1 -1
- package/dist/core/common/services/module.service.js +1 -1
- package/dist/core/common/services/module.service.js.map +1 -1
- package/dist/core/common/services/template.service.js +2 -2
- package/dist/core/common/services/template.service.js.map +1 -1
- package/dist/core/modules/auth/core-auth.model.js +10 -11
- package/dist/core/modules/auth/core-auth.model.js.map +1 -1
- package/dist/core/modules/auth/guards/auth.guard.js +1 -1
- package/dist/core/modules/auth/guards/auth.guard.js.map +1 -1
- package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js +25 -21
- package/dist/core/modules/auth/inputs/core-auth-sign-in.input.js.map +1 -1
- package/dist/core/modules/auth/services/core-auth.service.js +1 -1
- package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
- package/dist/core/modules/health-check/core-health-check-result.model.js +18 -11
- package/dist/core/modules/health-check/core-health-check-result.model.js.map +1 -1
- package/dist/core/modules/user/core-user.service.js +2 -2
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user-create.input.js +6 -3
- package/dist/core/modules/user/inputs/core-user-create.input.js.map +1 -1
- package/dist/core/modules/user/inputs/core-user.input.js +32 -18
- package/dist/core/modules/user/inputs/core-user.input.js.map +1 -1
- package/dist/core.module.js +1 -1
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/main.js +2 -2
- package/dist/main.js.map +1 -1
- package/dist/server/common/models/persistence.model.js +1 -1
- package/dist/server/common/models/persistence.model.js.map +1 -1
- package/dist/server/modules/auth/inputs/auth-sign-up.input.js +11 -4
- package/dist/server/modules/auth/inputs/auth-sign-up.input.js.map +1 -1
- package/dist/server/modules/file/file.resolver.js +2 -2
- package/dist/server/modules/file/file.resolver.js.map +1 -1
- package/dist/server/modules/user/outputs/find-and-count-users-result.output.js +11 -4
- package/dist/server/modules/user/outputs/find-and-count-users-result.output.js.map +1 -1
- package/dist/server/modules/user/user.model.js +2 -0
- package/dist/server/modules/user/user.model.js.map +1 -1
- package/dist/server/modules/user/user.service.js +1 -1
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/test/test.helper.js +1 -1
- package/dist/test/test.helper.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +25 -25
- package/src/core/common/args/filter.args.ts +7 -10
- package/src/core/common/args/pagination.args.ts +17 -17
- package/src/core/common/decorators/restricted.decorator.ts +1 -2
- package/src/core/common/decorators/unified-field.decorator.ts +269 -0
- package/src/core/common/helpers/config.helper.ts +1 -4
- package/src/core/common/helpers/db.helper.ts +1 -2
- package/src/core/common/helpers/graphql.helper.ts +0 -1
- package/src/core/common/helpers/input.helper.ts +2 -3
- package/src/core/common/helpers/service.helper.ts +39 -14
- package/src/core/common/inputs/combined-filter.input.ts +9 -5
- package/src/core/common/inputs/filter.input.ts +14 -11
- package/src/core/common/inputs/single-filter.input.ts +28 -19
- package/src/core/common/inputs/sort.input.ts +11 -5
- package/src/core/common/models/core-persistence.model.ts +38 -12
- package/src/core/common/pipes/map-and-validate.pipe.ts +15 -4
- package/src/core/common/services/brevo.service.ts +1 -2
- package/src/core/common/services/config.service.ts +1 -2
- package/src/core/common/services/email.service.ts +1 -2
- package/src/core/common/services/model-doc.service.ts +1 -2
- package/src/core/common/services/module.service.ts +1 -2
- package/src/core/common/services/template.service.ts +2 -3
- package/src/core/modules/auth/core-auth.model.ts +11 -12
- package/src/core/modules/auth/guards/auth.guard.ts +1 -2
- package/src/core/modules/auth/inputs/core-auth-sign-in.input.ts +27 -23
- package/src/core/modules/auth/services/core-auth.service.ts +1 -2
- package/src/core/modules/health-check/core-health-check-result.model.ts +19 -12
- package/src/core/modules/user/core-user.service.ts +2 -3
- package/src/core/modules/user/inputs/core-user-create.input.ts +7 -4
- package/src/core/modules/user/inputs/core-user.input.ts +34 -20
- package/src/core.module.ts +1 -2
- package/src/index.ts +1 -0
- package/src/main.ts +2 -3
- package/src/server/common/models/persistence.model.ts +1 -2
- package/src/server/modules/auth/inputs/auth-sign-up.input.ts +12 -5
- package/src/server/modules/file/file.resolver.ts +2 -3
- package/src/server/modules/user/outputs/find-and-count-users-result.output.ts +12 -5
- package/src/server/modules/user/user.model.ts +2 -0
- package/src/server/modules/user/user.service.ts +1 -2
- package/src/test/test.helper.ts +2 -3
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { InputType } from '@nestjs/graphql';
|
|
2
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 { RoleEnum } from '../../../common/enums/role.enum';
|
|
6
7
|
import { CoreUserInput } from './core-user.input';
|
|
7
8
|
|
|
@@ -15,8 +16,10 @@ import { CoreUserInput } from './core-user.input';
|
|
|
15
16
|
@InputType({ description: 'User input to create a new user', isAbstract: true })
|
|
16
17
|
@Restricted(RoleEnum.S_EVERYONE)
|
|
17
18
|
export abstract class CoreUserCreateInput extends CoreUserInput {
|
|
18
|
-
@
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
@UnifiedField({
|
|
20
|
+
description: 'Email of the user',
|
|
21
|
+
roles: RoleEnum.S_EVERYONE,
|
|
22
|
+
validator: () => [IsEmail()],
|
|
23
|
+
})
|
|
21
24
|
override email: string = undefined;
|
|
22
25
|
}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { IsEmail
|
|
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
|
-
@
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
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
|
-
@
|
|
32
|
-
|
|
33
|
-
|
|
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
|
-
@
|
|
40
|
-
|
|
41
|
-
|
|
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
|
-
@
|
|
56
|
-
|
|
57
|
-
|
|
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
|
-
@
|
|
64
|
-
|
|
65
|
-
|
|
75
|
+
@UnifiedField({
|
|
76
|
+
description: 'Password of the user',
|
|
77
|
+
isOptional: true,
|
|
78
|
+
roles: RoleEnum.S_EVERYONE,
|
|
79
|
+
})
|
|
66
80
|
password?: string = undefined;
|
|
67
81
|
}
|
package/src/core.module.ts
CHANGED
|
@@ -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
|
@@ -19,6 +19,7 @@ export * from './core/common/decorators/rest-user.decorator';
|
|
|
19
19
|
export * from './core/common/decorators/restricted.decorator';
|
|
20
20
|
export * from './core/common/decorators/roles.decorator';
|
|
21
21
|
export * from './core/common/decorators/translatable.decorator';
|
|
22
|
+
export * from './core/common/decorators/unified-field.decorator';
|
|
22
23
|
export * from './core/common/enums/comparison-operator.enum';
|
|
23
24
|
export * from './core/common/enums/logical-operator.enum';
|
|
24
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 {
|
|
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
|
-
@
|
|
18
|
-
|
|
18
|
+
@UnifiedField({
|
|
19
|
+
description: 'firstName',
|
|
20
|
+
isOptional: true,
|
|
21
|
+
roles: RoleEnum.S_EVERYONE,
|
|
22
|
+
})
|
|
19
23
|
firstName: string = undefined;
|
|
20
24
|
|
|
21
|
-
@
|
|
22
|
-
|
|
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 {
|
|
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
|
-
@
|
|
11
|
-
|
|
11
|
+
@UnifiedField({
|
|
12
|
+
array: true,
|
|
13
|
+
description: 'Found users',
|
|
14
|
+
isOptional: true,
|
|
15
|
+
type: () => User,
|
|
16
|
+
})
|
|
12
17
|
items: User[];
|
|
13
18
|
|
|
14
|
-
@
|
|
15
|
-
|
|
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
|
*/
|
package/src/test/test.helper.ts
CHANGED
|
@@ -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
|
*/
|