@tahminator/sapling 2.0.5-beta.2f539758 → 2.0.5-beta.30231b0a

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.cjs CHANGED
@@ -23,6 +23,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
23
23
  //#endregion
24
24
  let express = require("express");
25
25
  express = __toESM(express);
26
+ let swagger_ui_express = require("swagger-ui-express");
27
+ swagger_ui_express = __toESM(swagger_ui_express);
26
28
  //#region src/html/404.ts
27
29
  /**
28
30
  * Default Express.js 404 error page, as a string.
@@ -262,10 +264,13 @@ var ParserError = class ParserError extends ResponseStatusError {
262
264
  };
263
265
  //#endregion
264
266
  //#region src/helper/sapling.ts
265
- const settings = {
267
+ const _settings = {
266
268
  serialize: JSON.stringify,
267
269
  deserialize: JSON.parse,
268
- openapi: { path: "/openapi.json" }
270
+ doc: {
271
+ openApiPath: "/openapi.json",
272
+ swaggerPath: "/swagger.html"
273
+ }
269
274
  };
270
275
  /**
271
276
  * Collection of utility functions which are essential for Sapling to function.
@@ -344,13 +349,13 @@ var Sapling = class Sapling {
344
349
  * @defaultValue `JSON.stringify`
345
350
  */
346
351
  static serialize(value) {
347
- return settings.serialize(value);
352
+ return _settings.serialize(value);
348
353
  }
349
354
  /**
350
355
  * Replace the function used for `serialize`.
351
356
  */
352
357
  static setSerializeFn(fn) {
353
- settings.serialize = fn;
358
+ _settings.serialize = fn;
354
359
  }
355
360
  /**
356
361
  * De-serialize a JSON string back to a JavaScript object.
@@ -362,16 +367,32 @@ var Sapling = class Sapling {
362
367
  * @defaultValue `JSON.parse`
363
368
  */
364
369
  static deserialize(value) {
365
- return settings.deserialize(value);
370
+ return _settings.deserialize(value);
366
371
  }
367
372
  /**
368
373
  * Replace the function used for `deserialize`
369
374
  */
370
375
  static setDeserializeFn(fn) {
371
- settings.deserialize = fn;
376
+ _settings.deserialize = fn;
372
377
  }
373
378
  static setOpenApiPath(path) {
374
- settings.openapi.path = path;
379
+ _settings.doc.openApiPath = path;
380
+ }
381
+ static setSwaggerPath(path) {
382
+ _settings.doc.swaggerPath = path;
383
+ }
384
+ static chainHandlers(handlers, request, response, next, index = 0) {
385
+ if (index >= handlers.length) {
386
+ next();
387
+ return;
388
+ }
389
+ handlers[index]?.(request, response, (err) => {
390
+ if (err) {
391
+ next(err);
392
+ return;
393
+ }
394
+ Sapling.chainHandlers(handlers, request, response, next, index + 1);
395
+ });
375
396
  }
376
397
  };
377
398
  //#endregion
@@ -655,17 +676,22 @@ var OpenAPIGenerator = class {
655
676
  };
656
677
  }
657
678
  toJsonSchema(schema) {
658
- return schema["~standard"].jsonSchema.output({ target: "openapi-3.0" });
679
+ try {
680
+ return schema["~standard"].jsonSchema.output({ target: "openapi-3.0" });
681
+ } catch (e) {
682
+ if (e instanceof Error && e.message.includes("Transforms cannot be represented in JSON Schema")) throw new Error(`${e.message}.\nIt appears that you are using z.transform() - it is highly recommended that you use z.codec instead - https://zod.dev/codecs`);
683
+ throw e;
684
+ }
659
685
  }
660
686
  };
661
687
  const openApiGenerator = new OpenAPIGenerator();
662
688
  function _registerControllerClass(controllerClass, prefix) {
663
689
  openApiGenerator.registerController(controllerClass, prefix);
664
690
  }
