@loopback/rest 5.0.0 → 5.0.1
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/CHANGELOG.md +8 -0
- package/dist/http-handler.d.ts +2 -2
- package/dist/http-handler.js.map +1 -1
- package/dist/keys.d.ts +5 -6
- package/dist/keys.js.map +1 -1
- package/dist/providers/parse-params.provider.d.ts +2 -3
- package/dist/rest.component.d.ts +1 -4
- package/dist/rest.component.js.map +1 -1
- package/dist/router/trie-router.d.ts +2 -2
- package/dist/router/trie-router.js.map +1 -1
- package/package.json +16 -16
- package/src/http-handler.ts +7 -1
- package/src/keys.ts +10 -4
- package/src/providers/parse-params.provider.ts +1 -1
- package/src/rest.component.ts +1 -1
- package/src/router/trie-router.ts +5 -2
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,14 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
## [5.0.1](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.0.0...@loopback/rest@5.0.1) (2020-05-20)
|
|
7
|
+
|
|
8
|
+
**Note:** Version bump only for package @loopback/rest
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
6
14
|
# [5.0.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@4.0.0...@loopback/rest@5.0.0) (2020-05-19)
|
|
7
15
|
|
|
8
16
|
|
package/dist/http-handler.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Context } from '@loopback/context';
|
|
2
|
-
import { ComponentsObject, ControllerSpec, PathObject, SchemasObject } from '@loopback/openapi-v3';
|
|
2
|
+
import { ComponentsObject, ControllerSpec, PathObject, ReferenceObject, SchemaObject, SchemasObject } from '@loopback/openapi-v3';
|
|
3
3
|
import { RestServerResolvedConfig } from './rest.server';
|
|
4
4
|
import { ControllerClass, ControllerFactory, ResolvedRoute, RouteEntry, RoutingTable } from './router';
|
|
5
5
|
import { Request, Response } from './types';
|
|
@@ -30,7 +30,7 @@ export declare class HttpHandler {
|
|
|
30
30
|
* @deprecated Use `getApiComponents`
|
|
31
31
|
*/
|
|
32
32
|
getApiDefinitions(): {
|
|
33
|
-
[schema: string]:
|
|
33
|
+
[schema: string]: SchemaObject | ReferenceObject;
|
|
34
34
|
} | undefined;
|
|
35
35
|
describeApiPaths(): PathObject;
|
|
36
36
|
findRoute(request: Request): ResolvedRoute;
|
package/dist/http-handler.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http-handler.js","sourceRoot":"","sources":["../src/http-handler.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;
|
|
1
|
+
{"version":3,"file":"http-handler.js","sourceRoot":"","sources":["../src/http-handler.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAWhE,iCAAoC;AACpC,uDAAiD;AAEjD,qCAMkB;AAIlB,MAAa,WAAW;IAQtB,YACqB,YAAqB,EACrB,aAAuC,EACvC,UAAU,IAAI,qBAAY,EAAE;QAF5B,iBAAY,GAAZ,YAAY,CAAS;QACrB,kBAAa,GAAb,aAAa,CAA0B;QACvC,YAAO,GAAP,OAAO,CAAqB;QAE/C,IAAI,CAAC,aAAa,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IACnE,CAAC;IAED,kBAAkB,CAChB,IAAoB,EACpB,cAAkC,EAClC,iBAAwC;QAExC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,iBAAiB,CAAC,CAAC;IAC3E,CAAC;IAED,aAAa,CAAC,KAAiB;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,sBAAsB,CAAC,IAAmB;QACxC,IAAI,CAAC,qBAAqB,CAAC,EAAC,OAAO,EAAE,IAAI,EAAC,CAAC,CAAC;IAC9C,CAAC;IAED;;;OAGG;IACH,qBAAqB,CAAC,IAAsB;;QAC1C,IAAI,CAAC,kBAAkB,SAAG,IAAI,CAAC,kBAAkB,mCAAI,EAAE,CAAC;QACxD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE;YACpB,mEAAmE;YACnE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,GAAG,EAAC,GAAG,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,EAAC,CAAC;SAC1E;IACH,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,kBAAkB,CAAC;IACjC,CAAC;IAED;;OAEG;IACH,iBAAiB;;QAKf,aAAO,IAAI,CAAC,kBAAkB,0CAAE,OAAO,CAAC;IAC1C,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,EAAE,CAAC;IACzC,CAAC;IAED,SAAS,CAAC,OAAgB;QACxB,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACzC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;QACvD,OAAO,KAAK,CAAC;IACf,CAAC;IAES,KAAK,CAAC,cAAc,CAC5B,OAAgB,EAChB,QAAkB;QAElB,MAAM,cAAc,GAAG,IAAI,gCAAc,CACvC,OAAO,EACP,QAAQ,EACR,IAAI,CAAC,YAAY,EACjB,IAAI,CAAC,aAAa,CACnB,CAAC;QAEF,MAAM,QAAQ,GAAG,MAAM,cAAc,CAAC,GAAG,CACvC,mBAAY,CAAC,QAAQ,CACtB,CAAC;QACF,MAAM,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;IACxC,CAAC;CACF;AAzFD,kCAyFC"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
|
-
/// <reference types="qs" />
|
|
3
2
|
import { BindingKey, Context } from '@loopback/context';
|
|
4
3
|
import { InvokeMiddleware } from '@loopback/express';
|
|
5
4
|
import { HttpProtocol } from '@loopback/http-server';
|
|
6
|
-
import { OperationObject } from '@loopback/openapi-v3';
|
|
5
|
+
import { OpenApiSpec, OperationObject } from '@loopback/openapi-v3';
|
|
7
6
|
import https from 'https';
|
|
8
7
|
import { ErrorWriterOptions } from 'strong-error-handler';
|
|
9
8
|
import { BodyParser, RequestBodyParser } from './body-parsers';
|
|
10
9
|
import { HttpHandler } from './http-handler';
|
|
11
|
-
import { RestServer } from './rest.server';
|
|
10
|
+
import { RestServer, RestServerConfig } from './rest.server';
|
|
12
11
|
import { RestRouter, RestRouterOptions } from './router';
|
|
13
12
|
import { SequenceHandler } from './sequence';
|
|
14
13
|
import { AjvFactory, FindRoute, InvokeMethod, LogError, ParseParams, Reject, Request, RequestBodyParserOptions, Response, Send } from './types';
|
|
@@ -19,7 +18,7 @@ export declare namespace RestBindings {
|
|
|
19
18
|
/**
|
|
20
19
|
* Binding key for setting and injecting RestComponentConfig
|
|
21
20
|
*/
|
|
22
|
-
const CONFIG: BindingKey<
|
|
21
|
+
const CONFIG: BindingKey<RestServerConfig>;
|
|
23
22
|
/**
|
|
24
23
|
* Binding key for setting and injecting the host name of RestServer
|
|
25
24
|
*/
|
|
@@ -105,7 +104,7 @@ export declare namespace RestBindings {
|
|
|
105
104
|
/**
|
|
106
105
|
* Binding key for setting and injecting an OpenAPI spec
|
|
107
106
|
*/
|
|
108
|
-
const API_SPEC: BindingKey<
|
|
107
|
+
const API_SPEC: BindingKey<OpenApiSpec>;
|
|
109
108
|
/**
|
|
110
109
|
* Binding key for setting and injecting an OpenAPI operation spec
|
|
111
110
|
*/
|
|
@@ -154,7 +153,7 @@ export declare namespace RestBindings {
|
|
|
154
153
|
/**
|
|
155
154
|
* Binding key for setting and injecting the http request
|
|
156
155
|
*/
|
|
157
|
-
const REQUEST: BindingKey<Request
|
|
156
|
+
const REQUEST: BindingKey<Request>;
|
|
158
157
|
/**
|
|
159
158
|
* Binding key for setting and injecting the http response
|
|
160
159
|
*/
|
package/dist/keys.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;AAEhE,+CAAsD;AACtD,yCAA4C;AAwB5C;;GAEG;AACH,IAAiB,YAAY,
|
|
1
|
+
{"version":3,"file":"keys.js","sourceRoot":"","sources":["../src/keys.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import { Provider } from '@loopback/context';
|
|
2
2
|
import { RequestBodyParser } from '../body-parsers';
|
|
3
|
-
import {
|
|
4
|
-
import { AjvFactory, ParseParams, Request, RequestBodyValidationOptions } from '../types';
|
|
3
|
+
import { AjvFactory, ParseParams, RequestBodyValidationOptions } from '../types';
|
|
5
4
|
/**
|
|
6
5
|
* Provides the function for parsing args in requests at runtime.
|
|
7
6
|
*
|
|
@@ -12,5 +11,5 @@ export declare class ParseParamsProvider implements Provider<ParseParams> {
|
|
|
12
11
|
private validationOptions;
|
|
13
12
|
private ajvFactory?;
|
|
14
13
|
constructor(requestBodyParser: RequestBodyParser, validationOptions?: RequestBodyValidationOptions, ajvFactory?: AjvFactory | undefined);
|
|
15
|
-
value():
|
|
14
|
+
value(): ParseParams;
|
|
16
15
|
}
|
package/dist/rest.component.d.ts
CHANGED
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import { Binding, Constructor } from '@loopback/context';
|
|
2
2
|
import { Application, Component, ProviderMap, Server } from '@loopback/core';
|
|
3
|
-
import { RequestBodyParser } from './body-parsers';
|
|
4
3
|
import { RestServerConfig } from './rest.server';
|
|
5
|
-
import { ConsolidationEnhancer } from './spec-enhancers/consolidate.spec-enhancer';
|
|
6
|
-
import { InfoSpecEnhancer } from './spec-enhancers/info.spec-enhancer';
|
|
7
4
|
export declare class RestComponent implements Component {
|
|
8
5
|
providers: ProviderMap;
|
|
9
6
|
/**
|
|
10
7
|
* Add built-in body parsers
|
|
11
8
|
*/
|
|
12
|
-
bindings:
|
|
9
|
+
bindings: Binding[];
|
|
13
10
|
servers: {
|
|
14
11
|
[name: string]: Constructor<Server>;
|
|
15
12
|
};
|
|
@@ -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,
|
|
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,5 +1,5 @@
|
|
|
1
1
|
import { RestRouterOptions } from './rest-router';
|
|
2
|
-
import { RouteEntry } from './route-entry';
|
|
2
|
+
import { ResolvedRoute, RouteEntry } from './route-entry';
|
|
3
3
|
import { BaseRouter } from './router-base';
|
|
4
4
|
/**
|
|
5
5
|
* Router implementation based on trie
|
|
@@ -8,6 +8,6 @@ export declare class TrieRouter extends BaseRouter {
|
|
|
8
8
|
private trie;
|
|
9
9
|
constructor(options?: RestRouterOptions);
|
|
10
10
|
protected addRouteWithPathVars(route: RouteEntry): void;
|
|
11
|
-
protected findRouteWithPathVars(verb: string, path: string):
|
|
11
|
+
protected findRouteWithPathVars(verb: string, path: string): ResolvedRoute | undefined;
|
|
12
12
|
protected listRoutesWithPathVars(): RouteEntry[];
|
|
13
13
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trie-router.js","sourceRoot":"","sources":["../../src/router/trie-router.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAAyC;AACzC,+BAA6B;AAC7B,kCAAqC;AAErC,+
|
|
1
|
+
{"version":3,"file":"trie-router.js","sourceRoot":"","sources":["../../src/router/trie-router.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,+CAAyC;AACzC,+BAA6B;AAC7B,kCAAqC;AAErC,+CAA6E;AAC7E,+CAAyC;AACzC,iCAA4B;AAE5B,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC,2BAA2B,CAAC,CAAC;AAE5D;;GAEG;AACH;IAAA,IAAa,UAAU,GAAvB,MAAa,UAAW,SAAQ,wBAAU;QAGxC,YAEE,OAA2B;YAE3B,KAAK,CAAC,OAAO,CAAC,CAAC;YANT,SAAI,GAAG,IAAI,WAAI,EAAc,CAAC;QAOtC,CAAC;QAES,oBAAoB,CAAC,KAAiB;YAC9C,4BAA4B;YAC5B,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;YACvC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;QAC/B,CAAC;QAES,qBAAqB,CAC7B,IAAY,EACZ,IAAY;;YAEZ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAEpC,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACnC,KAAK,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;YAElC,IAAI,KAAK,EAAE;gBACT,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,KAAM,CAAC;gBAChC,IAAI,KAAK,EAAE;oBACT,KAAK,CAAC,iBAAiB,EAAE,cAAO,CAAC,KAAK,EAAE,EAAC,KAAK,EAAE,CAAC,EAAC,CAAC,CAAC,CAAC;oBACrD,OAAO,iCAAmB,CAAC,KAAK,QAAE,KAAK,CAAC,MAAM,mCAAI,EAAE,CAAC,CAAC;iBACvD;aACF;YACD,OAAO,SAAS,CAAC;QACnB,CAAC;QAES,sBAAsB;YAC9B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5C,CAAC;KACF,CAAA;IAtCY,UAAU;QAIlB,mBAAA,gBAAM,CAAC,mBAAY,CAAC,cAAc,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;OAJ7C,UAAU,CAsCtB;IAAD,iBAAC;KAAA;AAtCY,gCAAU"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@loopback/rest",
|
|
3
|
-
"version": "5.0.
|
|
3
|
+
"version": "5.0.1",
|
|
4
4
|
"description": "",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -21,11 +21,11 @@
|
|
|
21
21
|
"copyright.owner": "IBM Corp.",
|
|
22
22
|
"license": "MIT",
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@loopback/context": "^3.8.
|
|
25
|
-
"@loopback/core": "^2.
|
|
26
|
-
"@loopback/express": "^1.2.
|
|
27
|
-
"@loopback/http-server": "^2.1.
|
|
28
|
-
"@loopback/openapi-v3": "^3.4.
|
|
24
|
+
"@loopback/context": "^3.8.1",
|
|
25
|
+
"@loopback/core": "^2.7.0",
|
|
26
|
+
"@loopback/express": "^1.2.1",
|
|
27
|
+
"@loopback/http-server": "^2.1.5",
|
|
28
|
+
"@loopback/openapi-v3": "^3.4.1",
|
|
29
29
|
"@openapi-contrib/openapi-schema-to-json-schema": "^3.0.0",
|
|
30
30
|
"@types/body-parser": "^1.19.0",
|
|
31
31
|
"@types/cors": "^2.8.6",
|
|
@@ -33,7 +33,7 @@
|
|
|
33
33
|
"@types/express-serve-static-core": "^4.17.6",
|
|
34
34
|
"@types/http-errors": "^1.6.3",
|
|
35
35
|
"@types/on-finished": "^2.3.1",
|
|
36
|
-
"@types/serve-static": "1.13.
|
|
36
|
+
"@types/serve-static": "1.13.4",
|
|
37
37
|
"@types/type-is": "^1.6.3",
|
|
38
38
|
"ajv": "^6.12.2",
|
|
39
39
|
"ajv-errors": "^1.0.1",
|
|
@@ -55,19 +55,19 @@
|
|
|
55
55
|
"validator": "^13.0.0"
|
|
56
56
|
},
|
|
57
57
|
"devDependencies": {
|
|
58
|
-
"@loopback/build": "^5.4.
|
|
59
|
-
"@loopback/eslint-config": "^7.0.
|
|
60
|
-
"@loopback/openapi-spec-builder": "^2.1.
|
|
61
|
-
"@loopback/repository": "^2.5.
|
|
62
|
-
"@loopback/testlab": "^3.1.
|
|
58
|
+
"@loopback/build": "^5.4.1",
|
|
59
|
+
"@loopback/eslint-config": "^7.0.1",
|
|
60
|
+
"@loopback/openapi-spec-builder": "^2.1.5",
|
|
61
|
+
"@loopback/repository": "^2.5.1",
|
|
62
|
+
"@loopback/testlab": "^3.1.5",
|
|
63
63
|
"@types/debug": "^4.1.5",
|
|
64
64
|
"@types/js-yaml": "^3.12.4",
|
|
65
65
|
"@types/json-schema-compare": "^0.2.0",
|
|
66
|
-
"@types/lodash": "^4.14.
|
|
66
|
+
"@types/lodash": "^4.14.152",
|
|
67
67
|
"@types/multer": "^1.4.3",
|
|
68
|
-
"@types/node": "^10.17.
|
|
68
|
+
"@types/node": "^10.17.24",
|
|
69
69
|
"@types/on-finished": "^2.3.1",
|
|
70
|
-
"@types/qs": "^6.9.
|
|
70
|
+
"@types/qs": "^6.9.3",
|
|
71
71
|
"multer": "^1.4.2"
|
|
72
72
|
},
|
|
73
73
|
"files": [
|
|
@@ -81,5 +81,5 @@
|
|
|
81
81
|
"url": "https://github.com/strongloop/loopback-next.git",
|
|
82
82
|
"directory": "packages/rest"
|
|
83
83
|
},
|
|
84
|
-
"gitHead": "
|
|
84
|
+
"gitHead": "62aea854bf85c5a5995b59e6908fe5409f7eea96"
|
|
85
85
|
}
|
package/src/http-handler.ts
CHANGED
|
@@ -8,6 +8,8 @@ import {
|
|
|
8
8
|
ComponentsObject,
|
|
9
9
|
ControllerSpec,
|
|
10
10
|
PathObject,
|
|
11
|
+
ReferenceObject,
|
|
12
|
+
SchemaObject,
|
|
11
13
|
SchemasObject,
|
|
12
14
|
} from '@loopback/openapi-v3';
|
|
13
15
|
import {RestBindings} from './keys';
|
|
@@ -78,7 +80,11 @@ export class HttpHandler {
|
|
|
78
80
|
/**
|
|
79
81
|
* @deprecated Use `getApiComponents`
|
|
80
82
|
*/
|
|
81
|
-
getApiDefinitions()
|
|
83
|
+
getApiDefinitions():
|
|
84
|
+
| {
|
|
85
|
+
[schema: string]: SchemaObject | ReferenceObject;
|
|
86
|
+
}
|
|
87
|
+
| undefined {
|
|
82
88
|
return this._openApiComponents?.schemas;
|
|
83
89
|
}
|
|
84
90
|
|
package/src/keys.ts
CHANGED
|
@@ -12,7 +12,7 @@ import https from 'https';
|
|
|
12
12
|
import {ErrorWriterOptions} from 'strong-error-handler';
|
|
13
13
|
import {BodyParser, RequestBodyParser} from './body-parsers';
|
|
14
14
|
import {HttpHandler} from './http-handler';
|
|
15
|
-
import {RestServer} from './rest.server';
|
|
15
|
+
import {RestServer, RestServerConfig} from './rest.server';
|
|
16
16
|
import {RestRouter, RestRouterOptions} from './router';
|
|
17
17
|
import {SequenceHandler} from './sequence';
|
|
18
18
|
import {
|
|
@@ -35,7 +35,9 @@ export namespace RestBindings {
|
|
|
35
35
|
/**
|
|
36
36
|
* Binding key for setting and injecting RestComponentConfig
|
|
37
37
|
*/
|
|
38
|
-
export const CONFIG = CoreBindings.APPLICATION_CONFIG.deepProperty(
|
|
38
|
+
export const CONFIG: BindingKey<RestServerConfig> = CoreBindings.APPLICATION_CONFIG.deepProperty(
|
|
39
|
+
'rest',
|
|
40
|
+
);
|
|
39
41
|
/**
|
|
40
42
|
* Binding key for setting and injecting the host name of RestServer
|
|
41
43
|
*/
|
|
@@ -162,7 +164,9 @@ export namespace RestBindings {
|
|
|
162
164
|
/**
|
|
163
165
|
* Binding key for setting and injecting an OpenAPI spec
|
|
164
166
|
*/
|
|
165
|
-
export const API_SPEC = BindingKey.create<
|
|
167
|
+
export const API_SPEC: BindingKey<OpenApiSpec> = BindingKey.create<
|
|
168
|
+
OpenApiSpec
|
|
169
|
+
>('rest.apiSpec');
|
|
166
170
|
|
|
167
171
|
/**
|
|
168
172
|
* Binding key for setting and injecting an OpenAPI operation spec
|
|
@@ -229,7 +233,9 @@ export namespace RestBindings {
|
|
|
229
233
|
/**
|
|
230
234
|
* Binding key for setting and injecting the http request
|
|
231
235
|
*/
|
|
232
|
-
export const REQUEST = BindingKey.create<Request>(
|
|
236
|
+
export const REQUEST: BindingKey<Request> = BindingKey.create<Request>(
|
|
237
|
+
'rest.http.request',
|
|
238
|
+
);
|
|
233
239
|
/**
|
|
234
240
|
* Binding key for setting and injecting the http response
|
|
235
241
|
*/
|
|
@@ -32,7 +32,7 @@ export class ParseParamsProvider implements Provider<ParseParams> {
|
|
|
32
32
|
private ajvFactory?: AjvFactory,
|
|
33
33
|
) {}
|
|
34
34
|
|
|
35
|
-
value() {
|
|
35
|
+
value(): ParseParams {
|
|
36
36
|
return (request: Request, route: ResolvedRoute) =>
|
|
37
37
|
parseOperationArgs(request, route, this.requestBodyParser, {
|
|
38
38
|
ajvFactory: this.ajvFactory,
|
package/src/rest.component.ts
CHANGED
|
@@ -60,7 +60,7 @@ export class RestComponent implements Component {
|
|
|
60
60
|
/**
|
|
61
61
|
* Add built-in body parsers
|
|
62
62
|
*/
|
|
63
|
-
bindings = [
|
|
63
|
+
bindings: Binding[] = [
|
|
64
64
|
// FIXME(rfeng): We now register request body parsers in TRANSIENT scope
|
|
65
65
|
// so that they can be bound at application or server level
|
|
66
66
|
Binding.bind(RestBindings.REQUEST_BODY_PARSER).toClass(RequestBodyParser),
|
|
@@ -7,7 +7,7 @@ import {inject} from '@loopback/context';
|
|
|
7
7
|
import {inspect} from 'util';
|
|
8
8
|
import {RestBindings} from '../keys';
|
|
9
9
|
import {RestRouterOptions} from './rest-router';
|
|
10
|
-
import {createResolvedRoute, RouteEntry} from './route-entry';
|
|
10
|
+
import {createResolvedRoute, ResolvedRoute, RouteEntry} from './route-entry';
|
|
11
11
|
import {BaseRouter} from './router-base';
|
|
12
12
|
import {Trie} from './trie';
|
|
13
13
|
|
|
@@ -32,7 +32,10 @@ export class TrieRouter extends BaseRouter {
|
|
|
32
32
|
this.trie.create(key, route);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
protected findRouteWithPathVars(
|
|
35
|
+
protected findRouteWithPathVars(
|
|
36
|
+
verb: string,
|
|
37
|
+
path: string,
|
|
38
|
+
): ResolvedRoute | undefined {
|
|
36
39
|
const key = this.getKey(verb, path);
|
|
37
40
|
|
|
38
41
|
const found = this.trie.match(key);
|