@lenne.tech/nest-server 8.0.0 → 8.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.
- package/dist/core/common/args/pagination.args.js +1 -1
- package/dist/core/common/args/pagination.args.js.map +1 -1
- package/dist/core/common/helpers/config.helper.d.ts +2 -1
- package/dist/core/common/helpers/config.helper.js +11 -7
- package/dist/core/common/helpers/config.helper.js.map +1 -1
- package/dist/core/common/helpers/context.helper.d.ts +7 -1
- package/dist/core/common/helpers/context.helper.js +33 -29
- package/dist/core/common/helpers/context.helper.js.map +1 -1
- package/dist/core/common/helpers/db.helper.d.ts +35 -0
- package/dist/core/common/helpers/db.helper.js +345 -0
- package/dist/core/common/helpers/db.helper.js.map +1 -0
- package/dist/core/common/helpers/file.helper.d.ts +8 -1
- package/dist/core/common/helpers/file.helper.js +43 -31
- package/dist/core/common/helpers/file.helper.js.map +1 -1
- package/dist/core/common/helpers/filter.helper.d.ts +3 -0
- package/dist/core/common/helpers/filter.helper.js +93 -81
- package/dist/core/common/helpers/filter.helper.js.map +1 -1
- package/dist/core/common/helpers/graphql.helper.d.ts +24 -1
- package/dist/core/common/helpers/graphql.helper.js +144 -96
- package/dist/core/common/helpers/graphql.helper.js.map +1 -1
- package/dist/core/common/helpers/input.helper.d.ts +29 -3
- package/dist/core/common/helpers/input.helper.js +222 -105
- package/dist/core/common/helpers/input.helper.js.map +1 -1
- package/dist/core/common/helpers/model.helper.d.ts +11 -0
- package/dist/core/common/helpers/model.helper.js +41 -29
- package/dist/core/common/helpers/model.helper.js.map +1 -1
- package/dist/core/common/helpers/service.helper.d.ts +21 -1
- package/dist/core/common/helpers/service.helper.js +80 -72
- package/dist/core/common/helpers/service.helper.js.map +1 -1
- package/dist/core/common/inputs/combined-filter.input.js +1 -1
- package/dist/core/common/inputs/combined-filter.input.js.map +1 -1
- package/dist/core/common/inputs/core-input.input.js +1 -1
- package/dist/core/common/inputs/core-input.input.js.map +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js +1 -1
- package/dist/core/common/interceptors/check-response.interceptor.js.map +1 -1
- package/dist/core/common/interfaces/resolve-selector.interface.d.ts +5 -0
- package/dist/core/common/interfaces/resolve-selector.interface.js +3 -0
- package/dist/core/common/interfaces/resolve-selector.interface.js.map +1 -0
- package/dist/core/common/interfaces/service-options.interface.d.ts +30 -0
- package/dist/core/common/interfaces/service-options.interface.js +3 -0
- package/dist/core/common/interfaces/service-options.interface.js.map +1 -0
- package/dist/core/common/models/core-model.model.d.ts +4 -0
- package/dist/core/common/models/core-model.model.js +1 -1
- package/dist/core/common/models/core-model.model.js.map +1 -1
- package/dist/core/common/pipes/check-input.pipe.js +2 -2
- package/dist/core/common/pipes/check-input.pipe.js.map +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.js +1 -1
- package/dist/core/common/pipes/map-and-validate.pipe.js.map +1 -1
- package/dist/core/common/plugins/mongoose-id.plugin.js +1 -1
- package/dist/core/common/plugins/mongoose-id.plugin.js.map +1 -1
- package/dist/core/common/services/crud.service.d.ts +13 -0
- package/dist/core/common/services/crud.service.js +59 -0
- package/dist/core/common/services/crud.service.js.map +1 -0
- package/dist/core/common/services/email.service.js +8 -8
- package/dist/core/common/services/email.service.js.map +1 -1
- package/dist/core/common/services/module.service.d.ts +27 -0
- package/dist/core/common/services/module.service.js +41 -0
- package/dist/core/common/services/module.service.js.map +1 -0
- package/dist/core/common/types/core-model-constructor.type.d.ts +21 -0
- package/dist/core/common/types/core-model-constructor.type.js +3 -0
- package/dist/core/common/types/core-model-constructor.type.js.map +1 -0
- package/dist/core/common/types/field-selection.type.d.ts +4 -0
- package/dist/core/common/types/field-selection.type.js +3 -0
- package/dist/core/common/types/field-selection.type.js.map +1 -0
- package/dist/core/common/types/string-or-object-id.type.d.ts +2 -0
- package/dist/core/common/types/string-or-object-id.type.js +3 -0
- package/dist/core/common/types/string-or-object-id.type.js.map +1 -0
- package/dist/core/modules/auth/core-auth.resolver.d.ts +2 -1
- package/dist/core/modules/auth/core-auth.resolver.js +4 -3
- package/dist/core/modules/auth/core-auth.resolver.js.map +1 -1
- package/dist/core/modules/auth/services/core-auth-user.service.d.ts +3 -1
- package/dist/core/modules/auth/services/core-auth-user.service.js.map +1 -1
- package/dist/core/modules/auth/services/core-auth.service.d.ts +2 -1
- package/dist/core/modules/auth/services/core-auth.service.js +6 -4
- package/dist/core/modules/auth/services/core-auth.service.js.map +1 -1
- package/dist/core/modules/user/core-user.model.js +1 -1
- package/dist/core/modules/user/core-user.model.js.map +1 -1
- package/dist/core/modules/user/core-user.service.d.ts +16 -25
- package/dist/core/modules/user/core-user.service.js +79 -98
- package/dist/core/modules/user/core-user.service.js.map +1 -1
- package/dist/core.module.js +22 -19
- package/dist/core.module.js.map +1 -1
- package/dist/index.d.ts +8 -1
- package/dist/index.js +8 -1
- package/dist/index.js.map +1 -1
- package/dist/server/modules/auth/auth.resolver.d.ts +2 -1
- package/dist/server/modules/auth/auth.resolver.js +4 -3
- package/dist/server/modules/auth/auth.resolver.js.map +1 -1
- package/dist/server/modules/file/file.controller.js +1 -1
- package/dist/server/modules/file/file.controller.js.map +1 -1
- package/dist/server/modules/user/avatar.controller.js +1 -1
- package/dist/server/modules/user/avatar.controller.js.map +1 -1
- package/dist/server/modules/user/user.model.d.ts +3 -1
- package/dist/server/modules/user/user.module.js +7 -3
- package/dist/server/modules/user/user.module.js.map +1 -1
- package/dist/server/modules/user/user.resolver.d.ts +8 -7
- package/dist/server/modules/user/user.resolver.js +65 -45
- package/dist/server/modules/user/user.resolver.js.map +1 -1
- package/dist/server/modules/user/user.service.d.ts +9 -18
- package/dist/server/modules/user/user.service.js +19 -30
- package/dist/server/modules/user/user.service.js.map +1 -1
- package/dist/test/test.helper.d.ts +1 -2
- package/dist/test/test.helper.js +1 -16
- package/dist/test/test.helper.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +45 -47
- package/src/core/common/args/pagination.args.ts +2 -2
- package/src/core/common/helpers/config.helper.ts +26 -6
- package/src/core/common/helpers/context.helper.ts +42 -33
- package/src/core/common/helpers/db.helper.ts +580 -0
- package/src/core/common/helpers/file.helper.ts +76 -49
- package/src/core/common/helpers/filter.helper.ts +119 -96
- package/src/core/common/helpers/graphql.helper.ts +219 -117
- package/src/core/common/helpers/input.helper.ts +296 -106
- package/src/core/common/helpers/model.helper.ts +102 -57
- package/src/core/common/helpers/service.helper.ts +149 -117
- package/src/core/common/inputs/combined-filter.input.ts +2 -2
- package/src/core/common/inputs/core-input.input.ts +2 -2
- package/src/core/common/interceptors/check-response.interceptor.ts +2 -2
- package/src/core/common/interfaces/resolve-selector.interface.ts +9 -0
- package/src/core/common/interfaces/service-options.interface.ts +53 -0
- package/src/core/common/models/core-model.model.ts +6 -2
- package/src/core/common/pipes/check-input.pipe.ts +4 -4
- package/src/core/common/pipes/map-and-validate.pipe.ts +2 -2
- package/src/core/common/plugins/mongoose-id.plugin.js +1 -1
- package/src/core/common/services/crud.service.ts +105 -0
- package/src/core/common/services/email.service.ts +9 -9
- package/src/core/common/services/module.service.ts +114 -0
- package/src/core/common/types/core-model-constructor.type.ts +30 -0
- package/src/core/common/types/field-selection.type.ts +8 -0
- package/src/core/common/types/string-or-object-id.type.ts +3 -0
- package/src/core/modules/auth/core-auth.module.ts +1 -1
- package/src/core/modules/auth/core-auth.resolver.ts +8 -3
- package/src/core/modules/auth/services/core-auth-user.service.ts +7 -1
- package/src/core/modules/auth/services/core-auth.service.ts +14 -4
- package/src/core/modules/user/core-user.model.ts +2 -1
- package/src/core/modules/user/core-user.service.ts +131 -194
- package/src/core.module.ts +28 -24
- package/src/index.ts +8 -1
- package/src/main.ts +1 -1
- package/src/server/modules/auth/auth.resolver.ts +8 -3
- package/src/server/modules/file/file.controller.ts +2 -2
- package/src/server/modules/user/avatar.controller.ts +2 -2
- package/src/server/modules/user/user.module.ts +7 -3
- package/src/server/modules/user/user.resolver.ts +62 -37
- package/src/server/modules/user/user.service.ts +23 -53
- package/src/test/test.helper.ts +31 -30
- package/dist/core/modules/user/core-basic-user.service.d.ts +0 -17
- package/dist/core/modules/user/core-basic-user.service.js +0 -73
- package/dist/core/modules/user/core-basic-user.service.js.map +0 -1
- package/src/core/modules/user/core-basic-user.service.ts +0 -138
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CoreModel } from '../models/core-model.model';
|
|
2
|
+
export declare type CoreModelConstructor<T extends CoreModel> = {
|
|
3
|
+
new (): T;
|
|
4
|
+
init(this: new (...args: any[]) => T, ...args: any[]): T;
|
|
5
|
+
map(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options?: {
|
|
6
|
+
[key: string]: any;
|
|
7
|
+
cloneDeep?: boolean;
|
|
8
|
+
funcAllowed?: boolean;
|
|
9
|
+
init?: any;
|
|
10
|
+
item?: T;
|
|
11
|
+
mapId?: boolean;
|
|
12
|
+
}): T;
|
|
13
|
+
mapDeep(this: new (...args: any[]) => T, data: Partial<T> | Record<string, any>, options: {
|
|
14
|
+
[key: string]: any;
|
|
15
|
+
cloneDeep?: boolean;
|
|
16
|
+
funcAllowed?: boolean;
|
|
17
|
+
init?: any;
|
|
18
|
+
item?: T;
|
|
19
|
+
mapId?: boolean;
|
|
20
|
+
}): T;
|
|
21
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-model-constructor.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/core-model-constructor.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field-selection.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/field-selection.type.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"string-or-object-id.type.js","sourceRoot":"","sources":["../../../../src/core/common/types/string-or-object-id.type.ts"],"names":[],"mappings":""}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
|
+
import { GraphQLResolveInfo } from 'graphql';
|
|
1
2
|
import { CoreAuthModel } from './core-auth.model';
|
|
2
3
|
import { CoreAuthService } from './services/core-auth.service';
|
|
3
4
|
export declare class CoreAuthResolver {
|
|
4
5
|
protected readonly authService: CoreAuthService;
|
|
5
6
|
constructor(authService: CoreAuthService);
|
|
6
|
-
signIn(email: string, password: string): Promise<Partial<CoreAuthModel>>;
|
|
7
|
+
signIn(email: string, password: string, info: GraphQLResolveInfo): Promise<Partial<CoreAuthModel>>;
|
|
7
8
|
}
|
|
@@ -20,16 +20,17 @@ let CoreAuthResolver = class CoreAuthResolver {
|
|
|
20
20
|
constructor(authService) {
|
|
21
21
|
this.authService = authService;
|
|
22
22
|
}
|
|
23
|
-
async signIn(email, password) {
|
|
24
|
-
return await this.authService.signIn(email, password);
|
|
23
|
+
async signIn(email, password, info) {
|
|
24
|
+
return await this.authService.signIn(email, password, { fieldSelection: { info, select: 'signIn' } });
|
|
25
25
|
}
|
|
26
26
|
};
|
|
27
27
|
__decorate([
|
|
28
28
|
(0, graphql_1.Query)((returns) => core_auth_model_1.CoreAuthModel, { description: 'Get JWT token' }),
|
|
29
29
|
__param(0, (0, graphql_1.Args)('email')),
|
|
30
30
|
__param(1, (0, graphql_1.Args)('password')),
|
|
31
|
+
__param(2, (0, graphql_1.Info)()),
|
|
31
32
|
__metadata("design:type", Function),
|
|
32
|
-
__metadata("design:paramtypes", [String, String]),
|
|
33
|
+
__metadata("design:paramtypes", [String, String, Object]),
|
|
33
34
|
__metadata("design:returntype", Promise)
|
|
34
35
|
], CoreAuthResolver.prototype, "signIn", null);
|
|
35
36
|
CoreAuthResolver = __decorate([
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"core-auth.resolver.js","sourceRoot":"","sources":["../../../../src/core/modules/auth/core-auth.resolver.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,6CAA8D;AAE9D,uDAAkD;AAClD,oEAA+D;AAM/D,IAAa,gBAAgB,GAA7B,MAAa,gBAAgB;IAI3B,YAA+B,WAA4B;QAA5B,gBAAW,GAAX,WAAW,CAAiB;IAAG,CAAC;IAU/D,KAAK,CAAC,MAAM,CACK,KAAa,EACV,QAAgB,EAC1B,IAAwB;QAEhC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,CAAC,CAAC;IACxG,CAAC;CACF,CAAA;AAPC;IADC,IAAA,eAAK,EAAC,CAAC,OAAO,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,CAAC;IAEjE,WAAA,IAAA,cAAI,EAAC,OAAO,CAAC,CAAA;IACb,WAAA,IAAA,cAAI,EAAC,UAAU,CAAC,CAAA;IAChB,WAAA,IAAA,cAAI,GAAE,CAAA;;;;8CAGR;AApBU,gBAAgB;IAD5B,IAAA,kBAAQ,EAAC,CAAC,EAAE,EAAE,EAAE,CAAC,+BAAa,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;qCAKR,mCAAe;GAJhD,gBAAgB,CAqB5B;AArBY,4CAAgB"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
|
+
import { ServiceOptions } from '../../../common/interfaces/service-options.interface';
|
|
1
2
|
import { ICoreAuthUser } from '../interfaces/core-auth-user.interface';
|
|
2
3
|
export declare abstract class CoreAuthUserService {
|
|
3
|
-
abstract getViaEmail(email: string): Promise<ICoreAuthUser>;
|
|
4
|
+
abstract getViaEmail(email: string, serviceOptions?: ServiceOptions): Promise<ICoreAuthUser>;
|
|
5
|
+
abstract prepareOutput(output: any, options?: ServiceOptions): Promise<ICoreAuthUser>;
|
|
4
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-auth-user.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth-user.service.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"core-auth-user.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth-user.service.ts"],"names":[],"mappings":";;;AAMA,MAAsB,mBAAmB;CAUxC;AAVD,kDAUC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { JwtService } from '@nestjs/jwt';
|
|
2
|
+
import { ServiceOptions } from '../../../common/interfaces/service-options.interface';
|
|
2
3
|
import { ICoreAuthUser } from '../interfaces/core-auth-user.interface';
|
|
3
4
|
import { JwtPayload } from '../interfaces/jwt-payload.interface';
|
|
4
5
|
import { CoreAuthUserService } from './core-auth-user.service';
|
|
@@ -6,7 +7,7 @@ export declare class CoreAuthService {
|
|
|
6
7
|
protected readonly userService: CoreAuthUserService;
|
|
7
8
|
protected readonly jwtService: JwtService;
|
|
8
9
|
constructor(userService: CoreAuthUserService, jwtService: JwtService);
|
|
9
|
-
signIn(email: string, password: string): Promise<{
|
|
10
|
+
signIn(email: string, password: string, serviceOptions?: ServiceOptions): Promise<{
|
|
10
11
|
token: string;
|
|
11
12
|
user: ICoreAuthUser;
|
|
12
13
|
}>;
|
|
@@ -13,21 +13,23 @@ exports.CoreAuthService = void 0;
|
|
|
13
13
|
const common_1 = require("@nestjs/common");
|
|
14
14
|
const jwt_1 = require("@nestjs/jwt");
|
|
15
15
|
const bcrypt = require("bcrypt");
|
|
16
|
+
const config_helper_1 = require("../../../common/helpers/config.helper");
|
|
16
17
|
const core_auth_user_service_1 = require("./core-auth-user.service");
|
|
17
18
|
let CoreAuthService = class CoreAuthService {
|
|
18
19
|
constructor(userService, jwtService) {
|
|
19
20
|
this.userService = userService;
|
|
20
21
|
this.jwtService = jwtService;
|
|
21
22
|
}
|
|
22
|
-
async signIn(email, password) {
|
|
23
|
-
|
|
24
|
-
|
|
23
|
+
async signIn(email, password, serviceOptions) {
|
|
24
|
+
serviceOptions = (0, config_helper_1.merge)(serviceOptions || {}, { prepareOutput: null });
|
|
25
|
+
const user = await this.userService.getViaEmail(email, serviceOptions);
|
|
26
|
+
if (!user || !(await bcrypt.compare(password, user.password))) {
|
|
25
27
|
throw new common_1.UnauthorizedException();
|
|
26
28
|
}
|
|
27
29
|
const payload = { email: user.email };
|
|
28
30
|
return {
|
|
29
31
|
token: this.jwtService.sign(payload),
|
|
30
|
-
user,
|
|
32
|
+
user: await this.userService.prepareOutput(user),
|
|
31
33
|
};
|
|
32
34
|
}
|
|
33
35
|
async validateUser(payload) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAAyC;AACzC,iCAAiC;
|
|
1
|
+
{"version":3,"file":"core-auth.service.js","sourceRoot":"","sources":["../../../../../src/core/modules/auth/services/core-auth.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAmE;AACnE,qCAAyC;AACzC,iCAAiC;AACjC,yEAA8D;AAI9D,qEAA+D;AAM/D,IAAa,eAAe,GAA5B,MAAa,eAAe;IAC1B,YAA+B,WAAgC,EAAqB,UAAsB;QAA3E,gBAAW,GAAX,WAAW,CAAqB;QAAqB,eAAU,GAAV,UAAU,CAAY;IAAG,CAAC;IAK9G,KAAK,CAAC,MAAM,CACV,KAAa,EACb,QAAgB,EAChB,cAA+B;QAE/B,cAAc,GAAG,IAAA,qBAAK,EAAC,cAAc,IAAI,EAAE,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC;QACvE,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,MAAM,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,EAAE;YAC7D,MAAM,IAAI,8BAAqB,EAAE,CAAC;SACnC;QACD,MAAM,OAAO,GAAe,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QAClD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC;YACpC,IAAI,EAAE,MAAM,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,IAAI,CAAC;SACjD,CAAC;IACJ,CAAC;IAKD,KAAK,CAAC,YAAY,CAAC,OAAmB;QACpC,OAAO,MAAM,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IAC3D,CAAC;IAKD,SAAS,CAAC,KAAa;QACrB,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAe,CAAC;IACrD,CAAC;CACF,CAAA;AApCY,eAAe;IAD3B,IAAA,mBAAU,GAAE;qCAEiC,4CAAmB,EAAiC,gBAAU;GAD/F,eAAe,CAoC3B;AApCY,0CAAe"}
|
|
@@ -11,9 +11,9 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
11
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
12
|
exports.CoreUserModel = void 0;
|
|
13
13
|
const graphql_1 = require("@nestjs/graphql");
|
|
14
|
+
const mongoose_1 = require("@nestjs/mongoose");
|
|
14
15
|
const class_validator_1 = require("class-validator");
|
|
15
16
|
const core_persistence_model_1 = require("../../common/models/core-persistence.model");
|
|
16
|
-
const mongoose_1 = require("@nestjs/mongoose");
|
|
17
17
|
let CoreUserModel = class CoreUserModel extends core_persistence_model_1.CorePersistenceModel {
|
|
18
18
|
constructor() {
|
|
19
19
|
super(...arguments);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AACpD,qDAAsD;
|
|
1
|
+
{"version":3,"file":"core-user.model.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.model.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,6CAAoD;AACpD,+CAAkE;AAClE,qDAAsD;AAGtD,uFAAkF;AASlF,IAAsB,aAAa,GAAnC,MAAsB,aAAc,SAAQ,6CAAoB;IAAhE;;QAWE,UAAK,GAAW,SAAS,CAAC;QAQ1B,cAAS,GAAW,SAAS,CAAC;QAQ9B,aAAQ,GAAW,SAAS,CAAC;QAM7B,aAAQ,GAAW,SAAS,CAAC;QAQ7B,UAAK,GAAa,SAAS,CAAC;QAQ5B,aAAQ,GAAW,SAAS,CAAC;QAO7B,uBAAkB,GAAW,SAAS,CAAC;QAOvC,sBAAiB,GAAW,SAAS,CAAC;QAOtC,aAAQ,GAAY,SAAS,CAAC;IAwChC,CAAC;IA/BQ,OAAO,CAAC,KAAwB;QACrC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC7F,CAAC;IAKM,WAAW,CAAC,KAAwB;QACzC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC7B,KAAK,GAAG,CAAC,KAAK,CAAC,CAAC;SACjB;QACD,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YACxC,OAAO,KAAK,CAAC;SACd;QACD,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IAC1E,CAAC;IAKM,IAAI;QACT,KAAK,CAAC,IAAI,EAAE,CAAC;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;QACxD,OAAO,IAAI,CAAC;IACd,CAAC;CACF,CAAA;AAnGC;IAHC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3D,IAAA,yBAAO,GAAE;IACT,IAAA,eAAI,EAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;;4CACG;AAQ1B;IAHC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,wBAAwB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAChE,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;gDACuB;AAQ9B;IAHC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,uBAAuB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/D,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;+CACsB;AAM7B;IADC,IAAA,eAAI,GAAE;;+CACsB;AAQ7B;IAHC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,EAAE,WAAW,EAAE,mBAAmB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC/E,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;4CACqB;AAQ5B;IAHC,IAAA,eAAK,EAAC,EAAE,WAAW,EAAE,sBAAsB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC9D,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;+CACsB;AAO7B;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;yDACgC;AAOvC;IAFC,IAAA,4BAAU,GAAE;IACZ,IAAA,eAAI,GAAE;;wDAC+B;AAOtC;IAFC,IAAA,eAAK,EAAC,CAAC,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,EAAE,WAAW,EAAE,gCAAgC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;IAC3F,IAAA,eAAI,EAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;;+CACM;AAtEV,aAAa;IAFlC,IAAA,oBAAU,EAAC,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACrD,IAAA,iBAAc,EAAC,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;GACf,aAAa,CA8GlC;AA9GqB,sCAAa"}
|
|
@@ -1,30 +1,21 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
1
|
+
import { Document, Model } from 'mongoose';
|
|
2
|
+
import { ServiceOptions } from '../../common/interfaces/service-options.interface';
|
|
3
|
+
import { CrudService } from '../../common/services/crud.service';
|
|
4
|
+
import { EmailService } from '../../common/services/email.service';
|
|
5
|
+
import { CoreModelConstructor } from '../../common/types/core-model-constructor.type';
|
|
3
6
|
import { CoreUserModel } from './core-user.model';
|
|
4
7
|
import { CoreUserCreateInput } from './inputs/core-user-create.input';
|
|
5
8
|
import { CoreUserInput } from './inputs/core-user.input';
|
|
6
|
-
|
|
7
|
-
import { EmailService } from '../../common/services/email.service';
|
|
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<TUser & Document>;
|
|
9
|
+
export declare abstract class CoreUserService<TUser extends CoreUserModel, TUserInput extends CoreUserInput, TUserCreateInput extends CoreUserCreateInput> extends CrudService<TUser> {
|
|
10
10
|
protected emailService: EmailService;
|
|
11
|
-
protected
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
protected prepareInput(input: Record<string, any>, currentUser?: TUser, options?: {
|
|
22
|
-
[key: string]: any;
|
|
23
|
-
checkRoles?: boolean;
|
|
24
|
-
clone?: boolean;
|
|
25
|
-
}, ...args: any[]): Promise<Record<string, any>>;
|
|
26
|
-
protected prepareOutput(user: TUser, options?: {
|
|
27
|
-
[key: string]: any;
|
|
28
|
-
clone?: boolean;
|
|
29
|
-
}, ...args: any[]): Promise<TUser>;
|
|
11
|
+
protected readonly mainDbModel: Model<TUser & Document>;
|
|
12
|
+
protected mainModelConstructor: CoreModelConstructor<TUser>;
|
|
13
|
+
protected constructor(emailService: EmailService, mainDbModel: Model<TUser & Document>, mainModelConstructor: CoreModelConstructor<TUser>);
|
|
14
|
+
create(input: any, serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
15
|
+
getViaEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
16
|
+
getVerifiedState(token: string, serviceOptions?: ServiceOptions): Promise<boolean>;
|
|
17
|
+
verify(token: string, serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
18
|
+
resetPassword(token: string, newPassword: string, serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
19
|
+
setPasswordResetTokenForEmail(email: string, serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
20
|
+
setRoles(userId: string, roles: string[], serviceOptions?: ServiceOptions): Promise<TUser>;
|
|
30
21
|
}
|
|
@@ -3,123 +3,104 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.CoreUserService = void 0;
|
|
4
4
|
const common_1 = require("@nestjs/common");
|
|
5
5
|
const bcrypt = require("bcrypt");
|
|
6
|
-
const graphql_subscriptions_1 = require("graphql-subscriptions");
|
|
7
|
-
const filter_helper_1 = require("../../common/helpers/filter.helper");
|
|
8
|
-
const service_helper_1 = require("../../common/helpers/service.helper");
|
|
9
|
-
const core_basic_user_service_1 = require("./core-basic-user.service");
|
|
10
6
|
const crypto = require("crypto");
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
7
|
+
const config_helper_1 = require("../../common/helpers/config.helper");
|
|
8
|
+
const crud_service_1 = require("../../common/services/crud.service");
|
|
9
|
+
class CoreUserService extends crud_service_1.CrudService {
|
|
10
|
+
constructor(emailService, mainDbModel, mainModelConstructor) {
|
|
11
|
+
super();
|
|
16
12
|
this.emailService = emailService;
|
|
13
|
+
this.mainDbModel = mainDbModel;
|
|
14
|
+
this.mainModelConstructor = mainModelConstructor;
|
|
17
15
|
}
|
|
18
|
-
async create(input,
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
catch (error) {
|
|
25
|
-
if (error.code === 11000) {
|
|
26
|
-
throw new common_1.UnprocessableEntityException(`User with email address "${input.email}" already exists`);
|
|
16
|
+
async create(input, serviceOptions) {
|
|
17
|
+
(0, config_helper_1.merge)({ prepareInput: { create: true } }, serviceOptions);
|
|
18
|
+
return this.process(async (data) => {
|
|
19
|
+
const createdUser = new this.mainDbModel(Object.assign(Object.assign({}, data.input), { verificationToken: crypto.randomBytes(32).toString('hex') }));
|
|
20
|
+
try {
|
|
21
|
+
await createdUser.save();
|
|
27
22
|
}
|
|
28
|
-
|
|
29
|
-
|
|
23
|
+
catch (error) {
|
|
24
|
+
if (error.code === 11000) {
|
|
25
|
+
throw new common_1.UnprocessableEntityException(`User with email address "${data.input.email}" already exists`);
|
|
26
|
+
}
|
|
27
|
+
else {
|
|
28
|
+
throw new common_1.UnprocessableEntityException();
|
|
29
|
+
}
|
|
30
30
|
}
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
pubSub.publish('userCreated', { userCreated: preparedUser });
|
|
34
|
-
return preparedUser;
|
|
31
|
+
return createdUser;
|
|
32
|
+
}, { input, serviceOptions });
|
|
35
33
|
}
|
|
36
|
-
async
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
return deletedUser;
|
|
34
|
+
async getViaEmail(email, serviceOptions) {
|
|
35
|
+
return this.process(async () => {
|
|
36
|
+
const user = await this.mainDbModel.findOne({ email }).exec();
|
|
37
|
+
if (!user) {
|
|
38
|
+
throw new common_1.NotFoundException(`No user found with email: ${email}`);
|
|
39
|
+
}
|
|
40
|
+
return user;
|
|
41
|
+
}, { serviceOptions });
|
|
45
42
|
}
|
|
46
|
-
async
|
|
47
|
-
const user = await this.
|
|
43
|
+
async getVerifiedState(token, serviceOptions) {
|
|
44
|
+
const user = await this.mainDbModel.findOne({ verificationToken: token }).exec();
|
|
48
45
|
if (!user) {
|
|
49
|
-
throw new common_1.NotFoundException();
|
|
46
|
+
throw new common_1.NotFoundException(`No user found with verify token: ${token}`);
|
|
50
47
|
}
|
|
51
|
-
return
|
|
52
|
-
}
|
|
53
|
-
async find(filterArgs, ...args) {
|
|
54
|
-
const filterQuery = filter_helper_1.Filter.convertFilterArgsToQuery(filterArgs);
|
|
55
|
-
return await Promise.all((await this.userModel.find(filterQuery[0], null, filterQuery[1]).exec()).map((user) => {
|
|
56
|
-
return this.prepareOutput(this.model.map(user), args[0]);
|
|
57
|
-
}));
|
|
48
|
+
return user.verified;
|
|
58
49
|
}
|
|
59
|
-
async verify(token,
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
50
|
+
async verify(token, serviceOptions) {
|
|
51
|
+
return this.process(async () => {
|
|
52
|
+
const user = await this.mainDbModel.findOne({ verificationToken: token }).exec();
|
|
53
|
+
if (!user) {
|
|
54
|
+
throw new common_1.NotFoundException(`No user found with verify token: ${token}`);
|
|
55
|
+
}
|
|
56
|
+
if (!user.verificationToken) {
|
|
57
|
+
throw new Error('User has no token');
|
|
58
|
+
}
|
|
59
|
+
if (user.verified) {
|
|
60
|
+
throw new Error('User already verified');
|
|
61
|
+
}
|
|
62
|
+
await Object.assign(user, {
|
|
63
|
+
verified: true,
|
|
64
|
+
verificationToken: null,
|
|
65
|
+
}).save();
|
|
66
|
+
return user;
|
|
67
|
+
}, { serviceOptions });
|
|
77
68
|
}
|
|
78
|
-
async resetPassword(token, newPassword,
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
69
|
+
async resetPassword(token, newPassword, serviceOptions) {
|
|
70
|
+
return this.process(async () => {
|
|
71
|
+
const user = await this.mainDbModel.findOne({ passwordResetToken: token }).exec();
|
|
72
|
+
if (!user) {
|
|
73
|
+
throw new common_1.NotFoundException(`No user found with password reset token: ${token}`);
|
|
74
|
+
}
|
|
75
|
+
await Object.assign(user, {
|
|
76
|
+
password: await bcrypt.hash(newPassword, 10),
|
|
77
|
+
passwordResetToken: null,
|
|
78
|
+
}).save();
|
|
79
|
+
return user;
|
|
80
|
+
}, { serviceOptions });
|
|
88
81
|
}
|
|
89
|
-
async setPasswordResetTokenForEmail(email,
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
82
|
+
async setPasswordResetTokenForEmail(email, serviceOptions) {
|
|
83
|
+
return this.process(async () => {
|
|
84
|
+
const user = await this.mainDbModel.findOne({ email }).exec();
|
|
85
|
+
if (!user) {
|
|
86
|
+
throw new common_1.NotFoundException(`No user found with email: ${email}`);
|
|
87
|
+
}
|
|
88
|
+
const resetToken = crypto.randomBytes(32).toString('hex');
|
|
89
|
+
user.passwordResetToken = resetToken;
|
|
90
|
+
await user.save();
|
|
91
|
+
return user;
|
|
92
|
+
}, { serviceOptions });
|
|
98
93
|
}
|
|
99
|
-
async setRoles(userId, roles,
|
|
94
|
+
async setRoles(userId, roles, serviceOptions) {
|
|
100
95
|
if (!Array.isArray(roles)) {
|
|
101
96
|
throw new common_1.BadRequestException('Missing roles');
|
|
102
97
|
}
|
|
103
98
|
if (roles.some((role) => typeof role !== 'string')) {
|
|
104
99
|
throw new common_1.BadRequestException('roles contains invalid values');
|
|
105
100
|
}
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
async update(id, input, currentUser, ...args) {
|
|
110
|
-
const user = await this.userModel.findById(id).exec();
|
|
111
|
-
if (!user) {
|
|
112
|
-
throw new common_1.NotFoundException(`User not found with ID: ${id}`);
|
|
113
|
-
}
|
|
114
|
-
await this.prepareInput(input, currentUser);
|
|
115
|
-
await Object.assign(user, input).save();
|
|
116
|
-
return await this.prepareOutput(this.model.map(user), args[0]);
|
|
117
|
-
}
|
|
118
|
-
async prepareInput(input, currentUser, options = {}, ...args) {
|
|
119
|
-
return service_helper_1.ServiceHelper.prepareInput(input, currentUser, options);
|
|
120
|
-
}
|
|
121
|
-
async prepareOutput(user, options = {}, ...args) {
|
|
122
|
-
return service_helper_1.ServiceHelper.prepareOutput(user, options);
|
|
101
|
+
return this.process(async (data) => {
|
|
102
|
+
return await this.mainDbModel.findByIdAndUpdate(userId, { roles }).exec();
|
|
103
|
+
}, { serviceOptions });
|
|
123
104
|
}
|
|
124
105
|
}
|
|
125
106
|
exports.CoreUserService = CoreUserService;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":";;;AAAA,2CAAsG;AACtG,iCAAiC;AACjC,
|
|
1
|
+
{"version":3,"file":"core-user.service.js","sourceRoot":"","sources":["../../../../src/core/modules/user/core-user.service.ts"],"names":[],"mappings":"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"}
|
package/dist/core.module.js
CHANGED
|
@@ -22,33 +22,36 @@ const mailjet_service_1 = require("./core/common/services/mailjet.service");
|
|
|
22
22
|
const apollo_1 = require("@nestjs/apollo");
|
|
23
23
|
let CoreModule = CoreModule_1 = class CoreModule {
|
|
24
24
|
static forRoot(AuthService, AuthModule, options) {
|
|
25
|
-
const config = config_helper_1.
|
|
25
|
+
const config = (0, config_helper_1.merge)({
|
|
26
26
|
env: 'develop',
|
|
27
27
|
graphQl: {
|
|
28
28
|
driver: {
|
|
29
29
|
imports: [AuthModule],
|
|
30
30
|
inject: [AuthService],
|
|
31
|
-
useFactory: async (authService) =>
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
if (
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
useFactory: async (authService) => {
|
|
32
|
+
var _a;
|
|
33
|
+
return Object.assign({
|
|
34
|
+
autoSchemaFile: 'schema.gql',
|
|
35
|
+
context: ({ req }) => ({ req }),
|
|
36
|
+
installSubscriptionHandlers: true,
|
|
37
|
+
subscriptions: {
|
|
38
|
+
'subscriptions-transport-ws': {
|
|
39
|
+
onConnect: async (connectionParams) => {
|
|
40
|
+
var _a;
|
|
41
|
+
if (config.graphQl.enableSubscriptionAuth) {
|
|
42
|
+
const authToken = 'Authorization' in connectionParams && ((_a = connectionParams === null || connectionParams === void 0 ? void 0 : connectionParams.Authorization) === null || _a === void 0 ? void 0 : _a.split(' ')[1]);
|
|
43
|
+
if (authToken) {
|
|
44
|
+
const payload = authService.decodeJwt(authToken);
|
|
45
|
+
const user = await authService.validateUser(payload);
|
|
46
|
+
return { user: user, headers: connectionParams };
|
|
47
|
+
}
|
|
48
|
+
throw new common_1.UnauthorizedException();
|
|
45
49
|
}
|
|
46
|
-
|
|
47
|
-
}
|
|
50
|
+
},
|
|
48
51
|
},
|
|
49
52
|
},
|
|
50
|
-
},
|
|
51
|
-
}
|
|
53
|
+
}, (_a = options === null || options === void 0 ? void 0 : options.graphQl) === null || _a === void 0 ? void 0 : _a.driver);
|
|
54
|
+
},
|
|
52
55
|
},
|
|
53
56
|
enableSubscriptionAuth: true,
|
|
54
57
|
},
|
package/dist/core.module.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAsF;AACtF,uCAAyD;AACzD,6CAAgD;AAChD,
|
|
1
|
+
{"version":3,"file":"core.module.js","sourceRoot":"","sources":["../src/core.module.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from './core/common/enums/role.enum';
|
|
|
11
11
|
export * from './core/common/enums/sort-order.emum';
|
|
12
12
|
export * from './core/common/helpers/config.helper';
|
|
13
13
|
export * from './core/common/helpers/context.helper';
|
|
14
|
+
export * from './core/common/helpers/db.helper';
|
|
14
15
|
export * from './core/common/helpers/file.helper';
|
|
15
16
|
export * from './core/common/helpers/filter.helper';
|
|
16
17
|
export * from './core/common/helpers/graphql.helper';
|
|
@@ -25,7 +26,9 @@ export * from './core/common/inputs/sort.input';
|
|
|
25
26
|
export * from './core/common/interceptors/check-response.interceptor';
|
|
26
27
|
export * from './core/common/interfaces/core-persistence-model.interface';
|
|
27
28
|
export * from './core/common/interfaces/mailjet-options.interface';
|
|
29
|
+
export * from './core/common/interfaces/resolve-selector.interface';
|
|
28
30
|
export * from './core/common/interfaces/server-options.interface';
|
|
31
|
+
export * from './core/common/interfaces/service-options.interface';
|
|
29
32
|
export * from './core/common/models/core-model.model';
|
|
30
33
|
export * from './core/common/models/core-persistence.model';
|
|
31
34
|
export * from './core/common/pipes/check-input.pipe';
|
|
@@ -34,10 +37,15 @@ export * from './core/common/scalars/any.scalar';
|
|
|
34
37
|
export * from './core/common/scalars/date.scalar';
|
|
35
38
|
export * from './core/common/scalars/json.scalar';
|
|
36
39
|
export * from './core/common/services/config.service';
|
|
40
|
+
export * from './core/common/services/crud.service';
|
|
37
41
|
export * from './core/common/services/email.service';
|
|
38
42
|
export * from './core/common/services/mailjet.service';
|
|
43
|
+
export * from './core/common/services/module.service';
|
|
39
44
|
export * from './core/common/services/template.service';
|
|
45
|
+
export * from './core/common/types/core-model-constructor.type';
|
|
46
|
+
export * from './core/common/types/field-selection.type';
|
|
40
47
|
export * from './core/common/types/plain-input.type';
|
|
48
|
+
export * from './core/common/types/string-or-object-id.type';
|
|
41
49
|
export * from './core/modules/auth/guards/auth.guard';
|
|
42
50
|
export * from './core/modules/auth/guards/roles.guard';
|
|
43
51
|
export * from './core/modules/auth/interfaces/core-auth-user.interface';
|
|
@@ -50,7 +58,6 @@ export * from './core/modules/auth/core-auth.resolver';
|
|
|
50
58
|
export * from './core/modules/auth/jwt.strategy';
|
|
51
59
|
export * from './core/modules/user/inputs/core-user.input';
|
|
52
60
|
export * from './core/modules/user/inputs/core-user-create.input';
|
|
53
|
-
export * from './core/modules/user/core-basic-user.service';
|
|
54
61
|
export * from './core/modules/user/core-user.model';
|
|
55
62
|
export * from './core/modules/user/core-user.service';
|
|
56
63
|
export * from './test/test.helper';
|