@loopback/rest 5.1.0 → 5.2.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 +49 -0
- package/dist/body-parsers/body-parser.d.ts +1 -1
- package/dist/body-parsers/body-parser.js +112 -115
- package/dist/body-parsers/body-parser.js.map +1 -1
- package/dist/body-parsers/body-parser.json.js +24 -27
- package/dist/body-parsers/body-parser.json.js.map +1 -1
- package/dist/body-parsers/body-parser.raw.js +19 -22
- package/dist/body-parsers/body-parser.raw.js.map +1 -1
- package/dist/body-parsers/body-parser.text.js +21 -24
- package/dist/body-parsers/body-parser.text.js.map +1 -1
- package/dist/body-parsers/body-parser.urlencoded.js +19 -22
- package/dist/body-parsers/body-parser.urlencoded.js.map +1 -1
- package/dist/coercion/coerce-parameter.d.ts +3 -1
- package/dist/coercion/coerce-parameter.js +28 -12
- package/dist/coercion/coerce-parameter.js.map +1 -1
- package/dist/http-handler.d.ts +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +1 -1
- package/dist/keys.js +33 -34
- package/dist/keys.js.map +1 -1
- package/dist/parser.js +1 -1
- package/dist/parser.js.map +1 -1
- package/dist/providers/find-route.provider.d.ts +1 -1
- package/dist/providers/find-route.provider.js +21 -24
- package/dist/providers/find-route.provider.js.map +1 -1
- package/dist/providers/invoke-method.provider.d.ts +1 -1
- package/dist/providers/invoke-method.provider.js +16 -19
- package/dist/providers/invoke-method.provider.js.map +1 -1
- package/dist/providers/log-error.provider.d.ts +1 -1
- package/dist/providers/parse-params.provider.d.ts +1 -1
- package/dist/providers/parse-params.provider.js +20 -23
- package/dist/providers/parse-params.provider.js.map +1 -1
- package/dist/providers/reject.provider.d.ts +1 -1
- package/dist/providers/reject.provider.js +25 -28
- package/dist/providers/reject.provider.js.map +1 -1
- package/dist/providers/send.provider.d.ts +1 -1
- package/dist/request-context.d.ts +1 -1
- package/dist/rest.application.d.ts +1 -2
- package/dist/rest.application.js.map +1 -1
- package/dist/rest.component.d.ts +1 -1
- package/dist/rest.component.js +46 -49
- package/dist/rest.component.js.map +1 -1
- package/dist/rest.server.d.ts +1 -2
- package/dist/rest.server.js +618 -621
- package/dist/rest.server.js.map +1 -1
- package/dist/router/base-route.d.ts +1 -1
- package/dist/router/controller-route.d.ts +1 -1
- package/dist/router/controller-route.js +3 -4
- package/dist/router/controller-route.js.map +1 -1
- package/dist/router/handler-route.d.ts +1 -1
- package/dist/router/handler-route.js +2 -2
- package/dist/router/handler-route.js.map +1 -1
- package/dist/router/redirect-route.js +2 -2
- package/dist/router/redirect-route.js.map +1 -1
- package/dist/router/regexp-router.js +55 -58
- package/dist/router/regexp-router.js.map +1 -1
- package/dist/router/route-entry.d.ts +1 -1
- package/dist/router/trie-router.js +31 -34
- package/dist/router/trie-router.js.map +1 -1
- package/dist/sequence.d.ts +1 -1
- package/dist/sequence.js +74 -77
- package/dist/sequence.js.map +1 -1
- package/dist/spec-enhancers/consolidate.spec-enhancer.js +89 -92
- package/dist/spec-enhancers/consolidate.spec-enhancer.js.map +1 -1
- package/dist/spec-enhancers/info.spec-enhancer.js +63 -67
- package/dist/spec-enhancers/info.spec-enhancer.js.map +1 -1
- package/dist/types.d.ts +10 -0
- package/dist/validation/ajv-factory.provider.js +63 -66
- package/dist/validation/ajv-factory.provider.js.map +1 -1
- package/dist/validation/request-body.validator.d.ts +10 -2
- package/dist/validation/request-body.validator.js +25 -9
- package/dist/validation/request-body.validator.js.map +1 -1
- package/package.json +29 -27
- package/src/body-parsers/body-parser.json.ts +1 -1
- package/src/body-parsers/body-parser.raw.ts +1 -1
- package/src/body-parsers/body-parser.text.ts +1 -1
- package/src/body-parsers/body-parser.ts +1 -1
- package/src/body-parsers/body-parser.urlencoded.ts +1 -1
- package/src/coercion/coerce-parameter.ts +55 -15
- package/src/http-handler.ts +1 -1
- package/src/index.ts +6 -0
- package/src/keys.ts +1 -2
- package/src/parser.ts +1 -1
- package/src/providers/find-route.provider.ts +1 -1
- package/src/providers/invoke-method.provider.ts +1 -1
- package/src/providers/log-error.provider.ts +1 -1
- package/src/providers/parse-params.provider.ts +1 -1
- package/src/providers/reject.provider.ts +1 -1
- package/src/providers/send.provider.ts +1 -1
- package/src/request-context.ts +1 -1
- package/src/rest.application.ts +4 -2
- package/src/rest.component.ts +1 -1
- package/src/rest.server.ts +5 -3
- package/src/router/base-route.ts +1 -1
- package/src/router/controller-route.ts +2 -2
- package/src/router/external-express-routes.ts +1 -1
- package/src/router/handler-route.ts +1 -1
- package/src/router/redirect-route.ts +1 -2
- package/src/router/regexp-router.ts +1 -1
- package/src/router/route-entry.ts +1 -1
- package/src/router/trie-router.ts +1 -1
- package/src/sequence.ts +1 -1
- package/src/spec-enhancers/info.spec-enhancer.ts +3 -2
- package/src/types.ts +11 -0
- package/src/validation/request-body.validator.ts +35 -12
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,55 @@
|
|
|
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.2.1](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.2.0...@loopback/rest@5.2.1) (2020-07-20)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* ensure delete only applies to optional properties ([89cd43f](https://github.com/strongloop/loopback-next/commit/89cd43f1a455983f120d9bb9c869eac36adc7ad7))
|
|
12
|
+
* nested scope filter ([b29d6d7](https://github.com/strongloop/loopback-next/commit/b29d6d7938b0d07e927b0939745b76cfff91272b))
|
|
13
|
+
* **repository-json-schema:** added type 'object' to model json schema ([5c5f9ef](https://github.com/strongloop/loopback-next/commit/5c5f9efcfdea7788503d74610e7ce64f31abc7cd)), closes [#3804](https://github.com/strongloop/loopback-next/issues/3804)
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
# [5.2.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.1.2...@loopback/rest@5.2.0) (2020-06-30)
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
### Bug Fixes
|
|
23
|
+
|
|
24
|
+
* **rest:** fix typing to be compatible with latest @types/js-yaml ([5ac39e4](https://github.com/strongloop/loopback-next/commit/5ac39e44827ef74c9d2bccb1797a9da125c249e3))
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
### Features
|
|
28
|
+
|
|
29
|
+
* coerce query object with schema ([ccea25f](https://github.com/strongloop/loopback-next/commit/ccea25fc382457f9436adfc0d8f6ce3a2d029c5e))
|
|
30
|
+
* **rest:** expose types from strong-error-handler ([b6f5595](https://github.com/strongloop/loopback-next/commit/b6f559549518c839a2898f1b968fc6a7901a6c6b))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
## [5.1.2](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.1.1...@loopback/rest@5.1.2) (2020-06-23)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Bug Fixes
|
|
40
|
+
|
|
41
|
+
* set node version to >=10.16 to support events.once ([e39da1c](https://github.com/strongloop/loopback-next/commit/e39da1ca47728eafaf83c10ce35b09b03b6a4edc))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
## [5.1.1](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.1.0...@loopback/rest@5.1.1) (2020-06-11)
|
|
48
|
+
|
|
49
|
+
**Note:** Version bump only for package @loopback/rest
|
|
50
|
+
|
|
51
|
+
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
|
|
6
55
|
# [5.1.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@5.0.1...@loopback/rest@5.1.0) (2020-05-28)
|
|
7
56
|
|
|
8
57
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RequestBodyParser = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const openapi_v3_1 = require("@loopback/openapi-v3");
|
|
11
11
|
const debug_1 = tslib_1.__importDefault(require("debug"));
|
|
12
12
|
const type_is_1 = require("type-is");
|
|
@@ -14,133 +14,130 @@ const rest_http_error_1 = require("../rest-http-error");
|
|
|
14
14
|
const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
15
15
|
const types_1 = require("./types");
|
|
16
16
|
const debug = debug_1.default('loopback:rest:body-parser');
|
|
17
|
-
let RequestBodyParser =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
debug('Body parsers: ', this.parsers.map(p => p.name));
|
|
24
|
-
}
|
|
17
|
+
let RequestBodyParser = class RequestBodyParser {
|
|
18
|
+
constructor(parsers, ctx) {
|
|
19
|
+
this.ctx = ctx;
|
|
20
|
+
this.parsers = sortParsers(parsers !== null && parsers !== void 0 ? parsers : []);
|
|
21
|
+
if (debug.enabled) {
|
|
22
|
+
debug('Body parsers: ', this.parsers.map(p => p.name));
|
|
25
23
|
}
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
24
|
+
}
|
|
25
|
+
async loadRequestBodyIfNeeded(operationSpec, request) {
|
|
26
|
+
const { requestBody, customParser } = await this._matchRequestBodySpec(operationSpec, request);
|
|
27
|
+
if (!operationSpec.requestBody)
|
|
28
|
+
return requestBody;
|
|
29
|
+
const matchedMediaType = requestBody.mediaType;
|
|
30
|
+
try {
|
|
31
|
+
if (customParser) {
|
|
32
|
+
// Invoke the custom parser
|
|
33
|
+
const body = await this._invokeCustomParser(customParser, request);
|
|
34
|
+
return Object.assign(requestBody, body);
|
|
35
|
+
}
|
|
36
|
+
else {
|
|
37
|
+
const parser = this._findParser(matchedMediaType);
|
|
38
|
+
if (parser) {
|
|
39
|
+
const body = await parser.parse(request);
|
|
35
40
|
return Object.assign(requestBody, body);
|
|
36
41
|
}
|
|
37
|
-
else {
|
|
38
|
-
const parser = this._findParser(matchedMediaType);
|
|
39
|
-
if (parser) {
|
|
40
|
-
const body = await parser.parse(request);
|
|
41
|
-
return Object.assign(requestBody, body);
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
catch (err) {
|
|
46
|
-
throw body_parser_helpers_1.normalizeParsingError(err);
|
|
47
42
|
}
|
|
48
|
-
throw rest_http_error_1.RestHttpErrors.unsupportedMediaType(matchedMediaType);
|
|
49
43
|
}
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
44
|
+
catch (err) {
|
|
45
|
+
throw body_parser_helpers_1.normalizeParsingError(err);
|
|
46
|
+
}
|
|
47
|
+
throw rest_http_error_1.RestHttpErrors.unsupportedMediaType(matchedMediaType);
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Match the http request to a given media type of the request body spec
|
|
51
|
+
*/
|
|
52
|
+
async _matchRequestBodySpec(operationSpec, request) {
|
|
53
|
+
var _a;
|
|
54
|
+
const requestBody = {
|
|
55
|
+
value: undefined,
|
|
56
|
+
};
|
|
57
|
+
if (!operationSpec.requestBody)
|
|
58
|
+
return { requestBody };
|
|
59
|
+
const contentType = (_a = body_parser_helpers_1.getContentType(request)) !== null && _a !== void 0 ? _a : 'application/json';
|
|
60
|
+
debug('Loading request body with content type %j', contentType);
|
|
61
|
+
// the type of `operationSpec.requestBody` could be `RequestBodyObject`
|
|
62
|
+
// or `ReferenceObject`, resolving a `$ref` value is not supported yet.
|
|
63
|
+
if (openapi_v3_1.isReferenceObject(operationSpec.requestBody)) {
|
|
64
|
+
throw new Error('$ref requestBody is not supported yet.');
|
|
65
|
+
}
|
|
66
|
+
let content = operationSpec.requestBody.content || {};
|
|
67
|
+
if (!Object.keys(content).length) {
|
|
68
|
+
content = {
|
|
69
|
+
// default to allow json and urlencoded
|
|
70
|
+
'application/json': { schema: { type: 'object' } },
|
|
71
|
+
'application/x-www-form-urlencoded': { schema: { type: 'object' } },
|
|
57
72
|
};
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
'application/json': { schema: { type: 'object' } },
|
|
72
|
-
'application/x-www-form-urlencoded': { schema: { type: 'object' } },
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
// Check of the request content type matches one of the expected media
|
|
76
|
-
// types in the request body spec
|
|
77
|
-
let matchedMediaType = false;
|
|
78
|
-
let customParser = undefined;
|
|
79
|
-
for (const type in content) {
|
|
80
|
-
matchedMediaType = type_is_1.is(contentType, type);
|
|
81
|
-
if (matchedMediaType) {
|
|
82
|
-
debug('Matched media type: %s -> %s', type, contentType);
|
|
83
|
-
requestBody.mediaType = contentType;
|
|
84
|
-
requestBody.schema = content[type].schema;
|
|
85
|
-
customParser = content[type]['x-parser'];
|
|
86
|
-
break;
|
|
87
|
-
}
|
|
73
|
+
}
|
|
74
|
+
// Check of the request content type matches one of the expected media
|
|
75
|
+
// types in the request body spec
|
|
76
|
+
let matchedMediaType = false;
|
|
77
|
+
let customParser = undefined;
|
|
78
|
+
for (const type in content) {
|
|
79
|
+
matchedMediaType = type_is_1.is(contentType, type);
|
|
80
|
+
if (matchedMediaType) {
|
|
81
|
+
debug('Matched media type: %s -> %s', type, contentType);
|
|
82
|
+
requestBody.mediaType = contentType;
|
|
83
|
+
requestBody.schema = content[type].schema;
|
|
84
|
+
customParser = content[type]['x-parser'];
|
|
85
|
+
break;
|
|
88
86
|
}
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
87
|
+
}
|
|
88
|
+
if (!matchedMediaType) {
|
|
89
|
+
// No matching media type found, fail fast
|
|
90
|
+
throw rest_http_error_1.RestHttpErrors.unsupportedMediaType(contentType, Object.keys(content));
|
|
91
|
+
}
|
|
92
|
+
return { requestBody, customParser };
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Find a body parser that supports the media type
|
|
96
|
+
* @param matchedMediaType - Media type
|
|
97
|
+
*/
|
|
98
|
+
_findParser(matchedMediaType) {
|
|
99
|
+
for (const parser of this.parsers) {
|
|
100
|
+
if (!parser.supports(matchedMediaType)) {
|
|
101
|
+
debug('Body parser %s does not support %s', parser.name, matchedMediaType);
|
|
102
|
+
continue;
|
|
92
103
|
}
|
|
93
|
-
|
|
104
|
+
debug('Body parser %s found for %s', parser.name, matchedMediaType);
|
|
105
|
+
return parser;
|
|
94
106
|
}
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Resolve and invoke a custom parser
|
|
110
|
+
* @param customParser - The parser name, class or function
|
|
111
|
+
* @param request - Http request
|
|
112
|
+
*/
|
|
113
|
+
async _invokeCustomParser(customParser, request) {
|
|
114
|
+
if (typeof customParser === 'string') {
|
|
115
|
+
const parser = this.parsers.find(p => p.name === customParser ||
|
|
116
|
+
p.name === body_parser_helpers_1.builtinParsers.mapping[customParser]);
|
|
117
|
+
if (parser) {
|
|
118
|
+
debug('Using custom parser %s', customParser);
|
|
119
|
+
return parser.parse(request);
|
|
107
120
|
}
|
|
108
121
|
}
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
async _invokeCustomParser(customParser, request) {
|
|
115
|
-
if (typeof customParser === 'string') {
|
|
116
|
-
const parser = this.parsers.find(p => p.name === customParser ||
|
|
117
|
-
p.name === body_parser_helpers_1.builtinParsers.mapping[customParser]);
|
|
118
|
-
if (parser) {
|
|
119
|
-
debug('Using custom parser %s', customParser);
|
|
120
|
-
return parser.parse(request);
|
|
121
|
-
}
|
|
122
|
+
else if (typeof customParser === 'function') {
|
|
123
|
+
if (isBodyParserClass(customParser)) {
|
|
124
|
+
debug('Using custom parser class %s', customParser.name);
|
|
125
|
+
const parser = await core_1.instantiateClass(customParser, this.ctx);
|
|
126
|
+
return parser.parse(request);
|
|
122
127
|
}
|
|
123
|
-
else
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
const parser = await context_1.instantiateClass(customParser, this.ctx);
|
|
127
|
-
return parser.parse(request);
|
|
128
|
-
}
|
|
129
|
-
else {
|
|
130
|
-
debug('Using custom parser function %s', customParser.name);
|
|
131
|
-
return customParser(request);
|
|
132
|
-
}
|
|
128
|
+
else {
|
|
129
|
+
debug('Using custom parser function %s', customParser.name);
|
|
130
|
+
return customParser(request);
|
|
133
131
|
}
|
|
134
|
-
throw new Error('Custom parser not found: ' + customParser);
|
|
135
132
|
}
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
133
|
+
throw new Error('Custom parser not found: ' + customParser);
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
RequestBodyParser = tslib_1.__decorate([
|
|
137
|
+
tslib_1.__param(0, core_1.inject(core_1.filterByTag(types_1.REQUEST_BODY_PARSER_TAG), { optional: true })),
|
|
138
|
+
tslib_1.__param(1, core_1.inject.context()),
|
|
139
|
+
tslib_1.__metadata("design:paramtypes", [Array, core_1.Context])
|
|
140
|
+
], RequestBodyParser);
|
|
144
141
|
exports.RequestBodyParser = RequestBodyParser;
|
|
145
142
|
/**
|
|
146
143
|
* Test if a function is a body parser class or plain function
|
|
@@ -154,6 +151,6 @@ function isBodyParserClass(fn) {
|
|
|
154
151
|
* @param parsers
|
|
155
152
|
*/
|
|
156
153
|
function sortParsers(parsers) {
|
|
157
|
-
return parsers.sort((a, b) =>
|
|
154
|
+
return parsers.sort((a, b) => core_1.compareByOrder(a.name, b.name, body_parser_helpers_1.builtinParsers.names));
|
|
158
155
|
}
|
|
159
156
|
//# sourceMappingURL=body-parser.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,38 +6,35 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.JsonBodyParser = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const body_parser_1 = require("body-parser");
|
|
11
11
|
const type_is_1 = require("type-is");
|
|
12
12
|
const keys_1 = require("../keys");
|
|
13
13
|
const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
14
14
|
const parse_json_1 = require("../parse-json");
|
|
15
|
-
let JsonBodyParser =
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
15
|
+
let JsonBodyParser = class JsonBodyParser {
|
|
16
|
+
constructor(options = {}) {
|
|
17
|
+
this.name = body_parser_helpers_1.builtinParsers.json;
|
|
18
|
+
const jsonOptions = body_parser_helpers_1.getParserOptions('json', options);
|
|
19
|
+
jsonOptions.reviver = parse_json_1.sanitizeJsonParse(jsonOptions.reviver);
|
|
20
|
+
this.jsonParser = body_parser_1.json(jsonOptions);
|
|
21
|
+
}
|
|
22
|
+
supports(mediaType) {
|
|
23
|
+
return !!type_is_1.is(mediaType, '*/json', '*/*+json');
|
|
24
|
+
}
|
|
25
|
+
async parse(request) {
|
|
26
|
+
let body = await body_parser_helpers_1.invokeBodyParserMiddleware(this.jsonParser, request);
|
|
27
|
+
// https://github.com/expressjs/body-parser/blob/master/lib/types/json.js#L71-L76
|
|
28
|
+
const contentLength = request.get('content-length');
|
|
29
|
+
if (contentLength != null && +contentLength === 0) {
|
|
30
|
+
body = undefined;
|
|
22
31
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
if (contentLength != null && +contentLength === 0) {
|
|
31
|
-
body = undefined;
|
|
32
|
-
}
|
|
33
|
-
return { value: body };
|
|
34
|
-
}
|
|
35
|
-
};
|
|
36
|
-
JsonBodyParser = tslib_1.__decorate([
|
|
37
|
-
tslib_1.__param(0, context_1.inject(keys_1.RestBindings.REQUEST_BODY_PARSER_OPTIONS, { optional: true })),
|
|
38
|
-
tslib_1.__metadata("design:paramtypes", [Object])
|
|
39
|
-
], JsonBodyParser);
|
|
40
|
-
return JsonBodyParser;
|
|
41
|
-
})();
|
|
32
|
+
return { value: body };
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
JsonBodyParser = tslib_1.__decorate([
|
|
36
|
+
tslib_1.__param(0, core_1.inject(keys_1.RestBindings.REQUEST_BODY_PARSER_OPTIONS, { optional: true })),
|
|
37
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
38
|
+
], JsonBodyParser);
|
|
42
39
|
exports.JsonBodyParser = JsonBodyParser;
|
|
43
40
|
//# sourceMappingURL=body-parser.json.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.json.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.json.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"body-parser.json.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.json.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAsC;AACtC,6CAAiC;AACjC,qCAA2B;AAC3B,kCAAqC;AAErC,+DAK+B;AAE/B,8CAAgD;AAEhD,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAEE,UAAoC,EAAE;QALxC,SAAI,GAAG,oCAAc,CAAC,IAAI,CAAC;QAOzB,MAAM,WAAW,GAAG,sCAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtD,WAAW,CAAC,OAAO,GAAG,8BAAiB,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC7D,IAAI,CAAC,UAAU,GAAG,kBAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,CAAC,CAAC,YAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,IAAI,IAAI,GAAG,MAAM,gDAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACtE,iFAAiF;QACjF,MAAM,aAAa,GAAG,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC,CAAC;QACpD,IAAI,aAAa,IAAI,IAAI,IAAI,CAAC,aAAa,KAAK,CAAC,EAAE;YACjD,IAAI,GAAG,SAAS,CAAC;SAClB;QACD,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;IACvB,CAAC;CACF,CAAA;AA1BY,cAAc;IAKtB,mBAAA,aAAM,CAAC,mBAAY,CAAC,2BAA2B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAL1D,cAAc,CA0B1B;AA1BY,wCAAc"}
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.RawBodyParser = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const body_parser_1 = require("body-parser");
|
|
11
11
|
const type_is_1 = require("type-is");
|
|
12
12
|
const keys_1 = require("../keys");
|
|
@@ -14,26 +14,23 @@ const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
|
14
14
|
/**
|
|
15
15
|
* Parsing the request body into Buffer
|
|
16
16
|
*/
|
|
17
|
-
let RawBodyParser =
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
], RawBodyParser);
|
|
36
|
-
return RawBodyParser;
|
|
37
|
-
})();
|
|
17
|
+
let RawBodyParser = class RawBodyParser {
|
|
18
|
+
constructor(options = {}) {
|
|
19
|
+
this.name = body_parser_helpers_1.builtinParsers.raw;
|
|
20
|
+
const rawOptions = body_parser_helpers_1.getParserOptions('raw', options);
|
|
21
|
+
this.rawParser = body_parser_1.raw(rawOptions);
|
|
22
|
+
}
|
|
23
|
+
supports(mediaType) {
|
|
24
|
+
return !!type_is_1.is(mediaType, 'application/octet-stream');
|
|
25
|
+
}
|
|
26
|
+
async parse(request) {
|
|
27
|
+
const body = await body_parser_helpers_1.invokeBodyParserMiddleware(this.rawParser, request);
|
|
28
|
+
return { value: body };
|
|
29
|
+
}
|
|
30
|
+
};
|
|
31
|
+
RawBodyParser = tslib_1.__decorate([
|
|
32
|
+
tslib_1.__param(0, core_1.inject(keys_1.RestBindings.REQUEST_BODY_PARSER_OPTIONS, { optional: true })),
|
|
33
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
34
|
+
], RawBodyParser);
|
|
38
35
|
exports.RawBodyParser = RawBodyParser;
|
|
39
36
|
//# sourceMappingURL=body-parser.raw.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.raw.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.raw.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"body-parser.raw.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.raw.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAsC;AACtC,6CAAgC;AAChC,qCAA2B;AAC3B,kCAAqC;AAErC,+DAK+B;AAG/B;;GAEG;AACH,IAAa,aAAa,GAA1B,MAAa,aAAa;IAIxB,YAEE,UAAoC,EAAE;QALxC,SAAI,GAAG,oCAAc,CAAC,GAAG,CAAC;QAOxB,MAAM,UAAU,GAAG,sCAAgB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,IAAI,CAAC,SAAS,GAAG,iBAAG,CAAC,UAAU,CAAC,CAAC;IACnC,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,CAAC,CAAC,YAAE,CAAC,SAAS,EAAE,0BAA0B,CAAC,CAAC;IACrD,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,MAAM,IAAI,GAAG,MAAM,gDAA0B,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACvE,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;IACvB,CAAC;CACF,CAAA;AApBY,aAAa;IAKrB,mBAAA,aAAM,CAAC,mBAAY,CAAC,2BAA2B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAL1D,aAAa,CAoBzB;AApBY,sCAAa"}
|
|
@@ -6,33 +6,30 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.TextBodyParser = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const body_parser_1 = require("body-parser");
|
|
11
11
|
const type_is_1 = require("type-is");
|
|
12
12
|
const keys_1 = require("../keys");
|
|
13
13
|
const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
14
|
-
let TextBodyParser =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
], TextBodyParser);
|
|
35
|
-
return TextBodyParser;
|
|
36
|
-
})();
|
|
14
|
+
let TextBodyParser = class TextBodyParser {
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.name = body_parser_helpers_1.builtinParsers.text;
|
|
17
|
+
const textOptions = Object.assign({ type: 'text/*' }, body_parser_helpers_1.getParserOptions('text', options));
|
|
18
|
+
this.textParser = body_parser_1.text(textOptions);
|
|
19
|
+
}
|
|
20
|
+
supports(mediaType) {
|
|
21
|
+
// Please note that `text/*` matches `text/plain` and `text/html` but`text`
|
|
22
|
+
// does not.
|
|
23
|
+
return !!type_is_1.is(mediaType, 'text/*');
|
|
24
|
+
}
|
|
25
|
+
async parse(request) {
|
|
26
|
+
const body = await body_parser_helpers_1.invokeBodyParserMiddleware(this.textParser, request);
|
|
27
|
+
return { value: body };
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
TextBodyParser = tslib_1.__decorate([
|
|
31
|
+
tslib_1.__param(0, core_1.inject(keys_1.RestBindings.REQUEST_BODY_PARSER_OPTIONS, { optional: true })),
|
|
32
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
33
|
+
], TextBodyParser);
|
|
37
34
|
exports.TextBodyParser = TextBodyParser;
|
|
38
35
|
//# sourceMappingURL=body-parser.text.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.text.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.text.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"body-parser.text.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.text.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAsC;AACtC,6CAAiC;AACjC,qCAA2B;AAC3B,kCAAqC;AAErC,+DAK+B;AAG/B,IAAa,cAAc,GAA3B,MAAa,cAAc;IAIzB,YAEE,UAAoC,EAAE;QALxC,SAAI,GAAG,oCAAc,CAAC,IAAI,CAAC;QAOzB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAC/B,EAAC,IAAI,EAAE,QAAQ,EAAC,EAChB,sCAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,CAClC,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,kBAAI,CAAC,WAAW,CAAC,CAAC;IACtC,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,2EAA2E;QAC3E,YAAY;QACZ,OAAO,CAAC,CAAC,YAAE,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACnC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,MAAM,IAAI,GAAG,MAAM,gDAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;QACxE,OAAO,EAAC,KAAK,EAAE,IAAI,EAAC,CAAC;IACvB,CAAC;CACF,CAAA;AAzBY,cAAc;IAKtB,mBAAA,aAAM,CAAC,mBAAY,CAAC,2BAA2B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAL1D,cAAc,CAyB1B;AAzBY,wCAAc"}
|
|
@@ -6,31 +6,28 @@
|
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.UrlEncodedBodyParser = void 0;
|
|
8
8
|
const tslib_1 = require("tslib");
|
|
9
|
-
const
|
|
9
|
+
const core_1 = require("@loopback/core");
|
|
10
10
|
const body_parser_1 = require("body-parser");
|
|
11
11
|
const type_is_1 = require("type-is");
|
|
12
12
|
const keys_1 = require("../keys");
|
|
13
13
|
const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
14
|
-
let UrlEncodedBodyParser =
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
], UrlEncodedBodyParser);
|
|
33
|
-
return UrlEncodedBodyParser;
|
|
34
|
-
})();
|
|
14
|
+
let UrlEncodedBodyParser = class UrlEncodedBodyParser {
|
|
15
|
+
constructor(options = {}) {
|
|
16
|
+
this.name = body_parser_helpers_1.builtinParsers.urlencoded;
|
|
17
|
+
const urlencodedOptions = body_parser_helpers_1.getParserOptions('urlencoded', options);
|
|
18
|
+
this.urlencodedParser = body_parser_1.urlencoded(urlencodedOptions);
|
|
19
|
+
}
|
|
20
|
+
supports(mediaType) {
|
|
21
|
+
return !!type_is_1.is(mediaType, 'urlencoded');
|
|
22
|
+
}
|
|
23
|
+
async parse(request) {
|
|
24
|
+
const body = await body_parser_helpers_1.invokeBodyParserMiddleware(this.urlencodedParser, request);
|
|
25
|
+
return { value: body, coercionRequired: true };
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
UrlEncodedBodyParser = tslib_1.__decorate([
|
|
29
|
+
tslib_1.__param(0, core_1.inject(keys_1.RestBindings.REQUEST_BODY_PARSER_OPTIONS, { optional: true })),
|
|
30
|
+
tslib_1.__metadata("design:paramtypes", [Object])
|
|
31
|
+
], UrlEncodedBodyParser);
|
|
35
32
|
exports.UrlEncodedBodyParser = UrlEncodedBodyParser;
|
|
36
33
|
//# sourceMappingURL=body-parser.urlencoded.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.urlencoded.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.urlencoded.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE
|
|
1
|
+
{"version":3,"file":"body-parser.urlencoded.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.urlencoded.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;AAEhE,yCAAsC;AACtC,6CAAuC;AACvC,qCAA2B;AAC3B,kCAAqC;AAErC,+DAK+B;AAG/B,IAAa,oBAAoB,GAAjC,MAAa,oBAAoB;IAI/B,YAEE,UAAoC,EAAE;QALxC,SAAI,GAAG,oCAAc,CAAC,UAAU,CAAC;QAO/B,MAAM,iBAAiB,GAAG,sCAAgB,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,gBAAgB,GAAG,wBAAU,CAAC,iBAAiB,CAAC,CAAC;IACxD,CAAC;IAED,QAAQ,CAAC,SAAiB;QACxB,OAAO,CAAC,CAAC,YAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,OAAgB;QAC1B,MAAM,IAAI,GAAG,MAAM,gDAA0B,CAC3C,IAAI,CAAC,gBAAgB,EACrB,OAAO,CACR,CAAC;QACF,OAAO,EAAC,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAC,CAAC;IAC/C,CAAC;CACF,CAAA;AAvBY,oBAAoB;IAK5B,mBAAA,aAAM,CAAC,mBAAY,CAAC,2BAA2B,EAAE,EAAC,QAAQ,EAAE,IAAI,EAAC,CAAC,CAAA;;GAL1D,oBAAoB,CAuBhC;AAvBY,oDAAoB"}
|