@alanszp/express-common-fn 10.0.3 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (156) hide show
  1. package/dist/commonErrorsHandler.js +29 -14
  2. package/dist/commonErrorsHandler.js.map +1 -1
  3. package/node_modules/@alanszp/audit/dist/errors/AuditError.d.ts +2 -2
  4. package/node_modules/@alanszp/audit/dist/errors/AuditError.js +1 -1
  5. package/node_modules/@alanszp/audit/dist/errors/AuditError.js.map +1 -1
  6. package/node_modules/@alanszp/audit/dist/errors/MissingAuditFieldsError.d.ts +3 -3
  7. package/node_modules/@alanszp/audit/dist/errors/MissingAuditFieldsError.js +2 -2
  8. package/node_modules/@alanszp/audit/dist/errors/MissingAuditFieldsError.js.map +1 -1
  9. package/node_modules/@alanszp/audit/package.json +5 -4
  10. package/node_modules/@alanszp/audit/src/errors/AuditError.ts +2 -2
  11. package/node_modules/@alanszp/audit/src/errors/MissingAuditFieldsError.ts +4 -7
  12. package/node_modules/@alanszp/errors/dist/BaseError.js.map +1 -0
  13. package/node_modules/@alanszp/errors/dist/HttpRenderableError.d.ts +4 -0
  14. package/node_modules/@alanszp/errors/dist/HttpRenderableError.js +8 -0
  15. package/node_modules/@alanszp/errors/dist/HttpRenderableError.js.map +1 -0
  16. package/node_modules/@alanszp/errors/dist/InternalServerError.d.ts +8 -0
  17. package/node_modules/@alanszp/errors/dist/InternalServerError.js +24 -0
  18. package/node_modules/@alanszp/errors/dist/InternalServerError.js.map +1 -0
  19. package/node_modules/@alanszp/errors/dist/RenderableError.d.ts +15 -0
  20. package/node_modules/@alanszp/errors/dist/RenderableError.js +27 -0
  21. package/node_modules/@alanszp/errors/dist/RenderableError.js.map +1 -0
  22. package/node_modules/@alanszp/errors/dist/index.d.ts +4 -3
  23. package/node_modules/@alanszp/errors/dist/index.js +4 -3
  24. package/node_modules/@alanszp/errors/dist/index.js.map +1 -1
  25. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/.gitignore +3 -0
  26. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/.npmignore +3 -0
  27. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/LICENSE +21 -0
  28. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/app/appIdentifier.js.map +1 -0
  29. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/app/index.d.ts +1 -0
  30. package/node_modules/@alanszp/errors/{dist/errors/http → node_modules/@alanszp/core/dist/app}/index.js +6 -6
  31. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/app/index.js.map +1 -0
  32. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/assignKey.d.ts +2 -0
  33. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/assignKey.js +20 -0
  34. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/assignKey.js.map +1 -0
  35. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/index.d.ts +2 -0
  36. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/index.js +19 -0
  37. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/index.js.map +1 -0
  38. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/keepOrUpdate.d.ts +3 -0
  39. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/keepOrUpdate.js +26 -0
  40. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/keepOrUpdate.js.map +1 -0
  41. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/types.d.ts +6 -0
  42. package/node_modules/@alanszp/errors/{dist/errors/RenderableError.js → node_modules/@alanszp/core/dist/editable/types.js} +1 -1
  43. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/editable/types.js.map +1 -0
  44. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/index.d.ts +4 -0
  45. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/index.js +21 -0
  46. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/index.js.map +1 -0
  47. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/ListResult.d.ts +7 -0
  48. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/ListResult.js +8 -0
  49. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/ListResult.js.map +1 -0
  50. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Orderable.d.ts +11 -0
  51. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Orderable.js +13 -0
  52. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Orderable.js.map +1 -0
  53. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Paginable.d.ts +14 -0
  54. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Paginable.js +22 -0
  55. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/Paginable.js.map +1 -0
  56. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/index.d.ts +3 -0
  57. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/index.js +20 -0
  58. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/dist/lists/index.js.map +1 -0
  59. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/package.json +25 -0
  60. package/node_modules/@alanszp/errors/node_modules/@alanszp/core/tsconfig.json +15 -0
  61. package/node_modules/@alanszp/errors/package.json +7 -2
  62. package/node_modules/@alanszp/errors/src/HttpRenderableError.ts +5 -0
  63. package/node_modules/@alanszp/errors/src/{errors/http/InternalServerError.ts → InternalServerError.ts} +8 -10
  64. package/node_modules/@alanszp/errors/src/RenderableError.ts +37 -0
  65. package/node_modules/@alanszp/errors/src/index.ts +4 -3
  66. package/node_modules/@alanszp/express/dist/helpers/renderErrorJson.d.ts +4 -0
  67. package/node_modules/@alanszp/express/dist/helpers/renderErrorJson.js +32 -0
  68. package/node_modules/@alanszp/express/dist/helpers/renderErrorJson.js.map +1 -0
  69. package/node_modules/@alanszp/express/dist/index.d.ts +0 -1
  70. package/node_modules/@alanszp/express/dist/index.js +0 -1
  71. package/node_modules/@alanszp/express/dist/index.js.map +1 -1
  72. package/node_modules/@alanszp/express/dist/middlewares/authedForOrg.js +3 -4
  73. package/node_modules/@alanszp/express/dist/middlewares/authedForOrg.js.map +1 -1
  74. package/node_modules/@alanszp/express/dist/middlewares/authenticateUser.js +8 -8
  75. package/node_modules/@alanszp/express/dist/middlewares/authenticateUser.js.map +1 -1
  76. package/node_modules/@alanszp/express/dist/middlewares/createContext.js +2 -2
  77. package/node_modules/@alanszp/express/dist/middlewares/createContext.js.map +1 -1
  78. package/node_modules/@alanszp/express/dist/middlewares/createContext.test.js +3 -3
  79. package/node_modules/@alanszp/express/dist/middlewares/createContext.test.js.map +1 -1
  80. package/node_modules/@alanszp/express/dist/middlewares/hasRoles.js +3 -5
  81. package/node_modules/@alanszp/express/dist/middlewares/hasRoles.js.map +1 -1
  82. package/node_modules/@alanszp/express/dist/middlewares/jsonBodyParser.js +3 -4
  83. package/node_modules/@alanszp/express/dist/middlewares/jsonBodyParser.js.map +1 -1
  84. package/node_modules/@alanszp/express/dist/middlewares/returnInternalServerError.js +1 -2
  85. package/node_modules/@alanszp/express/dist/middlewares/returnInternalServerError.js.map +1 -1
  86. package/node_modules/@alanszp/express/dist/middlewares/returnNotFound.js +2 -3
  87. package/node_modules/@alanszp/express/dist/middlewares/returnNotFound.js.map +1 -1
  88. package/node_modules/@alanszp/express/dist/test/mocks/jwtUserMocks.js +7 -6
  89. package/node_modules/@alanszp/express/dist/test/mocks/jwtUserMocks.js.map +1 -1
  90. package/node_modules/@alanszp/express/package.json +7 -7
  91. package/node_modules/@alanszp/express/src/helpers/renderErrorJson.ts +29 -0
  92. package/node_modules/@alanszp/express/src/index.ts +0 -1
  93. package/node_modules/@alanszp/express/src/middlewares/authedForOrg.ts +3 -4
  94. package/node_modules/@alanszp/express/src/middlewares/authenticateUser.ts +18 -18
  95. package/node_modules/@alanszp/express/src/middlewares/createContext.test.ts +1 -1
  96. package/node_modules/@alanszp/express/src/middlewares/createContext.ts +1 -1
  97. package/node_modules/@alanszp/express/src/middlewares/hasRoles.ts +3 -5
  98. package/node_modules/@alanszp/express/src/middlewares/jsonBodyParser.ts +3 -4
  99. package/node_modules/@alanszp/express/src/middlewares/returnInternalServerError.ts +1 -2
  100. package/node_modules/@alanszp/express/src/middlewares/returnNotFound.ts +2 -3
  101. package/node_modules/@alanszp/express/src/test/mocks/jwtUserMocks.ts +6 -6
  102. package/node_modules/@alanszp/jwt/dist/JWTUser.d.ts +31 -0
  103. package/node_modules/@alanszp/jwt/dist/JWTUser.js +62 -0
  104. package/node_modules/@alanszp/jwt/dist/JWTUser.js.map +1 -0
  105. package/node_modules/@alanszp/jwt/dist/index.d.ts +1 -0
  106. package/node_modules/@alanszp/jwt/dist/index.js +1 -0
  107. package/node_modules/@alanszp/jwt/dist/index.js.map +1 -1
  108. package/node_modules/@alanszp/jwt/dist/jwt.d.ts +2 -3
  109. package/node_modules/@alanszp/jwt/dist/jwt.js +4 -26
  110. package/node_modules/@alanszp/jwt/dist/jwt.js.map +1 -1
  111. package/node_modules/@alanszp/jwt/dist/types.d.ts +3 -3
  112. package/node_modules/@alanszp/jwt/package.json +3 -2
  113. package/node_modules/@alanszp/jwt/src/JWTUser.ts +85 -0
  114. package/node_modules/@alanszp/jwt/src/index.ts +1 -0
  115. package/node_modules/@alanszp/jwt/src/jwt.ts +4 -29
  116. package/node_modules/@alanszp/jwt/src/types.ts +3 -3
  117. package/node_modules/@alanszp/logger/package.json +3 -2
  118. package/package.json +7 -6
  119. package/src/commonErrorsHandler.ts +35 -16
  120. package/node_modules/@alanszp/errors/dist/errors/BaseError.js.map +0 -1
  121. package/node_modules/@alanszp/errors/dist/errors/RenderableError.d.ts +0 -6
  122. package/node_modules/@alanszp/errors/dist/errors/RenderableError.js.map +0 -1
  123. package/node_modules/@alanszp/errors/dist/errors/http/BadRequestError.d.ts +0 -8
  124. package/node_modules/@alanszp/errors/dist/errors/http/BadRequestError.js +0 -20
  125. package/node_modules/@alanszp/errors/dist/errors/http/BadRequestError.js.map +0 -1
  126. package/node_modules/@alanszp/errors/dist/errors/http/HttpError.d.ts +0 -8
  127. package/node_modules/@alanszp/errors/dist/errors/http/HttpError.js +0 -18
  128. package/node_modules/@alanszp/errors/dist/errors/http/HttpError.js.map +0 -1
  129. package/node_modules/@alanszp/errors/dist/errors/http/InternalServerError.d.ts +0 -8
  130. package/node_modules/@alanszp/errors/dist/errors/http/InternalServerError.js +0 -32
  131. package/node_modules/@alanszp/errors/dist/errors/http/InternalServerError.js.map +0 -1
  132. package/node_modules/@alanszp/errors/dist/errors/http/NotFoundError.d.ts +0 -4
  133. package/node_modules/@alanszp/errors/dist/errors/http/NotFoundError.js +0 -11
  134. package/node_modules/@alanszp/errors/dist/errors/http/NotFoundError.js.map +0 -1
  135. package/node_modules/@alanszp/errors/dist/errors/http/UnauthorizedError.d.ts +0 -8
  136. package/node_modules/@alanszp/errors/dist/errors/http/UnauthorizedError.js +0 -20
  137. package/node_modules/@alanszp/errors/dist/errors/http/UnauthorizedError.js.map +0 -1
  138. package/node_modules/@alanszp/errors/dist/errors/http/index.d.ts +0 -5
  139. package/node_modules/@alanszp/errors/dist/errors/http/index.js.map +0 -1
  140. package/node_modules/@alanszp/errors/src/errors/RenderableError.ts +0 -7
  141. package/node_modules/@alanszp/errors/src/errors/http/BadRequestError.ts +0 -21
  142. package/node_modules/@alanszp/errors/src/errors/http/HttpError.ts +0 -19
  143. package/node_modules/@alanszp/errors/src/errors/http/NotFoundError.ts +0 -7
  144. package/node_modules/@alanszp/errors/src/errors/http/UnauthorizedError.ts +0 -21
  145. package/node_modules/@alanszp/errors/src/errors/http/index.ts +0 -5
  146. package/node_modules/@alanszp/express/dist/helpers/appIdentifier.js.map +0 -1
  147. package/node_modules/@alanszp/express/dist/views/errorView.d.ts +0 -2
  148. package/node_modules/@alanszp/express/dist/views/errorView.js +0 -14
  149. package/node_modules/@alanszp/express/dist/views/errorView.js.map +0 -1
  150. package/node_modules/@alanszp/express/src/helpers/appIdentifier.ts +0 -5
  151. package/node_modules/@alanszp/express/src/views/errorView.ts +0 -11
  152. /package/node_modules/@alanszp/errors/dist/{errors/BaseError.d.ts → BaseError.d.ts} +0 -0
  153. /package/node_modules/@alanszp/errors/dist/{errors/BaseError.js → BaseError.js} +0 -0
  154. /package/node_modules/@alanszp/{express/dist/helpers → errors/node_modules/@alanszp/core/dist/app}/appIdentifier.d.ts +0 -0
  155. /package/node_modules/@alanszp/{express/dist/helpers → errors/node_modules/@alanszp/core/dist/app}/appIdentifier.js +0 -0
  156. /package/node_modules/@alanszp/errors/src/{errors/BaseError.ts → BaseError.ts} +0 -0
