@kaapi/kaapi 0.0.12 → 0.0.13
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/lib/app.d.ts +12 -2
- package/lib/app.js +22 -6
- package/lib/app.js.map +1 -1
- package/lib/base-app.d.ts +23 -0
- package/lib/base-app.js +23 -0
- package/lib/base-app.js.map +1 -0
- package/lib/baseApp.js +1 -1
- package/lib/baseApp.js.map +1 -1
- package/lib/index.d.ts +6 -2
- package/lib/index.js +6 -2
- package/lib/index.js.map +1 -1
- package/lib/services/docs/docs.d.ts +1 -1
- package/lib/services/docs/docs.js +2 -2
- package/lib/services/docs/docs.js.map +1 -1
- package/lib/services/docs/swagger-ui-generator.d.ts +19 -0
- package/lib/services/docs/swagger-ui-generator.js +245 -0
- package/lib/services/docs/swagger-ui-generator.js.map +1 -0
- package/lib/services/docs/utils.d.ts +15 -0
- package/lib/services/docs/utils.js +41 -0
- package/lib/services/docs/utils.js.map +1 -0
- package/lib/services/plugin.d.ts +27 -1
- package/lib/services/plugin.js +55 -2
- package/lib/services/plugin.js.map +1 -1
- package/lib/services/plugins/auth-designs/api-key-auth-design.d.ts +39 -0
- package/lib/services/plugins/auth-designs/api-key-auth-design.js +116 -0
- package/lib/services/plugins/auth-designs/api-key-auth-design.js.map +1 -0
- package/lib/services/plugins/auth-designs/basic-auth-design.d.ts +29 -0
- package/lib/services/plugins/auth-designs/basic-auth-design.js +88 -0
- package/lib/services/plugins/auth-designs/basic-auth-design.js.map +1 -0
- package/lib/services/plugins/auth-designs/bearer-auth-design.d.ts +29 -0
- package/lib/services/plugins/auth-designs/bearer-auth-design.js +87 -0
- package/lib/services/plugins/auth-designs/bearer-auth-design.js.map +1 -0
- package/lib/services/plugins/plugin.d.ts +88 -0
- package/lib/services/plugins/plugin.js +87 -0
- package/lib/services/plugins/plugin.js.map +1 -0
- package/package.json +3 -3
- package/types/overrides.d.ts +2 -0
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.GroupAuthDesign = exports.AuthDesign = void 0;
|
|
4
|
+
const tslib_1 = require("tslib");
|
|
5
|
+
const api_doc_generator_1 = require("@novice1/api-doc-generator");
|
|
6
|
+
const utils_1 = require("../docs/utils");
|
|
7
|
+
/**
|
|
8
|
+
* AuthDesign plugin
|
|
9
|
+
*/
|
|
10
|
+
class AuthDesign {
|
|
11
|
+
integrate(t) {
|
|
12
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
13
|
+
var _a, _b, _c;
|
|
14
|
+
try {
|
|
15
|
+
this.integrateStrategy(t);
|
|
16
|
+
t.log.debug(`Auth Design "${this.constructor.name}" set strategy (integrateStrategy).`);
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
t.log.error(`Auth Design "${this.constructor.name}" failed to integrate auth strategy: ${err}`);
|
|
20
|
+
throw err;
|
|
21
|
+
}
|
|
22
|
+
const securityScheme = this.docs();
|
|
23
|
+
if (securityScheme) {
|
|
24
|
+
if (securityScheme instanceof api_doc_generator_1.OAuth2Util && !securityScheme.getHost() && ((_a = t.postman) === null || _a === void 0 ? void 0 : _a.getHost().length)) {
|
|
25
|
+
securityScheme.setHost(t.postman.getHost()[0]);
|
|
26
|
+
}
|
|
27
|
+
(_b = t.openapi) === null || _b === void 0 ? void 0 : _b.addSecurityScheme(securityScheme).setDefaultSecurity(securityScheme);
|
|
28
|
+
(_c = t.postman) === null || _c === void 0 ? void 0 : _c.setDefaultSecurity(securityScheme);
|
|
29
|
+
t.log.debug(`Auth Design "${this.constructor.name}" set security scheme (docs).`);
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
t.log.warn(`Auth Design "${this.constructor.name}" did not provide a security scheme (docs()).`);
|
|
33
|
+
}
|
|
34
|
+
yield this.integrateHook(t);
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Whatever needs to be done to complete the integration.
|
|
39
|
+
* (e.g.: register a route, ...)
|
|
40
|
+
*/
|
|
41
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
42
|
+
integrateHook(_t) {
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
exports.AuthDesign = AuthDesign;
|
|
46
|
+
/**
|
|
47
|
+
* An auth design that groups multiple auth designs.
|
|
48
|
+
*
|
|
49
|
+
* Usefull to regroup the auth schemes in the documentation and register the strategies in parallel.
|
|
50
|
+
* ```ts
|
|
51
|
+
* const authdesigns = new GroupAuthDesign([
|
|
52
|
+
* authdesign1,
|
|
53
|
+
* authdesign2
|
|
54
|
+
* ])
|
|
55
|
+
* app.extend(authdesigns)
|
|
56
|
+
* ```
|
|
57
|
+
*/
|
|
58
|
+
class GroupAuthDesign extends AuthDesign {
|
|
59
|
+
constructor(designs) {
|
|
60
|
+
super();
|
|
61
|
+
this.designs = designs;
|
|
62
|
+
}
|
|
63
|
+
docs() {
|
|
64
|
+
return new utils_1.KaapiGroupAuthUtil(this.designs
|
|
65
|
+
.map(d => d.docs())
|
|
66
|
+
.filter(d => typeof d != 'undefined'));
|
|
67
|
+
}
|
|
68
|
+
integrateStrategy(t) {
|
|
69
|
+
for (const d of this.designs) {
|
|
70
|
+
d.integrateStrategy(t);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
integrateHook(t) {
|
|
74
|
+
return tslib_1.__awaiter(this, void 0, void 0, function* () {
|
|
75
|
+
yield Promise.all(this.designs
|
|
76
|
+
.map(d => d.integrateHook(t)));
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
getStrategyName() {
|
|
80
|
+
return this.getStrategies()[0] || '';
|
|
81
|
+
}
|
|
82
|
+
getStrategies() {
|
|
83
|
+
return this.designs.map(d => d.getStrategyName()).filter(n => n);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
exports.GroupAuthDesign = GroupAuthDesign;
|
|
87
|
+
//# sourceMappingURL=plugin.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../../src/services/plugins/plugin.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kaapi/kaapi",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.13",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "TypeScript-based framework",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"@hapi/boom": "^10.0.1",
|
|
20
|
-
"@hapi/hapi": "^21.4.
|
|
20
|
+
"@hapi/hapi": "^21.4.3",
|
|
21
21
|
"@hapi/hoek": "^11.0.7",
|
|
22
22
|
"@hapi/inert": "^7.1.0",
|
|
23
23
|
"@novice1/api-doc-generator": "^1.0.2",
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
"swagger-ui-dist": "^5.27.1",
|
|
27
27
|
"tslib": "^2.8.1",
|
|
28
28
|
"winston": "^3.17.0",
|
|
29
|
-
"@kaapi/server": "^0.0.
|
|
29
|
+
"@kaapi/server": "^0.0.13"
|
|
30
30
|
},
|
|
31
31
|
"scripts": {
|
|
32
32
|
"lint": "eslint .",
|