axe-api 1.0.0-rc9 → 1.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 (136) hide show
  1. package/build/index.d.ts +1 -0
  2. package/build/index.js +1 -0
  3. package/build/src/Builders/IndexBuilder.d.ts +7 -0
  4. package/build/src/Builders/IndexBuilder.js +35 -0
  5. package/build/src/Builders/ModelTreeBuilder.js +2 -1
  6. package/build/src/Builders/RouterBuilder.js +22 -11
  7. package/build/src/Builders/SwaggerBuilder.d.ts +2 -0
  8. package/build/src/Builders/SwaggerBuilder.js +609 -0
  9. package/build/src/Enums.d.ts +6 -1
  10. package/build/src/Enums.js +7 -1
  11. package/build/src/Handlers/DocsHandler.js +41 -0
  12. package/build/src/Handlers/ErrorHandler.d.ts +6 -0
  13. package/build/src/Handlers/ErrorHandler.js +12 -0
  14. package/build/src/Handlers/Helpers.d.ts +16 -4
  15. package/build/src/Handlers/Helpers.js +202 -5
  16. package/build/src/Handlers/RequestHandler.d.ts +4 -1
  17. package/build/src/Handlers/RequestHandler.js +36 -40
  18. package/build/src/Handlers/{DocsHTMLHandler.js → SwaggerHandler.js} +8 -7
  19. package/build/src/Interfaces.d.ts +103 -35
  20. package/build/src/Middlewares/RateLimit/AdaptorFactory.d.ts +3 -3
  21. package/build/src/Middlewares/RateLimit/MemoryAdaptor.d.ts +2 -2
  22. package/build/src/Middlewares/RateLimit/RedisAdaptor.d.ts +12 -4
  23. package/build/src/Middlewares/RateLimit/RedisAdaptor.js +24 -0
  24. package/build/src/Middlewares/RateLimit/index.d.ts +22 -3
  25. package/build/src/Middlewares/RateLimit/index.js +23 -3
  26. package/build/src/Model.d.ts +256 -10
  27. package/build/src/Model.js +322 -30
  28. package/build/src/Phases/All/FetchPhase.d.ts +2 -2
  29. package/build/src/Phases/All/PreparePhase.d.ts +2 -2
  30. package/build/src/Phases/All/index.d.ts +1 -1
  31. package/build/src/Phases/CacheTagCleanPhase.d.ts +3 -0
  32. package/build/src/{Handlers/MetadataHandler.js → Phases/CacheTagCleanPhase.js} +6 -10
  33. package/build/src/Phases/Delete/ActionPhase.d.ts +2 -2
  34. package/build/src/Phases/Delete/ActionPhase.js +21 -2
  35. package/build/src/Phases/Delete/PreparePhase.d.ts +2 -2
  36. package/build/src/Phases/Delete/QueryPhase.d.ts +2 -2
  37. package/build/src/Phases/Delete/ResponsePhase.d.ts +2 -2
  38. package/build/src/Phases/Delete/ResponsePhase.js +2 -1
  39. package/build/src/Phases/Delete/index.d.ts +4 -4
  40. package/build/src/Phases/ForceDelete/ActionPhase.d.ts +2 -2
  41. package/build/src/Phases/ForceDelete/ActionPhase.js +7 -0
  42. package/build/src/Phases/ForceDelete/PreparePhase.d.ts +2 -2
  43. package/build/src/Phases/ForceDelete/QueryPhase.d.ts +2 -2
  44. package/build/src/Phases/ForceDelete/index.d.ts +3 -3
  45. package/build/src/Phases/GetCachePhase.d.ts +3 -0
  46. package/build/src/Phases/GetCachePhase.js +39 -0
  47. package/build/src/Phases/List/RelationalPhase.d.ts +2 -2
  48. package/build/src/Phases/List/ResultPhase.d.ts +2 -2
  49. package/build/src/Phases/List/ResultPhase.js +9 -1
  50. package/build/src/Phases/List/SerializePhase.d.ts +2 -2
  51. package/build/src/Phases/List/index.d.ts +3 -3
  52. package/build/src/Phases/Paginate/FetchPhase.d.ts +2 -2
  53. package/build/src/Phases/Paginate/PreparePhase.d.ts +2 -2
  54. package/build/src/Phases/Paginate/index.d.ts +2 -2
  55. package/build/src/Phases/Patch/PrepareActionPhase.d.ts +2 -2
  56. package/build/src/Phases/Patch/PrepareActionPhase.js +13 -10
  57. package/build/src/Phases/Patch/index.d.ts +1 -1
  58. package/build/src/Phases/Search/FetchPhase.d.ts +3 -0
  59. package/build/src/Phases/Search/FetchPhase.js +66 -0
  60. package/build/src/Phases/Search/PreparePhase.d.ts +3 -0
  61. package/build/src/Phases/Search/PreparePhase.js +19 -0
  62. package/build/src/Phases/Search/index.d.ts +5 -0
  63. package/build/src/Phases/Search/index.js +11 -0
  64. package/build/src/Phases/Show/FetchPhase.d.ts +2 -2
  65. package/build/src/Phases/Show/FetchPhase.js +11 -1
  66. package/build/src/Phases/Show/PreparePhase.d.ts +2 -2
  67. package/build/src/Phases/Show/PreparePhase.js +5 -13
  68. package/build/src/Phases/Show/index.d.ts +2 -2
  69. package/build/src/Phases/Single/GetPhase.d.ts +2 -2
  70. package/build/src/Phases/Single/PrepareGetPhase.d.ts +2 -2
  71. package/build/src/Phases/Single/RelationalPhase.d.ts +2 -2
  72. package/build/src/Phases/Single/ResultPhase.d.ts +2 -2
  73. package/build/src/Phases/Single/ResultPhase.js +9 -1
  74. package/build/src/Phases/Single/SerializePhase.d.ts +2 -2
  75. package/build/src/Phases/Single/index.d.ts +5 -5
  76. package/build/src/Phases/Store/ActionPhase.d.ts +2 -2
  77. package/build/src/Phases/Store/ActionPhase.js +18 -7
  78. package/build/src/Phases/Store/PreparePhase.d.ts +2 -2
  79. package/build/src/Phases/Store/PreparePhase.js +14 -9
  80. package/build/src/Phases/Store/ResultPhase.d.ts +3 -0
  81. package/build/src/Phases/Store/ResultPhase.js +23 -0
  82. package/build/src/Phases/Store/index.d.ts +3 -2
  83. package/build/src/Phases/Store/index.js +2 -0
  84. package/build/src/Phases/URLSearchParamPhase.d.ts +3 -0
  85. package/build/src/Phases/URLSearchParamPhase.js +37 -0
  86. package/build/src/Phases/Update/ActionPhase.d.ts +2 -2
  87. package/build/src/Phases/Update/ActionPhase.js +14 -3
  88. package/build/src/Phases/Update/PrepareActionPhase.d.ts +2 -2
  89. package/build/src/Phases/Update/PrepareActionPhase.js +13 -10
  90. package/build/src/Phases/Update/index.d.ts +2 -2
  91. package/build/src/Resolvers/ModelResolver.d.ts +1 -0
  92. package/build/src/Resolvers/ModelResolver.js +21 -2
  93. package/build/src/Resolvers/TransactionResolver.js +3 -15
  94. package/build/src/Resolvers/VersionConfigResolver.js +6 -1
  95. package/build/src/Resolvers/VersionResolver.js +1 -0
  96. package/build/src/Server.d.ts +5 -0
  97. package/build/src/Server.js +44 -11
  98. package/build/src/Services/APIService.d.ts +3 -3
  99. package/build/src/Services/APIService.js +3 -16
  100. package/build/src/Services/App.d.ts +94 -8
  101. package/build/src/Services/App.js +94 -29
  102. package/build/src/Services/AxeRequest.d.ts +51 -2
  103. package/build/src/Services/AxeRequest.js +51 -4
  104. package/build/src/Services/AxeResponse.d.ts +28 -1
  105. package/build/src/Services/AxeResponse.js +28 -0
  106. package/build/src/Services/ConverterService.d.ts +5 -3
  107. package/build/src/Services/DocumentationService.d.ts +5 -2
  108. package/build/src/Services/DocumentationService.js +13 -1
  109. package/build/src/Services/ElasticService.d.ts +14 -0
  110. package/build/src/Services/ElasticService.js +74 -0
  111. package/build/src/Services/IoCService.d.ts +29 -2
  112. package/build/src/Services/IoCService.js +33 -6
  113. package/build/src/Services/LimitService.d.ts +18 -0
  114. package/build/src/Services/LimitService.js +18 -0
  115. package/build/src/Services/ModelService.d.ts +9 -5
  116. package/build/src/Services/ModelService.js +11 -0
  117. package/build/src/Services/QueryService.d.ts +3 -3
  118. package/build/src/Services/QueryService.js +6 -0
  119. package/build/src/Services/SchemaValidatorService.d.ts +1 -0
  120. package/build/src/Services/SchemaValidatorService.js +4 -0
  121. package/build/src/Services/URLService.d.ts +6 -14
  122. package/build/src/Services/URLService.js +10 -8
  123. package/build/src/Steps/Event.d.ts +11 -0
  124. package/build/src/Steps/Event.js +17 -0
  125. package/build/src/Steps/Hook.d.ts +11 -0
  126. package/build/src/Steps/Hook.js +17 -0
  127. package/build/src/Steps/Phase.d.ts +11 -0
  128. package/build/src/Steps/Phase.js +18 -0
  129. package/build/src/Types.d.ts +12 -10
  130. package/build/src/constants.d.ts +8 -9
  131. package/build/src/constants.js +215 -152
  132. package/package.json +46 -36
  133. package/build/src/Middlewares/RateLimit/IAdaptor.d.ts +0 -6
  134. package/build/src/Middlewares/RateLimit/IAdaptor.js +0 -2
  135. /package/build/src/Handlers/{DocsHTMLHandler.d.ts → DocsHandler.d.ts} +0 -0
  136. /package/build/src/Handlers/{MetadataHandler.d.ts → SwaggerHandler.d.ts} +0 -0
