@bearei/nest 0.0.0-stage → 2.0.0-dev.2

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 (145) hide show
  1. package/CHANGELOG.md +84 -0
  2. package/LICENSE +21 -0
  3. package/README.md +100 -2
  4. package/README.zh-CN.md +103 -0
  5. package/dist/action-log/action-log.interface.d.ts +12 -0
  6. package/dist/action-log/action-log.interface.js +2 -0
  7. package/dist/action-log/action-log.module.d.ts +2 -0
  8. package/dist/action-log/action-log.module.js +22 -0
  9. package/dist/action-log/action-log.service.d.ts +10 -0
  10. package/dist/action-log/action-log.service.js +42 -0
  11. package/dist/action-log/index.d.ts +3 -0
  12. package/dist/action-log/index.js +19 -0
  13. package/dist/authentication/authentication-context.interceptor.d.ts +7 -0
  14. package/dist/authentication/authentication-context.interceptor.js +70 -0
  15. package/dist/authentication/authentication.enum.d.ts +6 -0
  16. package/dist/authentication/authentication.enum.js +9 -0
  17. package/dist/authentication/authentication.guard.d.ts +13 -0
  18. package/dist/authentication/authentication.guard.js +92 -0
  19. package/dist/authentication/authentication.interface.d.ts +2 -0
  20. package/dist/authentication/authentication.interface.js +2 -0
  21. package/dist/authentication/index.d.ts +4 -0
  22. package/dist/authentication/index.js +20 -0
  23. package/dist/authorization/authorization.interface.d.ts +3 -0
  24. package/dist/authorization/authorization.interface.js +2 -0
  25. package/dist/authorization/authorization.module.d.ts +2 -0
  26. package/dist/authorization/authorization.module.js +22 -0
  27. package/dist/authorization/authorization.service.d.ts +10 -0
  28. package/dist/authorization/authorization.service.js +56 -0
  29. package/dist/authorization/index.d.ts +3 -0
  30. package/dist/authorization/index.js +19 -0
  31. package/dist/base-service/base-service.interface.d.ts +84 -0
  32. package/dist/base-service/base-service.interface.js +2 -0
  33. package/dist/base-service/base-service.module.d.ts +2 -0
  34. package/dist/base-service/base-service.module.js +22 -0
  35. package/dist/base-service/base-service.service.d.ts +27 -0
  36. package/dist/base-service/base-service.service.js +517 -0
  37. package/dist/base-service/index.d.ts +3 -0
  38. package/dist/base-service/index.js +19 -0
  39. package/dist/common.dto.d.ts +19 -0
  40. package/dist/common.dto.js +111 -0
  41. package/dist/common.entity.d.ts +11 -0
  42. package/dist/common.entity.js +76 -0
  43. package/dist/common.enum.d.ts +19 -0
  44. package/dist/common.enum.js +24 -0
  45. package/dist/common.interface.d.ts +19 -0
  46. package/dist/common.interface.js +2 -0
  47. package/dist/database/database.module.d.ts +5 -0
  48. package/dist/database/database.module.js +58 -0
  49. package/dist/database/index.d.ts +1 -0
  50. package/dist/database/index.js +17 -0
  51. package/dist/decorators/allow-access.decorator.d.ts +3 -0
  52. package/dist/decorators/allow-access.decorator.js +7 -0
  53. package/dist/decorators/index.d.ts +8 -0
  54. package/dist/decorators/index.js +24 -0
  55. package/dist/decorators/is-captcha.decorator.d.ts +2 -0
  56. package/dist/decorators/is-captcha.decorator.js +23 -0
  57. package/dist/decorators/is-nano-id.decorator.d.ts +2 -0
  58. package/dist/decorators/is-nano-id.decorator.js +22 -0
  59. package/dist/decorators/is-password.decorator.d.ts +2 -0
  60. package/dist/decorators/is-password.decorator.js +23 -0
  61. package/dist/decorators/is-version.decorator.d.ts +2 -0
  62. package/dist/decorators/is-version.decorator.js +22 -0
  63. package/dist/decorators/omit-entity-keys.decorator.d.ts +2 -0
  64. package/dist/decorators/omit-entity-keys.decorator.js +7 -0
  65. package/dist/decorators/require-permissions.decorator.d.ts +3 -0
  66. package/dist/decorators/require-permissions.decorator.js +7 -0
  67. package/dist/decorators/require-subscription-features.decorator.d.ts +3 -0
  68. package/dist/decorators/require-subscription-features.decorator.js +7 -0
  69. package/dist/exception/exception.enum.d.ts +12 -0
  70. package/dist/exception/exception.enum.js +16 -0
  71. package/dist/exception/exception.interface.d.ts +9 -0
  72. package/dist/exception/exception.interface.js +2 -0
  73. package/dist/exception/http.exception.d.ts +4 -0
  74. package/dist/exception/http.exception.js +47 -0
  75. package/dist/exception/index.d.ts +3 -0
  76. package/dist/exception/index.js +19 -0
  77. package/dist/external/external.interface.d.ts +58 -0
  78. package/dist/external/external.interface.js +2 -0
  79. package/dist/external/external.module.d.ts +2 -0
  80. package/dist/external/external.module.js +24 -0
  81. package/dist/external/external.service.d.ts +15 -0
  82. package/dist/external/external.service.js +160 -0
  83. package/dist/external/index.d.ts +3 -0
  84. package/dist/external/index.js +19 -0
  85. package/dist/index.d.ts +17 -0
  86. package/dist/index.js +39 -0
  87. package/dist/jwt/index.d.ts +3 -0
  88. package/dist/jwt/index.js +19 -0
  89. package/dist/jwt/jwt.interface.d.ts +15 -0
  90. package/dist/jwt/jwt.interface.js +2 -0
  91. package/dist/jwt/jwt.module.d.ts +2 -0
  92. package/dist/jwt/jwt.module.js +43 -0
  93. package/dist/jwt/jwt.service.d.ts +10 -0
  94. package/dist/jwt/jwt.service.js +52 -0
  95. package/dist/permission/index.d.ts +3 -0
  96. package/dist/permission/index.js +19 -0
  97. package/dist/permission/permission.enum.d.ts +70 -0
  98. package/dist/permission/permission.enum.js +73 -0
  99. package/dist/permission/permission.guard.d.ts +9 -0
  100. package/dist/permission/permission.guard.js +55 -0
  101. package/dist/permission/permission.interface.d.ts +2 -0
  102. package/dist/permission/permission.interface.js +2 -0
  103. package/dist/redis/index.d.ts +3 -0
  104. package/dist/redis/index.js +19 -0
  105. package/dist/redis/redis.interface.d.ts +4 -0
  106. package/dist/redis/redis.interface.js +2 -0
  107. package/dist/redis/redis.module.d.ts +2 -0
  108. package/dist/redis/redis.module.js +22 -0
  109. package/dist/redis/redis.service.d.ts +14 -0
  110. package/dist/redis/redis.service.js +51 -0
  111. package/dist/subscription-feature/index.d.ts +3 -0
  112. package/dist/subscription-feature/index.js +19 -0
  113. package/dist/subscription-feature/subscription-feature.enum.d.ts +3 -0
  114. package/dist/subscription-feature/subscription-feature.enum.js +6 -0
  115. package/dist/subscription-feature/subscription-feature.interceptor.d.ts +9 -0
  116. package/dist/subscription-feature/subscription-feature.interceptor.js +68 -0
  117. package/dist/subscription-feature/subscription-feature.interface.d.ts +2 -0
  118. package/dist/subscription-feature/subscription-feature.interface.js +2 -0
  119. package/dist/utils/create-response-sanitizer/create-response-sanitizer.utils.d.ts +1 -0
  120. package/dist/utils/create-response-sanitizer/create-response-sanitizer.utils.js +23 -0
  121. package/dist/utils/create-response-sanitizer/index.d.ts +1 -0
  122. package/dist/utils/create-response-sanitizer/index.js +17 -0
  123. package/dist/utils/extract-bearer-token/extract-bearer-token.utils.d.ts +1 -0
  124. package/dist/utils/extract-bearer-token/extract-bearer-token.utils.js +13 -0
  125. package/dist/utils/extract-bearer-token/index.d.ts +1 -0
  126. package/dist/utils/extract-bearer-token/index.js +17 -0
  127. package/dist/utils/format-mobile-number/format-mobile-number.utils.d.ts +1 -0
  128. package/dist/utils/format-mobile-number/format-mobile-number.utils.js +5 -0
  129. package/dist/utils/format-mobile-number/index.d.ts +1 -0
  130. package/dist/utils/format-mobile-number/index.js +17 -0
  131. package/dist/utils/generate-random-number-string/generate-random-number-string.utils.d.ts +1 -0
  132. package/dist/utils/generate-random-number-string/generate-random-number-string.utils.js +6 -0
  133. package/dist/utils/generate-random-number-string/index.d.ts +1 -0
  134. package/dist/utils/generate-random-number-string/index.js +17 -0
  135. package/dist/utils/index.d.ts +6 -0
  136. package/dist/utils/index.js +22 -0
  137. package/dist/utils/run-with-database-retry/index.d.ts +1 -0
  138. package/dist/utils/run-with-database-retry/index.js +17 -0
  139. package/dist/utils/run-with-database-retry/run-with-database-retry.utils.d.ts +1 -0
  140. package/dist/utils/run-with-database-retry/run-with-database-retry.utils.js +23 -0
  141. package/dist/utils/sign/index.d.ts +1 -0
  142. package/dist/utils/sign/index.js +17 -0
  143. package/dist/utils/sign/sign.utils.d.ts +5 -0
  144. package/dist/utils/sign/sign.utils.js +82 -0
  145. package/package.json +126 -3
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export * from './authentication-context.interceptor';
2
+ export * from './authentication.enum';
3
+ export * from './authentication.guard';
4
+ export * from './authentication.interface';
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./authentication-context.interceptor"), exports);
18
+ __exportStar(require("./authentication.enum"), exports);
19
+ __exportStar(require("./authentication.guard"), exports);
20
+ __exportStar(require("./authentication.interface"), exports);
@@ -0,0 +1,3 @@
1
+ import type { FindUserPermissionsOptions, FindUserSubscriptionFeaturesOptions } from '../external';
2
+ export type AssertPermissionsOptions = FindUserPermissionsOptions;
3
+ export type AssertSubscriptionFeaturesOptions = FindUserSubscriptionFeaturesOptions;
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export declare class AuthorizationModule {
2
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.AuthorizationModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const external_1 = require("../external");
12
+ const authorization_service_1 = require("./authorization.service");
13
+ let AuthorizationModule = class AuthorizationModule {
14
+ };
15
+ exports.AuthorizationModule = AuthorizationModule;
16
+ exports.AuthorizationModule = AuthorizationModule = __decorate([
17
+ (0, common_1.Module)({
18
+ exports: [authorization_service_1.AuthorizationService],
19
+ imports: [external_1.ExternalModule],
20
+ providers: [authorization_service_1.AuthorizationService]
21
+ })
22
+ ], AuthorizationModule);
@@ -0,0 +1,10 @@
1
+ import type { RequestHeaders } from '../common.interface';
2
+ import type { AssertPermissionsOptions, AssertSubscriptionFeaturesOptions } from './authorization.interface';
3
+ import { ExternalService } from '../external';
4
+ export declare class AuthorizationService {
5
+ private readonly externalService;
6
+ constructor(externalService: ExternalService);
7
+ assertPermissions(headers: RequestHeaders, options: AssertPermissionsOptions): Promise<void>;
8
+ assertSubscriptionFeatures(headers: RequestHeaders, options: AssertSubscriptionFeaturesOptions): Promise<void>;
9
+ private throwForbidden;
10
+ }
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.AuthorizationService = void 0;
13
+ const common_1 = require("@nestjs/common");
14
+ const authentication_1 = require("../authentication");
15
+ const exception_1 = require("../exception");
16
+ const external_1 = require("../external");
17
+ let AuthorizationService = class AuthorizationService {
18
+ externalService;
19
+ constructor(externalService) {
20
+ this.externalService = externalService;
21
+ }
22
+ async assertPermissions(headers, options) {
23
+ const { userId, ...restOptions } = options;
24
+ if (userId === authentication_1.ACCESS.GUEST) {
25
+ this.throwForbidden();
26
+ }
27
+ const { results: permissions } = await this.externalService.findUserPermissions(headers, userId, {
28
+ ...restOptions,
29
+ pageSize: 1
30
+ });
31
+ if (!permissions.length) {
32
+ this.throwForbidden();
33
+ }
34
+ }
35
+ async assertSubscriptionFeatures(headers, options) {
36
+ const { userId, ...restOptions } = options;
37
+ const { results: features } = await this.externalService.findUserSubscriptionFeatures(headers, userId, {
38
+ ...restOptions,
39
+ pageSize: 1
40
+ });
41
+ if (!features.length) {
42
+ (0, exception_1.throwHttpException)(exception_1.HTTP_EXCEPTION.FORBIDDEN, {
43
+ code: exception_1.HTTP_EXCEPTION_CODE.NOT_SUBSCRIBED,
44
+ message: 'No subscription to the current resource.'
45
+ });
46
+ }
47
+ }
48
+ throwForbidden() {
49
+ throw (0, exception_1.createHttpException)(exception_1.HTTP_EXCEPTION.FORBIDDEN, { message: 'No permission to access the current resource.' });
50
+ }
51
+ };
52
+ exports.AuthorizationService = AuthorizationService;
53
+ exports.AuthorizationService = AuthorizationService = __decorate([
54
+ (0, common_1.Injectable)(),
55
+ __metadata("design:paramtypes", [external_1.ExternalService])
56
+ ], AuthorizationService);
@@ -0,0 +1,3 @@
1
+ export * from './authorization.interface';
2
+ export * from './authorization.module';
3
+ export * from './authorization.service';
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./authorization.interface"), exports);
18
+ __exportStar(require("./authorization.module"), exports);
19
+ __exportStar(require("./authorization.service"), exports);
@@ -0,0 +1,84 @@
1
+ import type { Brackets, DeepPartial, FindManyOptions, FindOptionsWhere, ObjectLiteral, SelectQueryBuilder } from 'typeorm';
2
+ import type { ActionLogOptions } from '../action-log';
3
+ import type { ExcludeIdDto, ListQueryDto } from '../common.dto';
4
+ import type { RequestHeaders, ValidationMethod } from '../common.interface';
5
+ import type { HttpExceptionKind, ThrowHttpExceptionOptions } from '../exception';
6
+ export interface BaseServiceOptions {
7
+ headers?: RequestHeaders;
8
+ isLogEnabled?: boolean;
9
+ serviceName: string;
10
+ }
11
+ export interface BaseServiceCreateOptions<T> extends BaseServiceOptions {
12
+ entity: DeepPartial<T>;
13
+ preValidationOptions?: PreValidateOptionsInput<T>;
14
+ }
15
+ export interface BaseServiceDeleteOptions<T> extends BaseServiceOptions {
16
+ where: FindOptionsWhere<T>;
17
+ }
18
+ export interface BaseServiceUpdateOptions<T> extends BaseServiceOptions {
19
+ entity: DeepPartial<T>;
20
+ existingEntity?: T;
21
+ preValidationOptions?: PreValidateOptionsInput<T> & {
22
+ validationKeys?: (keyof FindOptionsWhere<T>)[];
23
+ };
24
+ where: FindOptionsWhere<T>;
25
+ }
26
+ export type QueryBuilderWhere<T extends ObjectLiteral> = ((qb: SelectQueryBuilder<T>) => string) | Brackets | ObjectLiteral | ObjectLiteral[] | string;
27
+ export interface QueryBuilderInnerJoin {
28
+ alias: string;
29
+ condition?: string;
30
+ parameters?: ObjectLiteral;
31
+ property: string;
32
+ }
33
+ export interface BaseServiceFindOptions<T extends ObjectLiteral> {
34
+ findManyOptions?: FindManyOptions<T> & {
35
+ alias?: string;
36
+ distinctOnFields?: (keyof T)[];
37
+ sortBy?: keyof T;
38
+ };
39
+ findOptions: FindOptionsWhere<T> & Partial<ListQueryDto> & {
40
+ innerJoin?: QueryBuilderInnerJoin;
41
+ queryBuilderWhere?: {
42
+ expression: QueryBuilderWhere<T>;
43
+ parameters?: ObjectLiteral;
44
+ };
45
+ totalFindOptions?: BaseServiceCountOptions<T>['findOptions'];
46
+ };
47
+ }
48
+ export interface BaseServiceCountOptions<T extends ObjectLiteral> extends Omit<BaseServiceFindOptions<T>, 'findOptions'> {
49
+ findOptions: FindOptionsWhere<T> & Partial<Omit<ListQueryDto, 'page' | 'pageSize' | 'sortOrder' | 'withTotal'>> & {
50
+ innerJoin?: QueryBuilderInnerJoin;
51
+ queryBuilderWhere?: {
52
+ expression: QueryBuilderWhere<T>;
53
+ parameters?: ObjectLiteral;
54
+ };
55
+ rawQuery?: {
56
+ parameters?: ObjectLiteral | unknown[];
57
+ sql: string;
58
+ };
59
+ };
60
+ }
61
+ export interface CountResult {
62
+ total: number;
63
+ }
64
+ export interface BaseServiceUpdateAssociationOptions<T extends ObjectLiteral> extends BaseServiceOptions {
65
+ associationIds: string[];
66
+ associationKey: string;
67
+ findOptions: BaseServiceFindOptions<T>['findOptions'];
68
+ updateOptionsByAssociationId?: Record<string, DeepPartial<T>>;
69
+ }
70
+ export interface BaseServiceFindOneOptions<T> extends Omit<BaseServiceOptions, 'headers'> {
71
+ actionLogOptions?: ActionLogOptions;
72
+ where: FindOptionsWhere<T>;
73
+ }
74
+ export interface PreValidateOptions<T> {
75
+ actionLogOptions?: ActionLogOptions;
76
+ orValidationKeyGroups?: (keyof FindOptionsWhere<T>)[][];
77
+ serviceName: string;
78
+ validationMethod?: ValidationMethod;
79
+ where: FindOptionsWhere<T> & ExcludeIdDto;
80
+ }
81
+ export type PreValidateOptionsInput<T> = Omit<PreValidateOptions<T>, 'actionLogOptions' | 'serviceName'>;
82
+ export interface ThrowBaseServiceExceptionOptions extends ThrowHttpExceptionOptions {
83
+ httpExceptionKind: HttpExceptionKind;
84
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,2 @@
1
+ export declare class BaseServiceModule {
2
+ }
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BaseServiceModule = void 0;
10
+ const common_1 = require("@nestjs/common");
11
+ const action_log_1 = require("../action-log");
12
+ const base_service_service_1 = require("./base-service.service");
13
+ let BaseServiceModule = class BaseServiceModule {
14
+ };
15
+ exports.BaseServiceModule = BaseServiceModule;
16
+ exports.BaseServiceModule = BaseServiceModule = __decorate([
17
+ (0, common_1.Module)({
18
+ exports: [base_service_service_1.BaseService],
19
+ imports: [action_log_1.ActionLogModule],
20
+ providers: [base_service_service_1.BaseService]
21
+ })
22
+ ], BaseServiceModule);
@@ -0,0 +1,27 @@
1
+ import type { DeepPartial, EntityManager, Repository } from 'typeorm';
2
+ import type { ActionLogOptions } from '../action-log';
3
+ import type { CommonEntity } from '../common.entity';
4
+ import type { PaginatedResult } from '../common.interface';
5
+ import type { BaseServiceCountOptions, BaseServiceCreateOptions, BaseServiceDeleteOptions, BaseServiceFindOneOptions, BaseServiceFindOptions, BaseServiceUpdateAssociationOptions, BaseServiceUpdateOptions, CountResult, PreValidateOptions, ThrowBaseServiceExceptionOptions } from './base-service.interface';
6
+ import { ActionLogService } from '../action-log';
7
+ export declare class BaseService {
8
+ private readonly actionLogService;
9
+ constructor(actionLogService: ActionLogService);
10
+ create<T extends CommonEntity>(repository: Repository<T>, { entity, headers, isLogEnabled, preValidationOptions, serviceName }: BaseServiceCreateOptions<T>, manager?: EntityManager): Promise<T>;
11
+ createMany<T extends CommonEntity>(repository: Repository<T>, entities: DeepPartial<T>[], manager?: EntityManager): Promise<T[]>;
12
+ delete<T extends CommonEntity>(repository: Repository<T>, { headers, isLogEnabled, serviceName, where }: BaseServiceDeleteOptions<T>, manager?: EntityManager): Promise<T>;
13
+ update<T extends CommonEntity>(repository: Repository<T>, { entity, existingEntity, headers, isLogEnabled, preValidationOptions, serviceName, where: rawWhere }: BaseServiceUpdateOptions<T>, manager?: EntityManager): Promise<T>;
14
+ find<T extends CommonEntity>(repository: Repository<T>, { findManyOptions, findOptions }: BaseServiceFindOptions<T>): Promise<PaginatedResult<T>>;
15
+ count<T extends CommonEntity>(repository: Repository<T>, { findManyOptions, findOptions }: BaseServiceCountOptions<T>): Promise<CountResult>;
16
+ findOne<T extends CommonEntity>(repository: Repository<T>, { actionLogOptions, serviceName, where }: BaseServiceFindOneOptions<T>): Promise<T>;
17
+ updateAssociation<T extends CommonEntity & {
18
+ protected?: boolean;
19
+ }>(repository: Repository<T>, { associationIds: rawAssociationIds, associationKey, findOptions, headers, isLogEnabled, serviceName, updateOptionsByAssociationId }: BaseServiceUpdateAssociationOptions<T>, entityManager?: EntityManager): Promise<T[]>;
20
+ preValidate<T extends CommonEntity>(repository: Repository<T>, { actionLogOptions, orValidationKeyGroups: rawOrValidationKeyGroups, serviceName, validationMethod, where: rawWhere }: PreValidateOptions<T>): Promise<void>;
21
+ assertNotProhibited<T extends CommonEntity>(entity: T & {
22
+ protected?: boolean;
23
+ }, actionLogOptions?: ActionLogOptions): Promise<void>;
24
+ createSuccessActionLog<T extends CommonEntity>(entities: T | T[], actionLogOptions: ActionLogOptions): Promise<void>;
25
+ throwError({ httpExceptionKind, ...restOptions }: ThrowBaseServiceExceptionOptions, actionLogOptions?: ActionLogOptions): Promise<never>;
26
+ private preValidateUpdate;
27
+ }