@@ -1,6 +1,7 @@
1
1
  import { createPublicKey, createPrivateKey, KeyObject } from "crypto";
2
2
  import { SignJWT, jwtVerify } from "jose";
3
- import type { JWTPayload, JWTUser, SignOptions, VerifyOptions } from "./types";
3
+ import type { JWTPayload, SignOptions, VerifyOptions } from "./types";
4
+ import { JWTUser } from "./JWTUser";
4
5
 
5
6
  export const JWT_ALGORITHM = "RS512";
6
7
 
@@ -49,7 +50,7 @@ export async function generateJWT(
49
50
 
50
51
  const opts = withDefaultSignOptions(options);
51
52
 
52
- return new SignJWT(createTokenPayload(user))
53
+ return new SignJWT(user.toTokenPayload())
53
54
  .setProtectedHeader({ alg: JWT_ALGORITHM })
54
55
  .setIssuedAt()
55
56
  .setIssuer(opts.issuer)
@@ -58,17 +59,6 @@ export async function generateJWT(
58
59
  .sign(key);
59
60
  }
60
61
 
61
- export function createTokenPayload(user: JWTUser): JWTPayload {
62
- return {
63
- sub: user.id,
64
- ref: user.employeeReference,
65
- org: user.organizationReference,
66
- rls: user.roles,
67
- prms: user.permissions,
68
- seg: user.segmentReference,
69
- };
70
- }
71
-
72
62
  export async function verifyJWT(
73
63
  publicKey: KeyObject | string,
74
64
  token: string,
@@ -87,20 +77,5 @@ export async function verifyJWT(
87
77
 
88
78
  const payload = verify.payload as JWTPayload;
89
79
 
90
- return {
91
- id: payload.sub,
92
- employeeReference: payload.ref,
93
- organizationReference: payload.org,
94
- roles: payload.rls,
95
- permissions: payload.prms,
96
- segmentReference: payload.seg || null,
97
- };
98
- }
99
-
100
- export function jwtUserHasRoles(
101
- jwtUser: JWTUser,
102
- roles: string | string[]
103
- ): boolean {
104
- const validateRoles = typeof roles === "string" ? [roles] : roles;
105
- return validateRoles.some((role) => jwtUser.roles.includes(role));
80
+ return JWTUser.fromPayload(payload);
106
81
  }
@@ -5,17 +5,17 @@ export interface JWTPayload extends LibPayload {
5
5
  ref: string | null;
6
6
  org: string;
7
7
  rls: string[];
8
- prms: string[];
8
+ prms: string;
9
9
  // segmentReference
10
10
  seg: string | null;
11
11
  }
12
12
 
13
- export interface JWTUser {
13
+ export interface IJWTUser {
14
14
  id: string;
15
15
  employeeReference: string | null;
16
16
  organizationReference: string;
17
17
  roles: string[];
18
- permissions: string[];
18
+ permissions: string;
19
19
  segmentReference: string | null;
20
20
  }
21
21
 
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/logger",
3
- "version": "10.0.1",
3
+ "version": "12.0.0",
4
4
  "description": "Alan's logger util.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -31,5 +31,6 @@
31
31
  "ts-node": "^10.0.0",
32
32
  "tslint": "^5.11.0",
33
33
  "typescript": "^4.3.4"
34
- }
34
+ },
35
+ "gitHead": "085a76a387bc0e272e09e9cb1b6f48f814512940"
35
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@alanszp/express-common-fn",
3
- "version": "10.0.3",
3
+ "version": "12.0.0",
4
4
  "description": "Alan's express function to handle common errors and format uniformly.",
5
5
  "main": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -19,10 +19,11 @@
19
19
  "yalc-publish": "yarn run yalc publish"
20
20
  },
