c2-http 1.0.88 → 1.0.89

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 (31) hide show
  1. package/dist/dto/IJWTPayload.d.ts +5 -0
  2. package/dist/dto/IJWTPayload.js +2 -0
  3. package/dist/i18n.js +2 -2
  4. package/dist/index.d.ts +8 -1
  5. package/dist/index.js +13 -1
  6. package/dist/middleware/global-middleware/MiddlewareGlobals.d.ts +6 -0
  7. package/dist/middleware/global-middleware/MiddlewareGlobals.js +20 -0
  8. package/dist/middleware/global-middleware/item/MiddlewareBody.d.ts +7 -0
  9. package/dist/middleware/global-middleware/item/MiddlewareBody.js +33 -0
  10. package/dist/middleware/global-middleware/item/MiddlewareContext.d.ts +6 -0
  11. package/dist/middleware/global-middleware/item/MiddlewareContext.js +16 -0
  12. package/dist/middleware/global-middleware/item/MiddlewareCookie.d.ts +6 -0
  13. package/dist/middleware/global-middleware/item/MiddlewareCookie.js +12 -0
  14. package/dist/middleware/global-middleware/item/MiddlewareCors.d.ts +6 -0
  15. package/dist/middleware/global-middleware/item/MiddlewareCors.js +29 -0
  16. package/dist/middleware/global-middleware/item/MiddlewareLogRequest.d.ts +6 -0
  17. package/dist/middleware/global-middleware/item/MiddlewareLogRequest.js +14 -0
  18. package/dist/middleware/global-middleware/item/MiddlewareQueryParams.d.ts +6 -0
  19. package/dist/middleware/global-middleware/item/MiddlewareQueryParams.js +33 -0
  20. package/dist/middleware/jwt-middlware/MiddlewareJwt.d.ts +7 -0
  21. package/dist/middleware/jwt-middlware/MiddlewareJwt.js +39 -0
  22. package/dist/middleware/jwt-middlware/item/AddInContextFlowItem.d.ts +6 -0
  23. package/dist/middleware/jwt-middlware/item/AddInContextFlowItem.js +14 -0
  24. package/dist/middleware/jwt-middlware/item/GetTokenFlowItem.d.ts +5 -0
  25. package/dist/middleware/jwt-middlware/item/GetTokenFlowItem.js +24 -0
  26. package/dist/middleware/jwt-middlware/item/ValidateTokenFlowItem.d.ts +6 -0
  27. package/dist/middleware/jwt-middlware/item/ValidateTokenFlowItem.js +40 -0
  28. package/dist/model/Server.d.ts +1 -3
  29. package/dist/model/Server.js +10 -8
  30. package/package.json +10 -3
  31. package/yarn-error.log +211 -11
@@ -0,0 +1,5 @@
1
+ import { JwtPayload } from "jsonwebtoken";
2
+ export interface IJWTPayload extends JwtPayload {
3
+ account: string;
4
+ scopes: string;
5
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/dist/i18n.js CHANGED
@@ -16,9 +16,9 @@ let i18n = i18nCreate({
16
16
  }
17
17
  });
18
18
  const initializei18n = (config) => {
19
- console.log("Initializing i18n...");
19
+ (0, c2_util_1.log)("LOG_i18n", "Initializing i18n...");
20
20
  i18n = i18nCreate(config);
21
- console.log("Done i18n");
21
+ (0, c2_util_1.log)("LOG_i18n", "Done i18n");
22
22
  };
23
23
  exports.initializei18n = initializei18n;
