aws-service-stack 0.10.92

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 (140) hide show
  1. package/README.md +20 -0
  2. package/dist/_examples/model/user.model.d.ts +6 -0
  3. package/dist/_examples/model/user.model.js +3 -0
  4. package/dist/_examples/model/user.model.js.map +1 -0
  5. package/dist/controller/base-controller.d.ts +34 -0
  6. package/dist/controller/base-controller.js +151 -0
  7. package/dist/controller/base-controller.js.map +1 -0
  8. package/dist/controller/index.d.ts +1 -0
  9. package/dist/controller/index.js +18 -0
  10. package/dist/controller/index.js.map +1 -0
  11. package/dist/exception/errors.d.ts +32 -0
  12. package/dist/exception/errors.js +46 -0
  13. package/dist/exception/errors.js.map +1 -0
  14. package/dist/exception/exception-handler.d.ts +238 -0
  15. package/dist/exception/exception-handler.js +112 -0
  16. package/dist/exception/exception-handler.js.map +1 -0
  17. package/dist/index.d.ts +6 -0
  18. package/dist/index.js +23 -0
  19. package/dist/index.js.map +1 -0
  20. package/dist/model/base.model.d.ts +64 -0
  21. package/dist/model/base.model.js +20 -0
  22. package/dist/model/base.model.js.map +1 -0
  23. package/dist/model/cognito-user.model.d.ts +12 -0
  24. package/dist/model/cognito-user.model.js +3 -0
  25. package/dist/model/cognito-user.model.js.map +1 -0
  26. package/dist/model/filter.model.d.ts +46 -0
  27. package/dist/model/filter.model.js +22 -0
  28. package/dist/model/filter.model.js.map +1 -0
  29. package/dist/model/http.model.d.ts +7 -0
  30. package/dist/model/http.model.js +12 -0
  31. package/dist/model/http.model.js.map +1 -0
  32. package/dist/model/index.d.ts +4 -0
  33. package/dist/model/index.js +21 -0
  34. package/dist/model/index.js.map +1 -0
  35. package/dist/model/schema-validation.d.ts +20 -0
  36. package/dist/model/schema-validation.js +91 -0
  37. package/dist/model/schema-validation.js.map +1 -0
  38. package/dist/provider/apigateway.d.ts +4 -0
  39. package/dist/provider/apigateway.js +28 -0
  40. package/dist/provider/apigateway.js.map +1 -0
  41. package/dist/provider/dynamodb.d.ts +3 -0
  42. package/dist/provider/dynamodb.js +18 -0
  43. package/dist/provider/dynamodb.js.map +1 -0
  44. package/dist/provider/index.d.ts +3 -0
  45. package/dist/provider/index.js +20 -0
  46. package/dist/provider/index.js.map +1 -0
  47. package/dist/provider/opensearch.d.ts +4 -0
  48. package/dist/provider/opensearch.js +34 -0
  49. package/dist/provider/opensearch.js.map +1 -0
  50. package/dist/repositories/base-core.repo.interface.d.ts +129 -0
  51. package/dist/repositories/base-core.repo.interface.js +3 -0
  52. package/dist/repositories/base-core.repo.interface.js.map +1 -0
  53. package/dist/repositories/base-db.repo.d.ts +78 -0
  54. package/dist/repositories/base-db.repo.interface.d.ts +61 -0
  55. package/dist/repositories/base-db.repo.interface.js +3 -0
  56. package/dist/repositories/base-db.repo.interface.js.map +1 -0
  57. package/dist/repositories/base-db.repo.js +471 -0
  58. package/dist/repositories/base-db.repo.js.map +1 -0
  59. package/dist/repositories/base-es.repo.d.ts +31 -0
  60. package/dist/repositories/base-es.repo.interface.d.ts +13 -0
  61. package/dist/repositories/base-es.repo.interface.js +3 -0
  62. package/dist/repositories/base-es.repo.interface.js.map +1 -0
  63. package/dist/repositories/base-es.repo.js +148 -0
  64. package/dist/repositories/base-es.repo.js.map +1 -0
  65. package/dist/repositories/index.d.ts +4 -0
  66. package/dist/repositories/index.js +21 -0
  67. package/dist/repositories/index.js.map +1 -0
  68. package/dist/service/api.services/api.service.d.ts +11 -0
  69. package/dist/service/api.services/api.service.interface.d.ts +8 -0
  70. package/dist/service/api.services/api.service.interface.js +3 -0
  71. package/dist/service/api.services/api.service.interface.js.map +1 -0
  72. package/dist/service/api.services/api.service.js +103 -0
  73. package/dist/service/api.services/api.service.js.map +1 -0
  74. package/dist/service/api.services/index.d.ts +2 -0
  75. package/dist/service/api.services/index.js +19 -0
  76. package/dist/service/api.services/index.js.map +1 -0
  77. package/dist/service/auth.service.d.ts +8 -0
  78. package/dist/service/auth.service.interface.d.ts +6 -0
  79. package/dist/service/auth.service.interface.js +3 -0
  80. package/dist/service/auth.service.interface.js.map +1 -0
  81. package/dist/service/auth.service.js +90 -0
  82. package/dist/service/auth.service.js.map +1 -0
  83. package/dist/service/base.service.d.ts +39 -0
  84. package/dist/service/base.service.interface.d.ts +106 -0
  85. package/dist/service/base.service.interface.js +3 -0
  86. package/dist/service/base.service.interface.js.map +1 -0
  87. package/dist/service/base.service.js +167 -0
  88. package/dist/service/base.service.js.map +1 -0
  89. package/dist/service/index.d.ts +5 -0
  90. package/dist/service/index.js +22 -0
  91. package/dist/service/index.js.map +1 -0
  92. package/dist/service/key-aws.services.d.ts +6 -0
  93. package/dist/service/key-aws.services.js +48 -0
  94. package/dist/service/key-aws.services.js.map +1 -0
  95. package/dist/service/key.services.interface.d.ts +3 -0
  96. package/dist/service/key.services.interface.js +3 -0
  97. package/dist/service/key.services.interface.js.map +1 -0
  98. package/dist/service/socket.service.d.ts +6 -0
  99. package/dist/service/socket.service.interface.d.ts +3 -0
  100. package/dist/service/socket.service.interface.js +3 -0
  101. package/dist/service/socket.service.interface.js.map +1 -0
  102. package/dist/service/socket.service.js +33 -0
  103. package/dist/service/socket.service.js.map +1 -0
  104. package/dist/service/validation.service.interface.d.ts +2 -0
  105. package/dist/service/validation.service.interface.js +3 -0
  106. package/dist/service/validation.service.interface.js.map +1 -0
  107. package/dist/utils/auth.util.d.ts +13 -0
  108. package/dist/utils/auth.util.js +17 -0
  109. package/dist/utils/auth.util.js.map +1 -0
  110. package/dist/utils/dynamodb.utils.d.ts +43 -0
  111. package/dist/utils/dynamodb.utils.js +303 -0
  112. package/dist/utils/dynamodb.utils.js.map +1 -0
  113. package/dist/utils/env.util.d.ts +1 -0
  114. package/dist/utils/env.util.js +14 -0
  115. package/dist/utils/env.util.js.map +1 -0
  116. package/dist/utils/error.util.d.ts +1 -0
  117. package/dist/utils/error.util.js +5 -0
  118. package/dist/utils/error.util.js.map +1 -0
  119. package/dist/utils/file-handler.d.ts +14 -0
  120. package/dist/utils/file-handler.js +216 -0
  121. package/dist/utils/file-handler.js.map +1 -0
  122. package/dist/utils/http.util.d.ts +27 -0
  123. package/dist/utils/http.util.js +133 -0
  124. package/dist/utils/http.util.js.map +1 -0
  125. package/dist/utils/index.d.ts +8 -0
  126. package/dist/utils/index.js +25 -0
  127. package/dist/utils/index.js.map +1 -0
  128. package/dist/utils/json.util.d.ts +1 -0
  129. package/dist/utils/json.util.js +20 -0
  130. package/dist/utils/json.util.js.map +1 -0
  131. package/dist/utils/opensearch.utils.d.ts +40 -0
  132. package/dist/utils/opensearch.utils.js +293 -0
  133. package/dist/utils/opensearch.utils.js.map +1 -0
  134. package/dist/utils/reflection.util.d.ts +20 -0
  135. package/dist/utils/reflection.util.js +154 -0
  136. package/dist/utils/reflection.util.js.map +1 -0
  137. package/dist/utils/validation.util.d.ts +13 -0
  138. package/dist/utils/validation.util.js +90 -0
  139. package/dist/utils/validation.util.js.map +1 -0
  140. package/package.json +106 -0
