axe-api 1.0.0-rc8 → 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.
- package/build/index.d.ts +1 -0
- package/build/index.js +1 -0
- package/build/src/Builders/IndexBuilder.d.ts +7 -0
- package/build/src/Builders/IndexBuilder.js +35 -0
- package/build/src/Builders/ModelTreeBuilder.js +2 -1
- package/build/src/Builders/RouterBuilder.js +22 -11
- package/build/src/Builders/SwaggerBuilder.d.ts +2 -0
- package/build/src/Builders/SwaggerBuilder.js +609 -0
- package/build/src/Enums.d.ts +6 -1
- package/build/src/Enums.js +7 -1
- package/build/src/Handlers/DocsHandler.js +41 -0
- package/build/src/Handlers/ErrorHandler.d.ts +6 -0
- package/build/src/Handlers/ErrorHandler.js +12 -0
- package/build/src/Handlers/Helpers.d.ts +16 -4
- package/build/src/Handlers/Helpers.js +202 -5
- package/build/src/Handlers/RequestHandler.d.ts +4 -1
- package/build/src/Handlers/RequestHandler.js +36 -40
- package/build/src/Handlers/{DocsHTMLHandler.js → SwaggerHandler.js} +8 -7
- package/build/src/Interfaces.d.ts +103 -35
- package/build/src/Middlewares/RateLimit/AdaptorFactory.d.ts +3 -3
- package/build/src/Middlewares/RateLimit/MemoryAdaptor.d.ts +2 -2
- package/build/src/Middlewares/RateLimit/RedisAdaptor.d.ts +12 -4
- package/build/src/Middlewares/RateLimit/RedisAdaptor.js +24 -0
- package/build/src/Middlewares/RateLimit/index.d.ts +22 -3
- package/build/src/Middlewares/RateLimit/index.js +23 -3
- package/build/src/Model.d.ts +256 -10
- package/build/src/Model.js +322 -30
- package/build/src/Phases/All/FetchPhase.d.ts +2 -2
- package/build/src/Phases/All/PreparePhase.d.ts +2 -2
- package/build/src/Phases/All/index.d.ts +1 -1
- package/build/src/Phases/CacheTagCleanPhase.d.ts +3 -0
- package/build/src/{Handlers/MetadataHandler.js → Phases/CacheTagCleanPhase.js} +6 -10
- package/build/src/Phases/Delete/ActionPhase.d.ts +2 -2
- package/build/src/Phases/Delete/ActionPhase.js +21 -2
- package/build/src/Phases/Delete/PreparePhase.d.ts +2 -2
- package/build/src/Phases/Delete/QueryPhase.d.ts +2 -2
- package/build/src/Phases/Delete/ResponsePhase.d.ts +2 -2
- package/build/src/Phases/Delete/ResponsePhase.js +2 -1
- package/build/src/Phases/Delete/index.d.ts +4 -4
- package/build/src/Phases/ForceDelete/ActionPhase.d.ts +2 -2
- package/build/src/Phases/ForceDelete/ActionPhase.js +7 -0
- package/build/src/Phases/ForceDelete/PreparePhase.d.ts +2 -2
- package/build/src/Phases/ForceDelete/QueryPhase.d.ts +2 -2
- package/build/src/Phases/ForceDelete/index.d.ts +3 -3
- package/build/src/Phases/GetCachePhase.d.ts +3 -0
- package/build/src/Phases/GetCachePhase.js +39 -0
- package/build/src/Phases/List/RelationalPhase.d.ts +2 -2
- package/build/src/Phases/List/ResultPhase.d.ts +2 -2
- package/build/src/Phases/List/ResultPhase.js +9 -1
- package/build/src/Phases/List/SerializePhase.d.ts +2 -2
- package/build/src/Phases/List/index.d.ts +3 -3
- package/build/src/Phases/Paginate/FetchPhase.d.ts +2 -2
- package/build/src/Phases/Paginate/FetchPhase.js +11 -0
- package/build/src/Phases/Paginate/PreparePhase.d.ts +2 -2
- package/build/src/Phases/Paginate/PreparePhase.js +0 -8
- package/build/src/Phases/Paginate/index.d.ts +2 -2
- package/build/src/Phases/Patch/PrepareActionPhase.d.ts +2 -2
- package/build/src/Phases/Patch/PrepareActionPhase.js +13 -10
- package/build/src/Phases/Patch/index.d.ts +1 -1
- package/build/src/Phases/Search/FetchPhase.d.ts +3 -0
- package/build/src/Phases/Search/FetchPhase.js +66 -0
- package/build/src/Phases/Search/PreparePhase.d.ts +3 -0
- package/build/src/Phases/Search/PreparePhase.js +19 -0
- package/build/src/Phases/Search/index.d.ts +5 -0
- package/build/src/Phases/Search/index.js +11 -0
- package/build/src/Phases/Show/FetchPhase.d.ts +2 -2
- package/build/src/Phases/Show/FetchPhase.js +11 -1
- package/build/src/Phases/Show/PreparePhase.d.ts +2 -2
- package/build/src/Phases/Show/PreparePhase.js +5 -13
- package/build/src/Phases/Show/index.d.ts +2 -2
- package/build/src/Phases/Single/GetPhase.d.ts +2 -2
- package/build/src/Phases/Single/PrepareGetPhase.d.ts +2 -2
- package/build/src/Phases/Single/RelationalPhase.d.ts +2 -2
- package/build/src/Phases/Single/ResultPhase.d.ts +2 -2
- package/build/src/Phases/Single/ResultPhase.js +9 -1
- package/build/src/Phases/Single/SerializePhase.d.ts +2 -2
- package/build/src/Phases/Single/index.d.ts +5 -5
- package/build/src/Phases/Store/ActionPhase.d.ts +2 -2
- package/build/src/Phases/Store/ActionPhase.js +18 -7
- package/build/src/Phases/Store/PreparePhase.d.ts +2 -2
- package/build/src/Phases/Store/PreparePhase.js +14 -9
- package/build/src/Phases/Store/ResultPhase.d.ts +3 -0
- package/build/src/Phases/Store/ResultPhase.js +23 -0
- package/build/src/Phases/Store/index.d.ts +3 -2
- package/build/src/Phases/Store/index.js +2 -0
- package/build/src/Phases/URLSearchParamPhase.d.ts +3 -0
- package/build/src/Phases/URLSearchParamPhase.js +37 -0
- package/build/src/Phases/Update/ActionPhase.d.ts +2 -2
- package/build/src/Phases/Update/ActionPhase.js +14 -3
- package/build/src/Phases/Update/PrepareActionPhase.d.ts +2 -2
- package/build/src/Phases/Update/PrepareActionPhase.js +13 -10
- package/build/src/Phases/Update/index.d.ts +2 -2
- package/build/src/Resolvers/ModelResolver.d.ts +1 -0
- package/build/src/Resolvers/ModelResolver.js +21 -2
- package/build/src/Resolvers/TransactionResolver.js +3 -15
- package/build/src/Resolvers/VersionConfigResolver.js +6 -1
- package/build/src/Resolvers/VersionResolver.js +1 -0
- package/build/src/Server.d.ts +5 -0
- package/build/src/Server.js +44 -11
- package/build/src/Services/APIService.d.ts +3 -3
- package/build/src/Services/APIService.js +3 -16
- package/build/src/Services/App.d.ts +94 -8
- package/build/src/Services/App.js +94 -29
- package/build/src/Services/AxeRequest.d.ts +51 -2
- package/build/src/Services/AxeRequest.js +51 -4
- package/build/src/Services/AxeResponse.d.ts +28 -1
- package/build/src/Services/AxeResponse.js +28 -0
- package/build/src/Services/ConverterService.d.ts +5 -3
- package/build/src/Services/DocumentationService.d.ts +5 -2
- package/build/src/Services/DocumentationService.js +13 -1
- package/build/src/Services/ElasticService.d.ts +14 -0
- package/build/src/Services/ElasticService.js +74 -0
- package/build/src/Services/IoCService.d.ts +29 -2
- package/build/src/Services/IoCService.js +33 -6
- package/build/src/Services/LimitService.d.ts +18 -0
- package/build/src/Services/LimitService.js +18 -0
- package/build/src/Services/ModelService.d.ts +9 -5
- package/build/src/Services/ModelService.js +11 -0
- package/build/src/Services/QueryService.d.ts +3 -3
- package/build/src/Services/QueryService.js +6 -0
- package/build/src/Services/SchemaValidatorService.d.ts +1 -0
- package/build/src/Services/SchemaValidatorService.js +4 -0
- package/build/src/Services/URLService.d.ts +6 -14
- package/build/src/Services/URLService.js +10 -8
- package/build/src/Steps/Event.d.ts +11 -0
- package/build/src/Steps/Event.js +17 -0
- package/build/src/Steps/Hook.d.ts +11 -0
- package/build/src/Steps/Hook.js +17 -0
- package/build/src/Steps/Phase.d.ts +11 -0
- package/build/src/Steps/Phase.js +18 -0
- package/build/src/Types.d.ts +12 -10
- package/build/src/constants.d.ts +8 -9
- package/build/src/constants.js +215 -152
- package/package.json +46 -36
- package/build/src/Middlewares/RateLimit/IAdaptor.d.ts +0 -6
- package/build/src/Middlewares/RateLimit/IAdaptor.js +0 -2
- /package/build/src/Handlers/{DocsHTMLHandler.d.ts → DocsHandler.d.ts} +0 -0
- /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,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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
-
|
|
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) {
|