@loopback/rest 5.0.1 → 5.2.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/body-parsers/body-parser.d.ts +1 -1
  3. package/dist/body-parsers/body-parser.helpers.js +1 -1
  4. package/dist/body-parsers/body-parser.js +112 -115
  5. package/dist/body-parsers/body-parser.js.map +1 -1
  6. package/dist/body-parsers/body-parser.json.js +24 -27
  7. package/dist/body-parsers/body-parser.json.js.map +1 -1
  8. package/dist/body-parsers/body-parser.raw.js +19 -22
  9. package/dist/body-parsers/body-parser.raw.js.map +1 -1
  10. package/dist/body-parsers/body-parser.text.js +21 -24
  11. package/dist/body-parsers/body-parser.text.js.map +1 -1
  12. package/dist/body-parsers/body-parser.urlencoded.js +19 -22
  13. package/dist/body-parsers/body-parser.urlencoded.js.map +1 -1
  14. package/dist/body-parsers/index.js +1 -1
  15. package/dist/body-parsers/index.js.map +1 -1
  16. package/dist/coercion/coerce-parameter.d.ts +3 -1
  17. package/dist/coercion/coerce-parameter.js +28 -12
  18. package/dist/coercion/coerce-parameter.js.map +1 -1
  19. package/dist/coercion/validator.js +1 -1
  20. package/dist/http-handler.d.ts +1 -1
  21. package/dist/http-handler.js +1 -1
  22. package/dist/index.d.ts +1 -0
  23. package/dist/index.js +2 -0
  24. package/dist/index.js.map +1 -1
  25. package/dist/keys.d.ts +1 -1
  26. package/dist/keys.js +33 -34
  27. package/dist/keys.js.map +1 -1
  28. package/dist/parser.js +1 -1
  29. package/dist/parser.js.map +1 -1
  30. package/dist/providers/find-route.provider.d.ts +1 -1
  31. package/dist/providers/find-route.provider.js +21 -24
  32. package/dist/providers/find-route.provider.js.map +1 -1
  33. package/dist/providers/invoke-method.provider.d.ts +1 -1
  34. package/dist/providers/invoke-method.provider.js +16 -19
  35. package/dist/providers/invoke-method.provider.js.map +1 -1
  36. package/dist/providers/log-error.provider.d.ts +1 -1
  37. package/dist/providers/parse-params.provider.d.ts +1 -1
  38. package/dist/providers/parse-params.provider.js +20 -23
  39. package/dist/providers/parse-params.provider.js.map +1 -1
  40. package/dist/providers/reject.provider.d.ts +1 -1
  41. package/dist/providers/reject.provider.js +25 -28
  42. package/dist/providers/reject.provider.js.map +1 -1
  43. package/dist/providers/send.provider.d.ts +1 -1
  44. package/dist/request-context.d.ts +1 -1
  45. package/dist/rest.application.d.ts +15 -2
  46. package/dist/rest.application.js +14 -1
  47. package/dist/rest.application.js.map +1 -1
  48. package/dist/rest.component.d.ts +1 -1
  49. package/dist/rest.component.js +46 -49
  50. package/dist/rest.component.js.map +1 -1
  51. package/dist/rest.server.d.ts +15 -2
  52. package/dist/rest.server.js +615 -588
  53. package/dist/rest.server.js.map +1 -1
  54. package/dist/router/base-route.d.ts +1 -1
  55. package/dist/router/controller-route.d.ts +1 -1
  56. package/dist/router/controller-route.js +3 -4
  57. package/dist/router/controller-route.js.map +1 -1
  58. package/dist/router/external-express-routes.js +1 -1
  59. package/dist/router/external-express-routes.js.map +1 -1
  60. package/dist/router/handler-route.d.ts +1 -1
  61. package/dist/router/handler-route.js +2 -2
  62. package/dist/router/handler-route.js.map +1 -1
  63. package/dist/router/redirect-route.js +2 -2
  64. package/dist/router/redirect-route.js.map +1 -1
  65. package/dist/router/regexp-router.js +55 -58
  66. package/dist/router/regexp-router.js.map +1 -1
  67. package/dist/router/route-entry.d.ts +1 -1
  68. package/dist/router/trie-router.js +32 -35
  69. package/dist/router/trie-router.js.map +1 -1
  70. package/dist/sequence.d.ts +1 -1
  71. package/dist/sequence.js +74 -77
  72. package/dist/sequence.js.map +1 -1
  73. package/dist/spec-enhancers/consolidate.spec-enhancer.js +89 -92
  74. package/dist/spec-enhancers/consolidate.spec-enhancer.js.map +1 -1
  75. package/dist/spec-enhancers/info.spec-enhancer.js +63 -67
  76. package/dist/spec-enhancers/info.spec-enhancer.js.map +1 -1
  77. package/dist/types.d.ts +10 -0
  78. package/dist/validation/ajv-factory.provider.js +63 -66
  79. package/dist/validation/ajv-factory.provider.js.map +1 -1
  80. package/dist/validation/request-body.validator.d.ts +10 -2
  81. package/dist/validation/request-body.validator.js +25 -9
  82. package/dist/validation/request-body.validator.js.map +1 -1
  83. package/package.json +25 -23
  84. package/src/body-parsers/body-parser.helpers.ts +1 -1
  85. package/src/body-parsers/body-parser.json.ts +1 -1
  86. package/src/body-parsers/body-parser.raw.ts +1 -1
  87. package/src/body-parsers/body-parser.text.ts +1 -1
  88. package/src/body-parsers/body-parser.ts +1 -1
  89. package/src/body-parsers/body-parser.urlencoded.ts +1 -1
  90. package/src/body-parsers/index.ts +1 -1
  91. package/src/coercion/coerce-parameter.ts +55 -15
  92. package/src/coercion/validator.ts +1 -1
  93. package/src/http-handler.ts +2 -2
  94. package/src/index.ts +6 -0
  95. package/src/keys.ts +1 -2
  96. package/src/parser.ts +1 -1
  97. package/src/providers/find-route.provider.ts +1 -1
  98. package/src/providers/invoke-method.provider.ts +1 -1
  99. package/src/providers/log-error.provider.ts +1 -1
  100. package/src/providers/parse-params.provider.ts +1 -1
  101. package/src/providers/reject.provider.ts +1 -1
  102. package/src/providers/send.provider.ts +1 -1
  103. package/src/request-context.ts +1 -1
  104. package/src/rest.application.ts +19 -3
  105. package/src/rest.component.ts +1 -1
  106. package/src/rest.server.ts +35 -3
  107. package/src/router/base-route.ts +1 -1
  108. package/src/router/controller-route.ts +2 -2
  109. package/src/router/external-express-routes.ts +2 -2
  110. package/src/router/handler-route.ts +1 -1
  111. package/src/router/redirect-route.ts +1 -2
  112. package/src/router/regexp-router.ts +1 -1
  113. package/src/router/route-entry.ts +1 -1
  114. package/src/router/trie-router.ts +2 -2
  115. package/src/sequence.ts +1 -1
  116. package/src/spec-enhancers/info.spec-enhancer.ts +3 -2
  117. package/src/types.ts +11 -0
  118. package/src/validation/request-body.validator.ts +35 -12