21
21
  "dependencies": {
22
- "@alanszp/errors": "^10.0.1",
23
- "@alanszp/express": "^10.0.3",
24
- "@alanszp/logger": "^10.0.1",
25
- "@alanszp/validations": "^10.0.1"
22
+ "@alanszp/core": "^12.0.0",
23
+ "@alanszp/errors": "^12.0.0",
24
+ "@alanszp/express": "^12.0.0",
25
+ "@alanszp/logger": "^12.0.0",
26
+ "@alanszp/validations": "^12.0.0"
26
27
  },
27
28
  "peerDependencies": {
28
29
  "express": "^4.17.1",
@@ -34,5 +35,5 @@
34
35
  "typeorm": "^0.2.34",
35
36
  "typescript": "4.7.4"
36
37
  },
37
- "gitHead": "701d6cc7bd3a51a8b297903e7b2fff9c1b830da6"
38
+ "gitHead": "085a76a387bc0e272e09e9cb1b6f48f814512940"
38
39
  }
@@ -1,11 +1,11 @@
1
- import { errorView } from "@alanszp/express";
1
+ import { appIdentifier } from "@alanszp/core";
2
2
  import {
3
- BadRequestError,
4
3
  InternalServerError,
5
- NotFoundError,
4
+ RenderableError,
5
+ HttpRenderableError,
6
+ RenderableView,
6
7
  } from "@alanszp/errors";