package/README.md ADDED
@@ -0,0 +1,20 @@
1
+ # Introduction
2
+ TODO: Give a short introduction of your project. Let this section explain the objectives or the motivation behind this project.
3
+
4
+ # Getting Started
5
+ TODO: Guide users through getting your code up and running on their own system. In this section you can talk about:
6
+ 1. Installation process
7
+ 2. Software dependencies
8
+ 3. Latest releases
9
+ 4. API references
10
+
11
+ # Build and Test
12
+ TODO: Describe and show how to build your code and run the tests.
13
+
14
+ # Contribute
15
+ TODO: Explain how other users and developers can contribute to make your code better.
16
+
17
+ If you want to learn more about creating good readme files then refer the following [guidelines](https://docs.microsoft.com/en-us/azure/devops/repos/git/create-a-readme?view=azure-devops). You can also seek inspiration from the below readme files:
18
+ - [ASP.NET Core](https://github.com/aspnet/Home)
19
+ - [Visual Studio Code](https://github.com/Microsoft/vscode)
20
+ - [Chakra Core](https://github.com/Microsoft/ChakraCore)
@@ -0,0 +1,6 @@
1
+ import { BaseEntity } from "../../model/base.model";
2
+ export interface User extends BaseEntity {
3
+ firstName: string;
4
+ lastName: string;
5
+ email: string;
6
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=user.model.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"user.model.js","sourceRoot":"","sources":["../../../src/_examples/model/user.model.ts"],"names":[],"mappings":""}
@@ -0,0 +1,34 @@
1
+ import { APIResponse, BaseService, HttpMethod, HttpRequest } from "../index";
2
+ import { APIGatewayProxyEvent, APIGatewayProxyResult, APIGatewayProxyWebsocketEventV2, CreateAuthChallengeTriggerEvent, DefineAuthChallengeTriggerEvent, DynamoDBStreamEvent, PostConfirmationTriggerEvent, PreSignUpTriggerEvent, ScheduledEvent, VerifyAuthChallengeResponseTriggerEvent } from "aws-lambda";
3
+ export declare abstract class BaseController<T extends BaseService<any, any>> {
4
+ protected endpoint: string;
5
+ protected userId: string;
6
+ protected isAdmin: boolean;
7
+ protected request: HttpRequest;
8
+ protected readonly service: T;
9
+ protected readonly adminGroupName: string;
10
+ protected requestBody: any;
11
+ protected triggerEvent: any;
12
+ protected eventAttr: any;
13
+ protected event: APIGatewayProxyEvent;
14
+ protected resource: string;
15
+ protected entityId: string;
16
+ protected methode: HttpMethod;
17
+ protected constructor(baseService: T, adminGroupName?: string);
18
+ resolveCrudRequest(event: APIGatewayProxyEvent): Promise<APIResponse>;
19
+ resolveStreamEvent(event: DynamoDBStreamEvent): Promise<void>;
20
+ resolveScheduledEvent(event: ScheduledEvent): Promise<void>;
21
+ resolveWebSocketEvent(event: APIGatewayProxyWebsocketEventV2): Promise<void>;
22
+ resolveTriggerEvent(event: CreateAuthChallengeTriggerEvent | DefineAuthChallengeTriggerEvent | VerifyAuthChallengeResponseTriggerEvent | PostConfirmationTriggerEvent | PreSignUpTriggerEvent): Promise<void>;
23
+ protected isFieldUpdateRequest(): boolean;
24
+ protected isFieldDeleteRequest(): boolean;
25
+ protected isFieldFetchRequest(): boolean;
26
+ protected handleFieldUpdate(): Promise<APIGatewayProxyResult>;
27
+ protected handleFieldDelete(): Promise<boolean>;
28
+ protected handleFieldFetch(): Promise<any>;
29
+ protected abstract processCrudRequest(event: APIGatewayProxyEvent): Promise<any>;
30
+ protected abstract processStreamEvent(event: DynamoDBStreamEvent): Promise<void>;
31
+ protected abstract processScheduledEvent(event: ScheduledEvent): Promise<void>;
32
+ protected abstract processWebSocketEvent(event: APIGatewayProxyWebsocketEventV2): Promise<void>;
33
+ protected processTriggerEvent?(event: CreateAuthChallengeTriggerEvent | DefineAuthChallengeTriggerEvent | VerifyAuthChallengeResponseTriggerEvent | PostConfirmationTriggerEvent | PreSignUpTriggerEvent): Promise<void>;
34
+ }
@@ -0,0 +1,151 @@
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.BaseController = void 0;
13
+ const index_1 = require("../index");
14
+ const exception_handler_1 = require("../exception/exception-handler");
15
+ const errors_1 = require("../exception/errors");
16
+ class BaseController {
17
+ constructor(baseService, adminGroupName) {
18
+ this.adminGroupName = "admins";
19
+ this.service = baseService;
20
+ if (adminGroupName) {
21
+ this.adminGroupName = adminGroupName;
22
+ }
23
+ }
24
+ resolveCrudRequest(event) {
25
+ return __awaiter(this, void 0, void 0, function* () {
26
+ var _a, _b, _c, _d, _e, _f, _g, _h;
27
+ const groups = ((_c = (_b = (_a = event === null || event === void 0 ? void 0 : event.requestContext) === null || _a === void 0 ? void 0 : _a.authorizer) === null || _b === void 0 ? void 0 : _b.claims) === null || _c === void 0 ? void 0 : _c["cognito:groups"]) || [];
28
+ this.endpoint = `${event.httpMethod} ${(_d = event === null || event === void 0 ? void 0 : event.requestContext) === null || _d === void 0 ? void 0 : _d.resourcePath}`;
29
+ this.isAdmin = groups.includes(this.adminGroupName);
30
+ this.userId = (_g = (_f = (_e = event === null || event === void 0 ? void 0 : event.requestContext) === null || _e === void 0 ? void 0 : _e.authorizer) === null || _f === void 0 ? void 0 : _f.claims) === null || _g === void 0 ? void 0 : _g.sub;
31
+ this.request = (0, index_1.parseHttpRequest)(event);
32
+ this.requestBody = this.request.body;
33
+ this.event = event;
34
+ this.resource = (event === null || event === void 0 ? void 0 : event.resource) || "";
35
+ this.methode = event === null || event === void 0 ? void 0 : event.httpMethod;
36
+ this.entityId = ((_h = event === null || event === void 0 ? void 0 : event.pathParameters) === null || _h === void 0 ? void 0 : _h.id) || "";
37
+ let statusCode = 200;
38
+ let content;
39
+ try {
40
+ // Check if this is a field fetch request (GET) by EntityId
41
+ if (this.isFieldFetchRequest())
42
+ content = yield this.handleFieldFetch();
43
+ // Check if this is a field delete request (DELETE) by EntityId
44
+ if (this.isFieldDeleteRequest())
45
+ content = yield this.handleFieldDelete();
46
+ // Check if this is a field update request (PATCH) by EntityId
47
+ if (this.isFieldUpdateRequest())
48
+ content = yield this.handleFieldUpdate();
49
+ // Check if this is a other crud request
50
+ if (!content)
51
+ content = yield this.processCrudRequest(event);
52
+ }
53
+ catch (err) {
54
+ const error = (0, exception_handler_1.errorHandlerHttp)(err);
55
+ statusCode = error.statusCode;
56
+ content = error.content;
57
+ }
58
+ return (0, index_1.createApiResponse)(statusCode, content);
59
+ });
60
+ }
61
+ resolveStreamEvent(event) {
62
+ return __awaiter(this, void 0, void 0, function* () {
63
+ try {
64
+ yield this.processStreamEvent(event);
65
+ }
66
+ catch (error) {
67
+ console.error("Error handling request event:", error);
68
+ }
69
+ });
70
+ }
71
+ resolveScheduledEvent(event) {
72
+ return __awaiter(this, void 0, void 0, function* () {
73
+ try {
74
+ yield this.processScheduledEvent(event);
75
+ }
76
+ catch (error) {
77
+ console.error("Error handling request event:", error);
78
+ }
79
+ });
80
+ }
81
+ resolveWebSocketEvent(event) {
82
+ return __awaiter(this, void 0, void 0, function* () {
83
+ try {
84
+ return this.processWebSocketEvent(event);
85
+ }
86
+ catch (error) {
87
+ console.error("Error handling request event:", error);
88
+ }
89
+ });
90
+ }
91
+ resolveTriggerEvent(event) {
92
+ return __awaiter(this, void 0, void 0, function* () {
93
+ try {
94
+ this.triggerEvent = event;
95
+ this.eventAttr = this.triggerEvent.userAttributes;
96
+ return this.processTriggerEvent(event);
97
+ }
98
+ catch (error) {
99
+ console.error("Error handling request event:", error);
100
+ }
101
+ });
102
+ }
103
+ isFieldUpdateRequest() {
104
+ const segments = this.resource.split("/").filter(Boolean);
105
+ const idIndex = segments.indexOf("{id}");
106
+ const segmentsLength = segments.length;
107
+ return this.event.httpMethod === "PATCH" && idIndex !== -1 && idIndex === segmentsLength - 1;
108
+ }
109
+ isFieldDeleteRequest() {
110
+ const segments = this.resource.split("/").filter(Boolean);
111
+ const idIndex = segments.indexOf("{id}");
112
+ const segmentsLength = segments.length;
113
+ return this.event.httpMethod === "DELETE" && idIndex !== -1 && idIndex === segmentsLength - 1;
114
+ }
115
+ isFieldFetchRequest() {
116
+ const segments = this.resource.split("/").filter(Boolean);
117
+ const idIndex = segments.indexOf("{id}");
118
+ const segmentsLength = segments.length;
119
+ return this.event.httpMethod === "GET" && idIndex !== -1 && idIndex === segmentsLength - 1;
120
+ }
121
+ handleFieldUpdate() {
122
+ return __awaiter(this, void 0, void 0, function* () {
123
+ const entity = JSON.parse(this.event.body || "{}");
124
+ if (Object.keys(entity).length === 0) {
125
+ throw new errors_1.ErrorHttp({ code: 400, error: "Bad Request" }, "No fields to update");
126
+ }
127
+ // Check if trying to update id field
128
+ if ("id" in entity) {
129
+ throw new errors_1.ErrorHttp({ code: 400, error: "Bad Request" }, "Cannot modify the id field");
130
+ }
131
+ const fields = Object.keys(entity);
132
+ entity.id = this.entityId;
133
+ return this.service.update(this.userId, entity, fields);
134
+ });
135
+ }
136
+ handleFieldDelete() {
137
+ return __awaiter(this, void 0, void 0, function* () {
138
+ return this.service.remove(this.userId, this.entityId);
139
+ });
140
+ }
141
+ handleFieldFetch() {
142
+ return __awaiter(this, void 0, void 0, function* () {
143
+ return this.service.findById(this.userId, this.entityId);
144
+ });
145
+ }
146
+ processTriggerEvent(event) {
147
+ return Promise.resolve();
148
+ }
149
+ }
150
+ exports.BaseController = BaseController;
151
+ //# sourceMappingURL=base-controller.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-controller.js","sourceRoot":"","sources":["../../src/controller/base-controller.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export * from "./base-controller";
@@ -0,0 +1,18 @@
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("./base-controller"), exports);
18
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/controller/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC"}
@@ -0,0 +1,32 @@
1
+ export declare class ErrorBase extends Error {
2
+ code: number;
3
+ message: string;
4
+ error: any;
5
+ constructor(code: number, message: string, errorContent?: any);
6
+ }
7
+ export declare class ErrorDynamoDB extends Error {
8
+ tableName: string;
9
+ command: any;
10
+ constructor(tableName: string, command: any, errorContent?: any);
11
+ }
12
+ export interface ErrorCodeMsg {
13
+ code: number;
14
+ error: string;
15
+ }
16
+ export declare class ErrorHttp extends Error {
17
+ statusCode: number;
18
+ error: string;
19
+ message: string;
20
+ data: any;
21
+ constructor(errorCodeMsg: ErrorCodeMsg, errorMessage?: any, errorData?: any);
22
+ }
23
+ export declare class ErrorValidation extends Error {
24
+ entityName: string;
25
+ validation: Map<string, any>;
26
+ error: any;
27
+ content: any;
28
+ constructor(entityName: string, validation: Map<string, any>, errorContent?: any);
29
+ }
30
+ export declare class MissingParameterError extends Error {
31
+ constructor(paramName: string);
32
+ }
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MissingParameterError = exports.ErrorValidation = exports.ErrorHttp = exports.ErrorDynamoDB = exports.ErrorBase = void 0;
4
+ class ErrorBase extends Error {
5
+ constructor(code, message, errorContent) {
6
+ super(errorContent);
7
+ this.code = code;
8
+ this.message = message;
9
+ }
10
+ }
11
+ exports.ErrorBase = ErrorBase;
12
+ class ErrorDynamoDB extends Error {
13
+ constructor(tableName, command, errorContent) {
14
+ super(errorContent);
15
+ this.tableName = tableName;
16
+ this.command = command;
17
+ }
18
+ }
19
+ exports.ErrorDynamoDB = ErrorDynamoDB;
20
+ class ErrorHttp extends Error {
21
+ constructor(errorCodeMsg, errorMessage, errorData) {
22
+ super(errorData);
23
+ this.statusCode = errorCodeMsg.code;
24
+ this.message = errorMessage;
25
+ this.error = errorCodeMsg.error;
26
+ this.data = errorData;
27
+ }
28
+ }
29
+ exports.ErrorHttp = ErrorHttp;
30
+ class ErrorValidation extends Error {
31
+ constructor(entityName, validation, errorContent) {
32
+ super(errorContent);
33
+ this.entityName = entityName;
34
+ this.validation = validation;
35
+ this.content = errorContent;
36
+ }
37
+ }
38
+ exports.ErrorValidation = ErrorValidation;
39
+ class MissingParameterError extends Error {
40
+ constructor(paramName) {
41
+ super(`${paramName} is required.`);
42
+ this.name = "MissingParameterError";
43
+ }
44
+ }
45
+ exports.MissingParameterError = MissingParameterError;
46
+ //# sourceMappingURL=errors.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/exception/errors.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAIlC,YAAY,IAAY,EAAE,OAAe,EAAE,YAAkB;QAC3D,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AATD,8BASC;AAED,MAAa,aAAc,SAAQ,KAAK;IAGtC,YAAY,SAAiB,EAAE,OAAY,EAAE,YAAkB;QAC7D,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AARD,sCAQC;AAOD,MAAa,SAAU,SAAQ,KAAK;IAMlC,YAAY,YAA0B,EAAE,YAAkB,EAAE,SAAe;QACzE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC;QACpC,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;QAC5B,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;QAChC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAbD,8BAaC;AAED,MAAa,eAAgB,SAAQ,KAAK;IAMxC,YAAY,UAAkB,EAAE,UAA4B,EAAE,YAAkB;QAC9E,KAAK,CAAC,YAAY,CAAC,CAAC;QACpB,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,YAAY,CAAC;IAC9B,CAAC;CACF;AAZD,0CAYC;AAED,MAAa,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,SAAiB;QAC3B,KAAK,CAAC,GAAG,SAAS,eAAe,CAAC,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;CACF;AALD,sDAKC"}
@@ -0,0 +1,238 @@
1
+ export declare const errorHandlerHttp: (error: any) => {
2
+ statusCode: number;
3
+ content: {
4
+ error: string;
5
+ message: any;
6
+ data: any;
7
+ };
8
+ };
9
+ export declare const HTTP: {
10
+ CONTINUE: {
11
+ error: string;
12
+ code: number;
13
+ };
14
+ SWITCHING_PROTOCOLS: {
15
+ error: string;
16
+ code: number;
17
+ };
18
+ PROCESSING: {
19
+ error: string;
20
+ code: number;
21
+ };
22
+ OK: {
23
+ error: string;
24
+ code: number;
25
+ };
26
+ CREATED: {
27
+ error: string;
28
+ code: number;
29
+ };
30
+ ACCEPTED: {
31
+ error: string;
32
+ code: number;
33
+ };
34
+ NON_AUTHORITATIVE_INFORMATION: {
35
+ error: string;
36
+ code: number;
37
+ };
38
+ NO_CONTENT: {
39
+ error: string;
40
+ code: number;
41
+ };
42
+ RESET_CONTENT: {
43
+ error: string;
44
+ code: number;
45
+ };
46
+ PARTIAL_CONTENT: {
47
+ error: string;
48
+ code: number;
49
+ };
50
+ MULTIPLE_CHOICES: {
51
+ error: string;
52
+ code: number;
53
+ };
54
+ MOVED_PERMANENTLY: {
55
+ error: string;
56
+ code: number;
57
+ };
58
+ FOUND: {
59
+ error: string;
60
+ code: number;
61
+ };
62
+ SEE_OTHER: {
63
+ error: string;
64
+ code: number;
65
+ };
66
+ NOT_MODIFIED: {
67
+ error: string;
68
+ code: number;
69
+ };
70
+ TEMPORARY_REDIRECT: {
71
+ error: string;
72
+ code: number;
73
+ };
74
+ PERMANENT_REDIRECT: {
75
+ error: string;
76
+ code: number;
77
+ };
78
+ BAD_REQUEST: {
79
+ error: string;
80
+ code: number;
81
+ };
82
+ UNAUTHORIZED: {
83
+ error: string;
84
+ code: number;
85
+ };
86
+ PAYMENT_REQUIRED: {
87
+ error: string;
88
+ code: number;
89
+ };
90
+ FORBIDDEN: {
91
+ error: string;
92
+ code: number;
93
+ };
94
+ NOT_FOUND: {
95
+ error: string;
96
+ code: number;
97
+ };
98
+ METHOD_NOT_ALLOWED: {
99
+ error: string;
100
+ code: number;
101
+ };
102
+ NOT_ACCEPTABLE: {
103
+ error: string;
104
+ code: number;
105
+ };
106
+ PROXY_AUTHENTICATION_REQUIRED: {
107
+ error: string;
108
+ code: number;
109
+ };
110
+ REQUEST_TIMEOUT: {
111
+ error: string;
112
+ code: number;
113
+ };
114
+ CONFLICT: {
115
+ error: string;
116
+ code: number;
117
+ };
118
+ GONE: {
119
+ error: string;
120
+ code: number;
121
+ };
122
+ LENGTH_REQUIRED: {
123
+ error: string;
124
+ code: number;
125
+ };
126
+ PRECONDITION_FAILED: {
127
+ error: string;
128
+ code: number;
129
+ };
130
+ PAYLOAD_TOO_LARGE: {
131
+ error: string;
132
+ code: number;
133
+ };
134
+ URI_TOO_LONG: {
135
+ error: string;
136
+ code: number;
137
+ };
138
+ UNSUPPORTED_MEDIA_TYPE: {
139
+ error: string;
140
+ code: number;
141
+ };
142
+ RANGE_NOT_SATISFIABLE: {
143
+ error: string;
144
+ code: number;
145
+ };
146
+ EXPECTATION_FAILED: {
147
+ error: string;
148
+ code: number;
149
+ };
150
+ IM_A_TEAPOT: {
151
+ error: string;
152
+ code: number;
153
+ };
154
+ MISDIRECTED_REQUEST: {
155
+ error: string;
156
+ code: number;
157
+ };
158
+ UNPROCESSABLE_ENTITY: {
159
+ error: string;
160
+ code: number;
161
+ };
162
+ LOCKED: {
163
+ error: string;
164
+ code: number;
165
+ };
166
+ FAILED_DEPENDENCY: {
167
+ error: string;
168
+ code: number;
169
+ };
170
+ TOO_EARLY: {
171
+ error: string;
172
+ code: number;
173
+ };
174
+ UPGRADE_REQUIRED: {
175
+ error: string;
176
+ code: number;
177
+ };
178
+ PRECONDITION_REQUIRED: {
179
+ error: string;
180
+ code: number;
181
+ };
182
+ TOO_MANY_REQUESTS: {
183
+ error: string;
184
+ code: number;
185
+ };
186
+ REQUEST_HEADER_FIELDS_TOO_LARGE: {
187
+ error: string;
188
+ code: number;
189
+ };
190
+ UNAVAILABLE_FOR_LEGAL_REASONS: {
191
+ error: string;
192
+ code: number;
193
+ };
194
+ INTERNAL_SERVER_ERROR: {
195
+ error: string;
196
+ code: number;
197
+ };
198
+ NOT_IMPLEMENTED: {
199
+ error: string;
200
+ code: number;
201
+ };
202
+ BAD_GATEWAY: {
203
+ error: string;
204
+ code: number;
205
+ };
206
+ SERVICE_UNAVAILABLE: {
207
+ error: string;
208
+ code: number;
209
+ };
210
+ GATEWAY_TIMEOUT: {
211
+ error: string;
212
+ code: number;
213
+ };
214
+ HTTP_VERSION_NOT_SUPPORTED: {
215
+ error: string;
216
+ code: number;
217
+ };
218
+ VARIANT_ALSO_NEGOTIATES: {
219
+ error: string;
220
+ code: number;
221
+ };
222
+ INSUFFICIENT_STORAGE: {
223
+ error: string;
224
+ code: number;
225
+ };
226
+ LOOP_DETECTED: {
227
+ error: string;
228
+ code: number;
229
+ };
230
+ NOT_EXTENDED: {
231
+ error: string;
232
+ code: number;
233
+ };
234
+ NETWORK_AUTHENTICATION_REQUIRED: {
235
+ error: string;
236
+ code: number;
237
+ };
238
+ };