axe-api 0.31.4 → 1.0.0-rc1

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 (128) hide show
  1. package/build/dev-kit.d.ts +1 -0
  2. package/build/dev-kit.js +16 -0
  3. package/build/index.d.ts +2 -2
  4. package/build/index.js +4 -1
  5. package/build/src/Builders/RouterBuilder.d.ts +0 -4
  6. package/build/src/Builders/RouterBuilder.js +13 -107
  7. package/build/src/Handlers/DocsHTMLHandler.d.ts +3 -2
  8. package/build/src/Handlers/Helpers.d.ts +7 -7
  9. package/build/src/Handlers/MetadataHandler.d.ts +3 -2
  10. package/build/src/Handlers/RequestHandler.d.ts +3 -0
  11. package/build/src/Handlers/RequestHandler.js +89 -0
  12. package/build/src/Handlers/RoutesHandler.d.ts +3 -2
  13. package/build/src/Helpers.d.ts +1 -2
  14. package/build/src/Helpers.js +3 -15
  15. package/build/src/Interfaces.d.ts +30 -29
  16. package/build/src/Model.d.ts +3 -3
  17. package/build/src/Phases/All/FetchPhase.d.ts +3 -0
  18. package/build/src/Phases/All/FetchPhase.js +16 -0
  19. package/build/src/Phases/All/PreparePhase.d.ts +3 -0
  20. package/build/src/Phases/All/PreparePhase.js +30 -0
  21. package/build/src/Phases/All/index.d.ts +4 -0
  22. package/build/src/{Middlewares → Phases/All}/index.js +4 -3
  23. package/build/src/Phases/Delete/ActionPhase.d.ts +3 -0
  24. package/build/src/Phases/Delete/ActionPhase.js +24 -0
  25. package/build/src/Phases/Delete/PreparePhase.d.ts +3 -0
  26. package/build/src/Phases/Delete/PreparePhase.js +25 -0
  27. package/build/src/Phases/Delete/QueryPhase.d.ts +3 -0
  28. package/build/src/Phases/Delete/QueryPhase.js +20 -0
  29. package/build/src/Phases/Delete/ResponsePhase.d.ts +3 -0
  30. package/build/src/Phases/Delete/ResponsePhase.js +14 -0
  31. package/build/src/Phases/Delete/index.d.ts +7 -0
  32. package/build/src/Phases/Delete/index.js +15 -0
  33. package/build/src/Phases/ForceDelete/ActionPhase.d.ts +3 -0
  34. package/build/src/Phases/ForceDelete/ActionPhase.js +16 -0
  35. package/build/src/Phases/ForceDelete/PreparePhase.d.ts +3 -0
  36. package/build/src/Phases/ForceDelete/PreparePhase.js +28 -0
  37. package/build/src/Phases/ForceDelete/QueryPhase.d.ts +3 -0
  38. package/build/src/Phases/ForceDelete/QueryPhase.js +20 -0
  39. package/build/src/Phases/ForceDelete/index.d.ts +6 -0
  40. package/build/src/Phases/ForceDelete/index.js +13 -0
  41. package/build/src/Phases/List/RelationalPhase.d.ts +3 -0
  42. package/build/src/Phases/List/RelationalPhase.js +17 -0
  43. package/build/src/Phases/List/ResultPhase.d.ts +3 -0
  44. package/build/src/Phases/List/ResultPhase.js +14 -0
  45. package/build/src/Phases/List/SerializePhase.d.ts +3 -0
  46. package/build/src/Phases/List/SerializePhase.js +19 -0
  47. package/build/src/Phases/List/index.d.ts +6 -0
  48. package/build/src/Phases/List/index.js +13 -0
  49. package/build/src/Phases/Paginate/FetchPhase.d.ts +3 -0
  50. package/build/src/Phases/Paginate/FetchPhase.js +19 -0
  51. package/build/src/Phases/Paginate/PreparePhase.d.ts +3 -0
  52. package/build/src/Phases/Paginate/PreparePhase.js +30 -0
  53. package/build/src/Phases/Paginate/index.d.ts +5 -0
  54. package/build/src/Phases/Paginate/index.js +11 -0
  55. package/build/src/Phases/Patch/PrepareActionPhase.d.ts +3 -0
  56. package/build/src/Phases/Patch/PrepareActionPhase.js +37 -0
  57. package/build/src/Phases/Patch/index.d.ts +4 -0
  58. package/build/src/Phases/Patch/index.js +9 -0
  59. package/build/src/Phases/Show/FetchPhase.d.ts +3 -0
  60. package/build/src/Phases/Show/FetchPhase.js +23 -0
  61. package/build/src/Phases/Show/PreparePhase.d.ts +3 -0
  62. package/build/src/Phases/Show/PreparePhase.js +31 -0
  63. package/build/src/Phases/Show/index.d.ts +5 -0
  64. package/build/src/Phases/Show/index.js +11 -0
  65. package/build/src/Phases/Single/GetPhase.d.ts +3 -0
  66. package/build/src/{Middlewares/acceptLanguageMiddleware.js → Phases/Single/GetPhase.js} +15 -10
  67. package/build/src/Phases/Single/PrepareGetPhase.d.ts +3 -0
  68. package/build/src/Phases/Single/PrepareGetPhase.js +19 -0
  69. package/build/src/Phases/Single/RelationalPhase.d.ts +3 -0
  70. package/build/src/Phases/Single/RelationalPhase.js +17 -0
  71. package/build/src/Phases/Single/ResultPhase.d.ts +3 -0
  72. package/build/src/Phases/Single/ResultPhase.js +14 -0
  73. package/build/src/Phases/Single/SerializePhase.d.ts +3 -0
  74. package/build/src/Phases/Single/SerializePhase.js +18 -0
  75. package/build/src/Phases/Single/index.d.ts +8 -0
  76. package/build/src/Phases/Single/index.js +17 -0
  77. package/build/src/Phases/Store/ActionPhase.d.ts +3 -0
  78. package/build/src/Phases/Store/ActionPhase.js +29 -0
  79. package/build/src/Phases/Store/PreparePhase.d.ts +3 -0
  80. package/build/src/Phases/Store/PreparePhase.js +46 -0
  81. package/build/src/Phases/Store/index.d.ts +5 -0
  82. package/build/src/Phases/Store/index.js +11 -0
  83. package/build/src/Phases/Update/ActionPhase.d.ts +3 -0
  84. package/build/src/Phases/Update/ActionPhase.js +22 -0
  85. package/build/src/Phases/Update/PrepareActionPhase.d.ts +3 -0
  86. package/build/src/Phases/Update/PrepareActionPhase.js +37 -0
  87. package/build/src/Phases/Update/index.d.ts +5 -0
  88. package/build/src/Phases/Update/index.js +11 -0
  89. package/build/src/Server.d.ts +0 -1
  90. package/build/src/Server.js +13 -16
  91. package/build/src/Services/App.d.ts +14 -0
  92. package/build/src/Services/App.js +37 -0
  93. package/build/src/Services/AxeRequest.d.ts +24 -0
  94. package/build/src/Services/AxeRequest.js +59 -0
  95. package/build/src/Services/AxeResponse.d.ts +17 -0
  96. package/build/src/Services/AxeResponse.js +38 -0
  97. package/build/src/Services/LogService.js +4 -5
  98. package/build/src/Services/ModelService.d.ts +4 -4
  99. package/build/src/Services/QueryService.d.ts +1 -1
  100. package/build/src/Services/QueryService.js +14 -11
  101. package/build/src/Services/URLService.d.ts +29 -0
  102. package/build/src/Services/URLService.js +116 -0
  103. package/build/src/Services/index.d.ts +4 -1
  104. package/build/src/Services/index.js +7 -1
  105. package/build/src/Types.d.ts +7 -6
  106. package/build/src/constants.d.ts +9 -2
  107. package/build/src/constants.js +162 -1
  108. package/package.json +6 -1
  109. package/build/src/Handlers/AllHandler.d.ts +0 -3
  110. package/build/src/Handlers/AllHandler.js +0 -45
  111. package/build/src/Handlers/DestroyHandler.d.ts +0 -3
  112. package/build/src/Handlers/DestroyHandler.js +0 -51
  113. package/build/src/Handlers/ForceDestroyHandler.d.ts +0 -3
  114. package/build/src/Handlers/ForceDestroyHandler.js +0 -45
  115. package/build/src/Handlers/HandlerFactory.d.ts +0 -6
  116. package/build/src/Handlers/HandlerFactory.js +0 -39
  117. package/build/src/Handlers/PaginateHandler.d.ts +0 -3
  118. package/build/src/Handlers/PaginateHandler.js +0 -49
  119. package/build/src/Handlers/PatchHandler.d.ts +0 -3
  120. package/build/src/Handlers/PatchHandler.js +0 -69
  121. package/build/src/Handlers/ShowHandler.d.ts +0 -3
  122. package/build/src/Handlers/ShowHandler.js +0 -55
  123. package/build/src/Handlers/StoreHandler.d.ts +0 -3
  124. package/build/src/Handlers/StoreHandler.js +0 -65
  125. package/build/src/Handlers/UpdateHandler.d.ts +0 -3
  126. package/build/src/Handlers/UpdateHandler.js +0 -69
  127. package/build/src/Middlewares/acceptLanguageMiddleware.d.ts +0 -3
  128. package/build/src/Middlewares/index.d.ts +0 -2
