@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.
Files changed (37) hide show
  1. package/lib/app.d.ts +12 -2
  2. package/lib/app.js +22 -6
  3. package/lib/app.js.map +1 -1
  4. package/lib/base-app.d.ts +23 -0
  5. package/lib/base-app.js +23 -0
  6. package/lib/base-app.js.map +1 -0
  7. package/lib/baseApp.js +1 -1
  8. package/lib/baseApp.js.map +1 -1
  9. package/lib/index.d.ts +6 -2
  10. package/lib/index.js +6 -2
  11. package/lib/index.js.map +1 -1
  12. package/lib/services/docs/docs.d.ts +1 -1
  13. package/lib/services/docs/docs.js +2 -2
  14. package/lib/services/docs/docs.js.map +1 -1
  15. package/lib/services/docs/swagger-ui-generator.d.ts +19 -0
  16. package/lib/services/docs/swagger-ui-generator.js +245 -0
  17. package/lib/services/docs/swagger-ui-generator.js.map +1 -0
  18. package/lib/services/docs/utils.d.ts +15 -0
  19. package/lib/services/docs/utils.js +41 -0
  20. package/lib/services/docs/utils.js.map +1 -0
  21. package/lib/services/plugin.d.ts +27 -1
  22. package/lib/services/plugin.js +55 -2
  23. package/lib/services/plugin.js.map +1 -1
  24. package/lib/services/plugins/auth-designs/api-key-auth-design.d.ts +39 -0
  25. package/lib/services/plugins/auth-designs/api-key-auth-design.js +116 -0
  26. package/lib/services/plugins/auth-designs/api-key-auth-design.js.map +1 -0
  27. package/lib/services/plugins/auth-designs/basic-auth-design.d.ts +29 -0
  28. package/lib/services/plugins/auth-designs/basic-auth-design.js +88 -0
  29. package/lib/services/plugins/auth-designs/basic-auth-design.js.map +1 -0
  30. package/lib/services/plugins/auth-designs/bearer-auth-design.d.ts +29 -0
  31. package/lib/services/plugins/auth-designs/bearer-auth-design.js +87 -0
  32. package/lib/services/plugins/auth-designs/bearer-auth-design.js.map +1 -0
  33. package/lib/services/plugins/plugin.d.ts +88 -0
  34. package/lib/services/plugins/plugin.js +87 -0
  35. package/lib/services/plugins/plugin.js.map +1 -0
  36. package/package.json +3 -3
  37. 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.12",
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.2",
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.12"
29
+ "@kaapi/server": "^0.0.13"
30
30
  },
31
31
  "scripts": {
32
32
  "lint": "eslint .",
@@ -1,3 +1,5 @@
1
+ import '@hapi/hapi'
2
+
1
3
  declare module '@hapi/hapi' {
2
4
  interface PluginSpecificConfiguration {
3
5
  kaapi?: {