package/build/index.d.ts CHANGED
@@ -6,4 +6,5 @@ import { IoCService, allow, deny, App, AxeRequest, AxeResponse } from "./src/Ser
6
6
  import { rateLimit } from "./src/Middlewares/RateLimit";
7
7
  export * from "./src/Enums";
8
8
  export * from "./src/Interfaces";
9
+ export * from "./src/Types";
9
10
  export { App, AxeRequest, AxeResponse, Server, Model, ApiError, DEFAULT_HANDLERS, DEFAULT_VERSION_CONFIG, IoCService, allow, deny, rateLimit, };
package/build/index.js CHANGED
@@ -38,3 +38,4 @@ const RateLimit_1 = require("./src/Middlewares/RateLimit");
38
38
  Object.defineProperty(exports, "rateLimit", { enumerable: true, get: function () { return RateLimit_1.rateLimit; } });
39
39
  __exportStar(require("./src/Enums"), exports);
40
40
  __exportStar(require("./src/Interfaces"), exports);
41
+ __exportStar(require("./src/Types"), exports);
@@ -0,0 +1,7 @@
1
+ import { IVersion } from "../Interfaces";
2
+ declare class IndexBuilder {
3
+ private version;
4
+ constructor(version: IVersion);
5
+ build(): Promise<void>;
6
+ }
7
+ export default IndexBuilder;
@@ -0,0 +1,35 @@
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 Services_1 = require("../Services");
13
+ class IndexBuilder {
14
+ constructor(version) {
15
+ this.version = version;
16
+ }
17
+ build() {
18
+ return __awaiter(this, void 0, void 0, function* () {
19
+ // Filtering the models that need Elastic Search index
20
+ const models = this.version.modelList
21
+ .get()
22
+ .filter((model) => model.instance.search);
23
+ // No need to create any index
24
+ if (models.length === 0) {
25
+ return;
26
+ }
27
+ const elastic = yield Services_1.IoCService.use("Elastic");
28
+ // Creating index for each model
29
+ for (const model of models) {
30
+ elastic.createIndex(model.name);
31
+ }
32
+ });
33
+ }
34
+ }
35
+ exports.default = IndexBuilder;
@@ -59,7 +59,8 @@ class ModelTreeBuilder {
59
59
  this.version.modelList.get().forEach((model) => {
60
60
  const recursiveRelations = model.relations.filter((relation) => relation.model === model.name);
61
61
  if (recursiveRelations.length === 2) {
62
- tree.push(Object.assign(Object.assign({}, model), { isRecursive: true, children: [] }));
62
+ model.setAsRecursive();
63
+ tree.push(model);
63
64
  }
64
65
  });
65
66
  }