7
8
  import { Context, ILogger } from "@alanszp/logger";
8
- import { ModelValidationError } from "@alanszp/validations";
9
9
  import { Response } from "express";
10
10
  import { EntityNotFoundError, QueryFailedError } from "typeorm";
11
11
 
@@ -19,6 +19,24 @@ const defaultsOption: CommonErrorOptions = {
19
19
  extraContext: {},
20
20
  };
21
21
 
22
+ function render404Error(): RenderableView {
23
+ return {
24
+ code: "not_found",
25
+ message: "Not Found",
26
+ context: {},
27
+ origin: appIdentifier(),
28
+ };
29
+ }
30
+
31
+ function render400Error(message: string): RenderableView {
32
+ return {
33
+ code: "bad_request",
34
+ message,
35
+ context: {},
36
+ origin: appIdentifier(),
37
+ };
38
+ }
39
+
22
40
  export function commonErrorsHandler(loggerFn: () => ILogger) {
23
41
  return function handleCommonErrors(
24
42
  error: unknown,
@@ -34,9 +52,14 @@ export function commonErrorsHandler(loggerFn: () => ILogger) {
34
52
  };
35
53
  const instanceLogger = logger.child(opts.extraContext);
36
54
 
37
- if (error instanceof ModelValidationError) {
38
- instanceLogger.info(`${baseLog}.error.validation`, { error });
39
- res.status(400).json(errorView(error));
55
+ if (error instanceof RenderableError) {
56
+ const statusCode =
57
+ error instanceof HttpRenderableError ? error.httpCode() : 500;
58
+ instanceLogger.info(`${baseLog}.error.${error.code()}`, {
59
+ statusCode,
60
+ error,
61
+ });
62
+ res.status(statusCode).json(error.toView());
40
63
  return;
41
64
  }
42
65
 
@@ -45,11 +68,9 @@ export function commonErrorsHandler(loggerFn: () => ILogger) {
45
68
  error,
46
69
  });
47
70
  if (opts.entityNotFound === 400) {
48
- res
49
- .status(400)
50
- .json(errorView(new BadRequestError("Entity not present")));
71
+ res.status(400).json(render400Error("Entity not present"));
51
72
  } else {
52
- res.status(404).json(errorView(new NotFoundError()));
73
+ res.status(404).json(render404Error());
53
74
  }
54
75
  return;
55
76
  }
@@ -59,19 +80,17 @@ export function commonErrorsHandler(loggerFn: () => ILogger) {
59
80
  instanceLogger.info(`${baseLog}.error.typeorm.query_error.duplicate`, {
60
81
  error,
61
82
  });
62
- res
63
- .status(400)
64
- .json(errorView(new BadRequestError("Entity already exists")));
83
+ res.status(400).json(render400Error("Entity already exists"));
65
84
  } else {
66
85
  instanceLogger.error(`${baseLog}.error.typeorm.query_error.unknown`, {
67
86
  error,
68
87
  });
69
- res.status(500).json(errorView(new InternalServerError(error)));
88
+ res.status(500).json(new InternalServerError(error).toView());
70
89
  }
71
90
  return;
72
91
  }
