jimpex 10.0.0 → 10.0.2

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 (77) hide show
  1. package/CHANGELOG.md +16 -0
  2. package/dist/app/jimpex.js +8 -18
  3. package/dist/app/jimpex.js.map +1 -1
  4. package/dist/controllers/common/config.js +1 -4
  5. package/dist/controllers/common/config.js.map +1 -1
  6. package/dist/controllers/common/health.js +1 -4
  7. package/dist/controllers/common/health.js.map +1 -1
  8. package/dist/controllers/common/statics.js +1 -4
  9. package/dist/controllers/common/statics.js.map +1 -1
  10. package/dist/controllers/utils/gateway.js +1 -4
  11. package/dist/controllers/utils/gateway.js.map +1 -1
  12. package/dist/esm/app/jimpex.js +8 -15
  13. package/dist/esm/app/jimpex.js.map +1 -1
  14. package/dist/esm/{chunk-F3FYYIAV.js → chunk-V6TY7KAL.js} +2 -5
  15. package/dist/esm/controllers/common/config.js +1 -1
  16. package/dist/esm/controllers/common/health.js +1 -1
  17. package/dist/esm/controllers/common/statics.js +1 -1
  18. package/dist/esm/controllers/utils/gateway.js +1 -1
  19. package/dist/esm/middlewares/common/errorHandler.js +1 -1
  20. package/dist/esm/middlewares/common/forceHTTPS.js +2 -3
  21. package/dist/esm/middlewares/common/forceHTTPS.js.map +1 -1
  22. package/dist/esm/middlewares/common/hsts.js +1 -1
  23. package/dist/esm/middlewares/html/fastHTML.js +2 -3
  24. package/dist/esm/middlewares/html/fastHTML.js.map +1 -1
  25. package/dist/esm/middlewares/html/showHTML.js +1 -1
  26. package/dist/esm/middlewares/utils/versionValidator.js +1 -1
  27. package/dist/esm/services/common/appError.js +1 -1
  28. package/dist/esm/services/common/httpError.js +1 -1
  29. package/dist/esm/services/common/index.js +1 -1
  30. package/dist/esm/services/common/sendFile.js +1 -1
  31. package/dist/esm/services/frontend/frontendFs.js +1 -1
  32. package/dist/esm/services/frontend/index.js +1 -1
  33. package/dist/esm/services/html/htmlGenerator.js +3 -5
  34. package/dist/esm/services/html/htmlGenerator.js.map +1 -1
  35. package/dist/esm/services/html/index.js +1 -1
  36. package/dist/esm/services/http/apiClient.js +4 -7
  37. package/dist/esm/services/http/apiClient.js.map +1 -1
  38. package/dist/esm/services/http/http.js +1 -1
  39. package/dist/esm/services/http/index.js +1 -1
  40. package/dist/esm/services/http/responsesBuilder.js +2 -2
  41. package/dist/esm/services/http/responsesBuilder.js.map +1 -1
  42. package/dist/esm/services/utils/ensureBearerToken.js +1 -1
  43. package/dist/esm/services/utils/index.js +1 -1
  44. package/dist/esm/utils/fns/others.js +1 -1
  45. package/dist/esm/utils/fns/routes.js +1 -1
  46. package/dist/esm/utils/fns/statuses.js +1 -1
  47. package/dist/esm/utils/fns/text.js +1 -1
  48. package/dist/esm/utils/wrappers.js +1 -1
  49. package/dist/middlewares/common/errorHandler.js +1 -4
  50. package/dist/middlewares/common/errorHandler.js.map +1 -1
  51. package/dist/middlewares/common/forceHTTPS.js +2 -6
  52. package/dist/middlewares/common/forceHTTPS.js.map +1 -1
  53. package/dist/middlewares/common/hsts.js +1 -4
  54. package/dist/middlewares/common/hsts.js.map +1 -1
  55. package/dist/middlewares/html/fastHTML.js +2 -6
  56. package/dist/middlewares/html/fastHTML.js.map +1 -1
  57. package/dist/middlewares/html/showHTML.js +1 -4
  58. package/dist/middlewares/html/showHTML.js.map +1 -1
  59. package/dist/middlewares/utils/versionValidator.js +1 -4
  60. package/dist/middlewares/utils/versionValidator.js.map +1 -1
  61. package/dist/services/common/appError.js +1 -4
  62. package/dist/services/common/appError.js.map +1 -1
  63. package/dist/services/frontend/frontendFs.js +1 -4
  64. package/dist/services/frontend/frontendFs.js.map +1 -1
  65. package/dist/services/html/htmlGenerator.js +3 -8
  66. package/dist/services/html/htmlGenerator.js.map +1 -1
  67. package/dist/services/http/apiClient.js +4 -10
  68. package/dist/services/http/apiClient.js.map +1 -1
  69. package/dist/services/http/http.js +1 -4
  70. package/dist/services/http/http.js.map +1 -1
  71. package/dist/services/http/responsesBuilder.js +2 -5
  72. package/dist/services/http/responsesBuilder.js.map +1 -1
  73. package/dist/services/utils/ensureBearerToken.js +1 -4
  74. package/dist/services/utils/ensureBearerToken.js.map +1 -1
  75. package/package.json +39 -39
  76. package/src/services/http/responsesBuilder.ts +1 -1
  77. /package/dist/esm/{chunk-F3FYYIAV.js.map → chunk-V6TY7KAL.js.map} +0 -0
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/services/utils/ensureBearerToken.ts"],"sourcesContent":["import { deepAssignWithOverwrite } from '@homer0/deep-assign';\nimport { providerCreator, type Statuses } from '../../utils';\nimport type { HTTPErrorClass } from '../common';\nimport type { DeepPartial, ExpressMiddleware } from '../../types';\n/**\n * The options for the error the middleare can generate.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenErrorOptions = {\n /**\n * The error message for the response.\n *\n * @default 'Unauthorized'\n */\n message: string;\n /**\n * The HTTP status that will be added to the error context.\n *\n * @default 401\n */\n status: number;\n /**\n * Context information for the error handler and that can be added to the actual\n * response.\n */\n response: unknown;\n};\n/**\n * The options to customize the service/middleware.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenOptions = {\n error: EnsureBearerTokenErrorOptions;\n expression: RegExp;\n local: string;\n};\n/**\n * The options to construct a {@link EnsureBearerToken}.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerConstructorOptions = DeepPartial<EnsureBearerTokenOptions> & {\n /**\n * A dictionary with the dependencies to inject.\n */\n inject: {\n HTTPError: HTTPErrorClass;\n statuses: Statuses;\n };\n};\n/**\n * Custom options for the provider that will register an instance of\n * {@link EnsureBearerToken}\n * as a service.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenProviderOptions = DeepPartial<EnsureBearerTokenOptions> & {\n /**\n * The name that will be used to register the service on the container. This is to allow\n * multiple \"instances\" of the service to be created.\n *\n * @default 'ensureBearerToken'\n */\n serviceName?: string;\n};\n/**\n * This service gives you a middleware that verifies if a request has an `Authorization`\n * header with a bearer token; if it does, the token will be saved on the `res.locals`,\n * otherwise, it will generate an error.\n *\n * This is a \"service middleware\" to allow certain flexibility: you can have controllers\n * where some routes are protected and others are not. For those cases, you get the\n * service from the container, and include it only in the routes that need it.\n *\n * @group Services\n * @group Services/EnsureBearerToken\n */\nexport class EnsureBearerToken {\n /**\n * To generate the errors when the validation fails.\n */\n protected readonly _HTTPError: HTTPErrorClass;\n /**\n * The customization options for the service.\n */\n protected readonly _options: EnsureBearerTokenOptions;\n /**\n * @param options The options to construct the class.\n */\n constructor({\n inject: { HTTPError, statuses },\n ...options\n }: EnsureBearerConstructorOptions) {\n this._HTTPError = HTTPError;\n this._options = deepAssignWithOverwrite(\n {\n error: {\n message: 'Unauthorized',\n status: statuses('unauthorized'),\n response: {},\n },\n expression: /bearer (.*?)(?:$|\\s)/i,\n local: 'token',\n },\n options,\n );\n }\n /**\n * Generates the middleware that verifies if a request has an `Authorization` header\n * with a bearer token.\n */\n getMiddleware(): ExpressMiddleware {\n return (req, res, next) => {\n let unauthorized = true;\n const {\n headers: { authorization },\n } = req;\n if (authorization) {\n const matches = this._options.expression.exec(authorization);\n if (matches) {\n const [, token] = matches;\n res.locals[this._options.local] = token;\n unauthorized = false;\n }\n }\n\n if (unauthorized) {\n const {\n error: { message, status, response },\n } = this._options;\n next(\n new this._HTTPError(message, status, {\n response,\n }),\n );\n } else {\n next();\n }\n };\n }\n /**\n * The customization options.\n */\n get options(): Readonly<EnsureBearerTokenOptions> {\n return deepAssignWithOverwrite({}, this._options);\n }\n}\n/**\n * Generates a \"service middleware\" that can be used on route controllers in order to\n * validate the presence of a bearer token on the requests authorization header.\n *\n * The registered service is an instance of {@link EnsureBearerToken}, and it uses the key\n * `ensureBearerToken`.\n *\n * Since it's a \"provider creator\", when registering it, you can pass custom options.\n *\n * @example\n *\n * <caption>Basic usage</caption>\n *\n * // Register it on the container\n * container.register(ensureBearerTokenProvider);\n *\n * // Let's assume we are in a controller now...\n * // Getting access to the middleware.\n * const ensureBearerToken = container.get<ExpressMiddleware>('ensureBearerToken');\n *\n * @example\n *\n * <caption>Customizing the service</caption>\n *\n * // Register it on the container\n * container.register(\n * ensureBearerTokenProvider({\n * serviceName: 'ensureBearerTokenCustom',\n * error: {\n * message: 'Missing token!',\n * },\n * }),\n * );\n *\n * @group Providers\n * @group Services/EnsureBearerToken\n */\nexport const ensureBearerTokenProvider = providerCreator(\n (options: EnsureBearerTokenProviderOptions = {}) =>\n (app) => {\n const { serviceName = 'ensureBearerToken', ...rest } = options;\n app.set(serviceName, () =>\n new EnsureBearerToken({\n inject: {\n HTTPError: app.get('HTTPError'),\n statuses: app.get('statuses'),\n },\n ...rest,\n }).getMiddleware(),\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwC;AACxC,mBAA+C;AA+ExC,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAY7B,YAAY;AAAA,IACV,QAAQ,EAAE,WAAW,SAAS;AAAA,IAC9B,GAAG;AAAA,EACL,GAAmC;AAXnC;AAAA;AAAA;AAAA,wBAAmB;AAInB;AAAA;AAAA;AAAA,wBAAmB;AAQjB,SAAK,aAAa;AAClB,SAAK,eAAW;AAAA,MACd;AAAA,QACE,OAAO;AAAA,UACL,SAAS;AAAA,UACT,QAAQ,SAAS,cAAc;AAAA,UAC/B,UAAU,CAAC;AAAA,QACb;AAAA,QACA,YAAY;AAAA,QACZ,OAAO;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAmC;AACjC,WAAO,CAAC,KAAK,KAAK,SAAS;AACzB,UAAI,eAAe;AACnB,YAAM;AAAA,QACJ,SAAS,EAAE,cAAc;AAAA,MAC3B,IAAI;AACJ,UAAI,eAAe;AACjB,cAAM,UAAU,KAAK,SAAS,WAAW,KAAK,aAAa;AAC3D,YAAI,SAAS;AACX,gBAAM,CAAC,EAAE,KAAK,IAAI;AAClB,cAAI,OAAO,KAAK,SAAS,KAAK,IAAI;AAClC,yBAAe;AAAA,QACjB;AAAA,MACF;AAEA,UAAI,cAAc;AAChB,cAAM;AAAA,UACJ,OAAO,EAAE,SAAS,QAAQ,SAAS;AAAA,QACrC,IAAI,KAAK;AACT;AAAA,UACE,IAAI,KAAK,WAAW,SAAS,QAAQ;AAAA,YACnC;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,OAAO;AACL,aAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,UAA8C;AAChD,eAAO,4CAAwB,CAAC,GAAG,KAAK,QAAQ;AAAA,EAClD;AACF;AAsCO,MAAM,gCAA4B;AAAA,EACvC,CAAC,UAA4C,CAAC,MAC5C,CAAC,QAAQ;AACP,UAAM,EAAE,cAAc,qBAAqB,GAAG,KAAK,IAAI;AACvD,QAAI;AAAA,MAAI;AAAA,MAAa,MACnB,IAAI,kBAAkB;AAAA,QACpB,QAAQ;AAAA,UACN,WAAW,IAAI,IAAI,WAAW;AAAA,UAC9B,UAAU,IAAI,IAAI,UAAU;AAAA,QAC9B;AAAA,QACA,GAAG;AAAA,MACL,CAAC,EAAE,cAAc;AAAA,IACnB;AAAA,EACF;AACJ;","names":[]}
1
+ {"version":3,"sources":["../../../src/services/utils/ensureBearerToken.ts"],"sourcesContent":["import { deepAssignWithOverwrite } from '@homer0/deep-assign';\nimport { providerCreator, type Statuses } from '../../utils';\nimport type { HTTPErrorClass } from '../common';\nimport type { DeepPartial, ExpressMiddleware } from '../../types';\n/**\n * The options for the error the middleare can generate.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenErrorOptions = {\n /**\n * The error message for the response.\n *\n * @default 'Unauthorized'\n */\n message: string;\n /**\n * The HTTP status that will be added to the error context.\n *\n * @default 401\n */\n status: number;\n /**\n * Context information for the error handler and that can be added to the actual\n * response.\n */\n response: unknown;\n};\n/**\n * The options to customize the service/middleware.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenOptions = {\n error: EnsureBearerTokenErrorOptions;\n expression: RegExp;\n local: string;\n};\n/**\n * The options to construct a {@link EnsureBearerToken}.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerConstructorOptions = DeepPartial<EnsureBearerTokenOptions> & {\n /**\n * A dictionary with the dependencies to inject.\n */\n inject: {\n HTTPError: HTTPErrorClass;\n statuses: Statuses;\n };\n};\n/**\n * Custom options for the provider that will register an instance of\n * {@link EnsureBearerToken}\n * as a service.\n *\n * @group Services/EnsureBearerToken\n */\nexport type EnsureBearerTokenProviderOptions = DeepPartial<EnsureBearerTokenOptions> & {\n /**\n * The name that will be used to register the service on the container. This is to allow\n * multiple \"instances\" of the service to be created.\n *\n * @default 'ensureBearerToken'\n */\n serviceName?: string;\n};\n/**\n * This service gives you a middleware that verifies if a request has an `Authorization`\n * header with a bearer token; if it does, the token will be saved on the `res.locals`,\n * otherwise, it will generate an error.\n *\n * This is a \"service middleware\" to allow certain flexibility: you can have controllers\n * where some routes are protected and others are not. For those cases, you get the\n * service from the container, and include it only in the routes that need it.\n *\n * @group Services\n * @group Services/EnsureBearerToken\n */\nexport class EnsureBearerToken {\n /**\n * To generate the errors when the validation fails.\n */\n protected readonly _HTTPError: HTTPErrorClass;\n /**\n * The customization options for the service.\n */\n protected readonly _options: EnsureBearerTokenOptions;\n /**\n * @param options The options to construct the class.\n */\n constructor({\n inject: { HTTPError, statuses },\n ...options\n }: EnsureBearerConstructorOptions) {\n this._HTTPError = HTTPError;\n this._options = deepAssignWithOverwrite(\n {\n error: {\n message: 'Unauthorized',\n status: statuses('unauthorized'),\n response: {},\n },\n expression: /bearer (.*?)(?:$|\\s)/i,\n local: 'token',\n },\n options,\n );\n }\n /**\n * Generates the middleware that verifies if a request has an `Authorization` header\n * with a bearer token.\n */\n getMiddleware(): ExpressMiddleware {\n return (req, res, next) => {\n let unauthorized = true;\n const {\n headers: { authorization },\n } = req;\n if (authorization) {\n const matches = this._options.expression.exec(authorization);\n if (matches) {\n const [, token] = matches;\n res.locals[this._options.local] = token;\n unauthorized = false;\n }\n }\n\n if (unauthorized) {\n const {\n error: { message, status, response },\n } = this._options;\n next(\n new this._HTTPError(message, status, {\n response,\n }),\n );\n } else {\n next();\n }\n };\n }\n /**\n * The customization options.\n */\n get options(): Readonly<EnsureBearerTokenOptions> {\n return deepAssignWithOverwrite({}, this._options);\n }\n}\n/**\n * Generates a \"service middleware\" that can be used on route controllers in order to\n * validate the presence of a bearer token on the requests authorization header.\n *\n * The registered service is an instance of {@link EnsureBearerToken}, and it uses the key\n * `ensureBearerToken`.\n *\n * Since it's a \"provider creator\", when registering it, you can pass custom options.\n *\n * @example\n *\n * <caption>Basic usage</caption>\n *\n * // Register it on the container\n * container.register(ensureBearerTokenProvider);\n *\n * // Let's assume we are in a controller now...\n * // Getting access to the middleware.\n * const ensureBearerToken = container.get<ExpressMiddleware>('ensureBearerToken');\n *\n * @example\n *\n * <caption>Customizing the service</caption>\n *\n * // Register it on the container\n * container.register(\n * ensureBearerTokenProvider({\n * serviceName: 'ensureBearerTokenCustom',\n * error: {\n * message: 'Missing token!',\n * },\n * }),\n * );\n *\n * @group Providers\n * @group Services/EnsureBearerToken\n */\nexport const ensureBearerTokenProvider = providerCreator(\n (options: EnsureBearerTokenProviderOptions = {}) =>\n (app) => {\n const { serviceName = 'ensureBearerToken', ...rest } = options;\n app.set(serviceName, () =>\n new EnsureBearerToken({\n inject: {\n HTTPError: app.get('HTTPError'),\n statuses: app.get('statuses'),\n },\n ...rest,\n }).getMiddleware(),\n );\n },\n);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAAwC;AACxC,mBAA+C;AA+ExC,MAAM,kBAAkB;AAAA;AAAA;AAAA;AAAA,EAY7B,YAAY;AAAA,IACV,QAAQ,EAAE,WAAW,SAAS;AAAA,IAC9B,GAAG;AAAA,EACL,GAAmC;AAXnC;AAAA;AAAA;AAAA,wBAAmB;AAInB;AAAA;AAAA;AAAA,wBAAmB;AAQjB,SAAK,aAAa;AAClB,SAAK,eAAW;AAAA,MACd;AAAA,QACE,OAAO;AAAA,UACL,SAAS;AAAA,UACT,QAAQ,SAAS,cAAc;AAAA,UAC/B,UAAU,CAAC;AAAA,QACb;AAAA,QACA,YAAY;AAAA,QACZ,OAAO;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAmC;AACjC,WAAO,CAAC,KAAK,KAAK,SAAS;AACzB,UAAI,eAAe;AACnB,YAAM;AAAA,QACJ,SAAS,EAAE,cAAc;AAAA,MAC3B,IAAI;AACJ,UAAI,eAAe;AACjB,cAAM,UAAU,KAAK,SAAS,WAAW,KAAK,aAAa;AAC3D,YAAI,SAAS;AACX,gBAAM,CAAC,EAAE,KAAK,IAAI;AAClB,cAAI,OAAO,KAAK,SAAS,KAAK,IAAI;AAClC,yBAAe;AAAA,QACjB;AAAA,MACF;AAEA,UAAI,cAAc;AAChB,cAAM;AAAA,UACJ,OAAO,EAAE,SAAS,QAAQ,SAAS;AAAA,QACrC,IAAI,KAAK;AACT;AAAA,UACE,IAAI,KAAK,WAAW,SAAS,QAAQ;AAAA,YACnC;AAAA,UACF,CAAC;AAAA,QACH;AAAA,MACF,OAAO;AACL,aAAK;AAAA,MACP;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAIA,IAAI,UAA8C;AAChD,eAAO,4CAAwB,CAAC,GAAG,KAAK,QAAQ;AAAA,EAClD;AACF;AAsCO,MAAM,gCAA4B;AAAA,EACvC,CAAC,UAA4C,CAAC,MAC5C,CAAC,QAAQ;AACP,UAAM,EAAE,cAAc,qBAAqB,GAAG,KAAK,IAAI;AACvD,QAAI;AAAA,MAAI;AAAA,MAAa,MACnB,IAAI,kBAAkB;AAAA,QACpB,QAAQ;AAAA,UACN,WAAW,IAAI,IAAI,WAAW;AAAA,UAC9B,UAAU,IAAI,IAAI,UAAU;AAAA,QAC9B;AAAA,QACA,GAAG;AAAA,MACL,CAAC,EAAE,cAAc;AAAA,IACnB;AAAA,EACF;AACJ;","names":[]}
package/package.json CHANGED
@@ -2,68 +2,68 @@
2
2
  "name": "jimpex",
3
3
  "description": "Express as dependency injection container.",
4
4
  "homepage": "https://homer0.github.io/jimpex/",
5
- "version": "10.0.0",
5
+ "version": "10.0.2",
6
6
  "repository": "homer0/jimpex",
7
7
  "author": "Leonardo Apiwan (@homer0) <me@homer0.com>",
8
8
  "license": "MIT",
9
9
  "dependencies": {
10
- "@homer0/api-utils": "^3.0.4",
11
- "@homer0/deep-assign": "^3.0.4",
12
- "@homer0/deferred": "^3.0.4",
13
- "@homer0/env-utils": "^3.0.4",
14
- "@homer0/events-hub": "^3.0.4",
15
- "@homer0/jimple": "^3.0.4",
16
- "@homer0/object-utils": "^3.0.4",
17
- "@homer0/package-info": "^3.0.4",
18
- "@homer0/path-utils": "^3.0.4",
19
- "@homer0/root-file": "^3.0.4",
20
- "@homer0/simple-config": "^3.0.4",
21
- "@homer0/simple-logger": "^3.0.4",
22
- "@homer0/ts-async-import": "^1.1.3",
23
- "@semantic-release/changelog": "^6.0.3",
24
- "@semantic-release/git": "^10.0.1",
25
- "body-parser": "^1.20.2",
26
- "compression": "^1.7.4",
27
- "express": "^4.19.2",
28
- "mime": "^4.0.1",
10
+ "@homer0/api-utils": "^3.0.6",
11
+ "@homer0/deep-assign": "^3.0.6",
12
+ "@homer0/deferred": "^3.0.6",
13
+ "@homer0/env-utils": "^3.0.6",
14
+ "@homer0/events-hub": "^3.0.6",
15
+ "@homer0/jimple": "^3.0.6",
16
+ "@homer0/object-utils": "^3.0.6",
17
+ "@homer0/package-info": "^3.0.6",
18
+ "@homer0/path-utils": "^3.0.6",
19
+ "@homer0/root-file": "^3.0.6",
20
+ "@homer0/simple-config": "^3.0.6",
21
+ "@homer0/simple-logger": "^3.0.6",
22
+ "@homer0/ts-async-import": "^1.1.5",
23
+ "body-parser": "^1.20.3",
24
+ "compression": "^1.7.5",
25
+ "express": "^4.21.1",
26
+ "mime": "^4.0.4",
29
27
  "multer": "1.4.5-lts.1",
30
28
  "node-fetch": "^3.3.2",
31
- "semantic-release": "^23.0.7",
32
29
  "spdy": "^4.0.2",
33
30
  "statuses": "^2.0.1",
34
31
  "urijs": "^1.19.11"
35
32
  },
36
33
  "devDependencies": {
37
- "@commitlint/cli": "^19.2.1",
38
- "@commitlint/config-conventional": "^19.1.0",
39
- "@homer0/eslint-plugin": "^12.0.4",
34
+ "@commitlint/cli": "^19.5.0",
35
+ "@commitlint/config-conventional": "^19.5.0",
36
+ "@homer0/eslint-plugin": "^12.0.6",
40
37
  "@homer0/prettier-config": "^1.1.3",
41
- "@homer0/prettier-plugin-jsdoc": "^8.0.0",
42
- "@homer0/tsconfig": "^1.0.15",
38
+ "@homer0/prettier-plugin-jsdoc": "^9.1.0",
39
+ "@homer0/tsconfig": "^1.0.17",
40
+ "@semantic-release/changelog": "^6.0.3",
41
+ "@semantic-release/git": "^10.0.1",
43
42
  "@types/body-parser": "^1.19.5",
44
43
  "@types/compression": "^1.7.5",
45
- "@types/express": "^4.17.21",
46
- "@types/jest": "^29.5.12",
47
- "@types/multer": "^1.4.11",
48
- "@types/node": "^20.12.5",
44
+ "@types/express": "^5.0.0",
45
+ "@types/jest": "^29.5.14",
46
+ "@types/multer": "^1.4.12",
47
+ "@types/node": "^22.9.0",
49
48
  "@types/spdy": "^3.4.9",
50
49
  "@types/statuses": "^2.0.5",
51
50
  "@types/urijs": "^1.19.25",
52
- "eslint": "^8.57.0",
53
- "husky": "^9.0.11",
51
+ "eslint": "^8.57.1",
52
+ "husky": "^9.1.6",
54
53
  "is-ci": "^3.0.1",
55
54
  "jest": "^29.7.0",
56
- "leasot": "^13.3.0",
57
- "lint-staged": "^15.2.2",
58
- "ts-jest": "^29.1.2",
55
+ "leasot": "^14.4.0",
56
+ "lint-staged": "^15.2.10",
57
+ "semantic-release": "^24.2.0",
58
+ "ts-jest": "^29.2.5",
59
59
  "ts-node-dev": "^2.0.0",
60
- "tsup": "^8.0.2",
61
- "typedoc": "0.25.12",
62
- "typescript": "^5.4.4"
60
+ "tsup": "^8.3.5",
61
+ "typedoc": "0.26.11",
62
+ "typescript": "^5.6.3"
63
63
  },
64
64
  "engine-strict": true,
65
65
  "engines": {
66
- "node": ">=18.17 <21"
66
+ "node": ">=18.17 <23"
67
67
  },
68
68
  "main": "./dist/index.js",
69
69
  "module": "./dist/esm/index.js",
@@ -230,7 +230,7 @@ export class ResponsesBuilder {
230
230
  this._statuses(status);
231
231
  useStatus = status;
232
232
  }
233
- } catch (_) {
233
+ } catch {
234
234
  useStatus = this._statuses('ok') as number;
235
235
  }
236
236