@@ -36,7 +36,7 @@ class RouterBuilder {
36
36
  }
37
37
  build() {
38
38
  return __awaiter(this, void 0, void 0, function* () {
39
- const app = yield Services_1.IoCService.useByType("App");
39
+ const app = yield Services_1.IoCService.use("App");
40
40
  const generalHooks = yield new Resolvers_1.GeneralHookResolver(this.version).resolve();
41
41
  if (generalHooks.onBeforeInit) {
42
42
  generalHooks.onBeforeInit(app);
@@ -51,11 +51,11 @@ class RouterBuilder {
51
51
  createRoutesByModelTree() {
52
52
  return __awaiter(this, void 0, void 0, function* () {
53
53
  for (const model of this.version.modelTree) {
54
- yield this.createRouteByModel(model);
54
+ yield this.createRouteByModel(model, []);
55
55
  }
56
56
  });
57
57
  }
58
- createRouteByModel(model, urlPrefix = "", parentModel = null, relation = null, allowRecursive = true) {
58
+ createRouteByModel(model, parentPairs = [], urlPrefix = "", parentModel = null, relation = null, allowRecursive = true) {
59
59
  return __awaiter(this, void 0, void 0, function* () {
60
60
  if (model.instance.ignore) {
61
61
  return;
@@ -76,9 +76,9 @@ class RouterBuilder {
76
76
  ...model.instance.getMiddlewares(handlerType),
77
77
  ];
78
78
  // Adding the endpoint
79
- yield this.addRoute(handlerType, url, middlewares, model, parentModel, relation);
79
+ yield this.addRoute(handlerType, url, middlewares, model, parentPairs, parentModel, relation);
80
80
  }
81
- yield this.createChildRoutes(model, resource, urlPrefix);
81
+ yield this.createChildRoutes(model, resource, urlPrefix, parentPairs);
82
82
  yield this.createNestedRoutes(model, allowRecursive, urlPrefix, resource);
83
83
  });
84
84
  }
@@ -91,11 +91,16 @@ class RouterBuilder {
91
91
  const relation = model.relations.find((relation) => relation.model === model.name &&
92
92
  relation.type === Enums_1.Relationships.HAS_MANY);
93
93
  if (relation) {
94
- yield this.createRouteByModel(model, `${urlPrefix}${resource}/:${(0, change_case_1.camelCase)(relation.foreignKey)}/`, model, relation, false);
94
+ const paramName = (0, change_case_1.camelCase)(`${model.name}-${relation.primaryKey}`);
95
+ const parentPair = {
96
+ model,
97
+ paramName,
98
+ };
99
+ yield this.createRouteByModel(model, [parentPair], `${urlPrefix}${resource}/:${paramName}/`, model, relation, false);
95
100
  }
96
101
  });
97
102
  }
98
- createChildRoutes(model, resource, urlPrefix) {
103
+ createChildRoutes(model, resource, urlPrefix, parentPairs) {
99
104
  return __awaiter(this, void 0, void 0, function* () {
100
105
  if (model.children.length === 0) {
101
106
  return;
@@ -106,12 +111,18 @@ class RouterBuilder {
106
111
  const child = model.children.find((item) => item.name === relation.model);
107
112
  // It should be recursive
108
113
  if (child) {
109
- yield this.createRouteByModel(child, `${urlPrefix}${resource}/:${(0, change_case_1.camelCase)(relation.foreignKey)}/`, model, relation);
114
+ const paramName = (0, change_case_1.camelCase)(`${model.name}-${relation.primaryKey}`);
115
+ // Setting the new parent pair depth
116
+ const parentPair = {
117
+ model,
118
+ paramName,
119
+ };
120
+ yield this.createRouteByModel(child, [...parentPairs, parentPair], `${urlPrefix}${resource}/:${paramName}/`, model, relation);
110
121
  }
111
122
  }
112
123
  });
113
124
  }
114
- addRoute(handlerType, url, middlewares, model, parentModel, relation) {
125
+ addRoute(handlerType, url, middlewares, model, parentPairs, parentModel, relation) {
115
126
  return __awaiter(this, void 0, void 0, function* () {
116
127
  const docs = Services_1.DocumentationService.getInstance();
117
128
  const data = {
@@ -122,9 +133,9 @@ class RouterBuilder {
122
133
  relation,
123
134
  };
124
135
  // Adding the route
125
- yield URLService_1.default.add(constants_1.HANDLER_METHOD_MAP[handlerType], url, data, middlewares);
136
+ yield URLService_1.default.add(constants_1.HANDLER_METHOD_MAP[handlerType], url, data, middlewares, parentPairs);
126
137
  // Documentation
127
- docs.push(this.version, handlerType, constants_1.HANDLER_METHOD_MAP[handlerType], url, model);
138
+ docs.push(this.version, handlerType, constants_1.HANDLER_METHOD_MAP[handlerType], url, model, parentModel);
128
139
  });
129
140
  }
130
141
  getResourcePath(model, relation) {
@@ -0,0 +1,2 @@
1
+ declare const _default: () => Promise<any>;
2
+ export default _default;