@nest-omni/core 2.0.1-9 → 3.1.1-9

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 (205) hide show
  1. package/index.js +4 -0
  2. package/package.json +150 -46
  3. package/.hygen/new/crud/controller.ejs.t +0 -82
  4. package/.hygen/new/crud/create.dto.ejs.t +0 -12
  5. package/.hygen/new/crud/entity.ejs.t +0 -26
  6. package/.hygen/new/crud/get.dto.ejs.t +0 -19
  7. package/.hygen/new/crud/index-dto.ejs.t +0 -29
  8. package/.hygen/new/crud/index-response.dto.ejs.t +0 -18
  9. package/.hygen/new/crud/module.ejs.t +0 -32
  10. package/.hygen/new/crud/prompt.js +0 -89
  11. package/.hygen/new/crud/service.ejs.t +0 -76
  12. package/.hygen/new/crud/update.dto.ejs.t +0 -11
  13. package/.hygen/new/module/controller.ejs.t +0 -93
  14. package/.hygen/new/module/create-command.ejs.t +0 -90
  15. package/.hygen/new/module/create.dto.ejs.t +0 -11
  16. package/.hygen/new/module/dto.ejs.t +0 -24
  17. package/.hygen/new/module/entity.ejs.t +0 -33
  18. package/.hygen/new/module/get-query.ejs.t +0 -57
  19. package/.hygen/new/module/module.ejs.t +0 -44
  20. package/.hygen/new/module/not-found.exception.ejs.t +0 -18
  21. package/.hygen/new/module/page-options.dto.ejs.t +0 -12
  22. package/.hygen/new/module/prompt.js +0 -104
  23. package/.hygen/new/module/repository.ejs.t +0 -16
  24. package/.hygen/new/module/service.ejs.t +0 -139
  25. package/.hygen/new/module/translation-dto.ejs.t +0 -27
  26. package/.hygen/new/module/translation-entity.ejs.t +0 -40
  27. package/.hygen/new/module/translation-repository.ejs.t +0 -16
  28. package/.hygen/new/module/update.dto.ejs.t +0 -10
  29. package/.hygen.js +0 -116
  30. package/common/abstract-client.service.d.ts +0 -16
  31. package/common/abstract-client.service.js +0 -35
  32. package/common/abstract.entity.d.ts +0 -18
  33. package/common/abstract.entity.js +0 -78
  34. package/common/boilerplate.polyfill.d.ts +0 -39
  35. package/common/boilerplate.polyfill.js +0 -77
  36. package/common/dto/abstract.dto.d.ts +0 -13
  37. package/common/dto/abstract.dto.js +0 -59
  38. package/common/dto/bulk-id.dto.d.ts +0 -3
  39. package/common/dto/bulk-id.dto.js +0 -27
  40. package/common/dto/create-translation.dto.d.ts +0 -5
  41. package/common/dto/create-translation.dto.js +0 -25
  42. package/common/dto/index.d.ts +0 -6
  43. package/common/dto/index.js +0 -22
  44. package/common/dto/page-meta.dto.d.ts +0 -15
  45. package/common/dto/page-meta.dto.js +0 -48
  46. package/common/dto/page-options.dto.d.ts +0 -8
  47. package/common/dto/page-options.dto.js +0 -52
  48. package/common/dto/page.dto.d.ts +0 -11
  49. package/common/dto/page.dto.js +0 -53
  50. package/common/index.d.ts +0 -7
  51. package/common/index.js +0 -23
  52. package/common/snake-naming.strategy.d.ts +0 -11
  53. package/common/snake-naming.strategy.js +0 -37
  54. package/common/types.d.ts +0 -9
  55. package/common/types.js +0 -2
  56. package/common/utils.d.ts +0 -3
  57. package/common/utils.js +0 -24
  58. package/constants/index.d.ts +0 -2
  59. package/constants/index.js +0 -18
  60. package/constants/language-code.d.ts +0 -5
  61. package/constants/language-code.js +0 -9
  62. package/constants/order.d.ts +0 -4
  63. package/constants/order.js +0 -8
  64. package/decorators/api-page-ok-response.decorator.d.ts +0 -5
  65. package/decorators/api-page-ok-response.decorator.js +0 -24
  66. package/decorators/auth-user.decorator.d.ts +0 -1
  67. package/decorators/auth-user.decorator.js +0 -14
  68. package/decorators/controller.decorator.d.ts +0 -1
  69. package/decorators/controller.decorator.js +0 -10
  70. package/decorators/field.decorators.d.ts +0 -79
  71. package/decorators/field.decorators.js +0 -497
  72. package/decorators/http.decorators.d.ts +0 -3
  73. package/decorators/http.decorators.js +0 -7
  74. package/decorators/index.d.ts +0 -12
  75. package/decorators/index.js +0 -28
  76. package/decorators/operation.decorator.d.ts +0 -1
  77. package/decorators/operation.decorator.js +0 -6
  78. package/decorators/property.decorators.d.ts +0 -15
  79. package/decorators/property.decorators.js +0 -31
  80. package/decorators/public-route.decorator.d.ts +0 -3
  81. package/decorators/public-route.decorator.js +0 -7
  82. package/decorators/swagger.schema.d.ts +0 -5
  83. package/decorators/swagger.schema.js +0 -78
  84. package/decorators/timestamp-column.decorator.d.ts +0 -1
  85. package/decorators/timestamp-column.decorator.js +0 -27
  86. package/decorators/transform.decorators.d.ts +0 -8
  87. package/decorators/transform.decorators.js +0 -100
  88. package/decorators/translate.decorator.d.ts +0 -5
  89. package/decorators/translate.decorator.js +0 -17
  90. package/decorators/use-dto.decorator.d.ts +0 -4
  91. package/decorators/use-dto.decorator.js +0 -8
  92. package/decorators/user-check.decorator.d.ts +0 -6
  93. package/decorators/user-check.decorator.js +0 -21
  94. package/decorators/user.decorator.d.ts +0 -12
  95. package/decorators/user.decorator.js +0 -44
  96. package/decorators/user_auth.decorator.d.ts +0 -1
  97. package/decorators/user_auth.decorator.js +0 -15
  98. package/decorators/validator.decorators.d.ts +0 -11
  99. package/decorators/validator.decorators.js +0 -78
  100. package/exceptions/file-not-image.exception.d.ts +0 -4
  101. package/exceptions/file-not-image.exception.js +0 -10
  102. package/exceptions/index.d.ts +0 -2
  103. package/exceptions/index.js +0 -18
  104. package/exceptions/page-type.exception.d.ts +0 -4
  105. package/exceptions/page-type.exception.js +0 -10
  106. package/exceptions/user-not-found.exception.d.ts +0 -4
  107. package/exceptions/user-not-found.exception.js +0 -10
  108. package/filters/bad-request.filter.d.ts +0 -5
  109. package/filters/bad-request.filter.js +0 -71
  110. package/filters/constraint-errors.d.ts +0 -1
  111. package/filters/constraint-errors.js +0 -6
  112. package/filters/index.d.ts +0 -3
  113. package/filters/index.js +0 -19
  114. package/filters/query-failed.filter.d.ts +0 -10
  115. package/filters/query-failed.filter.js +0 -42
  116. package/health-checker/health-checker.controller.d.ts +0 -15
  117. package/health-checker/health-checker.controller.js +0 -72
  118. package/health-checker/health-checker.module.d.ts +0 -2
  119. package/health-checker/health-checker.module.js +0 -25
  120. package/health-checker/health-indicators/service.indicator.d.ts +0 -8
  121. package/health-checker/health-indicators/service.indicator.js +0 -66
  122. package/helpers/common.helper.d.ts +0 -3
  123. package/helpers/common.helper.js +0 -36
  124. package/helpers/date.helper.d.ts +0 -10
  125. package/helpers/date.helper.js +0 -57
  126. package/helpers/index.d.ts +0 -2
  127. package/helpers/index.js +0 -18
  128. package/i18n/en_US/validation.json +0 -41
  129. package/i18n/zh_CN/validation.json +0 -41
  130. package/index.d.ts +0 -11
  131. package/interceptors/index.d.ts +0 -2
  132. package/interceptors/index.js +0 -18
  133. package/interceptors/language-interceptor.service.d.ts +0 -6
  134. package/interceptors/language-interceptor.service.js +0 -29
  135. package/interceptors/translation-interceptor.service.d.ts +0 -5
  136. package/interceptors/translation-interceptor.service.js +0 -34
  137. package/interfaces/IApiFile.d.ts +0 -4
  138. package/interfaces/IApiFile.js +0 -2
  139. package/interfaces/IFile.d.ts +0 -8
  140. package/interfaces/IFile.js +0 -2
  141. package/interfaces/ITranslationDecoratorInterface.d.ts +0 -3
  142. package/interfaces/ITranslationDecoratorInterface.js +0 -2
  143. package/interfaces/index.d.ts +0 -3
  144. package/interfaces/index.js +0 -19
  145. package/interfaces/response.d.ts +0 -25
  146. package/interfaces/response.js +0 -2
  147. package/middlewares/index.d.ts +0 -4
  148. package/middlewares/index.js +0 -20
  149. package/middlewares/omni-auth.middleware.d.ts +0 -1
  150. package/middlewares/omni-auth.middleware.js +0 -13
  151. package/middlewares/powerby.middleware.d.ts +0 -1
  152. package/middlewares/powerby.middleware.js +0 -10
  153. package/middlewares/request-id.middleware.d.ts +0 -7
  154. package/middlewares/request-id.middleware.js +0 -22
  155. package/middlewares/xml.middleware.d.ts +0 -4
  156. package/middlewares/xml.middleware.js +0 -24
  157. package/providers/context.provider.d.ts +0 -34
  158. package/providers/context.provider.js +0 -80
  159. package/providers/generator.provider.d.ts +0 -9
  160. package/providers/generator.provider.js +0 -50
  161. package/providers/index.d.ts +0 -2
  162. package/providers/index.js +0 -18
  163. package/setup/bootstrap.setup.d.ts +0 -2
  164. package/setup/bootstrap.setup.js +0 -227
  165. package/setup/index.d.ts +0 -1
  166. package/setup/index.js +0 -17
  167. package/shared/index.d.ts +0 -2
  168. package/shared/index.js +0 -18
  169. package/shared/serviceRegistryModule.d.ts +0 -2
  170. package/shared/serviceRegistryModule.js +0 -111
  171. package/shared/services/api-config.service.d.ts +0 -58
  172. package/shared/services/api-config.service.js +0 -302
  173. package/shared/services/generator.service.d.ts +0 -4
  174. package/shared/services/generator.service.js +0 -23
  175. package/shared/services/index.d.ts +0 -4
  176. package/shared/services/index.js +0 -20
  177. package/shared/services/translation.service.d.ts +0 -9
  178. package/shared/services/translation.service.js +0 -70
  179. package/shared/services/validator.service.d.ts +0 -3
  180. package/shared/services/validator.service.js +0 -20
  181. package/tsconfig.tsbuildinfo +0 -1
  182. package/validator-json/decorators.d.ts +0 -6
  183. package/validator-json/decorators.js +0 -22
  184. package/validator-json/default.d.ts +0 -6
  185. package/validator-json/default.js +0 -130
  186. package/validator-json/defaultConverters.d.ts +0 -8
  187. package/validator-json/defaultConverters.js +0 -376
  188. package/validator-json/index.d.ts +0 -4
  189. package/validator-json/index.js +0 -20
  190. package/validator-json/options.d.ts +0 -11
  191. package/validator-json/options.js +0 -10
  192. package/validators/file-mimetype.validator.d.ts +0 -13
  193. package/validators/file-mimetype.validator.js +0 -21
  194. package/validators/index.d.ts +0 -6
  195. package/validators/index.js +0 -22
  196. package/validators/is-exists.validator.d.ts +0 -18
  197. package/validators/is-exists.validator.js +0 -62
  198. package/validators/is-unique.validator.d.ts +0 -17
  199. package/validators/is-unique.validator.js +0 -93
  200. package/validators/phone-country-code.validator.d.ts +0 -2
  201. package/validators/phone-country-code.validator.js +0 -29
  202. package/validators/same-as.validator.d.ts +0 -2
  203. package/validators/same-as.validator.js +0 -24
  204. package/validators/skip-empty.validator.d.ts +0 -1
  205. package/validators/skip-empty.validator.js +0 -17
