@kaapi/kaapi 0.0.16 → 0.0.18

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/README.md CHANGED
@@ -1,13 +1,68 @@
1
1
  # @kaapi/kaapi
2
2
 
3
- TypeScript-based framework.
3
+ [![npm version](https://img.shields.io/npm/v/@kaapi/kaapi.svg?color=blue&style=flat-square)](https://www.npmjs.com/package/@kaapi/kaapi)
4
+ [![Docs](https://img.shields.io/badge/Docs-Wiki-brightgreen.svg?style=flat-square)](https://github.com/demingongo/kaapi/wiki)
5
+ [![TypeScript](https://img.shields.io/badge/Built%20With-TypeScript-blue.svg?style=flat-square)](https://www.typescriptlang.org/)
4
6
 
5
- ## What is kaapi?
6
7
 
7
- - A modular server framework built on top of @hapi/hapi, with support for authentication, routing, and documentation generation (OpenAPI, Postman).
8
- - A messaging abstraction layer (IMessaging), with implementations for custom messaging (e.g.: @kaapi/kafka-messaging).
9
- - Built-in support for API documentation via OpenAPI and Postman generators.
8
+ Kaapi is a **modern, extensible backend framework** built on [Hapi](https://hapi.dev/), offering a **TypeScript-first design**, **plugin-based** architecture with **messaging**, **authentication**, and **automatic API documentation** baked in.
10
9
 
11
- ## Documentation
10
+ ---
11
+
12
+ ## 🚀 Features
13
+
14
+ - ⚡ **Simple Setup** — Minimal boilerplate, Hapi-compatible routing
15
+ - 🔐 **Auth Designs** — Built-in Basic, Bearer, and API Key authentication
16
+ - 🧱 **Plugins System** — Extend Kaapi easily with `app.extend()`
17
+ - 📘 **API Docs** — Swagger & Postman generation out of the box
18
+ - 📡 **Messaging Abstraction** — Kafka, MQTT, AMQP, or custom
19
+ - 🪵 **Powerful Logging** — Winston-based or custom logger support
20
+ - 🧩 **Type Safe** — Fully typed with first-class TypeScript support
21
+
22
+ ---
23
+
24
+ ## 🧰 Quick Start
25
+
26
+ ```bash
27
+ npm install @kaapi/kaapi
28
+ ```
29
+
30
+ ```ts
31
+ import { Kaapi } from '@kaapi/kaapi';
32
+
33
+ const app = new Kaapi({ port: 3000, host: 'localhost' });
34
+
35
+ app.route({ method: 'GET', path: '/' }, () => 'Hello Kaapi!');
36
+ await app.listen();
37
+
38
+ app.log.info(`🚀 Server running at http://localhost:3000`);
39
+ ```
40
+ 🧭 Visit: [`http://localhost:3000`](http://localhost:3000)
41
+
42
+ ---
43
+
44
+ ## 📚 Documentation
45
+
46
+ 👉 **Full documentation available here:**
47
+ 🔗 [Kaapi Wiki →](https://github.com/demingongo/kaapi/wiki)
48
+
49
+ ---
50
+
51
+ ## 💡 Example Features
52
+
53
+ * **Auth:** `BearerAuthDesign`, `BasicAuthDesign`, `APIKeyAuthDesign`
54
+ * **Docs:** `/docs/api` (Swagger UI), `/docs/api/schema?format=postman`
55
+ * **Messaging:** Abstract interface for Kafka, MQTT, etc.
56
+ * **Extend:** Custom plugins via `KaapiPlugin` interface
57
+ * **Logger:** Built-in Winston logger or bring your own
58
+
59
+ ---
60
+
61
+ ## 🧠 Why Kaapi?
62
+
63
+ Kaapi focuses on **clarity**, **composability**, and **developer productivity**:
64
+
65
+ > One framework, many patterns — REST, messaging, auth, docs — all in TypeScript.
66
+
67
+ ---
12
68
 
13
- [Wiki](https://github.com/demingongo/kaapi/wiki) - _(https://github.com/demingongo/kaapi/wiki)_
package/lib/index.d.ts CHANGED
@@ -2,6 +2,7 @@ import '../types/overrides.d.ts'
2
2
  export { LoggerOptions, Logger, Container, ExceptionHandler, Profiler, RejectionHandler, LeveledLogMethod, LogEntry, LogMethod, QueryOptions } from 'winston';
3
3
  export * from '@hapi/hapi';
4
4
  export * from '@kaapi/server';
5
+ export * from './services/docs/generators';
5
6
  export * from './services/docs/utils';
6
7
  export * from './services/plugins/plugin';
7
8
  export * from './services/plugins/auth-designs/api-key-auth-design';
package/lib/index.js CHANGED
@@ -10,6 +10,7 @@ Object.defineProperty(exports, "Profiler", { enumerable: true, get: function ()
10
10
  Object.defineProperty(exports, "RejectionHandler", { enumerable: true, get: function () { return winston_1.RejectionHandler; } });
11
11
  tslib_1.__exportStar(require("@hapi/hapi"), exports);
12
12
  tslib_1.__exportStar(require("@kaapi/server"), exports);
13
+ tslib_1.__exportStar(require("./services/docs/generators"), exports);
13
14
  tslib_1.__exportStar(require("./services/docs/utils"), exports);
14
15
  tslib_1.__exportStar(require("./services/plugins/plugin"), exports);
15
16
  tslib_1.__exportStar(require("./services/plugins/auth-designs/api-key-auth-design"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAWgB;AATZ,iGAAA,MAAM,OAAA;AACN,oGAAA,SAAS,OAAA;AACT,2GAAA,gBAAgB,OAAA;AAChB,mGAAA,QAAQ,OAAA;AACR,2GAAA,gBAAgB,OAAA;AAMpB,qDAA0B;AAC1B,wDAA6B;AAC7B,gEAAqC;AACrC,oEAAyC;AACzC,8FAAmE;AACnE,4FAAiE;AACjE,6FAAkE;AAClE,yDAA8B;AAC9B,+DAAoC;AACpC,yDAA8B;AAC9B,gDAAqB"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,mCAWgB;AATZ,iGAAA,MAAM,OAAA;AACN,oGAAA,SAAS,OAAA;AACT,2GAAA,gBAAgB,OAAA;AAChB,mGAAA,QAAQ,OAAA;AACR,2GAAA,gBAAgB,OAAA;AAMpB,qDAA0B;AAC1B,wDAA6B;AAC7B,qEAA0C;AAC1C,gEAAqC;AACrC,oEAAyC;AACzC,8FAAmE;AACnE,4FAAiE;AACjE,6FAAkE;AAClE,yDAA8B;AAC9B,+DAAoC;AACpC,yDAA8B;AAC9B,gDAAqB"}
@@ -0,0 +1,88 @@
1
+ import { OpenAPIHelperClass, OpenAPIHelperInterface, PostmanHelperClass, PostmanHelperInterface } from '@novice1/api-doc-generator';
2
+ export declare abstract class DelegatingHelper<T> {
3
+ protected helper: T;
4
+ constructor(args: {
5
+ isRoot?: boolean;
6
+ value: unknown;
7
+ }, defaultHelper: new (args: {
8
+ isRoot?: boolean;
9
+ value: unknown;
10
+ }) => T, fallbackHelpers: Set<new (args: {
11
+ isRoot?: boolean;
12
+ value: unknown;
13
+ }) => T>, isValid: (helper: T) => boolean);
14
+ }
15
+ export declare class OpenAPIMixHelper extends DelegatingHelper<OpenAPIHelperInterface> implements OpenAPIHelperInterface {
16
+ static helperClasses: Set<OpenAPIHelperClass>;
17
+ constructor(args: {
18
+ isRoot?: boolean;
19
+ value: unknown;
20
+ });
21
+ getFirstItem(): OpenAPIHelperInterface | undefined;
22
+ getChildren(): Record<string, OpenAPIHelperInterface>;
23
+ getAlternatives(): OpenAPIHelperInterface[];
24
+ hasStyle?(): boolean;
25
+ getStyle?(): string | undefined;
26
+ hasAdditionalProperties?(): boolean;
27
+ getAdditionalProperties?(): import("@novice1/api-doc-generator/lib/generators/openapi/definitions").AdditionalProperties | undefined;
28
+ hasRef?(): boolean;
29
+ getRef?(): string | undefined;
30
+ hasDiscriminator?(): boolean;
31
+ getDiscriminator?(): import("@novice1/api-doc-generator/lib/generators/openapi/definitions").DiscriminatorObject | undefined;
32
+ hasXml?(): boolean;
33
+ getXml?(): import("@novice1/api-doc-generator/lib/generators/openapi/definitions").XMLObject | undefined;
34
+ hasExamples?(): boolean;
35
+ getExamples?(): Record<string, import("@novice1/api-doc-generator/lib/generators/openapi/definitions").ReferenceObject | import("@novice1/api-doc-generator/lib/generators/openapi/definitions").ExampleObject> | undefined;
36
+ hasEncoding?(): boolean;
37
+ getEncoding?(): Record<string, import("@novice1/api-doc-generator/lib/generators/openapi/definitions").EncodingObject> | undefined;
38
+ isValid(): boolean;
39
+ getType(): string;
40
+ getDescription(): string;
41
+ isRequired(): boolean;
42
+ isUnique(): boolean;
43
+ hasDefaultValue(): boolean;
44
+ getDefaultValue(): unknown;
45
+ hasExampleValue(): boolean;
46
+ getExampleValue(): unknown;
47
+ isDeprecated(): boolean;
48
+ allowsEmptyValue(): boolean;
49
+ getEnum(): unknown[];
50
+ hasMin(): boolean;
51
+ hasMax(): boolean;
52
+ getMin(): number | undefined;
53
+ getMax(): number | undefined;
54
+ getUnit(): string;
55
+ }
56
+ export declare class PostmanMixHelper extends DelegatingHelper<PostmanHelperInterface> implements PostmanHelperInterface {
57
+ static helperClasses: Set<PostmanHelperClass>;
58
+ constructor(args: {
59
+ isRoot?: boolean;
60
+ value: unknown;
61
+ });
62
+ getFirstItem(): PostmanHelperInterface | undefined;
63
+ getChildren(): Record<string, PostmanHelperInterface>;
64
+ getAlternatives(): PostmanHelperInterface[];
65
+ hasContentType?(): boolean;
66
+ getContentType?(): string | undefined;
67
+ hasDescriptionType?(): boolean;
68
+ getDescriptionType?(): string | undefined;
69
+ hasXml?(): boolean;
70
+ getXml?(): import("@novice1/api-doc-generator/lib/generators/openapi/definitions").XMLObject | undefined;
71
+ isValid(): boolean;
72
+ getType(): string;
73
+ getDescription(): string;
74
+ isRequired(): boolean;
75
+ isUnique(): boolean;
76
+ hasDefaultValue(): boolean;
77
+ getDefaultValue(): unknown;
78
+ hasExampleValue(): boolean;
79
+ getExampleValue(): unknown;
80
+ isDeprecated(): boolean;
81
+ allowsEmptyValue(): boolean;
82
+ getEnum(): unknown[];
83
+ hasMin(): boolean;
84
+ hasMax(): boolean;
85
+ getMin(): number | undefined;
86
+ getMax(): number | undefined;
87
+ getUnit(): string;
88
+ }
@@ -0,0 +1,95 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PostmanMixHelper = exports.OpenAPIMixHelper = exports.DelegatingHelper = void 0;
4
+ const joiHelper_1 = require("@novice1/api-doc-generator/lib/generators/openapi/helpers/joiHelper");
5
+ const joiHelper_2 = require("@novice1/api-doc-generator/lib/generators/postman/helpers/joiHelper");
6
+ class DelegatingHelper {
7
+ constructor(args, defaultHelper, fallbackHelpers, isValid) {
8
+ this.helper = new defaultHelper(args);
9
+ if (!isValid(this.helper)) {
10
+ for (const HelperClass of fallbackHelpers) {
11
+ const candidate = new HelperClass(args);
12
+ if (isValid(candidate)) {
13
+ this.helper = candidate;
14
+ break;
15
+ }
16
+ }
17
+ }
18
+ }
19
+ }
20
+ exports.DelegatingHelper = DelegatingHelper;
21
+ class OpenAPIMixHelper extends DelegatingHelper {
22
+ constructor(args) {
23
+ super(args, joiHelper_1.OpenAPIJoiHelper, OpenAPIMixHelper.helperClasses, h => h.isValid());
24
+ }
25
+ getFirstItem() { return this.helper.getFirstItem(); }
26
+ getChildren() { return this.helper.getChildren(); }
27
+ getAlternatives() { return this.helper.getAlternatives(); }
28
+ hasStyle() { var _a, _b; return ((_b = (_a = this.helper).hasStyle) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
29
+ getStyle() { var _a, _b; return (_b = (_a = this.helper).getStyle) === null || _b === void 0 ? void 0 : _b.call(_a); }
30
+ hasAdditionalProperties() { var _a, _b; return ((_b = (_a = this.helper).hasAdditionalProperties) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
31
+ getAdditionalProperties() { var _a, _b; return (_b = (_a = this.helper).getAdditionalProperties) === null || _b === void 0 ? void 0 : _b.call(_a); }
32
+ hasRef() { var _a, _b; return ((_b = (_a = this.helper).hasRef) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
33
+ getRef() { var _a, _b; return (_b = (_a = this.helper).getRef) === null || _b === void 0 ? void 0 : _b.call(_a); }
34
+ hasDiscriminator() { var _a, _b; return ((_b = (_a = this.helper).hasDiscriminator) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
35
+ getDiscriminator() { var _a, _b; return (_b = (_a = this.helper).getDiscriminator) === null || _b === void 0 ? void 0 : _b.call(_a); }
36
+ hasXml() { var _a, _b; return ((_b = (_a = this.helper).hasXml) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
37
+ getXml() { var _a, _b; return (_b = (_a = this.helper).getXml) === null || _b === void 0 ? void 0 : _b.call(_a); }
38
+ hasExamples() { var _a, _b; return ((_b = (_a = this.helper).hasExamples) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
39
+ getExamples() { var _a, _b; return (_b = (_a = this.helper).getExamples) === null || _b === void 0 ? void 0 : _b.call(_a); }
40
+ hasEncoding() { var _a, _b; return ((_b = (_a = this.helper).hasEncoding) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
41
+ getEncoding() { var _a, _b; return (_b = (_a = this.helper).getEncoding) === null || _b === void 0 ? void 0 : _b.call(_a); }
42
+ isValid() { return this.helper.isValid(); }
43
+ getType() { return this.helper.getType(); }
44
+ getDescription() { return this.helper.getDescription(); }
45
+ isRequired() { return this.helper.isRequired(); }
46
+ isUnique() { return this.helper.isUnique(); }
47
+ hasDefaultValue() { return this.helper.hasDefaultValue(); }
48
+ getDefaultValue() { return this.helper.getDefaultValue(); }
49
+ hasExampleValue() { return this.helper.hasExampleValue(); }
50
+ getExampleValue() { return this.helper.getExampleValue(); }
51
+ isDeprecated() { return this.helper.isDeprecated(); }
52
+ allowsEmptyValue() { return this.helper.allowsEmptyValue(); }
53
+ getEnum() { return this.helper.getEnum(); }
54
+ hasMin() { return this.helper.hasMin(); }
55
+ hasMax() { return this.helper.hasMax(); }
56
+ getMin() { return this.helper.getMin(); }
57
+ getMax() { return this.helper.getMax(); }
58
+ getUnit() { return this.helper.getUnit(); }
59
+ }
60
+ exports.OpenAPIMixHelper = OpenAPIMixHelper;
61
+ OpenAPIMixHelper.helperClasses = new Set();
62
+ class PostmanMixHelper extends DelegatingHelper {
63
+ constructor(args) {
64
+ super(args, joiHelper_2.PostmanJoiHelper, PostmanMixHelper.helperClasses, h => h.isValid());
65
+ }
66
+ getFirstItem() { return this.helper.getFirstItem(); }
67
+ getChildren() { return this.helper.getChildren(); }
68
+ getAlternatives() { return this.helper.getAlternatives(); }
69
+ hasContentType() { var _a, _b; return ((_b = (_a = this.helper).hasContentType) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
70
+ getContentType() { var _a, _b; return (_b = (_a = this.helper).getContentType) === null || _b === void 0 ? void 0 : _b.call(_a); }
71
+ hasDescriptionType() { var _a, _b; return ((_b = (_a = this.helper).hasDescriptionType) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
72
+ getDescriptionType() { var _a, _b; return (_b = (_a = this.helper).getDescriptionType) === null || _b === void 0 ? void 0 : _b.call(_a); }
73
+ hasXml() { var _a, _b; return ((_b = (_a = this.helper).hasXml) === null || _b === void 0 ? void 0 : _b.call(_a)) || false; }
74
+ getXml() { var _a, _b; return (_b = (_a = this.helper).getXml) === null || _b === void 0 ? void 0 : _b.call(_a); }
75
+ isValid() { return this.helper.isValid(); }
76
+ getType() { return this.helper.getType(); }
77
+ getDescription() { return this.helper.getDescription(); }
78
+ isRequired() { return this.helper.isRequired(); }
79
+ isUnique() { return this.helper.isUnique(); }
80
+ hasDefaultValue() { return this.helper.hasDefaultValue(); }
81
+ getDefaultValue() { return this.helper.getDefaultValue(); }
82
+ hasExampleValue() { return this.helper.hasExampleValue(); }
83
+ getExampleValue() { return this.helper.getExampleValue(); }
84
+ isDeprecated() { return this.helper.isDeprecated(); }
85
+ allowsEmptyValue() { return this.helper.allowsEmptyValue(); }
86
+ getEnum() { return this.helper.getEnum(); }
87
+ hasMin() { return this.helper.hasMin(); }
88
+ hasMax() { return this.helper.hasMax(); }
89
+ getMin() { return this.helper.getMin(); }
90
+ getMax() { return this.helper.getMax(); }
91
+ getUnit() { return this.helper.getUnit(); }
92
+ }
93
+ exports.PostmanMixHelper = PostmanMixHelper;
94
+ PostmanMixHelper.helperClasses = new Set();
95
+ //# sourceMappingURL=api-doc-mix-helpers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-doc-mix-helpers.js","sourceRoot":"","sources":["../../../src/services/docs/api-doc-mix-helpers.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,32 @@
1
- import { OpenAPI, Postman, ProcessedRoute } from '@novice1/api-doc-generator';
1
+ import { OpenAPI, OpenAPIHelperClass, OpenAPIHelperInterface, OpenAPIOptions, Postman, PostmanHelperClass, PostmanOptions, ProcessedRoute } from '@novice1/api-doc-generator';
2
2
  import { KaapiServerRoute } from '@kaapi/server';
3
3
  import { ReqRef, ReqRefDefaults, RequestRoute } from '@hapi/hapi';
4
+ export interface KaapiOpenAPIHelperInterface extends OpenAPIHelperInterface {
5
+ isFile(): boolean | undefined;
6
+ getFilesChildren(): Record<string, unknown>;
7
+ }
8
+ export type KaapiOpenAPIHelperClass = {
9
+ new (args: {
10
+ isRoot?: boolean;
11
+ value: unknown;
12
+ }): KaapiOpenAPIHelperInterface;
13
+ };
4
14
  export interface KaapiDocGenerator {
5
15
  addRoutes<Refs extends ReqRef = ReqRefDefaults>(serverRoute: KaapiServerRoute<Refs>): ProcessedRoute[];
6
16
  addRoutes<Refs extends ReqRef = ReqRefDefaults>(serverRoutes: KaapiServerRoute<Refs>[]): ProcessedRoute[];
7
17
  addRequestRoute<Refs extends ReqRef = ReqRefDefaults>(serverRoute: RequestRoute<Refs>): ProcessedRoute[];
8
18
  }
9
19
  export declare class KaapiOpenAPI extends OpenAPI implements KaapiDocGenerator {
20
+ constructor(options?: OpenAPIOptions);
21
+ addHelperClass(helperClass: OpenAPIHelperClass): void;
22
+ removeHelperClass(helperClass: OpenAPIHelperClass): void;
10
23
  addRoutes<Refs extends ReqRef = ReqRefDefaults>(serverRoutes: KaapiServerRoute<Refs>[] | KaapiServerRoute<Refs>): ProcessedRoute[];
11
24
  addRequestRoute<Refs extends ReqRef = ReqRefDefaults>(reqRoute: RequestRoute<Refs>): ProcessedRoute[];
12
25
  }
13
26
  export declare class KaapiPostman extends Postman implements KaapiDocGenerator {
27
+ constructor(options?: PostmanOptions);
28
+ addHelperClass(helperClass: PostmanHelperClass): void;
29
+ removeHelperClass(helperClass: PostmanHelperClass): void;
14
30
  addRoutes<Refs extends ReqRef = ReqRefDefaults>(serverRoutes: KaapiServerRoute<Refs>[] | KaapiServerRoute<Refs>): ProcessedRoute[];
15
31
  addRequestRoute<Refs extends ReqRef = ReqRefDefaults>(reqRoute: RequestRoute<Refs>): ProcessedRoute[];
16
32
  }
@@ -3,6 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.KaapiPostman = exports.KaapiOpenAPI = void 0;
4
4
  const api_doc_generator_1 = require("@novice1/api-doc-generator");
5
5
  const joiHelper_1 = require("@novice1/api-doc-generator/lib/generators/openapi/helpers/joiHelper");
6
+ const api_doc_mix_helpers_1 = require("./api-doc-mix-helpers");
6
7
  class CustomHelper extends joiHelper_1.OpenAPIJoiHelper {
7
8
  isFile() {
8
9
  return this._joi['$_terms']
@@ -61,7 +62,7 @@ function formatRoutes(serverRoutes) {
61
62
  methods = [sRoute.method];
62
63
  }
63
64
  const formattedRoutes = methods.map(method => {
64
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p;
65
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r;
65
66
  const route = {
66
67
  methods: {
67
68
  [method.toLowerCase()]: true
@@ -74,9 +75,17 @@ function formatRoutes(serverRoutes) {
74
75
  if (typeof sRoute.options != 'function') {
75
76
  route.tags = (_a = sRoute.options) === null || _a === void 0 ? void 0 : _a.tags;
76
77
  route.description = (_b = sRoute.options) === null || _b === void 0 ? void 0 : _b.description;
78
+ const pluginKaapiDocs = typeof ((_e = (_d = (_c = sRoute.options) === null || _c === void 0 ? void 0 : _c.plugins) === null || _d === void 0 ? void 0 : _d.kaapi) === null || _e === void 0 ? void 0 : _e.docs) === 'object' ? sRoute.options.plugins.kaapi.docs : {};
79
+ const schemaProp = pluginKaapiDocs.helperSchemaProperty;
80
+ const routeOptionsValidate = schemaProp && ((_f = sRoute.options) === null || _f === void 0 ? void 0 : _f.plugins) && schemaProp in sRoute.options.plugins ?
81
+ sRoute.options.plugins[schemaProp] :
82
+ (_g = sRoute.options) === null || _g === void 0 ? void 0 : _g.validate;
77
83
  let files = undefined;
78
- if (((_c = sRoute.options) === null || _c === void 0 ? void 0 : _c.payload) && typeof ((_e = (_d = sRoute.options) === null || _d === void 0 ? void 0 : _d.validate) === null || _e === void 0 ? void 0 : _e.payload) === 'object') {
79
- const helper = new CustomHelper({ value: sRoute.options.validate.payload });
84
+ if (((_h = sRoute.options) === null || _h === void 0 ? void 0 : _h.payload) && typeof (routeOptionsValidate === null || routeOptionsValidate === void 0 ? void 0 : routeOptionsValidate.payload) === 'object') {
85
+ const helperClass = (typeof ((_k = (_j = sRoute.options.plugins) === null || _j === void 0 ? void 0 : _j.kaapi) === null || _k === void 0 ? void 0 : _k.docs) === 'object' && sRoute.options.plugins.kaapi.docs.openAPIHelperClass) ?
86
+ sRoute.options.plugins.kaapi.docs.openAPIHelperClass :
87
+ CustomHelper;
88
+ const helper = new helperClass({ value: routeOptionsValidate.payload });
80
89
  if (helper.isValid() && helper.getType() === 'object') {
81
90
  files = helper.getFilesChildren();
82
91
  if (files && !Object.keys(files).length) {
@@ -84,13 +93,13 @@ function formatRoutes(serverRoutes) {
84
93
  }
85
94
  }
86
95
  }
87
- route.parameters = ((_f = sRoute.options) === null || _f === void 0 ? void 0 : _f.validate) ? Object.assign(Object.assign({}, (_g = sRoute.options) === null || _g === void 0 ? void 0 : _g.validate), { body: (_h = sRoute.options) === null || _h === void 0 ? void 0 : _h.validate.payload, files: files }) : undefined;
88
- if (route.parameters && ((_k = (_j = sRoute.options) === null || _j === void 0 ? void 0 : _j.payload) === null || _k === void 0 ? void 0 : _k.allow)) {
96
+ route.parameters = routeOptionsValidate ? Object.assign(Object.assign({}, routeOptionsValidate), { body: routeOptionsValidate.payload, files: files }) : undefined;
97
+ if (route.parameters && ((_m = (_l = sRoute.options) === null || _l === void 0 ? void 0 : _l.payload) === null || _m === void 0 ? void 0 : _m.allow)) {
89
98
  route.parameters.consumes = Array.isArray(sRoute.options.payload.allow) ? sRoute.options.payload.allow : [sRoute.options.payload.allow];
90
99
  }
91
- if (route.parameters && typeof ((_o = (_m = (_l = sRoute.options) === null || _l === void 0 ? void 0 : _l.plugins) === null || _m === void 0 ? void 0 : _m.kaapi) === null || _o === void 0 ? void 0 : _o.docs) === 'object') {
100
+ if (route.parameters && typeof ((_q = (_p = (_o = sRoute.options) === null || _o === void 0 ? void 0 : _o.plugins) === null || _p === void 0 ? void 0 : _p.kaapi) === null || _q === void 0 ? void 0 : _q.docs) === 'object') {
92
101
  if (sRoute.options.plugins.kaapi.docs.story) {
93
- route.parameters.story = (_p = sRoute.options.plugins.kaapi) === null || _p === void 0 ? void 0 : _p.docs.story;
102
+ route.parameters.story = (_r = sRoute.options.plugins.kaapi) === null || _r === void 0 ? void 0 : _r.docs.story;
94
103
  }
95
104
  }
96
105
  }
@@ -126,7 +135,7 @@ function formatRequestRoute(reqRoute) {
126
135
  methods = [sRoute.method];
127
136
  }
128
137
  const formattedRoutes = methods.map(method => {
129
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
138
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q;
130
139
  const route = {
131
140
  methods: {
132
141
  [method.toLowerCase()]: true
@@ -138,9 +147,17 @@ function formatRequestRoute(reqRoute) {
138
147
  if (typeof sRoute.settings != 'function') {
139
148
  route.tags = (_b = sRoute.settings) === null || _b === void 0 ? void 0 : _b.tags;
140
149
  route.description = (_c = sRoute.settings) === null || _c === void 0 ? void 0 : _c.description;
150
+ const pluginKaapiDocs = typeof ((_f = (_e = (_d = sRoute.settings) === null || _d === void 0 ? void 0 : _d.plugins) === null || _e === void 0 ? void 0 : _e.kaapi) === null || _f === void 0 ? void 0 : _f.docs) === 'object' ? sRoute.settings.plugins.kaapi.docs : {};
151
+ const schemaProp = pluginKaapiDocs.helperSchemaProperty;
152
+ const routeOptionsValidate = schemaProp && ((_g = sRoute.settings) === null || _g === void 0 ? void 0 : _g.plugins) && schemaProp in sRoute.settings.plugins ?
153
+ sRoute.settings.plugins[schemaProp] :
154
+ (_h = sRoute.settings) === null || _h === void 0 ? void 0 : _h.validate;
141
155
  let files = undefined;
142
- if (((_d = sRoute.settings) === null || _d === void 0 ? void 0 : _d.payload) && typeof ((_f = (_e = sRoute.settings) === null || _e === void 0 ? void 0 : _e.validate) === null || _f === void 0 ? void 0 : _f.payload) === 'object') {
143
- const helper = new CustomHelper({ value: sRoute.settings.validate.payload });
156
+ if (((_j = sRoute.settings) === null || _j === void 0 ? void 0 : _j.payload) && typeof (routeOptionsValidate === null || routeOptionsValidate === void 0 ? void 0 : routeOptionsValidate.payload) === 'object') {
157
+ const helperClass = (typeof ((_l = (_k = sRoute.settings.plugins) === null || _k === void 0 ? void 0 : _k.kaapi) === null || _l === void 0 ? void 0 : _l.docs) === 'object' && sRoute.settings.plugins.kaapi.docs.openAPIHelperClass) ?
158
+ sRoute.settings.plugins.kaapi.docs.openAPIHelperClass :
159
+ CustomHelper;
160
+ const helper = new helperClass({ value: routeOptionsValidate.payload });
144
161
  if (helper.isValid() && helper.getType() === 'object') {
145
162
  files = helper.getFilesChildren();
146
163
  if (files && !Object.keys(files).length) {
@@ -148,11 +165,11 @@ function formatRequestRoute(reqRoute) {
148
165
  }
149
166
  }
150
167
  }
151
- route.parameters = ((_g = sRoute.settings) === null || _g === void 0 ? void 0 : _g.validate) ? Object.assign(Object.assign({}, (_h = sRoute.settings) === null || _h === void 0 ? void 0 : _h.validate), { body: (_j = sRoute.settings) === null || _j === void 0 ? void 0 : _j.validate.payload, files: files }) : undefined;
152
- if (route.parameters && ((_l = (_k = sRoute.settings) === null || _k === void 0 ? void 0 : _k.payload) === null || _l === void 0 ? void 0 : _l.allow)) {
168
+ route.parameters = routeOptionsValidate ? Object.assign(Object.assign({}, routeOptionsValidate), { body: routeOptionsValidate.payload, files: files }) : undefined;
169
+ if (route.parameters && ((_o = (_m = sRoute.settings) === null || _m === void 0 ? void 0 : _m.payload) === null || _o === void 0 ? void 0 : _o.allow)) {
153
170
  route.parameters.consumes = Array.isArray(sRoute.settings.payload.allow) ? sRoute.settings.payload.allow : [sRoute.settings.payload.allow];
154
171
  }
155
- if (route.parameters && typeof ((_o = (_m = sRoute.settings.plugins) === null || _m === void 0 ? void 0 : _m.kaapi) === null || _o === void 0 ? void 0 : _o.docs) === 'object') {
172
+ if (route.parameters && typeof ((_q = (_p = sRoute.settings.plugins) === null || _p === void 0 ? void 0 : _p.kaapi) === null || _q === void 0 ? void 0 : _q.docs) === 'object') {
156
173
  if (sRoute.settings.plugins.kaapi.docs.story) {
157
174
  route.parameters.story = sRoute.settings.plugins.kaapi.docs.story;
158
175
  }
@@ -164,6 +181,18 @@ function formatRequestRoute(reqRoute) {
164
181
  return routes;
165
182
  }
166
183
  class KaapiOpenAPI extends api_doc_generator_1.OpenAPI {
184
+ constructor(options) {
185
+ if (options === null || options === void 0 ? void 0 : options.helperClass) {
186
+ api_doc_mix_helpers_1.OpenAPIMixHelper.helperClasses.add(options.helperClass);
187
+ }
188
+ super(Object.assign(Object.assign({}, options), { helperClass: api_doc_mix_helpers_1.OpenAPIMixHelper }));
189
+ }
190
+ addHelperClass(helperClass) {
191
+ api_doc_mix_helpers_1.OpenAPIMixHelper.helperClasses.add(helperClass);
192
+ }
193
+ removeHelperClass(helperClass) {
194
+ api_doc_mix_helpers_1.OpenAPIMixHelper.helperClasses.delete(helperClass);
195
+ }
167
196
  addRoutes(serverRoutes) {
168
197
  return super.add(formatRoutes(serverRoutes));
169
198
  }
@@ -173,6 +202,18 @@ class KaapiOpenAPI extends api_doc_generator_1.OpenAPI {
173
202
  }
174
203
  exports.KaapiOpenAPI = KaapiOpenAPI;
175
204
  class KaapiPostman extends api_doc_generator_1.Postman {
205
+ constructor(options) {
206
+ if (options === null || options === void 0 ? void 0 : options.helperClass) {
207
+ api_doc_mix_helpers_1.PostmanMixHelper.helperClasses.add(options.helperClass);
208
+ }
209
+ super(Object.assign(Object.assign({}, options), { helperClass: api_doc_mix_helpers_1.PostmanMixHelper }));
210
+ }
211
+ addHelperClass(helperClass) {
212
+ api_doc_mix_helpers_1.PostmanMixHelper.helperClasses.add(helperClass);
213
+ }
214
+ removeHelperClass(helperClass) {
215
+ api_doc_mix_helpers_1.PostmanMixHelper.helperClasses.delete(helperClass);
216
+ }
176
217
  addRoutes(serverRoutes) {
177
218
  return super.add(formatRoutes(serverRoutes));
178
219
  }
@@ -1 +1 @@
1
- {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../src/services/docs/generators.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generators.js","sourceRoot":"","sources":["../../../src/services/docs/generators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,9 +1,15 @@
1
1
  {
2
2
  "name": "@kaapi/kaapi",
3
- "version": "0.0.16",
3
+ "version": "0.0.18",
4
4
  "private": false,
5
5
  "description": "TypeScript-based framework",
6
6
  "main": "lib/index.js",
7
+ "keywords": [
8
+ "typescript",
9
+ "backend",
10
+ "framework",
11
+ "api"
12
+ ],
7
13
  "author": "demingongo",
8
14
  "repository": {
9
15
  "type": "git",
@@ -26,11 +32,10 @@
26
32
  "swagger-ui-dist": "^5.27.1",
27
33
  "tslib": "^2.8.1",
28
34
  "winston": "^3.17.0",
29
- "@kaapi/server": "^0.0.16"
35
+ "@kaapi/server": "^0.0.18"
30
36
  },
31
37
  "scripts": {
32
38
  "lint": "eslint .",
33
- "build": "tsc && node ./scripts/buildDT.mjs",
34
- "test": "echo \"Error: no test specified\" && exit 1"
39
+ "build": "tsc && node ./scripts/buildDT.mjs"
35
40
  }
36
41
  }
@@ -1,4 +1,17 @@
1
1
  import '@hapi/hapi'
2
+ import { OpenAPIHelperInterface } from '@novice1/api-doc-generator'
3
+
4
+ interface KaapiOpenAPIHelperInterface extends OpenAPIHelperInterface {
5
+ isFile(): boolean | undefined;
6
+ getFilesChildren(): Record<string, unknown>;
7
+ }
8
+
9
+ type KaapiOpenAPIHelperClass = {
10
+ new(args: {
11
+ isRoot?: boolean;
12
+ value: unknown;
13
+ }): KaapiOpenAPIHelperInterface;
14
+ }
2
15
 
3
16
  declare module '@hapi/hapi' {
4
17
  interface PluginSpecificConfiguration {
@@ -6,9 +19,12 @@ declare module '@hapi/hapi' {
6
19
  docs?: {
7
20
  disabled?: boolean;
8
21
  story?: string;
22
+ openAPIHelperClass?: KaapiOpenAPIHelperClass;
23
+ helperSchemaProperty?: string;
9
24
  } | false
10
25
  };
26
+ [x: string]: unknown;
11
27
  }
12
28
  }
13
29
 
14
- export {}
30
+ export { }
package/lib/base-app.d.ts DELETED
@@ -1,23 +0,0 @@
1
- import { HandlerDecorations, Lifecycle, ReqRef, ReqRefDefaults } from '@hapi/hapi';
2
- import { KaapiServerRoute, KaapiServer, KaapiServerOptions } from '@kaapi/server';
3
- import { ILogger } from './services/log';
4
- import { IMessaging, IMessagingSender, IMessagingSubscribeConfig, IPublishMethod, ISubscribeMethod } from './services/messaging';
5
- export interface IKaapiApp extends IMessaging {
6
- log: ILogger;
7
- emit: IPublishMethod;
8
- on: ISubscribeMethod;
9
- server(): KaapiServer;
10
- route<Refs extends ReqRef = ReqRefDefaults>(serverRoute: KaapiServerRoute<Refs>, handler?: HandlerDecorations | Lifecycle.Method<Refs, Lifecycle.ReturnValue<Refs>>): this;
11
- }
12
- export declare abstract class KaapiBaseApp implements IKaapiApp {
13
- abstract log: ILogger;
14
- abstract emit<T = unknown>(topic: string, message: T): Promise<void>;
15
- abstract on<T = unknown>(topic: string, handler: (message: T, sender: IMessagingSender) => void | Promise<void>, conf?: IMessagingSubscribeConfig | undefined): Promise<void>;
16
- abstract publish<T = unknown>(topic: string, message: T): Promise<void>;
17
- abstract subscribe<T = unknown>(topic: string, handler: (message: T, sender: IMessagingSender) => void | Promise<void>, conf?: IMessagingSubscribeConfig | undefined): Promise<void>;
18
- abstract server(opts?: KaapiServerOptions): KaapiServer;
19
- protected version?: string;
20
- protected kaapiServer?: KaapiServer;
21
- route<Refs extends ReqRef = ReqRefDefaults>(serverRoute: KaapiServerRoute<Refs>, handler?: HandlerDecorations | Lifecycle.Method<Refs, Lifecycle.ReturnValue<Refs>>): this;
22
- toString(): string;
23
- }
package/lib/base-app.js DELETED
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.KaapiBaseApp = void 0;
4
- class KaapiBaseApp {
5
- route(serverRoute, handler) {
6
- this.server().route(serverRoute, handler);
7
- return this;
8
- }
9
- toString() {
10
- var _a, _b, _c;
11
- let result = `${this.version || '0.0.0'}`;
12
- if (this.kaapiServer) {
13
- result += `, server: ${(_a = this.kaapiServer) === null || _a === void 0 ? void 0 : _a.server.info.uri}, `;
14
- result += `state: ${((_b = this.kaapiServer) === null || _b === void 0 ? void 0 : _b.server.info.started) ? new Date((_c = this.kaapiServer) === null || _c === void 0 ? void 0 : _c.server.info.started) : 'STOPPED'}`;
15
- }
16
- return result;
17
- }
18
- [Symbol.for('nodejs.util.inspect.custom')]() {
19
- return `${this.constructor.name} <${this.toString()}>`;
20
- }
21
- }
22
- exports.KaapiBaseApp = KaapiBaseApp;
23
- //# sourceMappingURL=base-app.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"base-app.js","sourceRoot":"","sources":["../src/base-app.ts"],"names":[],"mappings":";;;AAoBA,MAAsB,YAAY;IAY9B,KAAK,CACD,WAAmC,EACnC,OAAkF;QAClF,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAO,WAAW,EAAE,OAAO,CAAC,CAAA;QAC/C,OAAO,IAAI,CAAA;IACf,CAAC;IAED,QAAQ;;QACJ,IAAI,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,OAAO,EAAE,CAAA;QACzC,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,aAAa,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC,IAAI,CAAC,GAAG,IAAI,CAAA;YAC5D,MAAM,IAAI,UAAU,CAAA,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAA,IAAI,CAAC,WAAW,0CAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAA;QAC7H,CAAC;QACD,OAAO,MAAM,CAAA;IACjB,CAAC;IAED,CAAC,MAAM,CAAC,GAAG,CAAC,4BAA4B,CAAC,CAAC;QACtC,OAAO,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC;IAC3D,CAAC;CACJ;AA/BD,oCA+BC"}