665
- function setOpenApiConfig(config) {
691
+ function _setOpenApiConfig(config) {
666
692
  openApiGenerator.setConfig(config);
667
693
  }
668
- function generateOpenApiSpec() {
694
+ function _generateOpenApiSpec() {
669
695
  return openApiGenerator.generateSpec();
670
696
  }
671
697
  //#endregion
@@ -937,12 +963,38 @@ DefaultResponseStatusErrorMiddleware = __decorate([MiddlewareClass()], DefaultRe
937
963
  //#region src/middleware/default/openapi/index.ts
938
964
  let DefaultOpenApiMiddleware = class DefaultOpenApiMiddleware {
939
965
  handle(_request, _response, _next) {
940
- return ResponseEntity.ok().body(generateOpenApiSpec());
966
+ return ResponseEntity.ok().body(_generateOpenApiSpec());
941
967
  }
942
968
  };
943
- __decorate([GET("/openapi.json")], DefaultOpenApiMiddleware.prototype, "handle", null);
969
+ __decorate([GET(_settings.doc.openApiPath)], DefaultOpenApiMiddleware.prototype, "handle", null);
944
970
  DefaultOpenApiMiddleware = __decorate([MiddlewareClass()], DefaultOpenApiMiddleware);
945
971
  //#endregion
972
+ //#region src/middleware/default/swagger/index.ts
973
+ let Serve = class Serve {
974
+ constructor() {
975
+ this.handlers = swagger_ui_express.default.serve;
976
+ }
977
+ handle(request, response, next) {
978
+ return Sapling.chainHandlers(this.handlers, request, response, next);
979
+ }
980
+ };
981
+ __decorate([Middleware(_settings.doc.swaggerPath)], Serve.prototype, "handle", null);
982
+ Serve = __decorate([MiddlewareClass()], Serve);
983
+ let Setup = class Setup {
984
+ constructor() {
985
+ this.handler = swagger_ui_express.default.setup(null, { swaggerOptions: { url: _settings.doc.openApiPath } });
986
+ }
987
+ handle(request, response, next) {
988
+ return this.handler(request, response, next);
989
+ }
990
+ };
991
+ __decorate([Middleware(_settings.doc.swaggerPath)], Setup.prototype, "handle", null);
992
+ Setup = __decorate([MiddlewareClass()], Setup);
993
+ const DefaultSwaggerMiddleware = {
994
+ Serve,
995
+ Setup
996
+ };
997
+ //#endregion
946
998
  exports.Controller = Controller;
947
999
  exports.DELETE = DELETE;
948
1000
  Object.defineProperty(exports, "DefaultBaseErrorMiddleware", {
@@ -969,6 +1021,7 @@ Object.defineProperty(exports, "DefaultResponseStatusErrorMiddleware", {
969
1021
  return DefaultResponseStatusErrorMiddleware;
970
1022
  }
971
1023
  });
1024
+ exports.DefaultSwaggerMiddleware = DefaultSwaggerMiddleware;
972
1025
  exports.GET = GET;
973
1026
  exports.HEAD = HEAD;
974
1027
  exports.Html404ErrorPage = Html404ErrorPage;
@@ -993,12 +1046,13 @@ exports._ControllerRegistry = _ControllerRegistry;
993
1046
  exports._InjectableDeps = _InjectableDeps;
994
1047
  exports._InjectableRegistry = _InjectableRegistry;
995
1048
  exports._Route = _Route;
1049
+ exports._generateOpenApiSpec = _generateOpenApiSpec;
996
1050
  exports._getRequestSchemas = _getRequestSchemas;
997
1051
  exports._getRoutes = _getRoutes;
998
1052
  exports._parseOrThrow = _parseOrThrow;
999
1053
  exports._registerControllerClass = _registerControllerClass;
1000
1054
  exports._resolve = _resolve;
1001
- exports.generateOpenApiSpec = generateOpenApiSpec;
1055
+ exports._setOpenApiConfig = _setOpenApiConfig;
1056
+ exports._settings = _settings;
1002
1057
  exports.methodResolve = methodResolve;
1003
1058
  exports.openApiGenerator = openApiGenerator;
1004
- exports.setOpenApiConfig = setOpenApiConfig;
package/dist/index.d.cts CHANGED
@@ -1,4 +1,4 @@
1
- import e, { ErrorRequestHandler, NextFunction, Request, Response as Response$1, Router } from "express";
1
+ import e, { ErrorRequestHandler, NextFunction, Request, RequestHandler, Response as Response$1, Router } from "express";
2
2
 
3
3
  //#region src/html/404.d.ts
4
4
  /**
@@ -447,6 +447,15 @@ declare class ParserError extends ResponseStatusError {
447
447
  }
448
448
  //#endregion
449
449
  //#region src/helper/sapling.d.ts
450
+ type Settings = {
451
+ serialize: (value: any) => string;
452
+ deserialize: (value: string) => any;
453
+ doc: {
454
+ openApiPath: string;
455
+ swaggerPath: string;
456
+ };
457
+ };
458
+ declare const _settings: Settings;
450
459
  /**
451
460
  * Collection of utility functions which are essential for Sapling to function.
452
461
  */
@@ -521,6 +530,8 @@ declare class Sapling {
521
530
  */
522
531
  static setDeserializeFn(this: void, fn: (value: string) => any): void;
523
532
  static setOpenApiPath(this: void, path: string): void;
533
+ static setSwaggerPath(this: void, path: string): void;
534
+ static chainHandlers(this: void, handlers: RequestHandler[], request: Request, response: Response$1, next: NextFunction, index?: number): void;
524
535
  }
525
536
  //#endregion
526
537
  //#region node_modules/.pnpm/openapi-types@12.1.3/node_modules/openapi-types/dist/index.d.ts
@@ -859,8 +870,8 @@ declare class OpenAPIGenerator {
859
870
  }
860
871
  declare const openApiGenerator: OpenAPIGenerator;
861
872
  declare function _registerControllerClass(controllerClass: Function, prefix: string): void;
862
- declare function setOpenApiConfig(config: OpenAPIConfig): void;
863
- declare function generateOpenApiSpec(): OpenAPIV3.Document;
873
+ declare function _setOpenApiConfig(config: OpenAPIConfig): void;
874
+ declare function _generateOpenApiSpec(): OpenAPIV3.Document;
864
875
  //#endregion
865
876
  //#region src/annotation/request.d.ts
866
877
  type RequestSchemaDefinition = {
@@ -979,4 +990,19 @@ declare class DefaultOpenApiMiddleware {
979
990
  handle(_request: Request, _response: Response$1, _next: NextFunction): ResponseEntity<OpenAPIV3.Document<{}>>;
980
991
  }
981
992
  //#endregion
982
- export { Class, Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, ExpressMiddlewareFn, ExpressRouterMethodKey, ExpressRouterMethods, GET, HEAD, Html404ErrorPage, HttpHeaders, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, ParserErrorLocation, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, RouteDefinition, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, generateOpenApiSpec, methodResolve, openApiGenerator, setOpenApiConfig };
993
+ //#region src/middleware/default/swagger/index.d.ts
994
+ declare class Serve {
995
+ private readonly handlers;
996
+ handle(request: Request, response: Response$1, next: NextFunction): void;
997
+ }
998
+ declare class Setup {
999
+ private readonly handler;
1000
+ constructor();
1001
+ handle(request: Request, response: Response$1, next: NextFunction): unknown;
1002
+ }
1003
+ declare const DefaultSwaggerMiddleware: {
1004
+ Serve: typeof Serve;
1005
+ Setup: typeof Setup;
1006
+ };
1007
+ //#endregion
1008
+ export { Class, Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, DefaultSwaggerMiddleware, ExpressMiddlewareFn, ExpressRouterMethodKey, ExpressRouterMethods, GET, HEAD, Html404ErrorPage, HttpHeaders, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, ParserErrorLocation, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, RouteDefinition, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _generateOpenApiSpec, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, _setOpenApiConfig, _settings, methodResolve, openApiGenerator };
package/dist/index.d.mts CHANGED
@@ -1,4 +1,4 @@
1
- import e, { ErrorRequestHandler, NextFunction, Request, Response as Response$1, Router } from "express";
1
+ import e, { ErrorRequestHandler, NextFunction, Request, RequestHandler, Response as Response$1, Router } from "express";
2
2
 
3
3
  //#region src/html/404.d.ts
4
4
  /**
@@ -447,6 +447,15 @@ declare class ParserError extends ResponseStatusError {
447
447
  }
448
448
  //#endregion
449
449
  //#region src/helper/sapling.d.ts
450
+ type Settings = {
451
+ serialize: (value: any) => string;
452
+ deserialize: (value: string) => any;
453
+ doc: {
454
+ openApiPath: string;
455
+ swaggerPath: string;
456
+ };
457
+ };
458
+ declare const _settings: Settings;
450
459
  /**
451
460
  * Collection of utility functions which are essential for Sapling to function.
452
461
  */
@@ -521,6 +530,8 @@ declare class Sapling {
521
530
  */
522
531
  static setDeserializeFn(this: void, fn: (value: string) => any): void;
523
532
  static setOpenApiPath(this: void, path: string): void;
533
+ static setSwaggerPath(this: void, path: string): void;
534
+ static chainHandlers(this: void, handlers: RequestHandler[], request: Request, response: Response$1, next: NextFunction, index?: number): void;
524
535
  }
525
536
  //#endregion
526
537
  //#region node_modules/.pnpm/openapi-types@12.1.3/node_modules/openapi-types/dist/index.d.ts
@@ -859,8 +870,8 @@ declare class OpenAPIGenerator {
859
870
  }
860
871
  declare const openApiGenerator: OpenAPIGenerator;
861
872
  declare function _registerControllerClass(controllerClass: Function, prefix: string): void;
862
- declare function setOpenApiConfig(config: OpenAPIConfig): void;
863
- declare function generateOpenApiSpec(): OpenAPIV3.Document;
873
+ declare function _setOpenApiConfig(config: OpenAPIConfig): void;
874
+ declare function _generateOpenApiSpec(): OpenAPIV3.Document;
864
875
  //#endregion
865
876
  //#region src/annotation/request.d.ts
866
877
  type RequestSchemaDefinition = {
@@ -979,4 +990,19 @@ declare class DefaultOpenApiMiddleware {
979
990
  handle(_request: Request, _response: Response$1, _next: NextFunction): ResponseEntity<OpenAPIV3.Document<{}>>;
980
991
  }
981
992
  //#endregion
982
- export { Class, Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, ExpressMiddlewareFn, ExpressRouterMethodKey, ExpressRouterMethods, GET, HEAD, Html404ErrorPage, HttpHeaders, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, ParserErrorLocation, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, RouteDefinition, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, generateOpenApiSpec, methodResolve, openApiGenerator, setOpenApiConfig };
993
+ //#region src/middleware/default/swagger/index.d.ts
994
+ declare class Serve {
995
+ private readonly handlers;
996
+ handle(request: Request, response: Response$1, next: NextFunction): void;
997
+ }
998
+ declare class Setup {
999
+ private readonly handler;
1000
+ constructor();
1001
+ handle(request: Request, response: Response$1, next: NextFunction): unknown;
1002
+ }
1003
+ declare const DefaultSwaggerMiddleware: {
1004
+ Serve: typeof Serve;
1005
+ Setup: typeof Setup;
1006
+ };
1007
+ //#endregion
1008
+ export { Class, Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, DefaultSwaggerMiddleware, ExpressMiddlewareFn, ExpressRouterMethodKey, ExpressRouterMethods, GET, HEAD, Html404ErrorPage, HttpHeaders, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, ParserErrorLocation, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, RouteDefinition, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _generateOpenApiSpec, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, _setOpenApiConfig, _settings, methodResolve, openApiGenerator };
package/dist/index.mjs CHANGED
@@ -1,4 +1,5 @@
1
1
  import e, { Router } from "express";
2
+ import swagger from "swagger-ui-express";
2
3
  //#region src/html/404.ts
3
4
  /**
4
5
  * Default Express.js 404 error page, as a string.
@@ -238,10 +239,13 @@ var ParserError = class ParserError extends ResponseStatusError {
238
239
  };
239
240
  //#endregion
240
241
  //#region src/helper/sapling.ts
241
- const settings = {
242
+ const _settings = {
242
243
  serialize: JSON.stringify,
243
244
  deserialize: JSON.parse,
244
- openapi: { path: "/openapi.json" }
245
+ doc: {
246
+ openApiPath: "/openapi.json",
247
+ swaggerPath: "/swagger.html"
248
+ }
245
249
  };
246
250
  /**
247
251
  * Collection of utility functions which are essential for Sapling to function.
@@ -320,13 +324,13 @@ var Sapling = class Sapling {
320
324
  * @defaultValue `JSON.stringify`
321
325
  */
322
326
  static serialize(value) {
323
- return settings.serialize(value);
327
+ return _settings.serialize(value);
324
328
  }
325
329
  /**
326
330
  * Replace the function used for `serialize`.
327
331
  */
328
332
  static setSerializeFn(fn) {
329
- settings.serialize = fn;
333
+ _settings.serialize = fn;
330
334
  }
331
335
  /**
332
336
  * De-serialize a JSON string back to a JavaScript object.
@@ -338,16 +342,32 @@ var Sapling = class Sapling {
338
342
  * @defaultValue `JSON.parse`
339
343
  */
340
344
  static deserialize(value) {
341
- return settings.deserialize(value);
345
+ return _settings.deserialize(value);
342
346
  }
343
347
  /**
344
348
  * Replace the function used for `deserialize`
345
349
  */
346
350
  static setDeserializeFn(fn) {
347
- settings.deserialize = fn;
351
+ _settings.deserialize = fn;
348
352
  }
349
353
  static setOpenApiPath(path) {
350
- settings.openapi.path = path;
354
+ _settings.doc.openApiPath = path;
355
+ }
356
+ static setSwaggerPath(path) {
357
+ _settings.doc.swaggerPath = path;
358
+ }
359
+ static chainHandlers(handlers, request, response, next, index = 0) {
360
+ if (index >= handlers.length) {
361
+ next();
362
+ return;
363
+ }
364
+ handlers[index]?.(request, response, (err) => {
365
+ if (err) {
366
+ next(err);
367
+ return;
368
+ }
369
+ Sapling.chainHandlers(handlers, request, response, next, index + 1);
370
+ });
351
371
  }
352
372
  };
353
373
  //#endregion
@@ -631,17 +651,22 @@ var OpenAPIGenerator = class {
631
651
  };
632
652
  }
633
653
  toJsonSchema(schema) {
634
- return schema["~standard"].jsonSchema.output({ target: "openapi-3.0" });
654
+ try {
655
+ return schema["~standard"].jsonSchema.output({ target: "openapi-3.0" });
656
+ } catch (e) {
657
+ if (e instanceof Error && e.message.includes("Transforms cannot be represented in JSON Schema")) throw new Error(`${e.message}.\nIt appears that you are using z.transform() - it is highly recommended that you use z.codec instead - https://zod.dev/codecs`);
658
+ throw e;
659
+ }
635
660
  }
636
661
  };
637
662
  const openApiGenerator = new OpenAPIGenerator();
638
663
  function _registerControllerClass(controllerClass, prefix) {
639
664
  openApiGenerator.registerController(controllerClass, prefix);
640
665
  }
641
- function setOpenApiConfig(config) {
666
+ function _setOpenApiConfig(config) {
642
667
  openApiGenerator.setConfig(config);
643
668
  }
644
- function generateOpenApiSpec() {
669
+ function _generateOpenApiSpec() {
645
670
  return openApiGenerator.generateSpec();
646
671
  }
647
672
  //#endregion
@@ -913,10 +938,36 @@ DefaultResponseStatusErrorMiddleware = __decorate([MiddlewareClass()], DefaultRe
913
938
  //#region src/middleware/default/openapi/index.ts
914
939
  let DefaultOpenApiMiddleware = class DefaultOpenApiMiddleware {
915
940
  handle(_request, _response, _next) {
916
- return ResponseEntity.ok().body(generateOpenApiSpec());
941
+ return ResponseEntity.ok().body(_generateOpenApiSpec());
917
942
  }
918
943
  };
919
- __decorate([GET("/openapi.json")], DefaultOpenApiMiddleware.prototype, "handle", null);
944
+ __decorate([GET(_settings.doc.openApiPath)], DefaultOpenApiMiddleware.prototype, "handle", null);
920
945
  DefaultOpenApiMiddleware = __decorate([MiddlewareClass()], DefaultOpenApiMiddleware);
921
946
  //#endregion
922
- export { Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, GET, HEAD, Html404ErrorPage, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, generateOpenApiSpec, methodResolve, openApiGenerator, setOpenApiConfig };
947
+ //#region src/middleware/default/swagger/index.ts
948
+ let Serve = class Serve {
949
+ constructor() {
950
+ this.handlers = swagger.serve;
951
+ }
952
+ handle(request, response, next) {
953
+ return Sapling.chainHandlers(this.handlers, request, response, next);
954
+ }
955
+ };
956
+ __decorate([Middleware(_settings.doc.swaggerPath)], Serve.prototype, "handle", null);
957
+ Serve = __decorate([MiddlewareClass()], Serve);
958
+ let Setup = class Setup {
959
+ constructor() {
960
+ this.handler = swagger.setup(null, { swaggerOptions: { url: _settings.doc.openApiPath } });
961
+ }
962
+ handle(request, response, next) {
963
+ return this.handler(request, response, next);
964
+ }
965
+ };
966
+ __decorate([Middleware(_settings.doc.swaggerPath)], Setup.prototype, "handle", null);
967
+ Setup = __decorate([MiddlewareClass()], Setup);
968
+ const DefaultSwaggerMiddleware = {
969
+ Serve,
970
+ Setup
971
+ };
972
+ //#endregion
973
+ export { Controller, DELETE, DefaultBaseErrorMiddleware, DefaultOpenApiMiddleware, DefaultParserErrorMiddleware, DefaultResponseStatusErrorMiddleware, DefaultSwaggerMiddleware, GET, HEAD, Html404ErrorPage, HttpStatus, Injectable, Middleware, MiddlewareClass, OPTIONS, PATCH, POST, PUT, ParserError, RedirectView, RequestBody, RequestParam, RequestQuery, ResponseEntity, ResponseEntityBuilder, ResponseStatusError, Sapling, _ControllerRegistry, _InjectableDeps, _InjectableRegistry, _Route, _generateOpenApiSpec, _getRequestSchemas, _getRoutes, _parseOrThrow, _registerControllerClass, _resolve, _setOpenApiConfig, _settings, methodResolve, openApiGenerator };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tahminator/sapling",
3
- "version": "2.0.5-beta.2f539758",
3
+ "version": "2.0.5-beta.30231b0a",
4
4
  "author": "Tahmid Ahmed",
5
5
  "description": "A library to help you write cleaner Express.js code",
6
6
  "repository": {
@@ -44,13 +44,14 @@
44
44
  "@standard-schema/spec": "^1.1.0",
45
45
  "@types/express": "^5",
46
46
  "@types/supertest": "^7.2.0",
47
+ "@types/swagger-ui-express": "^4.1.8",
47
48
  "@vitest/coverage-istanbul": "^4.1.2",
48
- "openapi-types": "12.1.3",
49
49
  "eslint": "^10.1.0",
50
50
  "eslint-plugin-perfectionist": "^5.7.0",
51
51
  "globals": "^17.4.0",
52
52
  "jiti": "^2.6.1",
53
53
  "jsdom": "^29.0.1",
54
+ "openapi-types": "12.1.3",
54
55
  "prettier": "^3.8.1",
55
56
  "superjson": "^2.2.6",
56
57
  "supertest": "^7.2.2",
@@ -63,5 +64,8 @@
63
64
  "inlinedDependencies": {
64
65
  "@standard-schema/spec": "1.1.0",
65
66
  "openapi-types": "12.1.3"
67
+ },
68
+ "dependencies": {
69
+ "swagger-ui-express": "^5.0.1"
66
70
  }
67
71
  }