@@ -1,19 +0,0 @@
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("./IApiFile"), exports);
18
- __exportStar(require("./IFile"), exports);
19
- __exportStar(require("./ITranslationDecoratorInterface"), exports);
@@ -1,25 +0,0 @@
1
- export type TExceptionOption = string | {
2
- code: number;
3
- msg: string;
4
- error?: any;
5
- };
6
- export interface IHttpResultPaginate<T> {
7
- list: T;
8
- total: number;
9
- page: number;
10
- pageCount: number;
11
- count: number;
12
- }
13
- export interface IHttpResponseBase {
14
- code: number;
15
- msg: string;
16
- timestamp: string;
17
- requestId: string;
18
- }
19
- export type THttpErrorResponse = IHttpResponseBase & {
20
- error: any;
21
- };
22
- export type THttpSuccessResponse<T> = IHttpResponseBase & {
23
- data: T | IHttpResultPaginate<T>;
24
- };
25
- export type THttpResponse<T> = THttpErrorResponse | THttpSuccessResponse<T>;
@@ -1,2 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
@@ -1,4 +0,0 @@
1
- export * from './request-id.middleware';
2
- export * from './powerby.middleware';
3
- export * from './omni-auth.middleware';
4
- export * from './xml.middleware';
@@ -1,20 +0,0 @@
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("./request-id.middleware"), exports);
18
- __exportStar(require("./powerby.middleware"), exports);
19
- __exportStar(require("./omni-auth.middleware"), exports);
20
- __exportStar(require("./xml.middleware"), exports);
@@ -1 +0,0 @@
1
- export declare const OmniAuthMiddleware: () => (req: any, res: any, next: any) => void;
@@ -1,13 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.OmniAuthMiddleware = void 0;
4
- const user_decorator_1 = require("../decorators/user.decorator");
5
- const providers_1 = require("../providers");
6
- const OmniAuthMiddleware = () => {
7
- return (req, res, next) => {
8
- req.user = (0, user_decorator_1.getOmniAuthData)(req);
9
- providers_1.ContextProvider.setAuthUser(req.user);
10
- next();
11
- };
12
- };
13
- exports.OmniAuthMiddleware = OmniAuthMiddleware;
@@ -1 +0,0 @@
1
- export declare const PowerByMiddleware: (by?: string) => (req: any, res: any, next: any) => void;
@@ -1,10 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.PowerByMiddleware = void 0;
4
- const PowerByMiddleware = (by = 'KN') => {
5
- return (req, res, next) => {
6
- res.header('x-powered-by', by);
7
- next();
8
- };
9
- };
10
- exports.PowerByMiddleware = PowerByMiddleware;
@@ -1,7 +0,0 @@
1
- import { NextFunction, Request, Response } from 'express';
2
- export interface RequestIdConfig {
3
- header: string;
4
- idGenerator: () => string;
5
- setHeader: boolean;
6
- }
7
- export declare const RequestIdMiddleware: (config?: RequestIdConfig) => (req: Request, res: Response, next: NextFunction) => void;
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.RequestIdMiddleware = void 0;
4
- const uuid_1 = require("uuid");
5
- const providers_1 = require("../providers");
6
- const RequestIdMiddleware = (config = {
7
- header: 'x-request-id',
8
- idGenerator: uuid_1.v4,
9
- setHeader: true,
10
- }) => {
11
- return (req, res, next) => {
12
- const requestId = req.header(config.header) || config.idGenerator();
13
- req.headers[config.header] = requestId;
14
- req.id = requestId;
15
- providers_1.ContextProvider.setRequestId(requestId);
16
- if (config.setHeader) {
17
- res.set(config.header, requestId);
18
- }
19
- next();
20
- };
21
- };
22
- exports.RequestIdMiddleware = RequestIdMiddleware;
@@ -1,4 +0,0 @@
1
- import { NestMiddleware } from '@nestjs/common';
2
- export declare class XMLMiddleware implements NestMiddleware {
3
- use(req: any, res: any, next: () => void): void;
4
- }
@@ -1,24 +0,0 @@
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.XMLMiddleware = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const bodyParser = require("body-parser");
12
- const bodyParserMiddleware = bodyParser.text({
13
- limit: '1024kb',
14
- type: 'application/xml',
15
- });
16
- let XMLMiddleware = class XMLMiddleware {
17
- use(req, res, next) {
18
- bodyParserMiddleware(req, res, next);
19
- }
20
- };
21
- exports.XMLMiddleware = XMLMiddleware;
22
- exports.XMLMiddleware = XMLMiddleware = __decorate([
23
- (0, common_1.Injectable)()
24
- ], XMLMiddleware);
@@ -1,34 +0,0 @@
1
- import { IUser } from '../decorators/user.decorator';
2
- export declare class ContextProvider {
3
- private static readonly nameSpace;
4
- private static readonly authUserKey;
5
- private static readonly routerKey;
6
- private static readonly languageKey;
7
- private static readonly requestKey;
8
- static get<T>(key: string): import("nestjs-cls/dist/src/types/type-if-type.type").TypeIfUndefined<T, import("nestjs-cls").ClsStore, T>;
9
- static set(key: string, value: any): void;
10
- static getKeyWithNamespace(key: string): string;
11
- static setRouter(user: any): void;
12
- static getCanLog(): boolean;
13
- static getRouter(): {
14
- action: {
15
- feature: string;
16
- action: string;
17
- };
18
- id: string;
19
- method: object;
20
- ip: string;
21
- canLog: boolean;
22
- };
23
- static setRequestId(id: string): void;
24
- static getRequestId(): string;
25
- static setAuthUser(user: IUser): void;
26
- static setLanguage(language: string): void;
27
- static getLanguage(): string;
28
- static getAuthUserField<T extends keyof IUser>(field?: T): IUser[T];
29
- static getAuthUser(): IUser;
30
- static getAppId(): string;
31
- static getRole(): string;
32
- static getAdmin(): boolean;
33
- static getTenantId(): string;
34
- }
@@ -1,80 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ContextProvider = void 0;
4
- const nestjs_cls_1 = require("nestjs-cls");
5
- const common_1 = require("@nestjs/common");
6
- class ContextProvider {
7
- static get(key) {
8
- const store = nestjs_cls_1.ClsServiceManager.getClsService();
9
- return store.get(ContextProvider.getKeyWithNamespace(key));
10
- }
11
- static set(key, value) {
12
- const store = nestjs_cls_1.ClsServiceManager.getClsService();
13
- store.set(ContextProvider.getKeyWithNamespace(key), value);
14
- }
15
- static getKeyWithNamespace(key) {
16
- return `${ContextProvider.nameSpace}.${key}`;
17
- }
18
- static setRouter(user) {
19
- ContextProvider.set(ContextProvider.routerKey, user);
20
- }
21
- static getCanLog() {
22
- return ContextProvider.getRouter().canLog;
23
- }
24
- static getRouter() {
25
- const value = ContextProvider.get(ContextProvider.routerKey);
26
- if (value) {
27
- return value;
28
- }
29
- return {
30
- action: { feature: '', action: '' },
31
- id: '',
32
- method: {},
33
- ip: '',
34
- canLog: false,
35
- };
36
- }
37
- static setRequestId(id) {
38
- ContextProvider.set(ContextProvider.requestKey, id);
39
- }
40
- static getRequestId() {
41
- return ContextProvider.get(ContextProvider.requestKey);
42
- }
43
- static setAuthUser(user) {
44
- ContextProvider.set(ContextProvider.authUserKey, user);
45
- }
46
- static setLanguage(language) {
47
- ContextProvider.set(ContextProvider.languageKey, language);
48
- }
49
- static getLanguage() {
50
- return ContextProvider.get(ContextProvider.languageKey);
51
- }
52
- static getAuthUserField(field) {
53
- return ContextProvider.getAuthUser()[field];
54
- }
55
- static getAuthUser() {
56
- const auth = ContextProvider.get(ContextProvider.authUserKey);
57
- if (!auth) {
58
- throw new common_1.BadGatewayException('User information not found.');
59
- }
60
- return auth;
61
- }
62
- static getAppId() {
63
- return ContextProvider.getAuthUserField('appId');
64
- }
65
- static getRole() {
66
- return ContextProvider.getAuthUserField('role');
67
- }
68
- static getAdmin() {
69
- return ContextProvider.getAuthUserField('admin');
70
- }
71
- static getTenantId() {
72
- return ContextProvider.getAuthUserField('tenantId');
73
- }
74
- }
75
- exports.ContextProvider = ContextProvider;
76
- ContextProvider.nameSpace = 'request';
77
- ContextProvider.authUserKey = 'user_key';
78
- ContextProvider.routerKey = 'router_key';
79
- ContextProvider.languageKey = 'language_key';
80
- ContextProvider.requestKey = 'request_key';
@@ -1,9 +0,0 @@
1
- export declare class GeneratorProvider {
2
- static uuid(): string;
3
- static fileName(ext: string): string;
4
- static getS3PublicUrl(key: string): string;
5
- static getS3Key(publicUrl: string): string;
6
- static generateVerificationCode(): string;
7
- static generatePassword(): string;
8
- static generateRandomString(length: number): string;
9
- }
@@ -1,50 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GeneratorProvider = void 0;
4
- const uuid_1 = require("uuid");
5
- class GeneratorProvider {
6
- static uuid() {
7
- return (0, uuid_1.v1)();
8
- }
9
- static fileName(ext) {
10
- return GeneratorProvider.uuid() + '.' + ext;
11
- }
12
- static getS3PublicUrl(key) {
13
- if (!key) {
14
- throw new TypeError('key is required');
15
- }
16
- return `https://s3.${process.env.AWS_S3_BUCKET_NAME_REGION}.amazonaws.com/${process.env.AWS_S3_BUCKET_NAME}/${key}`;
17
- }
18
- static getS3Key(publicUrl) {
19
- if (!publicUrl) {
20
- throw new TypeError('key is required');
21
- }
22
- const exec = new RegExp(`(?<=https://s3.${process.env.AWS_S3_BUCKET_NAME_REGION}.amazonaws.com/${process.env.AWS_S3_BUCKET_NAME}/).*`).exec(publicUrl);
23
- if (!exec) {
24
- throw new TypeError('publicUrl is invalid');
25
- }
26
- return exec[0];
27
- }
28
- static generateVerificationCode() {
29
- return Math.floor(1000 + Math.random() * 9000).toString();
30
- }
31
- static generatePassword() {
32
- const lowercase = 'abcdefghijklmnopqrstuvwxyz';
33
- const uppercase = lowercase.toUpperCase();
34
- const numbers = '0123456789';
35
- let text = '';
36
- for (let i = 0; i < 12; i++) {
37
- text += uppercase.charAt(Math.floor(Math.random() * uppercase.length));
38
- text += lowercase.charAt(Math.floor(Math.random() * lowercase.length));
39
- text += numbers.charAt(Math.floor(Math.random() * numbers.length));
40
- }
41
- return text;
42
- }
43
- static generateRandomString(length) {
44
- return Math.random()
45
- .toString(36)
46
- .replace(/[^\dA-Za-z]+/g, '')
47
- .slice(0, Math.max(0, length));
48
- }
49
- }
50
- exports.GeneratorProvider = GeneratorProvider;
@@ -1,2 +0,0 @@
1
- export * from './context.provider';
2
- export * from './generator.provider';
@@ -1,18 +0,0 @@
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("./context.provider"), exports);
18
- __exportStar(require("./generator.provider"), exports);
@@ -1,2 +0,0 @@
1
- import type { NestExpressApplication } from '@nestjs/platform-express';
2
- export declare function bootstrapSetup(AppModule: any, SetupSwagger: any): Promise<NestExpressApplication<import("http").Server<typeof import("http").IncomingMessage, typeof import("http").ServerResponse>>>;
@@ -1,227 +0,0 @@
1
- "use strict";
2
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
3
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
4
- return new (P || (P = Promise))(function (resolve, reject) {
5
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
6
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
7
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
8
- step((generator = generator.apply(thisArg, _arguments || [])).next());
9
- });
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- exports.bootstrapSetup = bootstrapSetup;
13
- const Sentry = require("@sentry/nestjs");
14
- const profiling_node_1 = require("@sentry/profiling-node");
15
- const dotenv = require("dotenv");
16
- const fs_1 = require("fs");
17
- const path_1 = require("path");
18
- const process = require("process");
19
- function findValidRootPath() {
20
- const getAppRootPath = () => {
21
- if (require.main && require.main.filename) {
22
- return (0, path_1.dirname)(require.main.filename);
23
- }
24
- if (process.argv[1]) {
25
- return (0, path_1.dirname)(process.argv[1]);
26
- }
27
- return process.cwd();
28
- };
29
- const possibleRootPaths = [getAppRootPath(), process.cwd(), __dirname];
30
- const envFile = `${process.env.NODE_ENV || ''}.env`;
31
- const isTest = process.env.NODE_ENV === 'test';
32
- let envFilePath = '';
33
- for (const rootPath of possibleRootPaths) {
34
- const configPath = (0, path_1.join)(rootPath, 'config');
35
- const baseEnvFilePath = (0, path_1.join)(configPath, 'base.env');
36
- if (isTest) {
37
- envFilePath = (0, path_1.join)(configPath, 'test.env');
38
- if ((0, fs_1.existsSync)(envFilePath)) {
39
- return { rootPath, baseEnvFilePath, envFilePath };
40
- }
41
- else {
42
- envFilePath = (0, path_1.join)(configPath, 'dev.env');
43
- if ((0, fs_1.existsSync)(envFilePath)) {
44
- return { rootPath, baseEnvFilePath, envFilePath };
45
- }
46
- }
47
- }
48
- else {
49
- envFilePath = (0, path_1.join)(configPath, envFile);
50
- if ((0, fs_1.existsSync)(envFilePath)) {
51
- return { rootPath, baseEnvFilePath, envFilePath };
52
- }
53
- }
54
- }
55
- throw new Error(`No valid .env file: ${envFilePath}`);
56
- }
57
- const { envFilePath, rootPath, baseEnvFilePath } = findValidRootPath();
58
- dotenv.config({ path: [envFilePath, baseEnvFilePath] });
59
- process.env.ROOT_PATH = rootPath;
60
- process.env.ENV_FILE_PATH = envFilePath;
61
- process.env.BASE_ENV_FILE_PATH = baseEnvFilePath;
62
- const requiredEnvVars = ['SENTRY_DSN', 'API_VERSION', 'NODE_ENV'];
63
- requiredEnvVars.forEach((envVar) => {
64
- if (!process.env[envVar]) {
65
- throw new Error(`Missing required environment variable: ${envVar}`);
66
- }
67
- });
68
- Sentry.init({
69
- dsn: process.env.SENTRY_DSN || '',
70
- release: process.env.API_VERSION || '',
71
- environment: process.env.NODE_ENV || 'unkown',
72
- debug: process.env.NODE_ENV === 'dev',
73
- tracesSampleRate: 1.0,
74
- profileSessionSampleRate: 1.0,
75
- profileLifecycle: 'trace',
76
- sendDefaultPii: true,
77
- integrations: [profiling_node_1.nodeProfilingIntegration],
78
- });
79
- const crud_1 = require("@dataui/crud");
80
- const core_1 = require("@nestjs/core");
81
- const typeorm_transactional_1 = require("typeorm-transactional");
82
- const nestjs_pino_1 = require("nestjs-pino");
83
- const session = require("express-session");
84
- const bodyParse = require("body-parser");
85
- const __1 = require("../");
86
- const common_1 = require("@nestjs/common");
87
- const nestjs_i18n_1 = require("nestjs-i18n");
88
- const nestjs_cls_1 = require("nestjs-cls");
89
- const compression = require("compression");
90
- const class_validator_1 = require("class-validator");
91
- const setup_1 = require("@sentry/nestjs/setup");
92
- crud_1.CrudConfigService.load({
93
- auth: {
94
- property: 'user',
95
- },
96
- params: {
97
- id: {
98
- field: 'id',
99
- type: 'string',
100
- primary: true,
101
- },
102
- },
103
- query: {
104
- limit: 10,
105
- alwaysPaginate: true,
106
- },
107
- routes: {
108
- updateOneBase: {
109
- allowParamsOverride: false,
110
- },
111
- deleteOneBase: {
112
- returnDeleted: false,
113
- },
114
- createOneBase: {
115
- returnShallow: false,
116
- },
117
- },
118
- });
119
- const setupProcessHandlers = (app) => {
120
- const logger = app.get(nestjs_pino_1.Logger);
121
- process.on('uncaughtException', (error) => {
122
- logger.fatal({ error, stack: error.stack, pid: process.pid }, 'Uncaught Exception');
123
- process.exit(1);
124
- });
125
- process.on('unhandledRejection', (reason, promise) => {
126
- logger.error({
127
- reason: {
128
- message: reason.message,
129
- stack: reason.stack,
130
- name: reason.name,
131
- },
132
- promise,
133
- pid: process.pid,
134
- }, 'Unhandled Rejection');
135
- });
136
- process.on('exit', (code) => {
137
- logger.warn(`Process exiting with code ${code}`, {
138
- uptime: process.uptime(),
139
- memoryUsage: process.memoryUsage(),
140
- });
141
- });
142
- };
143
- const setupGracefulShutdown = (app) => {
144
- const logger = app.get(nestjs_pino_1.Logger);
145
- const shutdown = (signal) => __awaiter(void 0, void 0, void 0, function* () {
146
- var _a;
147
- try {
148
- logger.warn(`Received ${signal}, starting graceful shutdown...`, {
149
- uptime: process.uptime(),
150
- connections: (_a = app.getHttpServer()) === null || _a === void 0 ? void 0 : _a.address(),
151
- });
152
- yield Promise.race([
153
- app.close(),
154
- new Promise((_, reject) => setTimeout(() => reject(new Error('Shutdown timeout exceeded')), 15000)),
155
- ]);
156
- logger.log('Application successfully closed', {
157
- resourcesReleased: true,
158
- pid: process.pid,
159
- });
160
- process.exit(0);
161
- }
162
- catch (err) {
163
- logger.error('Graceful shutdown failed', {
164
- error: {
165
- message: err.message,
166
- stack: err.stack,
167
- name: err.name,
168
- },
169
- critical: true,
170
- pid: process.pid,
171
- });
172
- process.exit(1);
173
- }
174
- });
175
- process.on('SIGQUIT', () => shutdown('SIGQUIT'));
176
- process.on('SIGHUP', () => shutdown('SIGHUP'));
177
- process.on('SIGTERM', () => shutdown('SIGTERM'));
178
- process.on('SIGINT', () => shutdown('SIGINT'));
179
- };
180
- function bootstrapSetup(AppModule, SetupSwagger) {
181
- return __awaiter(this, void 0, void 0, function* () {
182
- (0, typeorm_transactional_1.initializeTransactionalContext)();
183
- const app = yield core_1.NestFactory.create(AppModule, {
184
- bufferLogs: true,
185
- });
186
- (0, class_validator_1.useContainer)(app.select(AppModule), { fallbackOnErrors: true });
187
- const configService = app.select(__1.ServiceRegistryModule).get(__1.ApiConfigService);
188
- const logger = app.get(nestjs_pino_1.Logger);
189
- setupProcessHandlers(app);
190
- app.enableShutdownHooks();
191
- setupGracefulShutdown(app);
192
- app.enableVersioning();
193
- app.enable('trust proxy');
194
- app.use(bodyParse.json({ limit: '50mb' }), new nestjs_cls_1.ClsMiddleware({}).use, (0, __1.RequestIdMiddleware)(), (0, __1.PowerByMiddleware)(), (0, __1.OmniAuthMiddleware)(), compression());
195
- const reflector = app.get(core_1.Reflector);
196
- app.useGlobalFilters(new setup_1.SentryGlobalFilter(), new __1.HttpExceptionFilter(), new __1.QueryFailedFilter(reflector));
197
- app.useGlobalInterceptors(new __1.LanguageInterceptor(), new __1.TranslationInterceptor(), new nestjs_pino_1.LoggerErrorInterceptor());
198
- app.useGlobalPipes(new nestjs_i18n_1.I18nValidationPipe({
199
- whitelist: true,
200
- errorHttpStatusCode: common_1.HttpStatus.UNPROCESSABLE_ENTITY,
201
- transform: true,
202
- stopAtFirstError: true,
203
- validationError: { target: false, value: false },
204
- }));
205
- if (configService.documentationEnabled && SetupSwagger) {
206
- SetupSwagger(app, configService.documentationPath);
207
- logger.log(`Swagger docs available at ${configService.documentationPath}`);
208
- }
209
- if (configService.viewsEnabled) {
210
- app.setBaseViewsDir((0, path_1.join)(__1.ApiConfigService.rootPath, 'views'));
211
- app.setViewEngine('ejs');
212
- logger.log('View engine initialized');
213
- }
214
- if (configService.sessionEnabled) {
215
- app.use(session(configService.sessionConfig));
216
- logger.log('Session middleware enabled');
217
- }
218
- if (configService.corsEnabled) {
219
- app.enableCors(configService.corsConfig);
220
- logger.log('CORS configuration applied');
221
- }
222
- const port = configService.appConfig.port;
223
- yield app.listen(port);
224
- logger.log(`Server running on ${yield app.getUrl()}`);
225
- return app;
226
- });
227
- }
package/setup/index.d.ts DELETED
@@ -1 +0,0 @@
1
- export * from './bootstrap.setup';
package/setup/index.js DELETED
@@ -1,17 +0,0 @@
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("./bootstrap.setup"), exports);
package/shared/index.d.ts DELETED
@@ -1,2 +0,0 @@
1
- export * from './serviceRegistryModule';
2
- export * from './services';
package/shared/index.js DELETED
@@ -1,18 +0,0 @@
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("./serviceRegistryModule"), exports);
18
- __exportStar(require("./services"), exports);
@@ -1,2 +0,0 @@
1
- export declare class ServiceRegistryModule {
2
- }