@@ -0,0 +1,19 @@
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
+ const Helpers_1 = require("../../Handlers/Helpers");
13
+ exports.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
14
+ context.query = context.database.from(context.model.instance.table);
15
+ // If there is a relation, we should bind it
16
+ (0, Helpers_1.addForeignKeyQuery)(context.req, context.query, context.relation, context.parentModel);
17
+ // If there is a deletedAtColumn, it means that this table support soft-delete
18
+ (0, Helpers_1.addSoftDeleteQuery)(context.model, null, context.query);
19
+ });
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,17 @@
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
+ const Helpers_1 = require("../../Handlers/Helpers");
13
+ exports.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
14
+ var _a;
15
+ // We should try to get related data if there is any
16
+ yield (0, Helpers_1.getRelatedData)(context.version, [context.item], ((_a = context.conditions) === null || _a === void 0 ? void 0 : _a.with) || [], context.model, context.version.modelList, context.database, context.handlerType, context.req);
17
+ });
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,14 @@
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.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
13
+ context.res.json(context.item);
14
+ });
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,18 @@
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
+ const Helpers_1 = require("../../Handlers/Helpers");
13
+ exports.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
14
+ // Serializing the data by the model's serialize method
15
+ context.item = yield (0, Helpers_1.serializeData)(context.version, context.item, context.model.serialize, context.handlerType, context.req);
16
+ // Filtering hidden fields from the response data.
17
+ (0, Helpers_1.filterHiddenFields)([context.item], context.model.instance.hiddens);
18
+ });
@@ -0,0 +1,8 @@
1
+ declare const _default: {
2
+ RelationalPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
3
+ ResultPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
4
+ SerializePhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
5
+ PrepareGetPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
6
+ GetPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
7
+ };
8
+ export default _default;
@@ -0,0 +1,17 @@
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 RelationalPhase_1 = __importDefault(require("./RelationalPhase"));
7
+ const ResultPhase_1 = __importDefault(require("./ResultPhase"));
8
+ const SerializePhase_1 = __importDefault(require("./SerializePhase"));
9
+ const PrepareGetPhase_1 = __importDefault(require("./PrepareGetPhase"));
10
+ const GetPhase_1 = __importDefault(require("./GetPhase"));
11
+ exports.default = {
12
+ RelationalPhase: RelationalPhase_1.default,
13
+ ResultPhase: ResultPhase_1.default,
14
+ SerializePhase: SerializePhase_1.default,
15
+ PrepareGetPhase: PrepareGetPhase_1.default,
16
+ GetPhase: GetPhase_1.default,
17
+ };
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,29 @@
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.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
13
+ const [returningResult] = yield context
14
+ .database(context.model.instance.table)
15
+ .insert(context.formData)
16
+ .returning(context.model.instance.primaryKey);
17
+ let insertedPrimaryKeyValue = typeof returningResult === "number"
18
+ ? returningResult
19
+ : returningResult[context.model.instance.primaryKey];
20
+ // If the user use a special primary key value, we should use that value
21
+ if (insertedPrimaryKeyValue === 0) {
22
+ insertedPrimaryKeyValue =
23
+ context.formData[context.model.instance.primaryKey];
24
+ }
25
+ context.item = yield context
26
+ .database(context.model.instance.table)
27
+ .where(context.model.instance.primaryKey, insertedPrimaryKeyValue)
28
+ .first();
29
+ });
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,46 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const validatorjs_1 = __importDefault(require("validatorjs"));
16
+ const Helpers_1 = require("../../Handlers/Helpers");
17
+ const Enums_1 = require("../../Enums");
18
+ exports.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const requestMethod = context.req
20
+ .method;
21
+ const fillables = context.model.instance.getFillableFields(requestMethod);
22
+ context.formData = (0, Helpers_1.getMergedFormData)(context.req, fillables);
23
+ const validationRules = context.model.instance.getValidationRules(requestMethod);
24
+ if (validationRules) {
25
+ // The validation language should be set
26
+ validatorjs_1.default.useLang(context.req.currentLanguage.language);
27
+ // Validate the data
28
+ const validation = new validatorjs_1.default(context.formData, validationRules);
29
+ if (validation.fails()) {
30
+ context.res.json(validation.errors, 400);
31
+ return;
32
+ }
33
+ }
34
+ if (context.relation && context.parentModel) {
35
+ const parentColumn = (0, Helpers_1.getParentColumn)(context.relation);
36
+ if (parentColumn) {
37
+ context.formData[context.relation.foreignKey] =
38
+ context.params[parentColumn];
39
+ }
40
+ }
41
+ // We should bind the timestamp values
42
+ (0, Helpers_1.bindTimestampValues)(context.formData, context.model, [
43
+ Enums_1.TimestampColumns.CREATED_AT,
44
+ Enums_1.TimestampColumns.UPDATED_AT,
45
+ ]);
46
+ });
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ PreparePhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
3
+ ActionPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
4
+ };
5
+ export default _default;
@@ -0,0 +1,11 @@
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 PreparePhase_1 = __importDefault(require("./PreparePhase"));
7
+ const ActionPhase_1 = __importDefault(require("./ActionPhase"));
8
+ exports.default = {
9
+ PreparePhase: PreparePhase_1.default,
10
+ ActionPhase: ActionPhase_1.default,
11
+ };
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,22 @@
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.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
13
+ if (context.query) {
14
+ yield context.query
15
+ .where(context.model.instance.primaryKey, context.item[context.model.instance.primaryKey])
16
+ .update(context.formData);
17
+ context.item = yield context
18
+ .database(context.model.instance.table)
19
+ .where(context.model.instance.primaryKey, context.item[context.model.instance.primaryKey])
20
+ .first();
21
+ }
22
+ });
@@ -0,0 +1,3 @@
1
+ import { IRequestPack } from "../../Interfaces";
2
+ declare const _default: (context: IRequestPack) => Promise<void>;
3
+ export default _default;
@@ -0,0 +1,37 @@
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
+ var __importDefault = (this && this.__importDefault) || function (mod) {
12
+ return (mod && mod.__esModule) ? mod : { "default": mod };
13
+ };
14
+ Object.defineProperty(exports, "__esModule", { value: true });
15
+ const validatorjs_1 = __importDefault(require("validatorjs"));
16
+ const Enums_1 = require("../../Enums");
17
+ const Helpers_1 = require("../../Handlers/Helpers");
18
+ exports.default = (context) => __awaiter(void 0, void 0, void 0, function* () {
19
+ const requestMethod = context.req
20
+ .method;
21
+ const fillables = context.model.instance.getFillableFields(requestMethod);
22
+ context.formData = (0, Helpers_1.getMergedFormData)(context.req, fillables);
23
+ const validationRules = context.model.instance.getValidationRules(requestMethod);
24
+ if (validationRules) {
25
+ // The validation language should be set
26
+ validatorjs_1.default.useLang(context.req.currentLanguage.language);
27
+ // Validate the data
28
+ const validation = new validatorjs_1.default(context.formData, validationRules);
29
+ if (validation.fails()) {
30
+ return context.res.json(validation.errors, 400);
31
+ }
32
+ }
33
+ // We should bind the timestamp values
34
+ (0, Helpers_1.bindTimestampValues)(context.formData, context.model, [
35
+ Enums_1.TimestampColumns.UPDATED_AT,
36
+ ]);
37
+ });
@@ -0,0 +1,5 @@
1
+ declare const _default: {
2
+ ActionPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
3
+ PrepareActionPhase: (context: import("../../Interfaces").IRequestPack) => Promise<void>;
4
+ };
5
+ export default _default;
@@ -0,0 +1,11 @@
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 ActionPhase_1 = __importDefault(require("./ActionPhase"));
7
+ const PrepareActionPhase_1 = __importDefault(require("./PrepareActionPhase"));
8
+ exports.default = {
9
+ ActionPhase: ActionPhase_1.default,
10
+ PrepareActionPhase: PrepareActionPhase_1.default,
11
+ };
@@ -1,7 +1,6 @@
1
1
  declare class Server {
2
2
  start(rootFolder: string): Promise<void>;
3
3
  private bindDependencies;
4
- private loadExpress;
5
4
  private analyzeVersions;
6
5
  private loadGeneralConfiguration;
7
6
  private listen;
@@ -38,7 +38,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
38
38
  const Resolvers_1 = require("./Resolvers");
39
39
  const dotenv_1 = __importDefault(require("dotenv"));
40
40
  const path_1 = __importDefault(require("path"));
41
- const express_1 = __importDefault(require("express"));
42
41
  const knex_1 = __importDefault(require("knex"));
43
42
  const knex_schema_inspector_1 = __importDefault(require("knex-schema-inspector"));
44
43
  const knex_paginate_1 = require("knex-paginate");
@@ -48,6 +47,9 @@ const MetadataHandler_1 = __importDefault(require("./Handlers/MetadataHandler"))
48
47
  const DocsHTMLHandler_1 = __importDefault(require("./Handlers/DocsHTMLHandler"));
49
48
  const RoutesHandler_1 = __importDefault(require("./Handlers/RoutesHandler"));
50
49
  const Helpers_1 = require("./Helpers");
50
+ const http_1 = __importDefault(require("http"));
51
+ const RequestHandler_1 = __importDefault(require("./Handlers/RequestHandler"));
52
+ const App_1 = __importDefault(require("./Services/App"));
51
53
  class Server {
52
54
  start(rootFolder) {
53
55
  return __awaiter(this, void 0, void 0, function* () {
@@ -55,7 +57,6 @@ class Server {
55
57
  try {
56
58
  yield this.bindDependencies(rootFolder);
57
59
  yield this.loadGeneralConfiguration();
58
- yield this.loadExpress();
59
60
  yield this.analyzeVersions();
60
61
  yield this.listen();
61
62
  }
@@ -74,24 +75,15 @@ class Server {
74
75
  Services_1.APIService.setInsance(rootFolder);
75
76
  const api = Services_1.APIService.getInstance();
76
77
  Services_1.IoCService.singleton("SchemaInspector", () => knex_schema_inspector_1.default);
78
+ Services_1.IoCService.singleton("App", () => new App_1.default());
77
79
  Services_1.IoCService.singleton("Database", () => __awaiter(this, void 0, void 0, function* () {
78
80
  const database = (0, knex_1.default)(api.config.database);
79
81
  (0, knex_paginate_1.attachPaginate)();
80
82
  return database;
81
83
  }));
82
- Services_1.IoCService.singleton("App", () => __awaiter(this, void 0, void 0, function* () {
83
- return (0, express_1.default)();
84
- }));
85
84
  Services_1.LogService.setInstance(api.config.logLevel);
86
85
  });
87
86
  }
88
- loadExpress() {
89
- return __awaiter(this, void 0, void 0, function* () {
90
- const app = yield Services_1.IoCService.use("App");
91
- app.use(express_1.default.urlencoded({ extended: true }));
92
- app.use(express_1.default.json());
93
- });
94
- }
95
87
  analyzeVersions() {
96
88
  return __awaiter(this, void 0, void 0, function* () {
97
89
  const api = Services_1.APIService.getInstance();
@@ -115,17 +107,22 @@ class Server {
115
107
  }
116
108
  listen() {
117
109
  return __awaiter(this, void 0, void 0, function* () {
118
- const app = yield Services_1.IoCService.use("App");
110
+ const app = yield Services_1.IoCService.useByType("App");
111
+ app.use(RequestHandler_1.default);
112
+ const server = http_1.default.createServer(app.instance);
119
113
  const logger = Services_1.LogService.getInstance();
120
114
  const api = Services_1.APIService.getInstance();
115
+ server.on("error", function (e) {
116
+ // Handle your error here
117
+ console.log("GENERAL", e);
118
+ });
119
+ server.listen(api.config.port);
120
+ logger.info(`API listens requests on http://localhost:${api.config.port}`);
121
121
  if (api.config.env === "development") {
122
122
  app.get("/metadata", MetadataHandler_1.default);
123
123
  app.get("/docs", DocsHTMLHandler_1.default);
124
124
  app.get("/routes", RoutesHandler_1.default);
125
125
  }
126
- app.listen(api.config.port, () => {
127
- logger.info(`API listens requests on http://localhost:${api.config.port}`);
128
- });
129
126
  });
130
127
  }
131
128
  }
@@ -0,0 +1,14 @@
1
+ import connect from "connect";
2
+ import { HandlerFunction } from "../Types";
3
+ declare class App {
4
+ private connect;
5
+ constructor();
6
+ get instance(): connect.Server;
7
+ use(middleware: connect.NextHandleFunction): void;
8
+ get(url: string, handler: HandlerFunction): void;
9
+ post(url: string, handler: HandlerFunction): void;
10
+ put(url: string, handler: HandlerFunction): void;
11
+ patch(url: string, handler: HandlerFunction): void;
12
+ delete(url: string, handler: HandlerFunction): void;
13
+ }
14
+ export default App;
@@ -0,0 +1,37 @@
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 connect_1 = __importDefault(require("connect"));
7
+ const body_parser_1 = __importDefault(require("body-parser"));
8
+ const URLService_1 = __importDefault(require("./URLService"));
9
+ class App {
10
+ constructor() {
11
+ this.connect = (0, connect_1.default)();
12
+ this.connect.use(body_parser_1.default.urlencoded({ extended: true }));
13
+ this.connect.use(body_parser_1.default.json());
14
+ }
15
+ get instance() {
16
+ return this.connect;
17
+ }
18
+ use(middleware) {
19
+ this.connect.use(middleware);
20
+ }
21
+ get(url, handler) {
22
+ URLService_1.default.addHandler("GET", url, handler);
23
+ }
24
+ post(url, handler) {
25
+ URLService_1.default.addHandler("POST", url, handler);
26
+ }
27
+ put(url, handler) {
28
+ URLService_1.default.addHandler("PUT", url, handler);
29
+ }
30
+ patch(url, handler) {
31
+ URLService_1.default.addHandler("PATCH", url, handler);
32
+ }
33
+ delete(url, handler) {
34
+ URLService_1.default.addHandler("DELETE", url, handler);
35
+ }
36
+ }
37
+ exports.default = App;
@@ -0,0 +1,24 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="express" />
3
+ import { IncomingMessage } from "http";
4
+ import { ILanguage } from "../Interfaces";
5
+ declare class AxeRequest {
6
+ private request;
7
+ private language;
8
+ private urlObject;
9
+ private privateParams;
10
+ private version;
11
+ constructor(request: IncomingMessage);
12
+ get url(): URL;
13
+ get params(): any;
14
+ set params(value: any);
15
+ get query(): URLSearchParams;
16
+ get path(): string;
17
+ get method(): string;
18
+ get body(): any;
19
+ get currentLanguage(): ILanguage;
20
+ set currentLanguage(language: ILanguage);
21
+ header(key: string): string | string[] | undefined;
22
+ get original(): IncomingMessage;
23
+ }
24
+ export default AxeRequest;
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const Helpers_1 = require("../Helpers");
4
+ const Resolvers_1 = require("../Resolvers");
5
+ class AxeRequest {
6
+ constructor(request) {
7
+ this.privateParams = {};
8
+ this.request = request;
9
+ this.urlObject = new URL(request.url || "", "http://127.0.0.1");
10
+ // Application configuration is need for the default setting.
11
+ this.version = (0, Helpers_1.getVersionByRequest)(this.urlObject);
12
+ if (this.version) {
13
+ // Setting the current language by the supported, default and the client prefences
14
+ this.language = Resolvers_1.AcceptLanguageResolver.resolve(this.request.headers["accept-language"] || "", this.version.config.supportedLanguages || ["en"], this.version.config.defaultLanguage || "en");
15
+ }
16
+ else {
17
+ this.language = {
18
+ title: "en",
19
+ language: "en",
20
+ region: null,
21
+ };
22
+ }
23
+ }
24
+ get url() {
25
+ return this.urlObject;
26
+ }
27
+ get params() {
28
+ return this.privateParams;
29
+ }
30
+ set params(value) {
31
+ this.privateParams = value;
32
+ }
33
+ get query() {
34
+ return this.urlObject.searchParams;
35
+ }
36
+ get path() {
37
+ // TODO: Path
38
+ return this.request.url || "";
39
+ }
40
+ get method() {
41
+ return this.request.method || "GET";
42
+ }
43
+ get body() {
44
+ return this.request.body;
45
+ }
46
+ get currentLanguage() {
47
+ return this.language;
48
+ }
49
+ set currentLanguage(language) {
50
+ this.language = language;
51
+ }
52
+ header(key) {
53
+ return this.request.headers[key];
54
+ }
55
+ get original() {
56
+ return this.request;
57
+ }
58
+ }
59
+ exports.default = AxeRequest;
@@ -0,0 +1,17 @@
1
+ /// <reference types="node" />
2
+ /// <reference types="express" />
3
+ import { ServerResponse } from "http";
4
+ import { ILanguage } from "src/Interfaces";
5
+ declare class AxeResponse {
6
+ private response;
7
+ private responseStatus;
8
+ private language;
9
+ constructor(response: ServerResponse, language: ILanguage);
10
+ get original(): ServerResponse<import("http").IncomingMessage>;
11
+ json(data: object, statusCode?: number): void;
12
+ send(content: string, statusCode?: number): void;
13
+ noContent(): void;
14
+ isResponded(): boolean;
15
+ statusCode(): number;
16
+ }
17
+ export default AxeResponse;
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ class AxeResponse {
4
+ constructor(response, language) {
5
+ this.responseStatus = false;
6
+ this.response = response;
7
+ this.language = language;
8
+ }
9
+ get original() {
10
+ return this.response;
11
+ }
12
+ json(data, statusCode = 200) {
13
+ this.response.setHeader("Content-Type", "application/json");
14
+ this.response.setHeader("Content-Language", this.language.language);
15
+ this.response.statusCode = statusCode;
16
+ this.response.write(JSON.stringify(data));
17
+ this.response.end();
18
+ this.responseStatus = true;
19
+ }
20
+ send(content, statusCode = 200) {
21
+ this.response.statusCode = statusCode;
22
+ this.response.write(content);
23
+ this.response.end();
24
+ this.responseStatus = true;
25
+ }
26
+ noContent() {
27
+ this.response.statusCode = 204;
28
+ this.response.end();
29
+ this.responseStatus = true;
30
+ }
31
+ isResponded() {
32
+ return this.responseStatus;
33
+ }
34
+ statusCode() {
35
+ return this.response.statusCode;
36
+ }
37
+ }
38
+ exports.default = AxeResponse;
@@ -2,7 +2,6 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  const Enums_1 = require("../Enums");
4
4
  const constants_1 = require("../constants");
5
- const { fgRed, fgGreen, fgYellow, fgCyan, fgReset } = constants_1.LOG_COLORS;
6
5
  class LogService {
7
6
  constructor(level) {
8
7
  this.level = level;
@@ -15,22 +14,22 @@ class LogService {
15
14
  }
16
15
  error(message) {
17
16
  if (this.level >= Enums_1.LogLevels.ERROR) {
18
- console.error(fgRed, "[axe]", message, fgReset);
17
+ console.error(constants_1.LOG_COLORS.fgRed, "[axe]", message, constants_1.LOG_COLORS.fgReset);
19
18
  }
20
19
  }
21
20
  warn(message) {
22
21
  if (this.level >= Enums_1.LogLevels.WARNING) {
23
- console.warn(fgYellow, "[axe]", message, fgReset);
22
+ console.warn(constants_1.LOG_COLORS.fgYellow, "[axe]", message, constants_1.LOG_COLORS.fgReset);
24
23
  }
25
24
  }
26
25
  info(message) {
27
26
  if (this.level >= Enums_1.LogLevels.INFO) {
28
- console.info(fgCyan, "[axe]", message, fgReset);
27
+ console.info(constants_1.LOG_COLORS.fgCyan, "[axe]", message, constants_1.LOG_COLORS.fgReset);
29
28
  }
30
29
  }
31
30
  success(message) {
32
31
  if (this.level >= Enums_1.LogLevels.INFO) {
33
- console.info(fgGreen, "[axe]", message, fgReset);
32
+ console.info(constants_1.LOG_COLORS.fgGreen, "[axe]", message, constants_1.LOG_COLORS.fgReset);
34
33
  }
35
34
  }
36
35
  debug(message) {