73
92
 
74
93
  instanceLogger.error(`${baseLog}.error.unknown`, { error });
75
- res.status(500).json(errorView(new InternalServerError(error)));
94
+ res.status(500).json(new InternalServerError(error).toView());
76
95
  };
77
96
  }
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseError.js","sourceRoot":"","sources":["../../src/errors/BaseError.ts"],"names":[],"mappings":";;;AAAA,MAAa,SAAU,SAAQ,KAAK;IAClC,YAAY,OAAe;QACzB,KAAK,CAAC,OAAO,CAAC,CAAC;QAEf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;QAClC,IAAI,OAAO,KAAK,CAAC,iBAAiB,KAAK,UAAU,EAAE;YACjD,KAAK,CAAC,iBAAiB,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;SACjD;aAAM;YACL,IAAI,CAAC,KAAK,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC;SAC5C;QAED,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC;IAC1D,CAAC;CACF;AAbD,8BAaC"}
@@ -1,6 +0,0 @@
1
- export declare type RenderableContext = Record<string, unknown>;
2
- export interface RenderableError {
3
- code(): string;
4
- renderMessage(): string;
5
- context(): RenderableContext;
6
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"RenderableError.js","sourceRoot":"","sources":["../../src/errors/RenderableError.ts"],"names":[],"mappings":""}
@@ -1,8 +0,0 @@
1
- import { RenderableContext } from "../RenderableError";
2
- import { HttpError } from "./HttpError";
3
- export declare class BadRequestError extends HttpError {
4
- private errors;
5
- constructor(errors: string[] | string);
6
- renderMessage(): string;
7
- context(): RenderableContext;
8
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BadRequestError = void 0;
4
- const HttpError_1 = require("./HttpError");
5
- class BadRequestError extends HttpError_1.HttpError {
6
- constructor(errors) {
7
- super();
8
- this.errors = errors;
9
- }
10
- renderMessage() {
11
- return "Bad Request";
12
- }
13
- context() {
14
- return {
15
- errors: this.errors,
16
- };
17
- }
18
- }
19
- exports.BadRequestError = BadRequestError;
20
- //# sourceMappingURL=BadRequestError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"BadRequestError.js","sourceRoot":"","sources":["../../../src/errors/http/BadRequestError.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,eAAgB,SAAQ,qBAAS;IAG5C,YAAmB,MAAyB;QAC1C,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAEM,aAAa;QAClB,OAAO,aAAa,CAAC;IACvB,CAAC;IAEM,OAAO;QACZ,OAAO;YACL,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAC;IACJ,CAAC;CACF;AAjBD,0CAiBC"}
@@ -1,8 +0,0 @@
1
- import { BaseError } from "../BaseError";
2
- import { RenderableContext, RenderableError } from "../RenderableError";
3
- export declare abstract class HttpError extends BaseError implements RenderableError {
4
- constructor();
5
- abstract renderMessage(): string;
6
- code(): string;
7
- context(): RenderableContext;
8
- }
@@ -1,18 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HttpError = void 0;
4
- const lodash_1 = require("lodash");
5
- const BaseError_1 = require("../BaseError");
6
- class HttpError extends BaseError_1.BaseError {
7
- constructor() {
8
- super("HttpError");
9
- }
10
- code() {
11
- return (0, lodash_1.snakeCase)(this.renderMessage());
12
- }
13
- context() {
14
- return {};
15
- }
16
- }
17
- exports.HttpError = HttpError;
18
- //# sourceMappingURL=HttpError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"HttpError.js","sourceRoot":"","sources":["../../../src/errors/http/HttpError.ts"],"names":[],"mappings":";;;AAAA,mCAAmC;AACnC,4CAAyC;AAGzC,MAAsB,SAAU,SAAQ,qBAAS;IAC/C;QACE,KAAK,CAAC,WAAW,CAAC,CAAC;IACrB,CAAC;IAIM,IAAI;QACT,OAAO,IAAA,kBAAS,EAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC;IAEM,OAAO;QACZ,OAAO,EAAE,CAAC;IACZ,CAAC;CACF;AAdD,8BAcC"}
@@ -1,8 +0,0 @@
1
- import { RenderableContext } from "../RenderableError";
2
- import { HttpError } from "./HttpError";
3
- export declare class InternalServerError extends HttpError {
4
- error: any;
5
- constructor(error?: unknown);
6
- renderMessage(): string;
7
- context(): RenderableContext;
8
- }
@@ -1,32 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.InternalServerError = void 0;
4
- const HttpError_1 = require("./HttpError");
5
- class InternalServerError extends HttpError_1.HttpError {
6
- constructor(error) {
7
- super();
8
- this.error = error;
9
- }
10
- renderMessage() {
11
- return "Internal Server Error";
12
- }
13
- context() {
14
- if (process.env.NODE_ENV === "production") {
15
- return {};
16
- }
17
- return {
18
- error: {
19
- name: this.error.name,
20
- message: this.error.message,
21
- code: this.error.code,
22
- context: this.error.context,
23
- renderMessage: this.error.renderMessage,
24
- stack: this.error.stack,
25
- status: this.error.status,
26
- signal: this.error.signal,
27
- },
28
- };
29
- }
30
- }
31
- exports.InternalServerError = InternalServerError;
32
- //# sourceMappingURL=InternalServerError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"InternalServerError.js","sourceRoot":"","sources":["../../../src/errors/http/InternalServerError.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,mBAAoB,SAAQ,qBAAS;IAGhD,YAAY,KAAe;QACzB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACrB,CAAC;IAEM,aAAa;QAClB,OAAO,uBAAuB,CAAC;IACjC,CAAC;IAEM,OAAO;QACZ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;YACzC,OAAO,EAAE,CAAC;SACX;QAED,OAAO;YACL,KAAK,EAAE;gBACL,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI;gBACrB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO;gBAC3B,aAAa,EAAE,IAAI,CAAC,KAAK,CAAC,aAAa;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;gBACvB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;gBACzB,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;aAC1B;SACF,CAAC;IACJ,CAAC;CACF;AA9BD,kDA8BC"}
@@ -1,4 +0,0 @@
1
- import { HttpError } from "./HttpError";
2
- export declare class NotFoundError extends HttpError {
3
- renderMessage(): string;
4
- }
@@ -1,11 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.NotFoundError = void 0;
4
- const HttpError_1 = require("./HttpError");
5
- class NotFoundError extends HttpError_1.HttpError {
6
- renderMessage() {
7
- return "Not Found";
8
- }
9
- }
10
- exports.NotFoundError = NotFoundError;
11
- //# sourceMappingURL=NotFoundError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"NotFoundError.js","sourceRoot":"","sources":["../../../src/errors/http/NotFoundError.ts"],"names":[],"mappings":";;;AAAA,2CAAwC;AAExC,MAAa,aAAc,SAAQ,qBAAS;IACnC,aAAa;QAClB,OAAO,WAAW,CAAC;IACrB,CAAC;CACF;AAJD,sCAIC"}
@@ -1,8 +0,0 @@
1
- import { RenderableContext } from "../RenderableError";
2
- import { HttpError } from "./HttpError";
3
- export declare class UnauthorizedError extends HttpError {
4
- requiredChecks: any;
5
- constructor(requiredChecks: string[]);
6
- renderMessage(): string;
7
- context(): RenderableContext;
8
- }
@@ -1,20 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.UnauthorizedError = void 0;
4
- const HttpError_1 = require("./HttpError");
5
- class UnauthorizedError extends HttpError_1.HttpError {
6
- constructor(requiredChecks) {
7
- super();
8
- this.requiredChecks = requiredChecks;
9
- }
10
- renderMessage() {
11
- return "Unauthorized Error";
12
- }
13
- context() {
14
- return {
15
- requiredChecks: this.requiredChecks,
16
- };
17
- }
18
- }
19
- exports.UnauthorizedError = UnauthorizedError;
20
- //# sourceMappingURL=UnauthorizedError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnauthorizedError.js","sourceRoot":"","sources":["../../../src/errors/http/UnauthorizedError.ts"],"names":[],"mappings":";;;AACA,2CAAwC;AAExC,MAAa,iBAAkB,SAAQ,qBAAS;IAG9C,YAAmB,cAAwB;QACzC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;IACvC,CAAC;IAEM,aAAa;QAClB,OAAO,oBAAoB,CAAC;IAC9B,CAAC;IAEM,OAAO;QACZ,OAAO;YACL,cAAc,EAAE,IAAI,CAAC,cAAc;SACpC,CAAC;IACJ,CAAC;CACF;AAjBD,8CAiBC"}
@@ -1,5 +0,0 @@
1
- export * from "./HttpError";
2
- export * from "./BadRequestError";
3
- export * from "./UnauthorizedError";
4
- export * from "./InternalServerError";
5
- export * from "./NotFoundError";
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/errors/http/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,8CAA4B;AAC5B,oDAAkC;AAClC,sDAAoC;AACpC,wDAAsC;AACtC,kDAAgC"}
@@ -1,7 +0,0 @@
1
- export type RenderableContext = Record<string, unknown>;
2
-
3
- export interface RenderableError {
4
- code(): string;
5
- renderMessage(): string;
6
- context(): RenderableContext;
7
- }
@@ -1,21 +0,0 @@
1
- import { RenderableContext } from "../RenderableError";
2
- import { HttpError } from "./HttpError";
3
-
4
- export class BadRequestError extends HttpError {
5
- private errors;
6
-
7
- public constructor(errors: string[] | string) {
8
- super();
9
- this.errors = errors;
10
- }
11
-
12
- public renderMessage(): string {
13
- return "Bad Request";
14
- }
15
-
16
- public context(): RenderableContext {
17
- return {
18
- errors: this.errors,
19
- };
20
- }
21
- }
@@ -1,19 +0,0 @@
1
- import { snakeCase } from "lodash";
2
- import { BaseError } from "../BaseError";
3
- import { RenderableContext, RenderableError } from "../RenderableError";
4
-
5
- export abstract class HttpError extends BaseError implements RenderableError {
6
- constructor() {
7
- super("HttpError");
8
- }
9
-
10
- public abstract renderMessage(): string;
11
-
12
- public code(): string {
13
- return snakeCase(this.renderMessage());
14
- }
15
-
16
- public context(): RenderableContext {
17
- return {};
18
- }
19
- }
@@ -1,7 +0,0 @@
1
- import { HttpError } from "./HttpError";
2
-
3
- export class NotFoundError extends HttpError {
4
- public renderMessage(): string {
5
- return "Not Found";
6
- }
7
- }
@@ -1,21 +0,0 @@
1
- import { RenderableContext } from "../RenderableError";
2
- import { HttpError } from "./HttpError";
3
-
4
- export class UnauthorizedError extends HttpError {
5
- public requiredChecks;
6
-
7
- public constructor(requiredChecks: string[]) {
8
- super();
9
- this.requiredChecks = requiredChecks;
10
- }
11
-
12
- public renderMessage(): string {
13
- return "Unauthorized Error";
14
- }
15
-
16
- public context(): RenderableContext {
17
- return {
18
- requiredChecks: this.requiredChecks,
19
- };
20
- }
21
- }
@@ -1,5 +0,0 @@
1
- export * from "./HttpError";
2
- export * from "./BadRequestError";
3
- export * from "./UnauthorizedError";
4
- export * from "./InternalServerError";
5
- export * from "./NotFoundError";
@@ -1 +0,0 @@
1
- {"version":3,"file":"appIdentifier.js","sourceRoot":"","sources":["../../src/helpers/appIdentifier.ts"],"names":[],"mappings":";;;AAAA,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,WAAW,CAAC;IAC3D,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,aAAa,CAAC;IAClD,OAAO,GAAG,OAAO,IAAI,GAAG,EAAE,CAAC;AAC7B,CAAC;AAJD,sCAIC"}
@@ -1,2 +0,0 @@
1
- import { RenderableError } from "@alanszp/errors";
2
- export declare function errorView(err: RenderableError): unknown;
@@ -1,14 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.errorView = void 0;
4
- const appIdentifier_1 = require("../helpers/appIdentifier");
5
- function errorView(err) {
6
- return {
7
- code: err.code(),
8
- message: err.renderMessage(),
9
- context: err.context(),
10
- origin: (0, appIdentifier_1.appIdentifier)(),
11
- };
12
- }
13
- exports.errorView = errorView;
14
- //# sourceMappingURL=errorView.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"errorView.js","sourceRoot":"","sources":["../../src/views/errorView.ts"],"names":[],"mappings":";;;AACA,4DAAyD;AAEzD,SAAgB,SAAS,CAAC,GAAoB;IAC5C,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE;QAChB,OAAO,EAAE,GAAG,CAAC,aAAa,EAAE;QAC5B,OAAO,EAAE,GAAG,CAAC,OAAO,EAAE;QACtB,MAAM,EAAE,IAAA,6BAAa,GAAE;KACxB,CAAC;AACJ,CAAC;AAPD,8BAOC"}
@@ -1,5 +0,0 @@
1
- export function appIdentifier() {
2
- const appName = process.env.API_ORIGIN_NAME || "undefined";
3
- const env = process.env.NODE_ENV || "development";
4
- return `${appName}:${env}`;
5
- }
@@ -1,11 +0,0 @@
1
- import { RenderableError } from "@alanszp/errors";
2
- import { appIdentifier } from "../helpers/appIdentifier";
3
-
4
- export function errorView(err: RenderableError): unknown {
5
- return {
6
- code: err.code(),
7
- message: err.renderMessage(),
8
- context: err.context(),
9
- origin: appIdentifier(),
10
- };
11
- }