@@ -1 +1 @@
1
- {"version":3,"file":"parse-params.provider.js","sourceRoot":"","sources":["../../src/providers/parse-params.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAAmD;AACnD,kDAAkD;AAClD,kCAAqC;AACrC,sCAA6C;AAQ7C;;;;GAIG;AACH;IAAA,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;QAC9B,YAEU,iBAAoC,EAKpC,oBAAkD,EAAE,EAEpD,UAAuB;YAPvB,sBAAiB,GAAjB,iBAAiB,CAAmB;YAKpC,sBAAiB,GAAjB,iBAAiB,CAAmC;YAEpD,eAAU,GAAV,UAAU,CAAa;QAC9B,CAAC;QAEJ,KAAK;YACH,OAAO,CAAC,OAAgB,EAAE,KAAoB,EAAE,EAAE,CAChD,2BAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE;gBACzD,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,GAAG,IAAI,CAAC,iBAAiB;aAC1B,CAAC,CAAC;QACP,CAAC;KACF,CAAA;IApBY,mBAAmB;QAE3B,mBAAA,gBAAM,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAA;QAExC,mBAAA,gBAAM,CACL,mBAAY,CAAC,2BAA2B,CAAC,YAAY,CAAC,YAAY,CAAC,EACnE,EAAC,QAAQ,EAAE,IAAI,EAAC,CACjB,CAAA;QAEA,mBAAA,gBAAM,CAAC,mBAAY,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;iDANxB,gCAAiB;OAHnC,mBAAmB,CAoB/B;IAAD,0BAAC;KAAA;AApBY,kDAAmB"}
1
+ {"version":3,"file":"parse-params.provider.js","sourceRoot":"","sources":["../../src/providers/parse-params.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAgD;AAChD,kDAAkD;AAClD,kCAAqC;AACrC,sCAA6C;AAQ7C;;;;GAIG;AACH,IAAa,mBAAmB,GAAhC,MAAa,mBAAmB;IAC9B,YAEU,iBAAoC,EAKpC,oBAAkD,EAAE,EAEpD,UAAuB;QAPvB,sBAAiB,GAAjB,iBAAiB,CAAmB;QAKpC,sBAAiB,GAAjB,iBAAiB,CAAmC;QAEpD,eAAU,GAAV,UAAU,CAAa;IAC9B,CAAC;IAEJ,KAAK;QACH,OAAO,CAAC,OAAgB,EAAE,KAAoB,EAAE,EAAE,CAChD,2BAAkB,CAAC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,iBAAiB,EAAE;YACzD,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,GAAG,IAAI,CAAC,iBAAiB;SAC1B,CAAC,CAAC;IACP,CAAC;CACF,CAAA;AApBY,mBAAmB;IAE3B,mBAAA,aAAM,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAA;IAExC,mBAAA,aAAM,CACL,mBAAY,CAAC,2BAA2B,CAAC,YAAY,CAAC,YAAY,CAAC,EACnE,EAAC,QAAQ,EAAE,IAAI,EAAC,CACjB,CAAA;IAEA,mBAAA,aAAM,CAAC,mBAAY,CAAC,WAAW,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;6CANxB,gCAAiB;GAHnC,mBAAmB,CAoB/B;AApBY,kDAAmB"}
@@ -1,5 +1,5 @@
1
1
  import { LogError, Reject, HandlerContext } from '../types';
2
- import { Provider } from '@loopback/context';
2
+ import { Provider } from '@loopback/core';
3
3
  import { ErrorWriterOptions } from 'strong-error-handler';
4
4
  export declare class RejectProvider implements Provider<Reject> {
5
5
  protected logError: LogError;
@@ -6,7 +6,7 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.RejectProvider = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const context_1 = require("@loopback/context");
9
+ const core_1 = require("@loopback/core");
10
10
  const keys_1 = require("../keys");
11
11
  const strong_error_handler_1 = require("strong-error-handler");
12
12
  // TODO(bajtos) Make this mapping configurable at RestServer level,
@@ -14,34 +14,31 @@ const strong_error_handler_1 = require("strong-error-handler");
14
14
  const codeToStatusCodeMap = {
15
15
  ENTITY_NOT_FOUND: 404,
16
16
  };
17
- let RejectProvider = /** @class */ (() => {
18
- let RejectProvider = class RejectProvider {
19
- constructor(logError, errorWriterOptions) {
20
- this.logError = logError;
21
- this.errorWriterOptions = errorWriterOptions;
22
- }
23
- value() {
24
- return (context, error) => this.action(context, error);
25
- }
26
- action({ request, response }, error) {
27
- const err = error;
28
- if (!err.status && !err.statusCode && err.code) {
29
- const customStatus = codeToStatusCodeMap[err.code];
30
- if (customStatus) {
31
- err.statusCode = customStatus;
32
- }
17
+ let RejectProvider = class RejectProvider {
18
+ constructor(logError, errorWriterOptions) {
19
+ this.logError = logError;
20
+ this.errorWriterOptions = errorWriterOptions;
21
+ }
22
+ value() {
23
+ return (context, error) => this.action(context, error);
24
+ }
25
+ action({ request, response }, error) {
26
+ const err = error;
27
+ if (!err.status && !err.statusCode && err.code) {
28
+ const customStatus = codeToStatusCodeMap[err.code];
29
+ if (customStatus) {
30
+ err.statusCode = customStatus;
33
31
  }
34
- const statusCode = err.statusCode || err.status || 500;
35
- strong_error_handler_1.writeErrorToResponse(err, request, response, this.errorWriterOptions);
36
- this.logError(error, statusCode, request);
37
32
  }
38
- };
39
- RejectProvider = tslib_1.__decorate([
40
- tslib_1.__param(0, context_1.inject(keys_1.RestBindings.SequenceActions.LOG_ERROR)),
41
- tslib_1.__param(1, context_1.inject(keys_1.RestBindings.ERROR_WRITER_OPTIONS, { optional: true })),
42
- tslib_1.__metadata("design:paramtypes", [Function, Object])
43
- ], RejectProvider);
44
- return RejectProvider;
45
- })();
33
+ const statusCode = err.statusCode || err.status || 500;
34
+ strong_error_handler_1.writeErrorToResponse(err, request, response, this.errorWriterOptions);
35
+ this.logError(error, statusCode, request);
36
+ }
37
+ };
38
+ RejectProvider = tslib_1.__decorate([
39
+ tslib_1.__param(0, core_1.inject(keys_1.RestBindings.SequenceActions.LOG_ERROR)),
40
+ tslib_1.__param(1, core_1.inject(keys_1.RestBindings.ERROR_WRITER_OPTIONS, { optional: true })),
41
+ tslib_1.__metadata("design:paramtypes", [Function, Object])
42
+ ], RejectProvider);
46
43
  exports.RejectProvider = RejectProvider;
47
44
  //# sourceMappingURL=reject.provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"reject.provider.js","sourceRoot":"","sources":["../../src/providers/reject.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,+CAAmD;AAEnD,kCAAqC;AACrC,+DAA8E;AAE9E,mEAAmE;AACnE,+DAA+D;AAC/D,MAAM,mBAAmB,GAA4B;IACnD,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF;IAAA,IAAa,cAAc,GAA3B,MAAa,cAAc;QACzB,YAEY,QAAkB,EAElB,kBAAuC;YAFvC,aAAQ,GAAR,QAAQ,CAAU;YAElB,uBAAkB,GAAlB,kBAAkB,CAAqB;QAChD,CAAC;QAEJ,KAAK;YACH,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAiB,EAAE,KAAY;YACtD,MAAM,GAAG,GAAc,KAAK,CAAC;YAE7B,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE;gBAC9C,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,YAAY,EAAE;oBAChB,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC;iBAC/B;aACF;YAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;YACvD,2CAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;YACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;QAC5C,CAAC;KACF,CAAA;IA1BY,cAAc;QAEtB,mBAAA,gBAAM,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;QAE9C,mBAAA,gBAAM,CAAC,mBAAY,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;OAJnD,cAAc,CA0B1B;IAAD,qBAAC;KAAA;AA1BY,wCAAc"}
1
+ {"version":3,"file":"reject.provider.js","sourceRoot":"","sources":["../../src/providers/reject.provider.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAGhE,yCAAgD;AAEhD,kCAAqC;AACrC,+DAA8E;AAE9E,mEAAmE;AACnE,+DAA+D;AAC/D,MAAM,mBAAmB,GAA4B;IACnD,gBAAgB,EAAE,GAAG;CACtB,CAAC;AAEF,IAAa,cAAc,GAA3B,MAAa,cAAc;IACzB,YAEY,QAAkB,EAElB,kBAAuC;QAFvC,aAAQ,GAAR,QAAQ,CAAU;QAElB,uBAAkB,GAAlB,kBAAkB,CAAqB;IAChD,CAAC;IAEJ,KAAK;QACH,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAED,MAAM,CAAC,EAAC,OAAO,EAAE,QAAQ,EAAiB,EAAE,KAAY;QACtD,MAAM,GAAG,GAAc,KAAK,CAAC;QAE7B,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,IAAI,EAAE;YAC9C,MAAM,YAAY,GAAG,mBAAmB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACnD,IAAI,YAAY,EAAE;gBAChB,GAAG,CAAC,UAAU,GAAG,YAAY,CAAC;aAC/B;SACF;QAED,MAAM,UAAU,GAAG,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,MAAM,IAAI,GAAG,CAAC;QACvD,2CAAoB,CAAC,GAAG,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;QACtE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;CACF,CAAA;AA1BY,cAAc;IAEtB,mBAAA,aAAM,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,CAAA;IAE9C,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAJnD,cAAc,CA0B1B;AA1BY,wCAAc"}
@@ -1,4 +1,4 @@
1
- import { Provider, BoundValue } from '@loopback/context';
1
+ import { Provider, BoundValue } from '@loopback/core';
2
2
  import { writeResultToResponse } from '../writer';
3
3
  /**
4
4
  * Provides the function that populates the response object with
@@ -1,4 +1,4 @@
1
- import { Context } from '@loopback/context';
1
+ import { Context } from '@loopback/core';
2
2
  import { HandlerContext, MiddlewareContext, Request, Response } from '@loopback/express';
3
3
  import { RestServerResolvedConfig } from './rest.server';
4
4
  /**
@@ -1,5 +1,4 @@
1
- import { Binding, BindingAddress, Constructor, Context, Provider } from '@loopback/context';
2
- import { Application, ApplicationConfig, Server } from '@loopback/core';
1
+ import { Application, ApplicationConfig, Binding, BindingAddress, Constructor, Context, Provider, Server } from '@loopback/core';
3
2
  import { ExpressMiddlewareFactory, ExpressRequestHandler, Middleware, MiddlewareBindingOptions } from '@loopback/express';
4
3
  import { OpenApiSpec, OperationObject } from '@loopback/openapi-v3';
5
4
  import { PathParams } from 'express-serve-static-core';
@@ -229,4 +228,18 @@ export declare class RestApplication extends Application implements HttpServerLi
229
228
  * document the routes.
230
229
  */
231
230
  mountExpressRouter(basePath: string, router: ExpressRequestHandler, spec?: RouterSpec): void;
231
+ /**
232
+ * Export the OpenAPI spec to the given json or yaml file
233
+ * @param outFile - File name for the spec. The extension of the file
234
+ * determines the format of the file.
235
+ * - `yaml` or `yml`: YAML
236
+ * - `json` or other: JSON
237
+ * If the outFile is not provided or its value is `''` or `'-'`, the spec is
238
+ * written to the console using the `log` function.
239
+ * @param log - Log function, default to `console.log`
240
+ */
241
+ exportOpenApiSpec(outFile?: string, log?: {
242
+ (...data: any[]): void;
243
+ (message?: any, ...optionalParams: any[]): void;
244
+ }): Promise<void>;
232
245
  }
@@ -1,5 +1,5 @@
1
1
  "use strict";
2
- // Copyright IBM Corp. 2018,2019. All Rights Reserved.
2
+ // Copyright IBM Corp. 2018,2020. All Rights Reserved.
3
3
  // Node module: @loopback/rest
4
4
  // This file is licensed under the MIT License.
5
5
  // License text available at https://opensource.org/licenses/MIT
@@ -169,6 +169,19 @@ class RestApplication extends core_1.Application {
169
169
  mountExpressRouter(basePath, router, spec) {
170
170
  this.restServer.mountExpressRouter(basePath, router, spec);
171
171
  }
172
+ /**
173
+ * Export the OpenAPI spec to the given json or yaml file
174
+ * @param outFile - File name for the spec. The extension of the file
175
+ * determines the format of the file.
176
+ * - `yaml` or `yml`: YAML
177
+ * - `json` or other: JSON
178
+ * If the outFile is not provided or its value is `''` or `'-'`, the spec is
179
+ * written to the console using the `log` function.
180
+ * @param log - Log function, default to `console.log`
181
+ */
182
+ async exportOpenApiSpec(outFile = '', log = console.log) {
183
+ return this.restServer.exportOpenApiSpec(outFile, log);
184
+ }
172
185
  }
173
186
  exports.RestApplication = RestApplication;
174
187
  //# sourceMappingURL=rest.application.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest.application.js","sourceRoot":"","sources":["../src/rest.application.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"rest.application.js","sourceRoot":"","sources":["../src/rest.application.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { Binding, Constructor } from '@loopback/context';
1
+ import { Binding, Constructor } from '@loopback/core';
2
2
  import { Application, Component, ProviderMap, Server } from '@loopback/core';
3
3
  import { RestServerConfig } from './rest.server';
4
4
  export declare class RestComponent implements Component {
@@ -6,8 +6,8 @@
6
6
  Object.defineProperty(exports, "__esModule", { value: true });
7
7
  exports.RestComponent = void 0;
8
8
  const tslib_1 = require("tslib");
9
- const context_1 = require("@loopback/context");
10
9
  const core_1 = require("@loopback/core");
10
+ const core_2 = require("@loopback/core");
11
11
  const express_1 = require("@loopback/express");
12
12
  const openapi_v3_1 = require("@loopback/openapi-v3");
13
13
  const body_parsers_1 = require("./body-parsers");
@@ -19,54 +19,51 @@ const sequence_1 = require("./sequence");
19
19
  const consolidate_spec_enhancer_1 = require("./spec-enhancers/consolidate.spec-enhancer");
20
20
  const info_spec_enhancer_1 = require("./spec-enhancers/info.spec-enhancer");
21
21
  const ajv_factory_provider_1 = require("./validation/ajv-factory.provider");
22
- let RestComponent = /** @class */ (() => {
23
- let RestComponent = class RestComponent {
24
- constructor(app, config) {
25
- var _a;
26
- this.providers = {
27
- [keys_1.RestBindings.SequenceActions.LOG_ERROR.key]: providers_1.LogErrorProvider,
28
- [keys_1.RestBindings.SequenceActions.INVOKE_MIDDLEWARE
29
- .key]: express_1.InvokeMiddlewareProvider,
30
- [keys_1.RestBindings.SequenceActions.FIND_ROUTE.key]: providers_1.FindRouteProvider,
31
- [keys_1.RestBindings.SequenceActions.INVOKE_METHOD.key]: providers_1.InvokeMethodProvider,
32
- [keys_1.RestBindings.SequenceActions.REJECT.key]: providers_1.RejectProvider,
33
- [keys_1.RestBindings.SequenceActions.PARSE_PARAMS.key]: providers_1.ParseParamsProvider,
34
- [keys_1.RestBindings.SequenceActions.SEND.key]: providers_1.SendProvider,
35
- [keys_1.RestBindings.AJV_FACTORY.key]: ajv_factory_provider_1.AjvFactoryProvider,
36
- };
37
- /**
38
- * Add built-in body parsers
39
- */
40
- this.bindings = [
41
- // FIXME(rfeng): We now register request body parsers in TRANSIENT scope
42
- // so that they can be bound at application or server level
43
- context_1.Binding.bind(keys_1.RestBindings.REQUEST_BODY_PARSER).toClass(body_parsers_1.RequestBodyParser),
44
- rest_server_1.createBodyParserBinding(body_parsers_1.JsonBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_JSON),
45
- rest_server_1.createBodyParserBinding(body_parsers_1.TextBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_TEXT),
46
- rest_server_1.createBodyParserBinding(body_parsers_1.UrlEncodedBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_URLENCODED),
47
- rest_server_1.createBodyParserBinding(body_parser_raw_1.RawBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_RAW),
48
- rest_server_1.createBodyParserBinding(body_parsers_1.StreamBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_STREAM),
49
- context_1.createBindingFromClass(info_spec_enhancer_1.InfoSpecEnhancer),
50
- context_1.createBindingFromClass(consolidate_spec_enhancer_1.ConsolidationEnhancer),
51
- ];
52
- this.servers = {
53
- RestServer: rest_server_1.RestServer,
54
- };
55
- app.bind(keys_1.RestBindings.SEQUENCE).toClass(sequence_1.DefaultSequence);
56
- const apiSpec = openapi_v3_1.createEmptyApiSpec();
57
- // Merge the OpenAPI `servers` spec from the config into the empty one
58
- if ((_a = config === null || config === void 0 ? void 0 : config.openApiSpec) === null || _a === void 0 ? void 0 : _a.servers) {
59
- Object.assign(apiSpec, { servers: config.openApiSpec.servers });
60
- }
61
- app.bind(keys_1.RestBindings.API_SPEC).to(apiSpec);
22
+ let RestComponent = class RestComponent {
23
+ constructor(app, config) {
24
+ var _a;
25
+ this.providers = {
26
+ [keys_1.RestBindings.SequenceActions.LOG_ERROR.key]: providers_1.LogErrorProvider,
27
+ [keys_1.RestBindings.SequenceActions.INVOKE_MIDDLEWARE
28
+ .key]: express_1.InvokeMiddlewareProvider,
29
+ [keys_1.RestBindings.SequenceActions.FIND_ROUTE.key]: providers_1.FindRouteProvider,
30
+ [keys_1.RestBindings.SequenceActions.INVOKE_METHOD.key]: providers_1.InvokeMethodProvider,
31
+ [keys_1.RestBindings.SequenceActions.REJECT.key]: providers_1.RejectProvider,
32
+ [keys_1.RestBindings.SequenceActions.PARSE_PARAMS.key]: providers_1.ParseParamsProvider,
33
+ [keys_1.RestBindings.SequenceActions.SEND.key]: providers_1.SendProvider,
34
+ [keys_1.RestBindings.AJV_FACTORY.key]: ajv_factory_provider_1.AjvFactoryProvider,
35
+ };
36
+ /**
37
+ * Add built-in body parsers
38
+ */
39
+ this.bindings = [
40
+ // FIXME(rfeng): We now register request body parsers in TRANSIENT scope
41
+ // so that they can be bound at application or server level
42
+ core_1.Binding.bind(keys_1.RestBindings.REQUEST_BODY_PARSER).toClass(body_parsers_1.RequestBodyParser),
43
+ rest_server_1.createBodyParserBinding(body_parsers_1.JsonBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_JSON),
44
+ rest_server_1.createBodyParserBinding(body_parsers_1.TextBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_TEXT),
45
+ rest_server_1.createBodyParserBinding(body_parsers_1.UrlEncodedBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_URLENCODED),
46
+ rest_server_1.createBodyParserBinding(body_parser_raw_1.RawBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_RAW),
47
+ rest_server_1.createBodyParserBinding(body_parsers_1.StreamBodyParser, keys_1.RestBindings.REQUEST_BODY_PARSER_STREAM),
48
+ core_1.createBindingFromClass(info_spec_enhancer_1.InfoSpecEnhancer),
49
+ core_1.createBindingFromClass(consolidate_spec_enhancer_1.ConsolidationEnhancer),
50
+ ];
51
+ this.servers = {
52
+ RestServer: rest_server_1.RestServer,
53
+ };
54
+ app.bind(keys_1.RestBindings.SEQUENCE).toClass(sequence_1.DefaultSequence);
55
+ const apiSpec = openapi_v3_1.createEmptyApiSpec();
56
+ // Merge the OpenAPI `servers` spec from the config into the empty one
57
+ if ((_a = config === null || config === void 0 ? void 0 : config.openApiSpec) === null || _a === void 0 ? void 0 : _a.servers) {
58
+ Object.assign(apiSpec, { servers: config.openApiSpec.servers });
62
59
  }
63
- };
64
- RestComponent = tslib_1.__decorate([
65
- tslib_1.__param(0, context_1.inject(core_1.CoreBindings.APPLICATION_INSTANCE)),
66
- tslib_1.__param(1, context_1.inject(keys_1.RestBindings.CONFIG)),
67
- tslib_1.__metadata("design:paramtypes", [core_1.Application, Object])
68
- ], RestComponent);
69
- return RestComponent;
70
- })();
60
+ app.bind(keys_1.RestBindings.API_SPEC).to(apiSpec);
61
+ }
62
+ };
63
+ RestComponent = tslib_1.__decorate([
64
+ tslib_1.__param(0, core_1.inject(core_2.CoreBindings.APPLICATION_INSTANCE)),
65
+ tslib_1.__param(1, core_1.inject(keys_1.RestBindings.CONFIG)),
66
+ tslib_1.__metadata("design:paramtypes", [core_2.Application, Object])
67
+ ], RestComponent);
71
68
  exports.RestComponent = RestComponent;
72
69
  //# sourceMappingURL=rest.component.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rest.component.js","sourceRoot":"","sources":["../src/rest.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAK2B;AAC3B,yCAMwB;AACxB,+CAA2D;AAC3D,qDAAwD;AACxD,iDAMwB;AACxB,oEAA6D;AAC7D,iCAAoC;AACpC,2CAOqB;AACrB,+CAIuB;AACvB,yCAA2C;AAC3C,0FAAiF;AACjF,4EAAqE;AACrE,4EAAqE;AAErE;IAAA,IAAa,aAAa,GAA1B,MAAa,aAAa;QAgDxB,YAC6C,GAAgB,EAC9B,MAA4B;;YAjD3D,cAAS,GAAgB;gBACvB,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,4BAAgB;gBAC9D,CAAC,mBAAY,CAAC,eAAe,CAAC,iBAAiB;qBAC5C,GAAG,CAAC,EAAE,kCAAwB;gBACjC,CAAC,mBAAY,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,6BAAiB;gBAChE,CAAC,mBAAY,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,gCAAoB;gBACtE,CAAC,mBAAY,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,0BAAc;gBACzD,CAAC,mBAAY,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,+BAAmB;gBACpE,CAAC,mBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,wBAAY;gBACrD,CAAC,mBAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,yCAAkB;aACnD,CAAC;YACF;;eAEG;YACH,aAAQ,GAAc;gBACpB,wEAAwE;gBACxE,2DAA2D;gBAC3D,iBAAO,CAAC,IAAI,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,gCAAiB,CAAC;gBACzE,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;gBACD,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;gBACD,qCAAuB,CACrB,mCAAoB,EACpB,mBAAY,CAAC,8BAA8B,CAC5C;gBACD,qCAAuB,CACrB,+BAAa,EACb,mBAAY,CAAC,uBAAuB,CACrC;gBACD,qCAAuB,CACrB,+BAAgB,EAChB,mBAAY,CAAC,0BAA0B,CACxC;gBACD,gCAAsB,CAAC,qCAAgB,CAAC;gBACxC,gCAAsB,CAAC,iDAAqB,CAAC;aAC9C,CAAC;YACF,YAAO,GAEH;gBACF,UAAU,EAAV,wBAAU;aACX,CAAC;YAMA,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,0BAAe,CAAC,CAAC;YACzD,MAAM,OAAO,GAAG,+BAAkB,EAAE,CAAC;YACrC,sEAAsE;YACtE,UAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,OAAO,EAAE;gBAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAC,CAAC,CAAC;aAC/D;YACD,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAC9C,CAAC;KACF,CAAA;IA5DY,aAAa;QAiDrB,mBAAA,gBAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;QACzC,mBAAA,gBAAM,CAAC,mBAAY,CAAC,MAAM,CAAC,CAAA;iDADoB,kBAAW;OAjDlD,aAAa,CA4DzB;IAAD,oBAAC;KAAA;AA5DY,sCAAa"}
1
+ {"version":3,"file":"rest.component.js","sourceRoot":"","sources":["../src/rest.component.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAKwB;AACxB,yCAMwB;AACxB,+CAA2D;AAC3D,qDAAwD;AACxD,iDAMwB;AACxB,oEAA6D;AAC7D,iCAAoC;AACpC,2CAOqB;AACrB,+CAIuB;AACvB,yCAA2C;AAC3C,0FAAiF;AACjF,4EAAqE;AACrE,4EAAqE;AAErE,IAAa,aAAa,GAA1B,MAAa,aAAa;IAgDxB,YAC6C,GAAgB,EAC9B,MAA4B;;QAjD3D,cAAS,GAAgB;YACvB,CAAC,mBAAY,CAAC,eAAe,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,4BAAgB;YAC9D,CAAC,mBAAY,CAAC,eAAe,CAAC,iBAAiB;iBAC5C,GAAG,CAAC,EAAE,kCAAwB;YACjC,CAAC,mBAAY,CAAC,eAAe,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,6BAAiB;YAChE,CAAC,mBAAY,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,CAAC,EAAE,gCAAoB;YACtE,CAAC,mBAAY,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,0BAAc;YACzD,CAAC,mBAAY,CAAC,eAAe,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,+BAAmB;YACpE,CAAC,mBAAY,CAAC,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,wBAAY;YACrD,CAAC,mBAAY,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE,yCAAkB;SACnD,CAAC;QACF;;WAEG;QACH,aAAQ,GAAc;YACpB,wEAAwE;YACxE,2DAA2D;YAC3D,cAAO,CAAC,IAAI,CAAC,mBAAY,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,gCAAiB,CAAC;YACzE,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;YACD,qCAAuB,CACrB,6BAAc,EACd,mBAAY,CAAC,wBAAwB,CACtC;YACD,qCAAuB,CACrB,mCAAoB,EACpB,mBAAY,CAAC,8BAA8B,CAC5C;YACD,qCAAuB,CACrB,+BAAa,EACb,mBAAY,CAAC,uBAAuB,CACrC;YACD,qCAAuB,CACrB,+BAAgB,EAChB,mBAAY,CAAC,0BAA0B,CACxC;YACD,6BAAsB,CAAC,qCAAgB,CAAC;YACxC,6BAAsB,CAAC,iDAAqB,CAAC;SAC9C,CAAC;QACF,YAAO,GAEH;YACF,UAAU,EAAV,wBAAU;SACX,CAAC;QAMA,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,0BAAe,CAAC,CAAC;QACzD,MAAM,OAAO,GAAG,+BAAkB,EAAE,CAAC;QACrC,sEAAsE;QACtE,UAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,WAAW,0CAAE,OAAO,EAAE;YAChC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,EAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,OAAO,EAAC,CAAC,CAAC;SAC/D;QACD,GAAG,CAAC,IAAI,CAAC,mBAAY,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF,CAAA;AA5DY,aAAa;IAiDrB,mBAAA,aAAM,CAAC,mBAAY,CAAC,oBAAoB,CAAC,CAAA;IACzC,mBAAA,aAAM,CAAC,mBAAY,CAAC,MAAM,CAAC,CAAA;6CADoB,kBAAW;GAjDlD,aAAa,CA4DzB;AA5DY,sCAAa"}
@@ -1,6 +1,5 @@
1
1
  /// <reference types="node" />
2
- import { Binding, BindingAddress, Constructor } from '@loopback/context';
3
- import { Application, Server } from '@loopback/core';
2
+ import { Application, Binding, BindingAddress, Constructor, Server } from '@loopback/core';
4
3
  import { BaseMiddlewareRegistry, ExpressRequestHandler } from '@loopback/express';
5
4
  import { HttpServer, HttpServerOptions } from '@loopback/http-server';
6
5
  import { OASEnhancerService, OpenApiSpec, OperationObject, ServerObject } from '@loopback/openapi-v3';
@@ -341,6 +340,20 @@ export declare class RestServer extends BaseMiddlewareRegistry implements Server
341
340
  * document the routes.
342
341
  */
343
342
  mountExpressRouter(basePath: string, router: ExpressRequestHandler, spec?: RouterSpec): void;
343
+ /**
344
+ * Export the OpenAPI spec to the given json or yaml file
345
+ * @param outFile - File name for the spec. The extension of the file
346
+ * determines the format of the file.
347
+ * - `yaml` or `yml`: YAML
348
+ * - `json` or other: JSON
349
+ * If the outFile is not provided or its value is `''` or `'-'`, the spec is
350
+ * written to the console using the `log` function.
351
+ * @param log - Log function, default to `console.log`
352
+ */
353
+ exportOpenApiSpec(outFile?: string, log?: {
354
+ (...data: any[]): void;
355
+ (message?: any, ...optionalParams: any[]): void;
356
+ }): Promise<void>;
344
357
  }
345
358
  /**
346
359
  * Create a binding for the given body parser class