axe-api 1.0.0-rc3 → 1.0.0-rc31
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 +3 -1
- package/build/index.js +4 -1
- package/build/src/Builders/IndexBuilder.d.ts +7 -0
- package/build/src/Builders/IndexBuilder.js +35 -0
- package/build/src/Builders/ModelTreeBuilder.js +3 -3
- package/build/src/Builders/RouterBuilder.d.ts +1 -1
- package/build/src/Builders/RouterBuilder.js +24 -14
- package/build/src/Builders/SwaggerBuilder.d.ts +2 -0
- package/build/src/Builders/SwaggerBuilder.js +609 -0
- package/build/src/Enums.d.ts +6 -8
- package/build/src/Enums.js +20 -22
- package/build/src/Handlers/DocsHandler.js +41 -0
- package/build/src/Handlers/ErrorHandler.d.ts +4 -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 +2 -1
- package/build/src/Handlers/RequestHandler.js +23 -19
- package/build/src/Handlers/{DocsHTMLHandler.js → SwaggerHandler.js} +8 -7
- package/build/src/Helpers.d.ts +0 -1
- package/build/src/Helpers.js +1 -53
- package/build/src/Interfaces.d.ts +126 -22
- package/build/src/Middlewares/RateLimit/AdaptorFactory.d.ts +6 -0
- package/build/src/Middlewares/RateLimit/AdaptorFactory.js +17 -0
- package/build/src/Middlewares/RateLimit/MemoryAdaptor.d.ts +10 -0
- package/build/src/Middlewares/RateLimit/MemoryAdaptor.js +41 -0
- package/build/src/Middlewares/RateLimit/RedisAdaptor.d.ts +19 -0
- package/build/src/Middlewares/RateLimit/RedisAdaptor.js +59 -0
- package/build/src/Middlewares/RateLimit/index.d.ts +23 -0
- package/build/src/Middlewares/RateLimit/index.js +138 -0
- 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/PreparePhase.js +1 -3
- 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 +30 -6
- package/build/src/Resolvers/TransactionResolver.js +3 -15
- package/build/src/Resolvers/VersionConfigResolver.js +6 -1
- package/build/src/Resolvers/VersionResolver.js +2 -2
- package/build/src/Server.d.ts +5 -0
- package/build/src/Server.js +53 -19
- package/build/src/Services/APIService.d.ts +3 -3
- package/build/src/Services/APIService.js +4 -8
- package/build/src/Services/App.d.ts +94 -8
- package/build/src/Services/App.js +118 -10
- package/build/src/Services/AxeRequest.d.ts +52 -1
- package/build/src/Services/AxeRequest.js +77 -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 +9 -0
- package/build/src/Services/ConverterService.js +49 -0
- 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/LogService.d.ts +8 -12
- package/build/src/Services/LogService.js +16 -33
- 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 +5 -2
- package/build/src/Services/URLService.d.ts +6 -14
- package/build/src/Services/URLService.js +39 -9
- 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 +19 -6
- package/build/src/constants.d.ts +8 -19
- package/build/src/constants.js +215 -152
- package/package.json +41 -27
- /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
|
@@ -3,6 +3,8 @@ import Model from "./src/Model";
|
|
|
3
3
|
import ApiError from "./src/Exceptions/ApiError";
|
|
4
4
|
import { DEFAULT_HANDLERS, DEFAULT_VERSION_CONFIG } from "./src/constants";
|
|
5
5
|
import { IoCService, allow, deny, App, AxeRequest, AxeResponse } from "./src/Services";
|
|
6
|
+
import { rateLimit } from "./src/Middlewares/RateLimit";
|
|
6
7
|
export * from "./src/Enums";
|
|
7
8
|
export * from "./src/Interfaces";
|
|
8
|
-
export
|
|
9
|
+
export * from "./src/Types";
|
|
10
|
+
export { App, AxeRequest, AxeResponse, Server, Model, ApiError, DEFAULT_HANDLERS, DEFAULT_VERSION_CONFIG, IoCService, allow, deny, rateLimit, };
|
package/build/index.js
CHANGED
|
@@ -17,7 +17,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.deny = exports.allow = exports.IoCService = exports.DEFAULT_VERSION_CONFIG = exports.DEFAULT_HANDLERS = exports.ApiError = exports.Model = exports.Server = exports.AxeResponse = exports.AxeRequest = exports.App = void 0;
|
|
20
|
+
exports.rateLimit = exports.deny = exports.allow = exports.IoCService = exports.DEFAULT_VERSION_CONFIG = exports.DEFAULT_HANDLERS = exports.ApiError = exports.Model = exports.Server = exports.AxeResponse = exports.AxeRequest = exports.App = void 0;
|
|
21
21
|
const Server_1 = __importDefault(require("./src/Server"));
|
|
22
22
|
exports.Server = Server_1.default;
|
|
23
23
|
const Model_1 = __importDefault(require("./src/Model"));
|
|
@@ -34,5 +34,8 @@ Object.defineProperty(exports, "deny", { enumerable: true, get: function () { re
|
|
|
34
34
|
Object.defineProperty(exports, "App", { enumerable: true, get: function () { return Services_1.App; } });
|
|
35
35
|
Object.defineProperty(exports, "AxeRequest", { enumerable: true, get: function () { return Services_1.AxeRequest; } });
|
|
36
36
|
Object.defineProperty(exports, "AxeResponse", { enumerable: true, get: function () { return Services_1.AxeResponse; } });
|
|
37
|
+
const RateLimit_1 = require("./src/Middlewares/RateLimit");
|
|
38
|
+
Object.defineProperty(exports, "rateLimit", { enumerable: true, get: function () { return RateLimit_1.rateLimit; } });
|
|
37
39
|
__exportStar(require("./src/Enums"), exports);
|
|
38
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;
|
|
@@ -17,12 +17,11 @@ class ModelTreeBuilder {
|
|
|
17
17
|
}
|
|
18
18
|
build() {
|
|
19
19
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20
|
-
const logger = Services_1.LogService.getInstance();
|
|
21
20
|
const tree = this.getRootLevelOfTree();
|
|
22
21
|
this.createRecursiveTree(tree);
|
|
23
22
|
this.addNestedRoutes(tree);
|
|
24
23
|
this.version.modelTree = tree;
|
|
25
|
-
|
|
24
|
+
Services_1.LogService.debug(`[${this.version.name}] Model tree has been created.`);
|
|
26
25
|
});
|
|
27
26
|
}
|
|
28
27
|
getRootLevelOfTree() {
|
|
@@ -60,7 +59,8 @@ class ModelTreeBuilder {
|
|
|
60
59
|
this.version.modelList.get().forEach((model) => {
|
|
61
60
|
const recursiveRelations = model.relations.filter((relation) => relation.model === model.name);
|
|
62
61
|
if (recursiveRelations.length === 2) {
|
|
63
|
-
|
|
62
|
+
model.setAsRecursive();
|
|
63
|
+
tree.push(model);
|
|
64
64
|
}
|
|
65
65
|
});
|
|
66
66
|
}
|
|
@@ -36,14 +36,13 @@ class RouterBuilder {
|
|
|
36
36
|
}
|
|
37
37
|
build() {
|
|
38
38
|
return __awaiter(this, void 0, void 0, function* () {
|
|
39
|
-
const app = yield Services_1.IoCService.
|
|
40
|
-
const logger = Services_1.LogService.getInstance();
|
|
39
|
+
const app = yield Services_1.IoCService.use("App");
|
|
41
40
|
const generalHooks = yield new Resolvers_1.GeneralHookResolver(this.version).resolve();
|
|
42
41
|
if (generalHooks.onBeforeInit) {
|
|
43
42
|
generalHooks.onBeforeInit(app);
|
|
44
43
|
}
|
|
45
44
|
yield this.createRoutesByModelTree();
|
|
46
|
-
|
|
45
|
+
Services_1.LogService.debug(`[${this.version.name}] All endpoints have been created.`);
|
|
47
46
|
if (generalHooks.onAfterInit) {
|
|
48
47
|
generalHooks.onAfterInit(app);
|
|
49
48
|
}
|
|
@@ -52,11 +51,11 @@ class RouterBuilder {
|
|
|
52
51
|
createRoutesByModelTree() {
|
|
53
52
|
return __awaiter(this, void 0, void 0, function* () {
|
|
54
53
|
for (const model of this.version.modelTree) {
|
|
55
|
-
yield this.createRouteByModel(model);
|
|
54
|
+
yield this.createRouteByModel(model, []);
|
|
56
55
|
}
|
|
57
56
|
});
|
|
58
57
|
}
|
|
59
|
-
createRouteByModel(model, urlPrefix = "", parentModel = null, relation = null, allowRecursive = true) {
|
|
58
|
+
createRouteByModel(model, parentPairs = [], urlPrefix = "", parentModel = null, relation = null, allowRecursive = true) {
|
|
60
59
|
return __awaiter(this, void 0, void 0, function* () {
|
|
61
60
|
if (model.instance.ignore) {
|
|
62
61
|
return;
|
|
@@ -76,10 +75,10 @@ class RouterBuilder {
|
|
|
76
75
|
const middlewares = [
|
|
77
76
|
...model.instance.getMiddlewares(handlerType),
|
|
78
77
|
];
|
|
79
|
-
// Adding the
|
|
80
|
-
yield this.
|
|
78
|
+
// Adding the endpoint
|
|
79
|
+
yield this.addRoute(handlerType, url, middlewares, model, parentPairs, parentModel, relation);
|
|
81
80
|
}
|
|
82
|
-
yield this.createChildRoutes(model, resource, urlPrefix);
|
|
81
|
+
yield this.createChildRoutes(model, resource, urlPrefix, parentPairs);
|
|
83
82
|
yield this.createNestedRoutes(model, allowRecursive, urlPrefix, resource);
|
|
84
83
|
});
|
|
85
84
|
}
|
|
@@ -92,11 +91,16 @@ class RouterBuilder {
|
|
|
92
91
|
const relation = model.relations.find((relation) => relation.model === model.name &&
|
|
93
92
|
relation.type === Enums_1.Relationships.HAS_MANY);
|
|
94
93
|
if (relation) {
|
|
95
|
-
|
|
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);
|
|
96
100
|
}
|
|
97
101
|
});
|
|
98
102
|
}
|
|
99
|
-
createChildRoutes(model, resource, urlPrefix) {
|
|
103
|
+
createChildRoutes(model, resource, urlPrefix, parentPairs) {
|
|
100
104
|
return __awaiter(this, void 0, void 0, function* () {
|
|
101
105
|
if (model.children.length === 0) {
|
|
102
106
|
return;
|
|
@@ -107,12 +111,18 @@ class RouterBuilder {
|
|
|
107
111
|
const child = model.children.find((item) => item.name === relation.model);
|
|
108
112
|
// It should be recursive
|
|
109
113
|
if (child) {
|
|
110
|
-
|
|
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);
|
|
111
121
|
}
|
|
112
122
|
}
|
|
113
123
|
});
|
|
114
124
|
}
|
|
115
|
-
|
|
125
|
+
addRoute(handlerType, url, middlewares, model, parentPairs, parentModel, relation) {
|
|
116
126
|
return __awaiter(this, void 0, void 0, function* () {
|
|
117
127
|
const docs = Services_1.DocumentationService.getInstance();
|
|
118
128
|
const data = {
|
|
@@ -123,9 +133,9 @@ class RouterBuilder {
|
|
|
123
133
|
relation,
|
|
124
134
|
};
|
|
125
135
|
// Adding the route
|
|
126
|
-
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);
|
|
127
137
|
// Documentation
|
|
128
|
-
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);
|
|
129
139
|
});
|
|
130
140
|
}
|
|
131
141
|
getResourcePath(model, relation) {
|