24
24
  const getMessage = (message, ...parameters) => {
package/dist/index.d.ts CHANGED
@@ -1,4 +1,11 @@
1
+ import { IJWTPayload } from "./dto/IJWTPayload";
1
2
  import { getMessage, initializei18n } from "./i18n";
3
+ import MiddlewareBody from "./middleware/global-middleware/item/MiddlewareBody";
4
+ import MiddlewareContext from "./middleware/global-middleware/item/MiddlewareContext";
5
+ import MiddlewareCookie from "./middleware/global-middleware/item/MiddlewareCookie";
6
+ import MiddlewareCors from "./middleware/global-middleware/item/MiddlewareCors";
7
+ import { MiddlewareLogRequest } from "./middleware/global-middleware/item/MiddlewareLogRequest";
8
+ import { MiddlewareQueryParams } from "./middleware/global-middleware/item/MiddlewareQueryParams";
2
9
  import { Controller, HttpDispatchDownload, HttpDispatchHandling, OpenApi } from "./model/Controller";
3
10
  import { ControllerRoleMiddleware } from "./model/ControllerRoleMiddleware";
4
11
  import { ControllerRoute, IOpenApiPath } from "./model/ControllerRoute";
@@ -12,4 +19,4 @@ export declare const prepareRequestParams: (options?: any) => {
12
19
  params: any;
13
20
  paramsSerializer: (params: any) => string;
14
21
  };
15
- export { Controller, ControllerRoleMiddleware, ControllerRoute, CrudController, getMessage, HttpDispatchDownload, HttpDispatchHandling, IControllerOptions, ICrudControllerOptions, initializei18n, IOpenApiPath, IServerConfig, OpenApi, Server };
22
+ export { Controller, ControllerRoleMiddleware, ControllerRoute, CrudController, getMessage, HttpDispatchDownload, HttpDispatchHandling, IControllerOptions, ICrudControllerOptions, IJWTPayload, initializei18n, IOpenApiPath, IServerConfig, MiddlewareBody, MiddlewareContext, MiddlewareCookie, MiddlewareCors, MiddlewareLogRequest, MiddlewareQueryParams, OpenApi, Server };
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.Server = exports.OpenApi = exports.initializei18n = exports.HttpDispatchHandling = exports.HttpDispatchDownload = exports.getMessage = exports.CrudController = exports.ControllerRoute = exports.ControllerRoleMiddleware = exports.Controller = exports.prepareRequestParams = exports.convertErrorToHttpError = void 0;
6
+ exports.Server = exports.OpenApi = exports.MiddlewareQueryParams = exports.MiddlewareLogRequest = exports.MiddlewareCors = exports.MiddlewareCookie = exports.MiddlewareContext = exports.MiddlewareBody = exports.initializei18n = exports.HttpDispatchHandling = exports.HttpDispatchDownload = exports.getMessage = exports.CrudController = exports.ControllerRoute = exports.ControllerRoleMiddleware = exports.Controller = exports.prepareRequestParams = exports.convertErrorToHttpError = void 0;
7
7
  const axios_1 = __importDefault(require("axios"));
8
8
  const express_http_context_1 = __importDefault(require("express-http-context"));
9
9
  const http_status_1 = require("http-status");
@@ -13,6 +13,18 @@ const qs_1 = __importDefault(require("qs"));
13
13
  const i18n_1 = require("./i18n");
14
14
  Object.defineProperty(exports, "getMessage", { enumerable: true, get: function () { return i18n_1.getMessage; } });
15
15
  Object.defineProperty(exports, "initializei18n", { enumerable: true, get: function () { return i18n_1.initializei18n; } });
16
+ const MiddlewareBody_1 = __importDefault(require("./middleware/global-middleware/item/MiddlewareBody"));
17
+ exports.MiddlewareBody = MiddlewareBody_1.default;
18
+ const MiddlewareContext_1 = __importDefault(require("./middleware/global-middleware/item/MiddlewareContext"));
19
+ exports.MiddlewareContext = MiddlewareContext_1.default;
20
+ const MiddlewareCookie_1 = __importDefault(require("./middleware/global-middleware/item/MiddlewareCookie"));
21
+ exports.MiddlewareCookie = MiddlewareCookie_1.default;
22
+ const MiddlewareCors_1 = __importDefault(require("./middleware/global-middleware/item/MiddlewareCors"));
23
+ exports.MiddlewareCors = MiddlewareCors_1.default;
24
+ const MiddlewareLogRequest_1 = require("./middleware/global-middleware/item/MiddlewareLogRequest");
25
+ Object.defineProperty(exports, "MiddlewareLogRequest", { enumerable: true, get: function () { return MiddlewareLogRequest_1.MiddlewareLogRequest; } });
26
+ const MiddlewareQueryParams_1 = require("./middleware/global-middleware/item/MiddlewareQueryParams");
27
+ Object.defineProperty(exports, "MiddlewareQueryParams", { enumerable: true, get: function () { return MiddlewareQueryParams_1.MiddlewareQueryParams; } });
16
28
  const Controller_1 = require("./model/Controller");
17
29
  Object.defineProperty(exports, "Controller", { enumerable: true, get: function () { return Controller_1.Controller; } });
18
30
  Object.defineProperty(exports, "HttpDispatchDownload", { enumerable: true, get: function () { return Controller_1.HttpDispatchDownload; } });
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ declare class MiddlewareGlobals {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareGlobals;
6
+ export default _default;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const MiddlewareBody_1 = __importDefault(require("./item/MiddlewareBody"));
7
+ const MiddlewareContext_1 = __importDefault(require("./item/MiddlewareContext"));
8
+ const MiddlewareCors_1 = __importDefault(require("./item/MiddlewareCors"));
9
+ const MiddlewareLogRequest_1 = __importDefault(require("./item/MiddlewareLogRequest"));
10
+ const MiddlewareQueryParams_1 = __importDefault(require("./item/MiddlewareQueryParams"));
11
+ class MiddlewareGlobals {
12
+ config(expressApplication) {
13
+ MiddlewareCors_1.default.config(expressApplication);
14
+ MiddlewareContext_1.default.config(expressApplication);
15
+ MiddlewareBody_1.default.config(expressApplication);
16
+ MiddlewareQueryParams_1.default.config(expressApplication);
17
+ MiddlewareLogRequest_1.default.config(expressApplication);
18
+ }
19
+ }
20
+ exports.default = new MiddlewareGlobals;
@@ -0,0 +1,7 @@
1
+ import express from "express";
2
+ declare class MiddlewareBody {
3
+ config(expressApplication: express.Application): void;
4
+ private convertDates;
5
+ }
6
+ declare const _default: MiddlewareBody;
7
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const body_parser_1 = __importDefault(require("body-parser"));
7
+ const moment_1 = __importDefault(require("moment"));
8
+ class MiddlewareBody {
9
+ config(expressApplication) {
10
+ expressApplication.use(body_parser_1.default.json({ limit: "5mb" }));
11
+ expressApplication.use(body_parser_1.default.urlencoded({ limit: "5mb", extended: true }));
12
+ expressApplication.use(body_parser_1.default.text({ limit: "5mb" }));
13
+ expressApplication.use((request, response, next) => {
14
+ if (request.body && typeof request.body === "object") {
15
+ this.convertDates(request.body);
16
+ }
17
+ next();
18
+ });
19
+ }
20
+ convertDates(obj) {
21
+ for (const key in obj) {
22
+ if (obj.hasOwnProperty(key)) {
23
+ if (key.endsWith("Date") || key.endsWith("DateTime")) {
24
+ obj[key] = moment_1.default.utc(obj[key]);
25
+ }
26
+ else if (typeof obj[key] === "object" && obj[key] !== null) {
27
+ this.convertDates(obj[key]);
28
+ }
29
+ }
30
+ }
31
+ }
32
+ }
33
+ exports.default = new MiddlewareBody;
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ declare class MiddlewareContext {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareContext;
6
+ export default _default;
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_http_context_1 = __importDefault(require("express-http-context"));
7
+ class MiddlewareContext {
8
+ config(expressApplication) {
9
+ expressApplication.use(express_http_context_1.default.middleware);
10
+ expressApplication.use((request, response, next) => {
11
+ express_http_context_1.default.set("headers", request.headers);
12
+ next();
13
+ });
14
+ }
15
+ }
16
+ exports.default = new MiddlewareContext;
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ declare class MiddlewareCookie {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareCookie;
6
+ export default _default;
@@ -0,0 +1,12 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cookie_parser_1 = __importDefault(require("cookie-parser"));
7
+ class MiddlewareCookie {
8
+ config(expressApplication) {
9
+ expressApplication.use((0, cookie_parser_1.default)());
10
+ }
11
+ }
12
+ exports.default = new MiddlewareCookie;
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ declare class MiddlewareCors {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareCors;
6
+ export default _default;
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const cors_1 = __importDefault(require("cors"));
7
+ class MiddlewareCors {
8
+ config(expressApplication) {
9
+ expressApplication.use((0, cors_1.default)({
10
+ origin: (origin, callback) => {
11
+ // Permitir solicitações sem uma origem
12
+ if (!origin)
13
+ return callback(null, true);
14
+ if (!process.env.ORIGIN_ENABLES) {
15
+ return callback(null, true);
16
+ }
17
+ if (process.env.ORIGIN_ENABLES.split(",").indexOf(origin) === -1) {
18
+ const msg = "Acesso não permitido para esta origem";
19
+ return callback(new Error(msg), false);
20
+ }
21
+ return callback(null, true);
22
+ },
23
+ methods: "GET,OPTIONS,PUT,POST,PATCH,DELETE",
24
+ allowedHeaders: "Content-Type,Authorization,Origin,Accept",
25
+ credentials: true
26
+ }));
27
+ }
28
+ }
29
+ exports.default = new MiddlewareCors;
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ export declare class MiddlewareLogRequest {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareLogRequest;
6
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiddlewareLogRequest = void 0;
4
+ const c2_util_1 = require("c2-util");
5
+ class MiddlewareLogRequest {
6
+ config(expressApplication) {
7
+ expressApplication.use((request, response, next) => {
8
+ (0, c2_util_1.log)("LOG_REQUEST", `${request.headers.host} ${request.originalUrl}`);
9
+ next();
10
+ });
11
+ }
12
+ }
13
+ exports.MiddlewareLogRequest = MiddlewareLogRequest;
14
+ exports.default = new MiddlewareLogRequest;
@@ -0,0 +1,6 @@
1
+ import express from "express";
2
+ export declare class MiddlewareQueryParams {
3
+ config(expressApplication: express.Application): void;
4
+ }
5
+ declare const _default: MiddlewareQueryParams;
6
+ export default _default;
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.MiddlewareQueryParams = void 0;
4
+ class MiddlewareQueryParams {
5
+ config(expressApplication) {
6
+ expressApplication.use((request, response, next) => {
7
+ for (const key in request.query) {
8
+ if (request.query.hasOwnProperty(key)) {
9
+ const value = request.query[key];
10
+ if (value === "true") {
11
+ request.query[key] = true;
12
+ }
13
+ else if (value === "false") {
14
+ request.query[key] = false;
15
+ }
16
+ else if (Array.isArray(value)) {
17
+ for (let i = 0; i < value.length; i++) {
18
+ if (value[i] === "true") {
19
+ value[i] = true;
20
+ }
21
+ else if (value[i] === "false") {
22
+ value[i] = false;
23
+ }
24
+ }
25
+ }
26
+ }
27
+ }
28
+ next();
29
+ });
30
+ }
31
+ }
32
+ exports.MiddlewareQueryParams = MiddlewareQueryParams;
33
+ exports.default = new MiddlewareQueryParams;
@@ -0,0 +1,7 @@
1
+ import { NextFunction, Request, Response } from "express";
2
+ declare class MiddlewareCheckTokenFlow {
3
+ config: (request: Request, response: Response, next: NextFunction) => Promise<void>;
4
+ checkToken(response: Response, next: NextFunction): Promise<void>;
5
+ }
6
+ declare const _default: MiddlewareCheckTokenFlow;
7
+ export default _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const http_status_1 = require("http-status");
7
+ const __1 = require("../..");
8
+ const AddInContextFlowItem_1 = __importDefault(require("./item/AddInContextFlowItem"));
9
+ const GetTokenFlowItem_1 = __importDefault(require("./item/GetTokenFlowItem"));
10
+ const ValidateTokenFlowItem_1 = __importDefault(require("./item/ValidateTokenFlowItem"));
11
+ class MiddlewareCheckTokenFlow {
12
+ config = async (request, response, next) => {
13
+ try {
14
+ if (request.path?.includes("/docs") && request.method === "GET") {
15
+ next();
16
+ return;
17
+ }
18
+ await this.checkToken(response, next);
19
+ }
20
+ catch (error) {
21
+ response
22
+ .status(error.status || http_status_1.INTERNAL_SERVER_ERROR)
23
+ .json({ message: error.message, detail: error.detail?.data });
24
+ }
25
+ };
26
+ async checkToken(response, next) {
27
+ let token = "";
28
+ try {
29
+ token = GetTokenFlowItem_1.default.get();
30
+ const tokenDecoded = ValidateTokenFlowItem_1.default.exec(token);
31
+ AddInContextFlowItem_1.default.exec(tokenDecoded);
32
+ next();
33
+ }
34
+ catch (error) {
35
+ throw (0, __1.convertErrorToHttpError)(error);
36
+ }
37
+ }
38
+ }
39
+ exports.default = new MiddlewareCheckTokenFlow;
@@ -0,0 +1,6 @@
1
+ import { IJWTPayload } from "../../../dto/IJWTPayload";
2
+ declare class AddInContextFlowItem {
3
+ exec(decode: IJWTPayload): void;
4
+ }
5
+ declare const _default: AddInContextFlowItem;
6
+ export default _default;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const express_http_context_1 = __importDefault(require("express-http-context"));
7
+ class AddInContextFlowItem {
8
+ exec(decode) {
9
+ express_http_context_1.default.set("userId", decode.sub);
10
+ express_http_context_1.default.set("accountId", decode.account);
11
+ express_http_context_1.default.set("scopes", decode.scopes);
12
+ }
13
+ }
14
+ exports.default = new AddInContextFlowItem;
@@ -0,0 +1,5 @@
1
+ declare class GetTokenFlowItem {
2
+ get(): string;
3
+ }
4
+ declare const _default: GetTokenFlowItem;
5
+ export default _default;
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const c2_util_1 = require("c2-util");
7
+ const express_http_context_1 = __importDefault(require("express-http-context"));
8
+ const http_status_1 = require("http-status");
9
+ const i18n_1 = require("../../../i18n");
10
+ const HttpError_1 = require("../../../model/HttpError");
11
+ class GetTokenFlowItem {
12
+ get() {
13
+ const headerAuthorization = express_http_context_1.default.get("headers")["authorization"];
14
+ if (!headerAuthorization) {
15
+ throw new HttpError_1.HttpError(http_status_1.FORBIDDEN, (0, i18n_1.getMessage)("message.authentication.tokenIsRequired"));
16
+ }
17
+ const token = headerAuthorization.split(" ")[1];
18
+ if ((0, c2_util_1.isEmpty)(token)) {
19
+ throw new HttpError_1.HttpError(http_status_1.FORBIDDEN, (0, i18n_1.getMessage)("message.authentication.tokenIsRequired"));
20
+ }
21
+ return token;
22
+ }
23
+ }
24
+ exports.default = new GetTokenFlowItem;
@@ -0,0 +1,6 @@
1
+ import { IJWTPayload } from "../../../dto/IJWTPayload";
2
+ declare class ValidateTokenFlowItem {
3
+ exec(token: string): IJWTPayload;
4
+ }
5
+ declare const _default: ValidateTokenFlowItem;
6
+ export default _default;
@@ -0,0 +1,40 @@
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 __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ const http_status_1 = require("http-status");
27
+ const jwt = __importStar(require("jsonwebtoken"));
28
+ const i18n_1 = require("../../../i18n");
29
+ const HttpError_1 = require("../../../model/HttpError");
30
+ class ValidateTokenFlowItem {
31
+ exec(token) {
32
+ try {
33
+ return jwt.verify(token, process.env.JWT_SECRET ?? "");
34
+ }
35
+ catch (error) {
36
+ throw new HttpError_1.HttpError(http_status_1.FORBIDDEN, (0, i18n_1.getMessage)("message.authentication.authenticateIsRequired"));
37
+ }
38
+ }
39
+ }
40
+ exports.default = new ValidateTokenFlowItem;
@@ -1,9 +1,7 @@
1
- import express, { NextFunction, Request, Response, Router } from "express";
1
+ import express, { Router } from "express";
2
2
  export interface IServerConfig {
3
3
  openApiFileOutput: any;
4
4
  port: string;
5
- globalMiddleware: (app: express.Application) => void;
6
- tokenCheckMiddleware: (request: Request, response: Response, next: NextFunction) => void;
7
5
  routesWithToken: Router[];
8
6
  routes: Router[];
9
7
  i18n: any;
@@ -4,9 +4,12 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.Server = void 0;
7
+ const c2_util_1 = require("c2-util");
7
8
  const express_1 = __importDefault(require("express"));
8
9
  const swagger_ui_express_1 = __importDefault(require("swagger-ui-express"));
9
10
  const i18n_1 = require("../i18n");
11
+ const MiddlewareGlobals_1 = __importDefault(require("../middleware/global-middleware/MiddlewareGlobals"));
12
+ const MiddlewareJwt_1 = __importDefault(require("../middleware/jwt-middlware/MiddlewareJwt"));
10
13
  class Server {
11
14
  app;
12
15
  config;
@@ -16,29 +19,28 @@ class Server {
16
19
  this.config = config;
17
20
  }
18
21
  async initialize(callback) {
22
+ (0, c2_util_1.log)("LOG_INIT_SERVER", `Initializing server on ${this.config.port}...`);
19
23
  (0, i18n_1.initializei18n)(this.config.i18n);
20
- console.log(`Initializing server on ${this.config.port}...`);
21
- this.config.globalMiddleware(this.app);
24
+ MiddlewareGlobals_1.default.config(this.app);
22
25
  for (const router of this.config.routes) {
23
26
  this.app.use(router);
24
27
  }
25
28
  this.app.use("/docs", swagger_ui_express_1.default.serve, swagger_ui_express_1.default.setup(global.OPEN_API_DOC));
26
- console.log("Rotas abertas OK");
27
- this.app.use(this.config.tokenCheckMiddleware);
29
+ (0, c2_util_1.log)("LOG", "Rotas abertas OK");
30
+ this.app.use(MiddlewareJwt_1.default.config);
28
31
  for (const router of this.config.routesWithToken) {
29
- // router.use(this.config.tokenCheckMiddleware)
30
32
  this.app.use(router);
31
33
  }
32
- console.log("Rotas fechadas OK");
34
+ (0, c2_util_1.log)("LOG", "Rotas fechadas OK");
33
35
  this.server = this.app.listen(this.config.port, async () => {
34
- console.log(`Server running on port ${this.config.port}`);
36
+ (0, c2_util_1.log)("LOG_INIT_SERVER", `Server running on port ${this.config.port}`);
35
37
  if (callback) {
36
38
  await callback(this.app);
37
39
  }
38
40
  });
39
41
  process.on("SIGTERM", () => {
40
42
  this.server.close(() => {
41
- console.log("Process terminated");
43
+ (0, c2_util_1.log)("LOG", "Process terminated");
42
44
  process.exit();
43
45
  });
44
46
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "c2-http",
3
- "version": "1.0.88",
3
+ "version": "1.0.89",
4
4
  "description": "Biblioteca Typescript para API NodeJS",
5
5
  "repository": "https://cabralsilva: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@github.com/cabralsilva/c2-http.git",
6
6
  "author": "Daniel Cabral <cabralconsultoriaemsoftware@gmail.com>",
@@ -25,22 +25,29 @@
25
25
  "@types/mongoose": "^5.11.97",
26
26
  "@types/swagger-ui-express": "^4.1.6",
27
27
  "axios": "^1.6.8",
28
- "c2-util": "^1.0.13",
28
+ "c2-util": "^1.0.26",
29
+ "cookie-parser": "^1.4.7",
30
+ "cors": "^2.8.5",
29
31
  "express": "^4.19.2",
30
32
  "express-http-context": "^1.2.4",
31
33
  "express-rest-i18n": "^1.0.1",
32
34
  "http-status": "^1.7.4",
35
+ "moment": "^2.30.1",
33
36
  "mongoose": "^8.3.4",
34
37
  "qs": "^6.13.0",
35
38
  "swagger-autogen": "^2.23.7",
36
39
  "swagger-ui-express": "^5.0.0",
37
40
  "ts-node": "^10.8.1",
38
- "typescript": "^4.7.4"
41
+ "typescript": "^4.7.4",
42
+ "jsonwebtoken": "^9.0.0"
39
43
  },
40
44
  "devDependencies": {
45
+ "@types/cookie-parser": "^1.4.7",
46
+ "@types/cors": "^2.8.13",
41
47
  "@types/node": "^20.12.11",
42
48
  "@typescript-eslint/eslint-plugin": "^7.8.0",
43
49
  "@typescript-eslint/parser": "^7.8.0",
50
+ "@types/jsonwebtoken": "^8.5.8",
44
51
  "eslint": "^9.2.0",
45
52
  "typescript-eslint": "^7.8.0"
46
53
  }
package/yarn-error.log CHANGED
@@ -1,8 +1,8 @@
1
1
  Arguments:
2
- /Users/danielsilva/.nvm/versions/node/v22.1.0/bin/node /opt/homebrew/Cellar/yarn/1.22.19/libexec/bin/yarn.js add @types/express-rest-i18n
2
+ /Users/danielsilva/.nvm/versions/node/v22.1.0/bin/node /opt/homebrew/Cellar/yarn/1.22.19/libexec/bin/yarn.js add c2-utils
3
3
 
4
4
  PATH:
5
- /Users/danielsilva/Library/Android/sdk/tools:/Users/danielsilva/Library/Android/sdk/tools/bin:/Users/danielsilva/Library/Android/sdk/platform-tools:/Users/danielsilva/.nvm/versions/node/v22.1.0/bin:/path/to/mongodb/bin:/opt/homebrew/bin:/usr/local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/go/bin:/Users/danielsilva/Library/Android/sdk/tools:/Users/danielsilva/Library/Android/sdk/tools/bin:/Users/danielsilva/Library/Android/sdk/platform-tools:/Users/danielsilva/.sdkman/candidates/java/current/bin:/Users/danielsilva/.nvm/versions/node/v22.1.0/bin:/path/to/mongodb/bin:/opt/homebrew/bin:/opt/homebrew/sbin
5
+ /Users/danielsilva/Library/Android/sdk/tools:/Users/danielsilva/Library/Android/sdk/tools/bin:/Users/danielsilva/Library/Android/sdk/platform-tools:/Users/danielsilva/.nvm/versions/node/v22.1.0/bin:/path/to/mongodb/bin:/opt/homebrew/bin:/usr/local/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/usr/local/go/bin:/Users/danielsilva/Library/Android/sdk/tools:/Users/danielsilva/Library/Android/sdk/tools/bin:/Users/danielsilva/Library/Android/sdk/platform-tools:/Users/danielsilva/.sdkman/candidates/java/current/bin:/Users/danielsilva/.nvm/versions/node/v22.1.0/bin:/path/to/mongodb/bin:/usr/local/go/bin[[:/Users/danielsilva/Library/Application Support/Code/User/globalStorage/github.copilot-chat/debugCommand[[
6
6
 
7
7
  Yarn version:
8
8
  1.22.19
@@ -14,7 +14,7 @@ Platform:
14
14
  darwin arm64
15
15
 
16
16
  Trace:
17
- Error: https://registry.yarnpkg.com/@types%2fexpress-rest-i18n: Not found
17
+ Error: https://registry.yarnpkg.com/c2-utils: Not found
18
18
  at params.callback [as _callback] (/opt/homebrew/Cellar/yarn/1.22.19/libexec/lib/cli.js:66145:18)
19
19
  at self.callback (/opt/homebrew/Cellar/yarn/1.22.19/libexec/lib/cli.js:140890:22)
20
20
  at Request.emit (node:events:520:28)
@@ -29,7 +29,7 @@ Trace:
29
29
  npm manifest:
30
30
  {
31
31
  "name": "c2-http",
32
- "version": "1.0.9",
32
+ "version": "1.0.88",
33
33
  "description": "Biblioteca Typescript para API NodeJS",
34
34
  "repository": "https://cabralsilva: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@github.com/cabralsilva/c2-http.git",
35
35
  "author": "Daniel Cabral <cabralconsultoriaemsoftware@gmail.com>",
@@ -48,22 +48,33 @@ npm manifest:
48
48
  "publish-major": "npm version major"
49
49
  },
50
50
  "dependencies": {
51
+ "@types/axios": "^0.14.0",
51
52
  "@types/express": "^4.17.21",
52
53
  "@types/http-status": "^1.1.2",
53
54
  "@types/mongoose": "^5.11.97",
55
+ "@types/swagger-ui-express": "^4.1.6",
56
+ "axios": "^1.6.8",
54
57
  "c2-util": "^1.0.13",
55
58
  "express": "^4.19.2",
56
59
  "express-http-context": "^1.2.4",
57
60
  "express-rest-i18n": "^1.0.1",
58
61
  "http-status": "^1.7.4",
62
+ "moment": "^2.30.1",
59
63
  "mongoose": "^8.3.4",
64
+ "qs": "^6.13.0",
65
+ "swagger-autogen": "^2.23.7",
66
+ "swagger-ui-express": "^5.0.0",
60
67
  "ts-node": "^10.8.1",
61
- "typescript": "^4.7.4"
68
+ "typescript": "^4.7.4",
69
+ "cookie-parser": "^1.4.7",
70
+ "cors": "^2.8.5"
62
71
  },
63
72
  "devDependencies": {
64
73
  "@types/node": "^20.12.11",
65
74
  "@typescript-eslint/eslint-plugin": "^7.8.0",
66
75
  "@typescript-eslint/parser": "^7.8.0",
76
+ "@types/cookie-parser": "^1.4.7",
77
+ "@types/cors": "^2.8.13",
67
78
  "eslint": "^9.2.0",
68
79
  "typescript-eslint": "^7.8.0"
69
80
  }
@@ -206,6 +217,13 @@ Lockfile:
206
217
  resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.4.tgz#0b92dcc0cc1c81f6f306a381f28e31b1a56536e9"
207
218
  integrity sha512-vxhUy4J8lyeyinH7Azl1pdd43GJhZH/tP2weN8TntQblOY+A0XbT8DJk1/oCPuOOyg/Ja757rG0CgHcWC8OfMA==
208
219
 
220
+ "@types/axios@^0.14.0":
221
+ version "0.14.0"
222
+ resolved "https://registry.yarnpkg.com/@types/axios/-/axios-0.14.0.tgz#ec2300fbe7d7dddd7eb9d3abf87999964cafce46"
223
+ integrity sha512-KqQnQbdYE54D7oa/UmYVMZKq7CO4l8DEENzOKc4aBRwxCXSlJXGz83flFx5L7AWrOQnmuN3kVsRdt+GZPPjiVQ==
224
+ dependencies:
225
+ axios "*"
226
+
209
227
  "@types/body-parser@*":
210
228
  version "1.19.5"
211
229
  resolved "https://registry.yarnpkg.com/@types/body-parser/-/body-parser-1.19.5.tgz#04ce9a3b677dc8bd681a17da1ab9835dc9d3ede4"
@@ -228,6 +246,18 @@ Lockfile:
228
246
  dependencies:
229
247
  "@types/node" "*"
230
248
 
249
+ "@types/cookie-parser@^1.4.7":
250
+ version "1.4.8"
251
+ resolved "https://registry.yarnpkg.com/@types/cookie-parser/-/cookie-parser-1.4.8.tgz#d2215e7915f624fbfe4233da8f063f511679f1f3"
252
+ integrity sha512-l37JqFrOJ9yQfRQkljb41l0xVphc7kg5JTjjr+pLRZ0IyZ49V4BQ8vbF4Ut2C2e+WH4al3xD3ZwYwIUfnbT4NQ==
253
+
254
+ "@types/cors@^2.8.13":
255
+ version "2.8.18"
256
+ resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.18.tgz#101e033b3ca06695f3d73c587cd7f9eb348135d1"
257
+ integrity sha512-nX3d0sxJW41CqQvfOzVG1NCTXfFDrDWIghCZncpHeWlVFd81zxB/DLhg7avFg6eHLCRX7ckBmoIIcqa++upvJA==
258
+ dependencies:
259
+ "@types/node" "*"
260
+
231
261
  "@types/express-serve-static-core@^4.17.33":
232
262
  version "4.19.0"
233
263
  resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.19.0.tgz#3ae8ab3767d98d0b682cda063c3339e1e86ccfaa"
@@ -238,7 +268,7 @@ Lockfile:
238
268
  "@types/range-parser" "*"
239
269
  "@types/send" "*"
240
270
 
241
- "@types/express@^4.16.0", "@types/express@^4.17.21":
271
+ "@types/express@*", "@types/express@^4.16.0", "@types/express@^4.17.21":
242
272
  version "4.17.21"
243
273
  resolved "https://registry.yarnpkg.com/@types/express/-/express-4.17.21.tgz#c26d4a151e60efe0084b23dc3369ebc631ed192d"
244
274
  integrity sha512-ejlPM315qwLpaQlQDTjPdsUFSc6ZsP4AN6AlWnogPjQ7CVi7PYF3YVz+CY3jE2pwYf7E/7HlDAN0rV2GxTG0HQ==
@@ -316,6 +346,14 @@ Lockfile:
316
346
  "@types/node" "*"
317
347
  "@types/send" "*"
318
348
 
349
+ "@types/swagger-ui-express@^4.1.6":
350
+ version "4.1.6"
351
+ resolved "https://registry.yarnpkg.com/@types/swagger-ui-express/-/swagger-ui-express-4.1.6.tgz#d0929e3fabac1a96a8a9c6c7ee8d42362c5cdf48"
352
+ integrity sha512-UVSiGYXa5IzdJJG3hrc86e8KdZWLYxyEsVoUI4iPXc7CO4VZ3AfNP8d/8+hrDRIqz+HAaSMtZSqAsF3Nq2X/Dg==
353
+ dependencies:
354
+ "@types/express" "*"
355
+ "@types/serve-static" "*"
356
+
319
357
  "@types/webidl-conversions@*":
320
358
  version "7.0.3"
321
359
  resolved "https://registry.yarnpkg.com/@types/webidl-conversions/-/webidl-conversions-7.0.3.tgz#1306dbfa53768bcbcfc95a1c8cde367975581859"
@@ -432,6 +470,11 @@ Lockfile:
432
470
  resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.3.2.tgz#7703af9415f1b6db9315d6895503862e231d34aa"
433
471
  integrity sha512-cjkyv4OtNCIeqhHrfS81QWXoCBPExR/J62oyEqepVw8WaQeSqpW2uhuLPh1m9eWhDuOo/jUXVTlifvesOWp/4A==
434
472
 
473
+ acorn@^7.4.1:
474
+ version "7.4.1"
475
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
476
+ integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
477
+
435
478
  acorn@^8.11.3, acorn@^8.4.1:
436
479
  version "8.11.3"
437
480
  resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.11.3.tgz#71e0b14e13a4ec160724b38fb7b0f233b1b81d7a"
@@ -486,6 +529,20 @@ Lockfile:
486
529
  dependencies:
487
530
  stack-chain "^1.3.7"
488
531
 
532
+ asynckit@^0.4.0:
533
+ version "0.4.0"
534
+ resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
535
+ integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==
536
+
537
+ axios@*, axios@^1.6.8:
538
+ version "1.6.8"
539
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.8.tgz#66d294951f5d988a00e87a0ffb955316a619ea66"
540
+ integrity sha512-v/ZHtJDU39mDpyBoFVkETcd/uNdxrWRrg3bKpOKzXFA6Bvqopts6ALSMU3y6ijYxbw2B+wPrIv46egTzJXCLGQ==
541
+ dependencies:
542
+ follow-redirects "^1.15.6"
543
+ form-data "^4.0.0"
544
+ proxy-from-env "^1.1.0"
545
+
489
546
  balanced-match@^1.0.0:
490
547
  version "1.0.2"
491
548
  resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee"
@@ -594,6 +651,13 @@ Lockfile:
594
651
  resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2"
595
652
  integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==
596
653
 
654
+ combined-stream@^1.0.8:
655
+ version "1.0.8"
656
+ resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
657
+ integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==
658
+ dependencies:
659
+ delayed-stream "~1.0.0"
660
+
597
661
  concat-map@0.0.1:
598
662
  version "0.0.1"
599
663
  resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b"
@@ -611,6 +675,14 @@ Lockfile:
611
675
  resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.5.tgz#8b773162656d1d1086784c8f23a54ce6d73d7918"
612
676
  integrity sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==
613
677
 
678
+ cookie-parser@^1.4.7:
679
+ version "1.4.7"
680
+ resolved "https://registry.yarnpkg.com/cookie-parser/-/cookie-parser-1.4.7.tgz#e2125635dfd766888ffe90d60c286404fa0e7b26"
681
+ integrity sha512-nGUvgXnotP3BsjiLX2ypbQnWoGUPIIfHQNZkkC668ntrzGWEZVW70HDEB1qnNGMicPje6EttlIgzo51YSwNQGw==
682
+ dependencies:
683
+ cookie "0.7.2"
684
+ cookie-signature "1.0.6"
685
+
614
686
  cookie-signature@1.0.6:
615
687
  version "1.0.6"
616
688
  resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c"
@@ -621,6 +693,19 @@ Lockfile:
621
693
  resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.6.0.tgz#2798b04b071b0ecbff0dbb62a505a8efa4e19051"
622
694
  integrity sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==
623
695
 
696
+ cookie@0.7.2:
697
+ version "0.7.2"
698
+ resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.7.2.tgz#556369c472a2ba910f2979891b526b3436237ed7"
699
+ integrity sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==
700
+
701
+ cors@^2.8.5:
702
+ version "2.8.5"
703
+ resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29"
704
+ integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==
705
+ dependencies:
706
+ object-assign "^4"
707
+ vary "^1"
708
+
624
709
  create-require@^1.1.0:
625
710
  version "1.1.1"
626
711
  resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333"
@@ -654,6 +739,11 @@ Lockfile:
654
739
  resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.4.tgz#a6f2dce612fadd2ef1f519b73551f17e85199831"
655
740
  integrity sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==
656
741
 
742
+ deepmerge@^4.2.2:
743
+ version "4.3.1"
744
+ resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a"
745
+ integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A==
746
+
657
747
  define-data-property@^1.1.4:
658
748
  version "1.1.4"
659
749
  resolved "https://registry.yarnpkg.com/define-data-property/-/define-data-property-1.1.4.tgz#894dc141bb7d3060ae4366f6a0107e68fbe48c5e"
@@ -663,6 +753,11 @@ Lockfile:
663
753
  es-errors "^1.3.0"
664
754
  gopd "^1.0.1"
665
755
 
756
+ delayed-stream@~1.0.0:
757
+ version "1.0.0"
758
+ resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
759
+ integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==
760
+
666
761
  depd@2.0.0:
667
762
  version "2.0.0"
668
763
  resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df"
@@ -952,6 +1047,20 @@ Lockfile:
952
1047
  resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.3.1.tgz#21db470729a6734d4997002f439cb308987f567a"
953
1048
  integrity sha512-X8cqMLLie7KsNUDSdzeN8FYK9rEt4Dt67OsG/DNGnYTSDBG4uFAJFBnUeiV+zCVAvwFy56IjM9sH51jVaEhNxw==
954
1049
 
1050
+ follow-redirects@^1.15.6:
1051
+ version "1.15.6"
1052
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.6.tgz#7f815c0cda4249c74ff09e95ef97c23b5fd0399b"
1053
+ integrity sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==
1054
+
1055
+ form-data@^4.0.0:
1056
+ version "4.0.0"
1057
+ resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
1058
+ integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
1059
+ dependencies:
1060
+ asynckit "^0.4.0"
1061
+ combined-stream "^1.0.8"
1062
+ mime-types "^2.1.12"
1063
+
955
1064
  forwarded@0.2.0:
956
1065
  version "0.2.0"
957
1066
  resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.2.0.tgz#2269936428aad4c15c7ebe9779a84bf0b2a81811"
@@ -962,6 +1071,11 @@ Lockfile:
962
1071
  resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7"
963
1072
  integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==
964
1073
 
1074
+ fs.realpath@^1.0.0:
1075
+ version "1.0.0"
1076
+ resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f"
1077
+ integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==
1078
+
965
1079
  function-bind@^1.1.2:
966
1080
  version "1.1.2"
967
1081
  resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c"
@@ -992,6 +1106,18 @@ Lockfile:
992
1106
  dependencies:
993
1107
  is-glob "^4.0.3"
994
1108
 
1109
+ glob@^7.1.7:
1110
+ version "7.2.3"
1111
+ resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b"
1112
+ integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==
1113
+ dependencies:
1114
+ fs.realpath "^1.0.0"
1115
+ inflight "^1.0.4"
1116
+ inherits "2"
1117
+ minimatch "^3.1.1"
1118
+ once "^1.3.0"
1119
+ path-is-absolute "^1.0.0"
1120
+
995
1121
  globals@^14.0.0:
996
1122
  version "14.0.0"
997
1123
  resolved "https://registry.yarnpkg.com/globals/-/globals-14.0.0.tgz#898d7413c29babcf6bafe56fcadded858ada724e"
@@ -1091,7 +1217,15 @@ Lockfile:
1091
1217
  resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea"
1092
1218
  integrity sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==
1093
1219
 
1094
- inherits@2.0.4:
1220
+ inflight@^1.0.4:
1221
+ version "1.0.6"
1222
+ resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9"
1223
+ integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==
1224
+ dependencies:
1225
+ once "^1.3.0"
1226
+ wrappy "1"
1227
+
1228
+ inherits@2, inherits@2.0.4:
1095
1229
  version "2.0.4"
1096
1230
  resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
1097
1231
  integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
@@ -1150,6 +1284,11 @@ Lockfile:
1150
1284
  resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
1151
1285
  integrity sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==
1152
1286
 
1287
+ json5@^2.2.3:
1288
+ version "2.2.3"
1289
+ resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283"
1290
+ integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg==
1291
+
1153
1292
  kareem@2.6.3:
1154
1293
  version "2.6.3"
1155
1294
  resolved "https://registry.yarnpkg.com/kareem/-/kareem-2.6.3.tgz#23168ec8ffb6c1abfd31b7169a6fb1dd285992ac"
@@ -1225,7 +1364,7 @@ Lockfile:
1225
1364
  resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
1226
1365
  integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==
1227
1366
 
1228
- mime-types@~2.1.24, mime-types@~2.1.34:
1367
+ mime-types@^2.1.12, mime-types@~2.1.24, mime-types@~2.1.34:
1229
1368
  version "2.1.35"
1230
1369
  resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a"
1231
1370
  integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==
@@ -1237,7 +1376,7 @@ Lockfile:
1237
1376
  resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1"
1238
1377
  integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==
1239
1378
 
1240
- minimatch@^3.0.5, minimatch@^3.1.2:
1379
+ minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
1241
1380
  version "3.1.2"
1242
1381
  resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
1243
1382
  integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -1251,6 +1390,11 @@ Lockfile:
1251
1390
  dependencies:
1252
1391
  brace-expansion "^2.0.1"
1253
1392
 
1393
+ moment@^2.30.1:
1394
+ version "2.30.1"
1395
+ resolved "https://registry.yarnpkg.com/moment/-/moment-2.30.1.tgz#f8c91c07b7a786e30c59926df530b4eac96974ae"
1396
+ integrity sha512-uEmtNhbDOrWPFS+hdjFCBfy9f2YoyzRpwcl+DqpC6taX21FzsTLQVbMV/W7PzNSX6x/bhC1zA3c2UQ5NzH6how==
1397
+
1254
1398
  mongodb-connection-string-url@^3.0.0:
1255
1399
  version "3.0.0"
1256
1400
  resolved "https://registry.yarnpkg.com/mongodb-connection-string-url/-/mongodb-connection-string-url-3.0.0.tgz#b4f87f92fd8593f3b9365f592515a06d304a1e9c"
@@ -1318,6 +1462,11 @@ Lockfile:
1318
1462
  resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.3.tgz#58e323a72fedc0d6f9cd4d31fe49f51479590ccd"
1319
1463
  integrity sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==
1320
1464
 
1465
+ object-assign@^4:
1466
+ version "4.1.1"
1467
+ resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863"
1468
+ integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==
1469
+
1321
1470
  object-inspect@^1.13.1:
1322
1471
  version "1.13.1"
1323
1472
  resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2"
@@ -1330,6 +1479,13 @@ Lockfile:
1330
1479
  dependencies:
1331
1480
  ee-first "1.1.1"
1332
1481
 
1482
+ once@^1.3.0:
1483
+ version "1.4.0"
1484
+ resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
1485
+ integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==
1486
+ dependencies:
1487
+ wrappy "1"
1488
+
1333
1489
  optionator@^0.9.3:
1334
1490
  version "0.9.4"
1335
1491
  resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.4.tgz#7ea1c1a5d91d764fb282139c88fe11e182a3a734"
@@ -1373,6 +1529,11 @@ Lockfile:
1373
1529
  resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3"
1374
1530
  integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==
1375
1531
 
1532
+ path-is-absolute@^1.0.0:
1533
+ version "1.0.1"
1534
+ resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f"
1535
+ integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==
1536
+
1376
1537
  path-key@^3.1.0:
1377
1538
  version "3.1.1"
1378
1539
  resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375"
@@ -1406,6 +1567,11 @@ Lockfile:
1406
1567
  forwarded "0.2.0"
1407
1568
  ipaddr.js "1.9.1"
1408
1569
 
1570
+ proxy-from-env@^1.1.0:
1571
+ version "1.1.0"
1572
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
1573
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
1574
+
1409
1575
  punycode@^2.1.0, punycode@^2.3.0:
1410
1576
  version "2.3.1"
1411
1577
  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.3.1.tgz#027422e2faec0b25e1549c3e1bd8309b9133b6e5"
@@ -1418,6 +1584,13 @@ Lockfile:
1418
1584
  dependencies:
1419
1585
  side-channel "^1.0.4"
1420
1586
 
1587
+ qs@^6.13.0:
1588
+ version "6.13.0"
1589
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.13.0.tgz#6ca3bd58439f7e245655798997787b0d88a51906"
1590
+ integrity sha512-+38qI9SOr8tfZ4QmJNplMUxqjbe7LKvvZgWdExBOmd+egZTtjLB67Gu0HRX3u/XOq7UU2Nx6nsjvS16Z9uwfpg==
1591
+ dependencies:
1592
+ side-channel "^1.0.6"
1593
+
1421
1594
  queue-microtask@^1.2.2:
1422
1595
  version "1.2.3"
1423
1596
  resolved "https://registry.yarnpkg.com/queue-microtask/-/queue-microtask-1.2.3.tgz#4929228bbc724dfac43e0efb058caf7b6cfb6243"
@@ -1538,7 +1711,7 @@ Lockfile:
1538
1711
  resolved "https://registry.yarnpkg.com/shimmer/-/shimmer-1.2.1.tgz#610859f7de327b587efebf501fb43117f9aff337"
1539
1712
  integrity sha512-sQTKC1Re/rM6XyFM6fIAGHRPVGvyXfgzIDvzoq608vM+jeyVD0Tu1E6Np0Kc2zAIFWIj963V2800iF/9LPieQw==
1540
1713
 
1541
- side-channel@^1.0.4:
1714
+ side-channel@^1.0.4, side-channel@^1.0.6:
1542
1715
  version "1.0.6"
1543
1716
  resolved "https://registry.yarnpkg.com/side-channel/-/side-channel-1.0.6.tgz#abd25fb7cd24baf45466406b1096b7831c9215f2"
1544
1717
  integrity sha512-fDW/EZ6Q9RiO8eFG8Hj+7u/oW+XrPTIChwCOM2+th2A6OblDtYYIpve9m+KvI9Z4C9qSEXlaGR6bTEYHReuglA==
@@ -1594,6 +1767,28 @@ Lockfile:
1594
1767
  dependencies:
1595
1768
  has-flag "^4.0.0"
1596
1769
 
1770
+ swagger-autogen@^2.23.7:
1771
+ version "2.23.7"
1772
+ resolved "https://registry.yarnpkg.com/swagger-autogen/-/swagger-autogen-2.23.7.tgz#40023e583b1d4b4321313bb92cc768488758f135"
1773
+ integrity sha512-vr7uRmuV0DCxWc0wokLJAwX3GwQFJ0jwN+AWk0hKxre2EZwusnkGSGdVFd82u7fQLgwSTnbWkxUL7HXuz5LTZQ==
1774
+ dependencies:
1775
+ acorn "^7.4.1"
1776
+ deepmerge "^4.2.2"
1777
+ glob "^7.1.7"
1778
+ json5 "^2.2.3"
1779
+
1780
+ swagger-ui-dist@>=5.0.0:
1781
+ version "5.17.10"
1782
+ resolved "https://registry.yarnpkg.com/swagger-ui-dist/-/swagger-ui-dist-5.17.10.tgz#5c60c4fe00062723dccb9fcd7376d2c0f6397870"
1783
+ integrity sha512-fp8SYeEK216KS1/noDvursUOGojEbkvtckOpOmAGZUjlx/ma7VLD2PLQwyermjlzFrlHI5uCt1V+M1C3qBvRyQ==
1784
+
1785
+ swagger-ui-express@^5.0.0:
1786
+ version "5.0.0"
1787
+ resolved "https://registry.yarnpkg.com/swagger-ui-express/-/swagger-ui-express-5.0.0.tgz#7a00a18dd909574cb0d628574a299b9ba53d4d49"
1788
+ integrity sha512-tsU9tODVvhyfkNSvf03E6FAk+z+5cU3lXAzMy6Pv4av2Gt2xA0++fogwC4qo19XuFf6hdxevPuVCSKFuMHJhFA==
1789
+ dependencies:
1790
+ swagger-ui-dist ">=5.0.0"
1791
+
1597
1792
  text-table@^0.2.0:
1598
1793
  version "0.2.0"
1599
1794
  resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
@@ -1698,7 +1893,7 @@ Lockfile:
1698
1893
  resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf"
1699
1894
  integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==
1700
1895
 
1701
- vary@~1.1.2:
1896
+ vary@^1, vary@~1.1.2:
1702
1897
  version "1.1.2"
1703
1898
  resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc"
1704
1899
  integrity sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==
@@ -1728,6 +1923,11 @@ Lockfile:
1728
1923
  resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.5.tgz#d2c45c6dd4fbce621a66f136cbe328afd0410b34"
1729
1924
  integrity sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==
1730
1925
 
1926
+ wrappy@1:
1927
+ version "1.0.2"
1928
+ resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
1929
+ integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==
1930
+
1731
1931
  yn@3.1.1:
1732
1932
  version "3.1.1"
1733
1933
  resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"