@kaapi/kaapi 0.0.11 → 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 +72 -0
  22. package/lib/services/plugin.js +84 -0
  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 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/services/docs/utils.ts"],"names":[],"mappings":";;;AACA,kEAAsE;AAGtE;;GAEG;AACH,MAAa,kBAAmB,SAAQ,8BAAU;IAG9C,YAAY,SAAyB;QACjC,KAAK,CAAC,EAAE,CAAC,CAAC;QACV,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,IAAI,iCAAa,CAAC,SAAS,CAAC,CAAA;IACjD,CAAC;IAED,OAAO,CAAC,IAAY;QAChB,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,OAAO,YAAY,8BAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACzB,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,UAAU;QACN,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;YAC7B,IAAI,OAAO,YAAY,8BAAU,EAAE,CAAC;gBAChC,OAAO,CAAC,UAAU,EAAE,CAAA;YACxB,CAAC;QACL,CAAC,CAAC,CAAA;QACF,OAAO,KAAK,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;IAED,iBAAiB;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,iBAAiB,EAAE,CAAC;IAC9C,CAAC;IAED,SAAS;QACL,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC;IACtC,CAAC;CACJ;AAtCD,gDAsCC"}
@@ -2,6 +2,22 @@ import { HandlerDecorations, InternalRouteOptionType, Lifecycle, MergeType, ReqR
2
2
  import { ILogger } from './log';
3
3
  import { KaapiServerRoute } from '@kaapi/server';
4
4
  import { KaapiOpenAPI, KaapiPostman } from './docs/generators';
5
+ import { BaseAuthUtil } from '@novice1/api-doc-generator/lib/utils/auth/baseAuthUtils';
6
+ import { KaapiGroupAuthUtil } from './docs/utils';
7
+ /**
8
+ *
9
+ * Set of tools
10
+ *
11
+ * ```ts
12
+ * log
13
+ * openapi
14
+ * postman
15
+ * server
16
+ * route(...)
17
+ * scheme(...)
18
+ * strategy(...)
19
+ * ```
20
+ */
5
21
  export interface KaapiTools {
6
22
  readonly log: ILogger;
7
23
  route<Refs extends ReqRef = ReqRefDefaults>(serverRoute: KaapiServerRoute<Refs>, handler?: HandlerDecorations | Lifecycle.Method<Refs, Lifecycle.ReturnValue<Refs>>): this;
@@ -11,6 +27,62 @@ export interface KaapiTools {
11
27
  strategy(name: MergeType<InternalRouteOptionType, RouteOptionTypes>['Strategy'], scheme: string, options?: object): void;
12
28
  server: Server;
13
29
  }
30
+ /**
31
+ * Interface to extend kaapi app functionalities.
32
+ * ```ts
33
+ * const app = new Kaapi({
34
+ * extend: [plugin]
35
+ * })
36
+ * // or
37
+ * app.extend(plugin)
38
+ * // or
39
+ * app.extend([plugin1, plugin2])
40
+ * ```
41
+ */
14
42
  export interface KaapiPlugin {
15
43
  integrate(t: KaapiTools): void | Promise<void>;
16
44
  }
45
+ /**
46
+ * AuthDesign plugin
47
+ */
48
+ export declare abstract class AuthDesign implements KaapiPlugin {
49
+ integrate(t: KaapiTools): Promise<void>;
50
+ /**
51
+ * Whatever needs to be done to complete the integration.
52
+ * (e.g.: register a route, ...)
53
+ */
54
+ integrateHook(_t: KaapiTools): void | Promise<void>;
55
+ /**
56
+ * Returns the schema used for the documentation
57
+ */
58
+ abstract docs(): BaseAuthUtil | undefined;
59
+ /**
60
+ * Where authentication schemes and strategies should be registered.
61
+ */
62
+ abstract integrateStrategy(t: KaapiTools): void;
63
+ /**
64
+ * The name of the strategy, for info purpose
65
+ */
66
+ abstract getStrategyName(): string;
67
+ }
68
+ /**
69
+ * An auth design that groups multiple auth designs.
70
+ *
71
+ * Usefull to regroup the auth schemes in the documentation and register the strategies in parallel.
72
+ * ```ts
73
+ * const authdesigns = new GroupAuthDesign([
74
+ * authdesign1,
75
+ * authdesign2
76
+ * ])
77
+ * app.extend(authdesigns)
78
+ * ```
79
+ */
80
+ export declare class GroupAuthDesign extends AuthDesign {
81
+ protected designs: AuthDesign[];
82
+ constructor(designs: AuthDesign[]);
83
+ docs(): KaapiGroupAuthUtil;
84
+ integrateStrategy(t: KaapiTools): void;
85
+ integrateHook(t: KaapiTools): Promise<void>;
86
+ getStrategyName(): string;
87
+ getStrategies(): string[];
88
+ }
@@ -1,3 +1,87 @@
1
1
  "use strict";
2
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
+ (_a = t.openapi) === null || _a === void 0 ? void 0 : _a.addSecurityScheme(securityScheme).setDefaultSecurity(securityScheme);
25
+ if (securityScheme instanceof api_doc_generator_1.OAuth2Util && !securityScheme.getHost() && ((_b = t.postman) === null || _b === void 0 ? void 0 : _b.getHost().length)) {
26
+ securityScheme.setHost(t.postman.getHost()[0]);
27
+ }
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;
3
87
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":""}
1
+ {"version":3,"file":"plugin.js","sourceRoot":"","sources":["../../src/services/plugin.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ import Boom from '@hapi/boom';
2
+ import { Auth, AuthCredentials, ReqRef, ReqRefDefaults, Request, ResponseToolkit } from '@hapi/hapi';
3
+ import { ApiKeyLocation, ApiKeyUtil } from '@novice1/api-doc-generator';
4
+ import { AuthDesign, KaapiTools } from '../plugin';
5
+ export type APIKeyAuthOptions<Refs extends ReqRef = ReqRefDefaults> = {
6
+ headerTokenType?: string;
7
+ validate?(request: Request<Refs>, token: any, h: ResponseToolkit<Refs>): Promise<{
8
+ isValid?: boolean;
9
+ artifacts?: unknown;
10
+ credentials?: AuthCredentials;
11
+ message?: string;
12
+ } | Auth | Boom.Boom>;
13
+ };
14
+ export interface APIKeyAuthArg {
15
+ /**
16
+ * Default: "Authorization"
17
+ */
18
+ key?: string;
19
+ options?: APIKeyAuthOptions;
20
+ strategyName?: string;
21
+ }
22
+ export declare class APIKeyAuthDesign extends AuthDesign {
23
+ #private;
24
+ protected strategyName: string;
25
+ protected description?: string;
26
+ protected apiKeyLocation: ApiKeyLocation;
27
+ protected options: APIKeyAuthOptions;
28
+ get key(): string;
29
+ constructor(arg?: APIKeyAuthArg);
30
+ setDescription(description: string): this;
31
+ getStrategyName(): string;
32
+ getDescription(): string | undefined;
33
+ inCookie(): this;
34
+ inHeader(): this;
35
+ inQuery(): this;
36
+ docs(): ApiKeyUtil;
37
+ integrateStrategy(t: KaapiTools): void | Promise<void>;
38
+ toString(): string;
39
+ }
@@ -0,0 +1,116 @@
1
+ "use strict";
2
+ // APIKeyAuthDesign
3
+ var _APIKeyAuthDesign_key;
4
+ Object.defineProperty(exports, "__esModule", { value: true });
5
+ exports.APIKeyAuthDesign = void 0;
6
+ const tslib_1 = require("tslib");
7
+ const boom_1 = tslib_1.__importDefault(require("@hapi/boom"));
8
+ const api_doc_generator_1 = require("@novice1/api-doc-generator");
9
+ const plugin_1 = require("../plugin");
10
+ class APIKeyAuthDesign extends plugin_1.AuthDesign {
11
+ get key() {
12
+ return tslib_1.__classPrivateFieldGet(this, _APIKeyAuthDesign_key, "f");
13
+ }
14
+ constructor(arg) {
15
+ super();
16
+ _APIKeyAuthDesign_key.set(this, 'Authorization');
17
+ this.strategyName = 'api-key-auth-design';
18
+ this.apiKeyLocation = api_doc_generator_1.ApiKeyLocation.header;
19
+ if (arg === null || arg === void 0 ? void 0 : arg.key)
20
+ tslib_1.__classPrivateFieldSet(this, _APIKeyAuthDesign_key, arg.key, "f");
21
+ if (arg === null || arg === void 0 ? void 0 : arg.strategyName)
22
+ this.strategyName = arg.strategyName;
23
+ this.options = (arg === null || arg === void 0 ? void 0 : arg.options) ? Object.assign({}, arg.options) : {};
24
+ }
25
+ setDescription(description) {
26
+ this.description = description;
27
+ return this;
28
+ }
29
+ getStrategyName() {
30
+ return this.strategyName;
31
+ }
32
+ getDescription() {
33
+ return this.description;
34
+ }
35
+ inCookie() {
36
+ this.apiKeyLocation = api_doc_generator_1.ApiKeyLocation.cookie;
37
+ return this;
38
+ }
39
+ inHeader() {
40
+ this.apiKeyLocation = api_doc_generator_1.ApiKeyLocation.header;
41
+ return this;
42
+ }
43
+ inQuery() {
44
+ this.apiKeyLocation = api_doc_generator_1.ApiKeyLocation.query;
45
+ return this;
46
+ }
47
+ docs() {
48
+ const docs = new api_doc_generator_1.ApiKeyUtil(this.strategyName)
49
+ .setApiKeyLocation(this.apiKeyLocation)
50
+ .setKey(this.key);
51
+ if (this.description) {
52
+ docs.setDescription(this.description);
53
+ }
54
+ return docs;
55
+ }
56
+ integrateStrategy(t) {
57
+ const strategyName = this.strategyName;
58
+ const apiKeyLocation = this.apiKeyLocation;
59
+ const key = this.key;
60
+ t.scheme(strategyName, (_server, options) => {
61
+ return {
62
+ authenticate: (request, h) => tslib_1.__awaiter(this, void 0, void 0, function* () {
63
+ var _a, _b;
64
+ const settings = options || {};
65
+ const authorization = apiKeyLocation == api_doc_generator_1.ApiKeyLocation.cookie ?
66
+ request.state[key] : apiKeyLocation == api_doc_generator_1.ApiKeyLocation.query ?
67
+ request.query[key] :
68
+ request.raw.req.headers[key.toLowerCase()];
69
+ let token = authorization;
70
+ if (apiKeyLocation == api_doc_generator_1.ApiKeyLocation.header && settings.headerTokenType) {
71
+ const authSplit = typeof authorization === 'string' ? authorization.split(/\s+/) : ['', ''];
72
+ const tokenType = authSplit[0];
73
+ token = authSplit[1];
74
+ if (tokenType.toLowerCase() !== ((_a = settings.headerTokenType) === null || _a === void 0 ? void 0 : _a.toLowerCase())) {
75
+ return boom_1.default.unauthorized(null, settings.headerTokenType);
76
+ }
77
+ }
78
+ if (settings.validate) {
79
+ try {
80
+ const result = yield ((_b = settings.validate) === null || _b === void 0 ? void 0 : _b.call(settings, request, token, h));
81
+ if (result && 'isAuth' in result) {
82
+ return result;
83
+ }
84
+ if (result && 'isBoom' in result) {
85
+ return result;
86
+ }
87
+ if (result) {
88
+ const { isValid, credentials, artifacts, message } = result;
89
+ if (isValid && credentials) {
90
+ return h.authenticated({ credentials, artifacts });
91
+ }
92
+ if (message) {
93
+ return h.unauthenticated(boom_1.default.unauthorized(message, (api_doc_generator_1.ApiKeyLocation.header && settings.headerTokenType) || strategyName), {
94
+ credentials: credentials || {},
95
+ artifacts
96
+ });
97
+ }
98
+ }
99
+ }
100
+ catch (err) {
101
+ return boom_1.default.internal(err instanceof Error ? err : `${err}`);
102
+ }
103
+ }
104
+ return boom_1.default.unauthorized(null, (api_doc_generator_1.ApiKeyLocation.header && settings.headerTokenType) || strategyName);
105
+ }),
106
+ };
107
+ });
108
+ t.strategy(strategyName, strategyName, this.options);
109
+ }
110
+ toString() {
111
+ return this.getStrategyName();
112
+ }
113
+ }
114
+ exports.APIKeyAuthDesign = APIKeyAuthDesign;
115
+ _APIKeyAuthDesign_key = new WeakMap();
116
+ //# sourceMappingURL=api-key-auth-design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-key-auth-design.js","sourceRoot":"","sources":["../../../../src/services/plugins/auth-designs/api-key-auth-design.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import Boom from '@hapi/boom';
2
+ import { Auth, AuthCredentials, ReqRef, ReqRefDefaults, Request, ResponseToolkit } from '@hapi/hapi';
3
+ import { BasicAuthUtil } from '@novice1/api-doc-generator';
4
+ import { AuthDesign, KaapiTools } from '../plugin';
5
+ export type BasicAuthOptions<Refs extends ReqRef = ReqRefDefaults> = {
6
+ validate?(request: Request<Refs>, username: string, password: string, h: ResponseToolkit<Refs>): Promise<{
7
+ isValid?: boolean;
8
+ artifacts?: unknown;
9
+ credentials?: AuthCredentials;
10
+ message?: string;
11
+ } | Auth | Boom.Boom>;
12
+ };
13
+ export interface BasicAuthArg {
14
+ options?: BasicAuthOptions;
15
+ strategyName?: string;
16
+ }
17
+ export declare class BasicAuthDesign extends AuthDesign {
18
+ readonly key = "Authorization";
19
+ protected strategyName: string;
20
+ protected description?: string;
21
+ protected options: BasicAuthOptions;
22
+ constructor(arg?: BasicAuthArg);
23
+ setDescription(description: string): this;
24
+ getStrategyName(): string;
25
+ getDescription(): string | undefined;
26
+ docs(): BasicAuthUtil;
27
+ integrateStrategy(t: KaapiTools): void | Promise<void>;
28
+ toString(): string;
29
+ }
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ // BasicAuthDesign
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BasicAuthDesign = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const boom_1 = tslib_1.__importDefault(require("@hapi/boom"));
7
+ const api_doc_generator_1 = require("@novice1/api-doc-generator");
8
+ const plugin_1 = require("../plugin");
9
+ class BasicAuthDesign extends plugin_1.AuthDesign {
10
+ constructor(arg) {
11
+ super();
12
+ this.key = 'Authorization';
13
+ this.strategyName = 'basic-auth-design';
14
+ if (arg === null || arg === void 0 ? void 0 : arg.strategyName)
15
+ this.strategyName = arg.strategyName;
16
+ this.options = (arg === null || arg === void 0 ? void 0 : arg.options) ? Object.assign({}, arg.options) : {};
17
+ }
18
+ setDescription(description) {
19
+ this.description = description;
20
+ return this;
21
+ }
22
+ getStrategyName() {
23
+ return this.strategyName;
24
+ }
25
+ getDescription() {
26
+ return this.description;
27
+ }
28
+ docs() {
29
+ const docs = new api_doc_generator_1.BasicAuthUtil(this.strategyName);
30
+ if (this.description) {
31
+ docs.setDescription(this.description);
32
+ }
33
+ return docs;
34
+ }
35
+ integrateStrategy(t) {
36
+ const strategyName = this.strategyName;
37
+ t.scheme(strategyName, (_server, options) => {
38
+ return {
39
+ authenticate: (request, h) => tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ var _a;
41
+ const settings = options || {};
42
+ const authorization = request.raw.req.headers[this.key.toLowerCase()];
43
+ const authSplit = typeof authorization === 'string' ? authorization.split(/\s+/) : ['', ''];
44
+ const tokenType = authSplit[0];
45
+ let token = authSplit[1];
46
+ if (tokenType.toLowerCase() !== 'basic') {
47
+ token = '';
48
+ return boom_1.default.unauthorized(null, strategyName);
49
+ }
50
+ const [username, password] = Buffer.from(token, 'base64').toString().split(':', 2);
51
+ if (settings.validate) {
52
+ try {
53
+ const result = yield ((_a = settings.validate) === null || _a === void 0 ? void 0 : _a.call(settings, request, username, password, h));
54
+ if (result && 'isAuth' in result) {
55
+ return result;
56
+ }
57
+ if (result && 'isBoom' in result) {
58
+ return result;
59
+ }
60
+ if (result) {
61
+ const { isValid, credentials, artifacts, message } = result;
62
+ if (isValid && credentials) {
63
+ return h.authenticated({ credentials, artifacts });
64
+ }
65
+ if (message) {
66
+ return h.unauthenticated(boom_1.default.unauthorized(message, 'Basic'), {
67
+ credentials: credentials || {},
68
+ artifacts
69
+ });
70
+ }
71
+ }
72
+ }
73
+ catch (err) {
74
+ return boom_1.default.internal(err instanceof Error ? err : `${err}`);
75
+ }
76
+ }
77
+ return boom_1.default.unauthorized(null, 'Basic');
78
+ }),
79
+ };
80
+ });
81
+ t.strategy(strategyName, strategyName, this.options);
82
+ }
83
+ toString() {
84
+ return this.getStrategyName();
85
+ }
86
+ }
87
+ exports.BasicAuthDesign = BasicAuthDesign;
88
+ //# sourceMappingURL=basic-auth-design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic-auth-design.js","sourceRoot":"","sources":["../../../../src/services/plugins/auth-designs/basic-auth-design.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ import Boom from '@hapi/boom';
2
+ import { Auth, AuthCredentials, ReqRef, ReqRefDefaults, Request, ResponseToolkit } from '@hapi/hapi';
3
+ import { BearerUtil } from '@novice1/api-doc-generator';
4
+ import { AuthDesign, KaapiTools } from '../plugin';
5
+ export type BearerAuthOptions<Refs extends ReqRef = ReqRefDefaults> = {
6
+ validate?(request: Request<Refs>, token: string, h: ResponseToolkit<Refs>): Promise<{
7
+ isValid?: boolean;
8
+ artifacts?: unknown;
9
+ credentials?: AuthCredentials;
10
+ message?: string;
11
+ } | Auth | Boom.Boom>;
12
+ };
13
+ export interface BearerAuthArg {
14
+ options?: BearerAuthOptions;
15
+ strategyName?: string;
16
+ }
17
+ export declare class BearerAuthDesign extends AuthDesign {
18
+ readonly key = "Authorization";
19
+ protected strategyName: string;
20
+ protected description?: string;
21
+ protected options: BearerAuthOptions;
22
+ constructor(arg?: BearerAuthArg);
23
+ setDescription(description: string): this;
24
+ getStrategyName(): string;
25
+ getDescription(): string | undefined;
26
+ docs(): BearerUtil;
27
+ integrateStrategy(t: KaapiTools): void | Promise<void>;
28
+ toString(): string;
29
+ }
@@ -0,0 +1,87 @@
1
+ "use strict";
2
+ // BearerAuthDesign
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.BearerAuthDesign = void 0;
5
+ const tslib_1 = require("tslib");
6
+ const boom_1 = tslib_1.__importDefault(require("@hapi/boom"));
7
+ const api_doc_generator_1 = require("@novice1/api-doc-generator");
8
+ const plugin_1 = require("../plugin");
9
+ class BearerAuthDesign extends plugin_1.AuthDesign {
10
+ constructor(arg) {
11
+ super();
12
+ this.key = 'Authorization';
13
+ this.strategyName = 'bearer-auth-design';
14
+ if (arg === null || arg === void 0 ? void 0 : arg.strategyName)
15
+ this.strategyName = arg.strategyName;
16
+ this.options = (arg === null || arg === void 0 ? void 0 : arg.options) ? Object.assign({}, arg.options) : {};
17
+ }
18
+ setDescription(description) {
19
+ this.description = description;
20
+ return this;
21
+ }
22
+ getStrategyName() {
23
+ return this.strategyName;
24
+ }
25
+ getDescription() {
26
+ return this.description;
27
+ }
28
+ docs() {
29
+ const docs = new api_doc_generator_1.BearerUtil(this.strategyName);
30
+ if (this.description) {
31
+ docs.setDescription(this.description);
32
+ }
33
+ return docs;
34
+ }
35
+ integrateStrategy(t) {
36
+ const strategyName = this.strategyName;
37
+ t.scheme(strategyName, (_server, options) => {
38
+ return {
39
+ authenticate: (request, h) => tslib_1.__awaiter(this, void 0, void 0, function* () {
40
+ var _a;
41
+ const settings = options || {};
42
+ const authorization = request.raw.req.headers[this.key.toLowerCase()];
43
+ const authSplit = typeof authorization === 'string' ? authorization.split(/\s+/) : ['', ''];
44
+ const tokenType = authSplit[0];
45
+ let token = authSplit[1];
46
+ if (tokenType.toLowerCase() !== 'bearer') {
47
+ token = '';
48
+ return boom_1.default.unauthorized(null, strategyName);
49
+ }
50
+ if (settings.validate) {
51
+ try {
52
+ const result = yield ((_a = settings.validate) === null || _a === void 0 ? void 0 : _a.call(settings, request, token, h));
53
+ if (result && 'isAuth' in result) {
54
+ return result;
55
+ }
56
+ if (result && 'isBoom' in result) {
57
+ return result;
58
+ }
59
+ if (result) {
60
+ const { isValid, credentials, artifacts, message } = result;
61
+ if (isValid && credentials) {
62
+ return h.authenticated({ credentials, artifacts });
63
+ }
64
+ if (message) {
65
+ return h.unauthenticated(boom_1.default.unauthorized(message, 'Bearer'), {
66
+ credentials: credentials || {},
67
+ artifacts
68
+ });
69
+ }
70
+ }
71
+ }
72
+ catch (err) {
73
+ return boom_1.default.internal(err instanceof Error ? err : `${err}`);
74
+ }
75
+ }
76
+ return boom_1.default.unauthorized(null, 'Bearer');
77
+ }),
78
+ };
79
+ });
80
+ t.strategy(strategyName, strategyName, this.options);
81
+ }
82
+ toString() {
83
+ return this.getStrategyName();
84
+ }
85
+ }
86
+ exports.BearerAuthDesign = BearerAuthDesign;
87
+ //# sourceMappingURL=bearer-auth-design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bearer-auth-design.js","sourceRoot":"","sources":["../../../../src/services/plugins/auth-designs/bearer-auth-design.ts"],"names":[],"mappings":"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"}