@forinda/kickjs-swagger 1.6.0 → 1.7.0

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/dist/index.js CHANGED
@@ -7,8 +7,8 @@ var H = {
7
7
  return e != null && typeof e == "object" && typeof e.safeParse == "function" && typeof e.toJSONSchema == "function";
8
8
  },
9
9
  toJsonSchema(e) {
10
- const { $schema: r, ...t } = e.toJSONSchema();
11
- return t;
10
+ const { $schema: t, ...a } = e.toJSONSchema();
11
+ return a;
12
12
  }
13
13
  }, i = {
14
14
  OPERATION: /* @__PURE__ */ Symbol("kick:swagger:operation"),
@@ -18,58 +18,58 @@ var H = {
18
18
  EXCLUDE: /* @__PURE__ */ Symbol("kick:swagger:exclude")
19
19
  };
20
20
  function Z(e) {
21
- return (r, t) => {
22
- Reflect.defineMetadata(i.OPERATION, e, r.constructor, t);
21
+ return (t, a) => {
22
+ Reflect.defineMetadata(i.OPERATION, e, t.constructor, a);
23
23
  };
24
24
  }
25
25
  function Q(e) {
26
- return (r, t) => {
27
- const d = Reflect.getMetadata(i.RESPONSES, r.constructor, t) || [];
28
- Reflect.defineMetadata(i.RESPONSES, [...d, e], r.constructor, t);
26
+ return (t, a) => {
27
+ const p = Reflect.getMetadata(i.RESPONSES, t.constructor, a) || [];
28
+ Reflect.defineMetadata(i.RESPONSES, [...p, e], t.constructor, a);
29
29
  };
30
30
  }
31
31
  function V(...e) {
32
- return (r, t) => {
33
- t ? Reflect.defineMetadata(i.TAGS, e, r.constructor, t) : Reflect.defineMetadata(i.TAGS, e, r);
32
+ return (t, a) => {
33
+ a ? Reflect.defineMetadata(i.TAGS, e, t.constructor, a) : Reflect.defineMetadata(i.TAGS, e, t);
34
34
  };
35
35
  }
36
36
  function K(e = "BearerAuth") {
37
- return (r, t) => {
38
- t ? Reflect.defineMetadata(i.BEARER_AUTH, e, r.constructor, t) : Reflect.defineMetadata(i.BEARER_AUTH, e, r);
37
+ return (t, a) => {
38
+ a ? Reflect.defineMetadata(i.BEARER_AUTH, e, t.constructor, a) : Reflect.defineMetadata(i.BEARER_AUTH, e, t);
39
39
  };
40
40
  }
41
41
  function ee() {
42
- return (e, r) => {
43
- r ? Reflect.defineMetadata(i.EXCLUDE, !0, e.constructor, r) : Reflect.defineMetadata(i.EXCLUDE, !0, e);
42
+ return (e, t) => {
43
+ t ? Reflect.defineMetadata(i.EXCLUDE, !0, e.constructor, t) : Reflect.defineMetadata(i.EXCLUDE, !0, e);
44
44
  };
45
45
  }
46
46
  var M = [];
47
- function F(e, r) {
47
+ function F(e, t) {
48
48
  M.push({
49
49
  controllerClass: e,
50
- mountPath: r
50
+ mountPath: t
51
51
  });
52
52
  }
53
53
  function x() {
54
54
  M.length = 0;
55
55
  }
56
56
  function J(e = {}) {
57
- const r = e.schemaParser ?? H, t = (o) => {
57
+ const t = e.schemaParser ?? H, a = (o) => {
58
58
  try {
59
- return r.supports(o) ? r.toJsonSchema(o) : null;
59
+ return t.supports(o) ? t.toJsonSchema(o) : null;
60
60
  } catch {
61
61
  return null;
62
62
  }
63
- }, d = {};
64
- let u = 0;
65
- const p = (o, w) => {
66
- let f = o.title || o.label || w || "";
67
- if (f || (f = `Schema${++u}`), f = f.replace(/[^a-zA-Z0-9]/g, ""), !d[f]) {
68
- const R = { ...o };
69
- delete R.title, delete R.label, delete R.$schema, d[f] = R;
63
+ }, p = {};
64
+ let d = 0;
65
+ const m = (o, w) => {
66
+ let u = o.title || o.label || w || "";
67
+ if (u || (u = `Schema${++d}`), u = u.replace(/[^a-zA-Z0-9]/g, ""), !p[u]) {
68
+ const A = { ...o };
69
+ delete A.title, delete A.label, delete A.$schema, p[u] = A;
70
70
  }
71
- return { $ref: `#/components/schemas/${f}` };
72
- }, a = {
71
+ return { $ref: `#/components/schemas/${u}` };
72
+ }, r = {
73
73
  openapi: "3.0.3",
74
74
  info: {
75
75
  title: e.info?.title || "API",
@@ -83,81 +83,81 @@ function J(e = {}) {
83
83
  },
84
84
  tags: []
85
85
  };
86
- e.servers && (a.servers = e.servers);
87
- const m = /* @__PURE__ */ new Set(), g = {};
86
+ e.servers && (r.servers = e.servers);
87
+ const S = /* @__PURE__ */ new Set(), E = {};
88
88
  for (const { controllerClass: o, mountPath: w } of M) {
89
89
  if (Reflect.getMetadata(i.EXCLUDE, o)) continue;
90
- const f = Reflect.getMetadata(T.ROUTES, o) || [], R = Reflect.getMetadata(i.TAGS, o) || [], I = Reflect.getMetadata(i.BEARER_AUTH, o);
91
- for (const n of f) {
90
+ const u = Reflect.getMetadata(T.ROUTES, o) || [], A = Reflect.getMetadata(i.TAGS, o) || [], I = Reflect.getMetadata(i.BEARER_AUTH, o);
91
+ for (const n of u) {
92
92
  if (Reflect.getMetadata(i.EXCLUDE, o, n.handlerName)) continue;
93
- const $ = C(w, n.path), P = $.replace(/:([a-zA-Z_]+)/g, "{$1}"), b = n.method.toLowerCase(), y = Reflect.getMetadata(i.OPERATION, o, n.handlerName) || {}, N = Reflect.getMetadata(i.RESPONSES, o, n.handlerName) || [], k = Reflect.getMetadata(i.TAGS, o, n.handlerName) || [], _ = Reflect.getMetadata(i.BEARER_AUTH, o, n.handlerName), v = k.length > 0 ? k : R;
94
- v.forEach((s) => m.add(s));
93
+ const $ = C(w, n.path), P = $.replace(/:([a-zA-Z_]+)/g, "{$1}"), R = n.method.toLowerCase(), h = Reflect.getMetadata(i.OPERATION, o, n.handlerName) || {}, N = Reflect.getMetadata(i.RESPONSES, o, n.handlerName) || [], k = Reflect.getMetadata(i.TAGS, o, n.handlerName) || [], B = Reflect.getMetadata(i.BEARER_AUTH, o, n.handlerName), v = k.length > 0 ? k : A;
94
+ v.forEach((s) => S.add(s));
95
95
  const c = {
96
96
  ...v.length > 0 ? { tags: v } : {},
97
- ...y.summary ? { summary: y.summary } : {},
98
- ...y.description ? { description: y.description } : {},
99
- ...y.operationId ? { operationId: y.operationId } : {},
100
- ...y.deprecated ? { deprecated: !0 } : {},
97
+ ...h.summary ? { summary: h.summary } : {},
98
+ ...h.description ? { description: h.description } : {},
99
+ ...h.operationId ? { operationId: h.operationId } : {},
100
+ ...h.deprecated ? { deprecated: !0 } : {},
101
101
  parameters: [],
102
102
  responses: {}
103
- }, B = $.match(/:([a-zA-Z_]+)/g) || [];
104
- for (const s of B) {
103
+ }, _ = $.match(/:([a-zA-Z_]+)/g) || [];
104
+ for (const s of _) {
105
105
  const l = s.slice(1);
106
- let A = { type: "string" };
106
+ let y = { type: "string" };
107
107
  if (n.validation?.params) {
108
- const h = t(n.validation.params);
109
- if (h?.properties && typeof h.properties == "object") {
110
- const U = h.properties;
111
- U[l] && (A = U[l]);
108
+ const f = a(n.validation.params);
109
+ if (f?.properties && typeof f.properties == "object") {
110
+ const U = f.properties;
111
+ U[l] && (y = U[l]);
112
112
  }
113
113
  }
114
114
  c.parameters.push({
115
115
  name: l,
116
116
  in: "path",
117
117
  required: !0,
118
- schema: A
118
+ schema: y
119
119
  });
120
120
  }
121
121
  if (n.validation?.query) {
122
- const s = t(n.validation.query);
122
+ const s = a(n.validation.query);
123
123
  if (s?.properties && typeof s.properties == "object") {
124
124
  const l = Array.isArray(s.required) ? s.required : [];
125
- for (const [A, h] of Object.entries(s.properties)) c.parameters.push({
126
- name: A,
125
+ for (const [y, f] of Object.entries(s.properties)) c.parameters.push({
126
+ name: y,
127
127
  in: "query",
128
- required: l.includes(A),
129
- schema: h
128
+ required: l.includes(y),
129
+ schema: f
130
130
  });
131
131
  }
132
132
  }
133
- const S = Reflect.getMetadata(T.QUERY_PARAMS, o, n.handlerName);
134
- if (S && (S.filterable?.length && c.parameters.push({
133
+ const g = Reflect.getMetadata(T.QUERY_PARAMS, o, n.handlerName);
134
+ if (g && (g.filterable?.length && c.parameters.push({
135
135
  name: "filter",
136
136
  in: "query",
137
137
  required: !1,
138
- description: `Filter fields: ${S.filterable.join(", ")}. Format: \`field:operator:value\`. Operators: eq, neq, gt, gte, lt, lte, contains, starts, ends, in, between`,
138
+ description: `Filter fields: ${g.filterable.join(", ")}. Format: \`field:operator:value\`. Operators: eq, neq, gt, gte, lt, lte, contains, starts, ends, in, between`,
139
139
  schema: {
140
140
  type: "array",
141
141
  items: { type: "string" }
142
142
  },
143
143
  style: "form",
144
144
  explode: !0
145
- }), S.sortable?.length && c.parameters.push({
145
+ }), g.sortable?.length && c.parameters.push({
146
146
  name: "sort",
147
147
  in: "query",
148
148
  required: !1,
149
- description: `Sort fields: ${S.sortable.join(", ")}. Format: \`field:asc\` or \`field:desc\``,
149
+ description: `Sort fields: ${g.sortable.join(", ")}. Format: \`field:asc\` or \`field:desc\``,
150
150
  schema: {
151
151
  type: "array",
152
152
  items: { type: "string" }
153
153
  },
154
154
  style: "form",
155
155
  explode: !0
156
- }), S.searchable?.length && c.parameters.push({
156
+ }), g.searchable?.length && c.parameters.push({
157
157
  name: "q",
158
158
  in: "query",
159
159
  required: !1,
160
- description: `Search across: ${S.searchable.join(", ")}`,
160
+ description: `Search across: ${g.searchable.join(", ")}`,
161
161
  schema: { type: "string" }
162
162
  }), c.parameters.push({
163
163
  name: "page",
@@ -184,26 +184,26 @@ function J(e = {}) {
184
184
  "post",
185
185
  "put",
186
186
  "patch"
187
- ].includes(b)) {
188
- const s = t(n.validation.body);
187
+ ].includes(R)) {
188
+ const s = a(n.validation.body);
189
189
  if (s) {
190
- const l = p(s, n.validation.name || `${n.handlerName}Body`);
190
+ const l = m(s, n.validation.name || `${n.handlerName}Body`);
191
191
  c.requestBody = {
192
192
  required: !0,
193
193
  content: { "application/json": { schema: l } }
194
194
  };
195
195
  }
196
196
  }
197
- const E = Reflect.getMetadata(T.FILE_UPLOAD, o, n.handlerName);
198
- if (E) {
199
- const s = E.fieldName ?? "file", l = {};
200
- E.mode === "array" ? l[s] = {
197
+ const b = Reflect.getMetadata(T.FILE_UPLOAD, o, n.handlerName);
198
+ if (b) {
199
+ const s = b.fieldName ?? "file", l = {};
200
+ b.mode === "array" ? l[s] = {
201
201
  type: "array",
202
202
  items: {
203
203
  type: "string",
204
204
  format: "binary"
205
205
  }
206
- } : E.mode !== "none" && (l[s] = {
206
+ } : b.mode !== "none" && (l[s] = {
207
207
  type: "string",
208
208
  format: "binary"
209
209
  }), c.requestBody = {
@@ -217,38 +217,38 @@ function J(e = {}) {
217
217
  if (N.length > 0) for (const s of N) c.responses[String(s.status)] = {
218
218
  description: s.description || "",
219
219
  ...s.schema ? (() => {
220
- const l = typeof s.schema == "function" || typeof s.schema == "object" ? t(s.schema) : null, A = s.name || `${n.handlerName}Response${s.status}`, h = l ? p(l, A) : typeof s.schema == "object" ? s.schema : void 0;
221
- return h ? { content: { "application/json": { schema: h } } } : {};
220
+ const l = typeof s.schema == "function" || typeof s.schema == "object" ? a(s.schema) : null, y = s.name || `${n.handlerName}Response${s.status}`, f = l ? m(l, y) : typeof s.schema == "object" ? s.schema : void 0;
221
+ return f ? { content: { "application/json": { schema: f } } } : {};
222
222
  })() : {}
223
223
  };
224
224
  else {
225
- const s = b === "post" ? "201" : b === "delete" ? "204" : "200";
225
+ const s = R === "post" ? "201" : R === "delete" ? "204" : "200";
226
226
  c.responses[s] = { description: "Successful operation" }, n.validation?.body && (c.responses[422] = { description: "Validation error" });
227
227
  }
228
- const q = _ || I;
229
- q && (c.security = [{ [q]: [] }], g[q] = {
228
+ const q = B || I;
229
+ q && (c.security = [{ [q]: [] }], E[q] = {
230
230
  type: "http",
231
231
  scheme: "bearer",
232
232
  bearerFormat: "JWT"
233
- }), a.paths[P] || (a.paths[P] = {}), a.paths[P][b] = c;
233
+ }), r.paths[P] || (r.paths[P] = {}), r.paths[P][R] = c;
234
234
  }
235
235
  }
236
- return a.tags = Array.from(m).map((o) => ({ name: o })), a.components.securitySchemes = g, e.bearerAuth && (g.BearerAuth || (a.components.securitySchemes.BearerAuth = {
236
+ return r.tags = Array.from(S).map((o) => ({ name: o })), r.components.securitySchemes = E, e.bearerAuth && (E.BearerAuth || (r.components.securitySchemes.BearerAuth = {
237
237
  type: "http",
238
238
  scheme: "bearer",
239
239
  bearerFormat: "JWT"
240
- }), a.security = [{ BearerAuth: [] }]), a.components.schemas = d, Object.keys(a.components.schemas).length === 0 && delete a.components.schemas, Object.keys(a.components.securitySchemes).length === 0 && delete a.components.securitySchemes, Object.keys(a.components).length === 0 && delete a.components, a;
240
+ }), r.security = [{ BearerAuth: [] }]), r.components.schemas = p, Object.keys(r.components.schemas).length === 0 && delete r.components.schemas, Object.keys(r.components.securitySchemes).length === 0 && delete r.components.securitySchemes, Object.keys(r.components).length === 0 && delete r.components, r;
241
241
  }
242
242
  function j(e) {
243
243
  return e.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;");
244
244
  }
245
- function G(e, r = "API Docs") {
245
+ function G(e, t = "API Docs") {
246
246
  return `<!DOCTYPE html>
247
247
  <html lang="en">
248
248
  <head>
249
249
  <meta charset="UTF-8">
250
250
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
251
- <title>${j(r)}</title>
251
+ <title>${j(t)}</title>
252
252
  <link rel="stylesheet" href="https://unpkg.com/swagger-ui-dist@5/swagger-ui.css">
253
253
  </head>
254
254
  <body>
@@ -268,13 +268,13 @@ function G(e, r = "API Docs") {
268
268
  </body>
269
269
  </html>`;
270
270
  }
271
- function z(e, r = "API Docs") {
271
+ function z(e, t = "API Docs") {
272
272
  return `<!DOCTYPE html>
273
273
  <html lang="en">
274
274
  <head>
275
275
  <meta charset="UTF-8">
276
276
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
277
- <title>${j(r)}</title>
277
+ <title>${j(t)}</title>
278
278
  </head>
279
279
  <body>
280
280
  <redoc spec-url="${j(e)}"></redoc>
@@ -287,46 +287,46 @@ var O = D.for("SwaggerAdapter"), te = class {
287
287
  constructor(e = {}) {
288
288
  this.options = e;
289
289
  }
290
- afterStart(e, r) {
290
+ afterStart({ server: e }) {
291
291
  const t = e?.address?.();
292
292
  if (!t || typeof t != "object") return;
293
- const d = t.address === "::" || t.address === "0.0.0.0" ? "localhost" : t.address;
293
+ const a = t.address === "::" || t.address === "0.0.0.0" ? "localhost" : t.address;
294
294
  (!this.options.servers || this.options.servers.length === 0) && (this.options.servers = [{
295
- url: `http://${d}:${t.port}`,
295
+ url: `http://${a}:${t.port}`,
296
296
  description: "HTTP server"
297
297
  }]);
298
- const u = this.options.adapters?.find((p) => p.name === "WsAdapter" && typeof p.getStats == "function");
299
- if (u) {
300
- const p = u.getStats();
301
- for (const a of Object.keys(p.namespaces || {})) this.options.servers.push({
302
- url: `ws://${d}:${t.port}${a}`,
303
- description: `WebSocket: ${a}`
298
+ const p = this.options.adapters?.find((d) => d.name === "WsAdapter" && typeof d.getStats == "function");
299
+ if (p) {
300
+ const d = p.getStats();
301
+ for (const m of Object.keys(d.namespaces || {})) this.options.servers.push({
302
+ url: `ws://${a}:${t.port}${m}`,
303
+ description: `WebSocket: ${m}`
304
304
  });
305
305
  }
306
306
  }
307
- onRouteMount(e, r) {
308
- F(e, r);
307
+ onRouteMount(e, t) {
308
+ F(e, t);
309
309
  }
310
- beforeMount(e, r) {
310
+ beforeMount({ app: e }) {
311
311
  x();
312
- const t = this.options.docsPath ?? "/docs", d = this.options.redocPath ?? "/redoc", u = this.options.specPath ?? "/openapi.json", p = L();
313
- p.use((a, m, g) => {
314
- m.setHeader("Content-Security-Policy", [
312
+ const t = this.options.docsPath ?? "/docs", a = this.options.redocPath ?? "/redoc", p = this.options.specPath ?? "/openapi.json", d = L();
313
+ d.use((m, r, S) => {
314
+ r.setHeader("Content-Security-Policy", [
315
315
  "default-src 'self'",
316
316
  "script-src 'self' 'unsafe-inline' https://unpkg.com https://cdn.redoc.ly https://cdn.jsdelivr.net",
317
317
  "style-src 'self' 'unsafe-inline' https://unpkg.com https://fonts.googleapis.com",
318
318
  "font-src 'self' https://fonts.gstatic.com",
319
319
  "img-src 'self' data: https://unpkg.com",
320
320
  "connect-src 'self'"
321
- ].join("; ")), g();
322
- }), p.get(u, (a, m) => {
323
- const g = J(this.options);
324
- m.json(g);
325
- }), p.get(t, (a, m) => {
326
- m.type("html").send(G(u, this.options.info?.title));
327
- }), p.get(d, (a, m) => {
328
- m.type("html").send(z(u, this.options.info?.title));
329
- }), e.use(p), O.info(`Swagger UI: ${t}`), O.info(`ReDoc: ${d}`), O.info(`OpenAPI spec: ${u}`);
321
+ ].join("; ")), S();
322
+ }), d.get(p, (m, r) => {
323
+ const S = J(this.options);
324
+ r.json(S);
325
+ }), d.get(t, (m, r) => {
326
+ r.type("html").send(G(p, this.options.info?.title));
327
+ }), d.get(a, (m, r) => {
328
+ r.type("html").send(z(p, this.options.info?.title));
329
+ }), e.use(d), O.info(`Swagger UI: ${t}`), O.info(`ReDoc: ${a}`), O.info(`OpenAPI spec: ${p}`);
330
330
  }
331
331
  };
332
332
  export {
@@ -1,5 +1,4 @@
1
- import type { Express } from 'express';
2
- import { type AppAdapter, type Container } from '@forinda/kickjs-core';
1
+ import { type AppAdapter, type AdapterContext } from '@forinda/kickjs-core';
3
2
  import { registerControllerForDocs, clearRegisteredRoutes, type SwaggerOptions } from './openapi-builder';
4
3
  export interface SwaggerAdapterOptions extends SwaggerOptions {
5
4
  /** Path to serve Swagger UI (default: '/docs') */
@@ -36,10 +35,10 @@ export declare class SwaggerAdapter implements AppAdapter {
36
35
  name: string;
37
36
  constructor(options?: SwaggerAdapterOptions);
38
37
  /** Auto-detect server URLs from the running HTTP server and peer adapters */
39
- afterStart(server: any, _container: Container): void;
38
+ afterStart({ server }: AdapterContext): void;
40
39
  /** Collect controller metadata as routes are mounted */
41
40
  onRouteMount(controllerClass: any, mountPath: string): void;
42
- beforeMount(app: Express, _container: Container): void;
41
+ beforeMount({ app }: AdapterContext): void;
43
42
  }
44
43
  export { registerControllerForDocs, clearRegisteredRoutes };
45
44
  //# sourceMappingURL=swagger.adapter.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"swagger.adapter.d.ts","sourceRoot":"","sources":["../src/swagger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAC9E,OAAO,EAEL,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAK1B,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,YAAW,UAAU;IAGnC,OAAO,CAAC,OAAO;IAF3B,IAAI,SAAmB;gBAEH,OAAO,GAAE,qBAA0B;IAEvD,6EAA6E;IAC7E,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI;IA0BpD,wDAAwD;IACxD,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3D,WAAW,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,GAAG,IAAI;CA+CvD;AAGD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,CAAA"}
1
+ {"version":3,"file":"swagger.adapter.d.ts","sourceRoot":"","sources":["../src/swagger.adapter.ts"],"names":[],"mappings":"AACA,OAAO,EAAU,KAAK,UAAU,EAAE,KAAK,cAAc,EAAE,MAAM,sBAAsB,CAAA;AACnF,OAAO,EAEL,yBAAyB,EACzB,qBAAqB,EACrB,KAAK,cAAc,EACpB,MAAM,mBAAmB,CAAA;AAK1B,MAAM,WAAW,qBAAsB,SAAQ,cAAc;IAC3D,kDAAkD;IAClD,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,6EAA6E;IAC7E,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAA;CACjB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,qBAAa,cAAe,YAAW,UAAU;IAGnC,OAAO,CAAC,OAAO;IAF3B,IAAI,SAAmB;gBAEH,OAAO,GAAE,qBAA0B;IAEvD,6EAA6E;IAC7E,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,IAAI;IA0B5C,wDAAwD;IACxD,YAAY,CAAC,eAAe,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAI3D,WAAW,CAAC,EAAE,GAAG,EAAE,EAAE,cAAc,GAAG,IAAI;CA+C3C;AAGD,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,CAAA"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@forinda/kickjs-swagger",
3
- "version": "1.6.0",
3
+ "version": "1.7.0",
4
4
  "description": "OpenAPI spec generation from decorators, Swagger UI and ReDoc serving for KickJS",
5
5
  "keywords": [
6
6
  "kickjs",
@@ -51,7 +51,7 @@
51
51
  ],
52
52
  "dependencies": {
53
53
  "reflect-metadata": "^0.2.2",
54
- "@forinda/kickjs-core": "1.6.0"
54
+ "@forinda/kickjs-core": "1.7.0"
55
55
  },
56
56
  "peerDependencies": {
57
57
  "express": "^5.1.0",