@loopback/rest 1.23.0 → 1.26.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.
- package/CHANGELOG.md +41 -0
- package/dist/body-parsers/body-parser.helpers.js +5 -2
- package/dist/body-parsers/body-parser.helpers.js.map +1 -1
- package/dist/body-parsers/body-parser.js +8 -4
- package/dist/body-parsers/body-parser.js.map +1 -1
- package/dist/coercion/coerce-parameter.js +9 -4
- package/dist/coercion/coerce-parameter.js.map +1 -1
- package/dist/coercion/utils.js +5 -2
- package/dist/coercion/utils.js.map +1 -1
- package/dist/coercion/validator.js +4 -2
- package/dist/coercion/validator.js.map +1 -1
- package/dist/index.d.ts +10 -10
- package/dist/index.js +13 -10
- package/dist/index.js.map +1 -1
- package/dist/keys.d.ts +1 -1
- package/dist/parser.js +7 -3
- package/dist/parser.js.map +1 -1
- package/dist/providers/log-error.provider.js +2 -1
- package/dist/providers/log-error.provider.js.map +1 -1
- package/dist/request-context.js +17 -11
- package/dist/request-context.js.map +1 -1
- package/dist/rest-http-error.d.ts +1 -1
- package/dist/rest-http-error.js +11 -8
- package/dist/rest-http-error.js.map +1 -1
- package/dist/rest.component.js +2 -1
- package/dist/rest.component.js.map +1 -1
- package/dist/rest.server.d.ts +2 -2
- package/dist/rest.server.js +20 -15
- package/dist/rest.server.js.map +1 -1
- package/dist/router/base-route.d.ts +8 -1
- package/dist/router/base-route.js +13 -0
- package/dist/router/base-route.js.map +1 -1
- package/dist/router/controller-route.js +10 -6
- package/dist/router/controller-route.js.map +1 -1
- package/dist/router/external-express-routes.d.ts +1 -1
- package/dist/router/external-express-routes.js +11 -8
- package/dist/router/external-express-routes.js.map +1 -1
- package/dist/router/handler-route.js +1 -1
- package/dist/router/handler-route.js.map +1 -1
- package/dist/router/openapi-path.js +18 -21
- package/dist/router/openapi-path.js.map +1 -1
- package/dist/router/router-base.js +2 -1
- package/dist/router/router-base.js.map +1 -1
- package/dist/router/routing-table.js +12 -8
- package/dist/router/routing-table.js.map +1 -1
- package/dist/router/trie-router.js +2 -1
- package/dist/router/trie-router.js.map +1 -1
- package/dist/types.d.ts +1 -1
- package/dist/validation/request-body.validator.js +19 -14
- package/dist/validation/request-body.validator.js.map +1 -1
- package/dist/writer.js +2 -1
- package/dist/writer.js.map +1 -1
- package/package.json +19 -19
- package/src/body-parsers/body-parser.helpers.ts +1 -1
- package/src/body-parsers/body-parser.ts +3 -3
- package/src/coercion/coerce-parameter.ts +3 -3
- package/src/coercion/utils.ts +1 -1
- package/src/coercion/validator.ts +2 -2
- package/src/index.ts +11 -14
- package/src/keys.ts +1 -1
- package/src/parser.ts +2 -2
- package/src/providers/log-error.provider.ts +1 -1
- package/src/request-context.ts +10 -10
- package/src/rest-http-error.ts +4 -5
- package/src/rest.component.ts +1 -1
- package/src/rest.server.ts +11 -11
- package/src/router/base-route.ts +13 -1
- package/src/router/controller-route.ts +7 -5
- package/src/router/external-express-routes.ts +3 -4
- package/src/router/handler-route.ts +8 -2
- package/src/router/openapi-path.ts +24 -29
- package/src/router/router-base.ts +1 -1
- package/src/router/routing-table.ts +5 -5
- package/src/router/trie-router.ts +1 -1
- package/src/types.ts +1 -1
- package/src/validation/request-body.validator.ts +7 -7
- package/src/writer.ts +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,47 @@
|
|
|
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
|
+
# [1.26.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@1.25.1...@loopback/rest@1.26.0) (2020-01-27)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **context:** index bindings by tag to speed up matching by tag ([566b9d9](https://github.com/strongloop/loopback-next/commit/566b9d9a35ce52d9aeefe17e36f91c9714616b21))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
## [1.25.1](https://github.com/strongloop/loopback-next/compare/@loopback/rest@1.25.0...@loopback/rest@1.25.1) (2020-01-07)
|
|
18
|
+
|
|
19
|
+
**Note:** Version bump only for package @loopback/rest
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
# [1.25.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@1.24.0...@loopback/rest@1.25.0) (2019-12-09)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
### Features
|
|
29
|
+
|
|
30
|
+
* **context:** make it possible to set source information for interceptions ([2a1ccb4](https://github.com/strongloop/loopback-next/commit/2a1ccb409a889d8b30b03ddf3284c9e9d5554e27))
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
# [1.24.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@1.23.0...@loopback/rest@1.24.0) (2019-11-25)
|
|
37
|
+
|
|
38
|
+
|
|
39
|
+
### Features
|
|
40
|
+
|
|
41
|
+
* **rest:** upgrade to path-to-regexp 6.x and improve error messages ([ad44209](https://github.com/strongloop/loopback-next/commit/ad4420954e3d3c18d4a52ca7511985d026efcdc6))
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
6
47
|
# [1.23.0](https://github.com/strongloop/loopback-next/compare/@loopback/rest@1.22.0...@loopback/rest@1.23.0) (2019-11-12)
|
|
7
48
|
|
|
8
49
|
|
|
@@ -3,9 +3,12 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
8
|
-
const debug =
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
11
|
+
const debug = debug_1.default('loopback:rest:body-parser');
|
|
9
12
|
/**
|
|
10
13
|
* Get the content-type header value from the request
|
|
11
14
|
* @param req - Http request
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.helpers.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.helpers.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"body-parser.helpers.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.helpers.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,19 +15,22 @@ var __metadata = (this && this.__metadata) || function (k, v) {
|
|
|
15
15
|
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
16
16
|
return function (target, key) { decorator(target, key, paramIndex); }
|
|
17
17
|
};
|
|
18
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
19
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
20
|
+
};
|
|
18
21
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
19
22
|
const context_1 = require("@loopback/context");
|
|
20
23
|
const openapi_v3_1 = require("@loopback/openapi-v3");
|
|
21
|
-
const
|
|
24
|
+
const debug_1 = __importDefault(require("debug"));
|
|
22
25
|
const type_is_1 = require("type-is");
|
|
23
26
|
const rest_http_error_1 = require("../rest-http-error");
|
|
24
27
|
const body_parser_helpers_1 = require("./body-parser.helpers");
|
|
25
28
|
const types_1 = require("./types");
|
|
26
|
-
const debug =
|
|
29
|
+
const debug = debug_1.default('loopback:rest:body-parser');
|
|
27
30
|
let RequestBodyParser = class RequestBodyParser {
|
|
28
31
|
constructor(parsers, ctx) {
|
|
29
32
|
this.ctx = ctx;
|
|
30
|
-
this.parsers = sortParsers(parsers
|
|
33
|
+
this.parsers = sortParsers((parsers !== null && parsers !== void 0 ? parsers : []));
|
|
31
34
|
if (debug.enabled) {
|
|
32
35
|
debug('Body parsers: ', this.parsers.map(p => p.name));
|
|
33
36
|
}
|
|
@@ -60,12 +63,13 @@ let RequestBodyParser = class RequestBodyParser {
|
|
|
60
63
|
* Match the http request to a given media type of the request body spec
|
|
61
64
|
*/
|
|
62
65
|
async _matchRequestBodySpec(operationSpec, request) {
|
|
66
|
+
var _a;
|
|
63
67
|
const requestBody = {
|
|
64
68
|
value: undefined,
|
|
65
69
|
};
|
|
66
70
|
if (!operationSpec.requestBody)
|
|
67
71
|
return { requestBody };
|
|
68
|
-
const contentType = body_parser_helpers_1.getContentType(request)
|
|
72
|
+
const contentType = (_a = body_parser_helpers_1.getContentType(request), (_a !== null && _a !== void 0 ? _a : 'application/json'));
|
|
69
73
|
debug('Loading request body with content type %j', contentType);
|
|
70
74
|
// the type of `operationSpec.requestBody` could be `RequestBodyObject`
|
|
71
75
|
// or `ReferenceObject`, resolving a `$ref` value is not supported yet.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"body-parser.js","sourceRoot":"","sources":["../../src/body-parsers/body-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -3,15 +3,18 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
const openapi_v3_1 = require("@loopback/openapi-v3");
|
|
8
|
-
const
|
|
11
|
+
const debug_1 = __importDefault(require("debug"));
|
|
9
12
|
const __1 = require("../");
|
|
10
13
|
const parse_json_1 = require("../parse-json");
|
|
11
14
|
const utils_1 = require("./utils");
|
|
12
15
|
const validator_1 = require("./validator");
|
|
13
16
|
const isRFC3339 = require('validator/lib/isRFC3339');
|
|
14
|
-
const debug =
|
|
17
|
+
const debug = debug_1.default('loopback:rest:coercion');
|
|
15
18
|
/**
|
|
16
19
|
* Coerce the http raw data to a JavaScript type data of a parameter
|
|
17
20
|
* according to its OpenAPI schema specification.
|
|
@@ -70,9 +73,10 @@ function coerceBuffer(data, spec) {
|
|
|
70
73
|
return Buffer.from(data, 'base64');
|
|
71
74
|
}
|
|
72
75
|
function coerceDatetime(data, spec, options) {
|
|
76
|
+
var _a;
|
|
73
77
|
if (typeof data === 'object' || utils_1.isEmpty(data))
|
|
74
78
|
throw __1.RestHttpErrors.invalidData(data, spec.name);
|
|
75
|
-
if (options
|
|
79
|
+
if ((_a = options) === null || _a === void 0 ? void 0 : _a.dateOnly) {
|
|
76
80
|
if (!utils_1.matchDateFormat(data))
|
|
77
81
|
throw __1.RestHttpErrors.invalidData(data, spec.name);
|
|
78
82
|
}
|
|
@@ -95,12 +99,13 @@ function coerceNumber(data, spec) {
|
|
|
95
99
|
return coercedNum;
|
|
96
100
|
}
|
|
97
101
|
function coerceInteger(data, spec, options) {
|
|
102
|
+
var _a;
|
|
98
103
|
if (typeof data === 'object' || utils_1.isEmpty(data))
|
|
99
104
|
throw __1.RestHttpErrors.invalidData(data, spec.name);
|
|
100
105
|
const coercedInt = Number(data);
|
|
101
106
|
if (isNaN(coercedInt))
|
|
102
107
|
throw __1.RestHttpErrors.invalidData(data, spec.name);
|
|
103
|
-
if (options
|
|
108
|
+
if ((_a = options) === null || _a === void 0 ? void 0 : _a.isLong) {
|
|
104
109
|
if (!Number.isInteger(coercedInt))
|
|
105
110
|
throw __1.RestHttpErrors.invalidData(data, spec.name);
|
|
106
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"coerce-parameter.js","sourceRoot":"","sources":["../../src/coercion/coerce-parameter.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"coerce-parameter.js","sourceRoot":"","sources":["../../src/coercion/coerce-parameter.ts"],"names":[],"mappings":"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"}
|
package/dist/coercion/utils.js
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
8
|
-
const debug =
|
|
10
|
+
const debug_1 = __importDefault(require("debug"));
|
|
11
|
+
const debug = debug_1.default('loopback:rest:coercion');
|
|
9
12
|
function isEmpty(data) {
|
|
10
13
|
const result = data === '';
|
|
11
14
|
debug('isEmpty(%j) -> %s', data, result);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/coercion/utils.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/coercion/utils.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;;AAEhE,kDAAgC;AAChC,MAAM,KAAK,GAAG,eAAW,CAAC,wBAAwB,CAAC,CAAC;AAgBpD,SAAgB,OAAO,CAAC,IAAY;IAClC,MAAM,MAAM,GAAG,IAAI,KAAK,EAAE,CAAC;IAC3B,KAAK,CAAC,mBAAmB,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACzC,OAAO,MAAM,CAAC;AAChB,CAAC;AAJD,0BAIC;AACD;;;;;GAKG;AACH,SAAgB,MAAM,CAAC,IAAY;IACjC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACpD,CAAC;AAFD,wBAEC;AAED;;;;GAIG;AACH,SAAgB,OAAO,CAAC,IAAY;IAClC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;AACrD,CAAC;AAFD,0BAEC;AAED;;GAEG;AACH,SAAgB,eAAe,CAAC,IAAU;IACxC,OAAO,KAAK,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;AAC9C,CAAC;AAFD,0CAEC;AAED,MAAM,kBAAkB,GAAG,yEAAyE,CAAC;AAErG;;;;GAIG;AACH,SAAgB,eAAe,CAAC,IAAY;IAC1C,MAAM,OAAO,GAAG,IAAI,MAAM,CAAC,kBAAkB,CAAC,CAAC;IAC/C,MAAM,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,KAAK,CAAC,2BAA2B,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACjD,OAAO,MAAM,CAAC;AAChB,CAAC;AALD,0CAKC;AAED;;;;;GAKG;AACH,SAAgB,mBAAmB,CAAC,IAAa,EAAE,MAAe;IAChE,IAAI,IAAI,KAAK,QAAQ,IAAI,IAAI,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACvD,IAAI,IAAI,KAAK,QAAQ,EAAE;QACrB,QAAQ,MAAM,EAAE;YACd,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB,KAAK,MAAM;gBACT,OAAO,MAAM,CAAC;YAChB,KAAK,WAAW;gBACd,OAAO,WAAW,CAAC;YACrB,KAAK,UAAU;gBACb,OAAO,UAAU,CAAC;YACpB;gBACE,OAAO,QAAQ,CAAC;SACnB;KACF;IACD,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACzC,IAAI,IAAI,KAAK,QAAQ;QACnB,QAAQ,MAAM,EAAE;YACd,KAAK,OAAO;gBACV,OAAO,OAAO,CAAC;YACjB,KAAK,QAAQ;gBACX,OAAO,QAAQ,CAAC;YAClB;gBACE,OAAO,QAAQ,CAAC;SACnB;IACH,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC;AACzE,CAAC;AA7BD,kDA6BC"}
|
|
@@ -33,9 +33,10 @@ class Validator {
|
|
|
33
33
|
* @param opts
|
|
34
34
|
*/
|
|
35
35
|
isRequired(opts) {
|
|
36
|
+
var _a;
|
|
36
37
|
if (this.ctx.parameterSpec.required)
|
|
37
38
|
return true;
|
|
38
|
-
if (opts
|
|
39
|
+
if ((_a = opts) === null || _a === void 0 ? void 0 : _a.required)
|
|
39
40
|
return true;
|
|
40
41
|
return false;
|
|
41
42
|
}
|
|
@@ -46,9 +47,10 @@ class Validator {
|
|
|
46
47
|
*/
|
|
47
48
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
49
|
isAbsent(value) {
|
|
50
|
+
var _a;
|
|
49
51
|
if (value === '' || value === undefined)
|
|
50
52
|
return true;
|
|
51
|
-
const schema = this.ctx.parameterSpec.schema
|
|
53
|
+
const schema = (_a = this.ctx.parameterSpec.schema, (_a !== null && _a !== void 0 ? _a : {}));
|
|
52
54
|
if (schema.type === 'object' && value === 'null')
|
|
53
55
|
return true;
|
|
54
56
|
return false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/coercion/validator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;AAGhE,2BAAmC;AAgBnC;;;GAGG;AACH,MAAa,SAAS;IACpB,YAAmB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IAE7C;;;;;;;OAOG;IACH,2BAA2B,CACzB,KAAkC,EAClC,IAAwB;QAExB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;YACzC,MAAM,kBAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAwB
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../../src/coercion/validator.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;AAGhE,2BAAmC;AAgBnC;;;GAGG;AACH,MAAa,SAAS;IACpB,YAAmB,GAAsB;QAAtB,QAAG,GAAH,GAAG,CAAmB;IAAG,CAAC;IAE7C;;;;;;;OAOG;IACH,2BAA2B,CACzB,KAAkC,EAClC,IAAwB;QAExB,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE;YACjD,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC;YACzC,MAAM,kBAAc,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;SAC5C;IACH,CAAC;IAED;;;;OAIG;IACH,UAAU,CAAC,IAAwB;;QACjC,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,QAAQ;YAAE,OAAO,IAAI,CAAC;QACjD,UAAI,IAAI,0CAAE,QAAQ;YAAE,OAAO,IAAI,CAAC;QAChC,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;OAIG;IACH,8DAA8D;IAC9D,QAAQ,CAAC,KAAU;;QACjB,IAAI,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,SAAS;YAAE,OAAO,IAAI,CAAC;QAErD,MAAM,MAAM,SAAiB,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,uCAAI,EAAE,EAAA,CAAC;QACjE,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,KAAK,MAAM;YAAE,OAAO,IAAI,CAAC;QAE9D,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AA9CD,8BA8CC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -1,19 +1,19 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from './providers';
|
|
3
|
-
export * from './parser';
|
|
1
|
+
export * from '@loopback/openapi-v3';
|
|
4
2
|
export * from './body-parsers';
|
|
5
|
-
export * from './writer';
|
|
6
3
|
export * from './http-handler';
|
|
7
|
-
export * from './request-context';
|
|
8
|
-
export * from './types';
|
|
9
4
|
export * from './keys';
|
|
5
|
+
export * from './parse-json';
|
|
6
|
+
export * from './parser';
|
|
7
|
+
export * from './providers';
|
|
8
|
+
export * from './request-context';
|
|
9
|
+
export * from './rest-http-error';
|
|
10
10
|
export * from './rest.application';
|
|
11
11
|
export * from './rest.component';
|
|
12
12
|
export * from './rest.server';
|
|
13
|
+
export * from './router';
|
|
13
14
|
export * from './sequence';
|
|
14
|
-
export * from './
|
|
15
|
-
export * from './parse-json';
|
|
15
|
+
export * from './types';
|
|
16
16
|
export * from './validation/request-body.validator';
|
|
17
|
-
|
|
17
|
+
export * from './writer';
|
|
18
18
|
export { HttpErrors };
|
|
19
|
-
|
|
19
|
+
import HttpErrors from 'http-errors';
|
package/dist/index.js
CHANGED
|
@@ -6,24 +6,27 @@
|
|
|
6
6
|
function __export(m) {
|
|
7
7
|
for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
|
|
8
8
|
}
|
|
9
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
10
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
11
|
+
};
|
|
9
12
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
__export(require("
|
|
11
|
-
__export(require("./providers"));
|
|
12
|
-
__export(require("./parser"));
|
|
13
|
+
__export(require("@loopback/openapi-v3"));
|
|
13
14
|
__export(require("./body-parsers"));
|
|
14
|
-
__export(require("./writer"));
|
|
15
15
|
__export(require("./http-handler"));
|
|
16
|
-
__export(require("./request-context"));
|
|
17
16
|
__export(require("./keys"));
|
|
17
|
+
__export(require("./parse-json"));
|
|
18
|
+
__export(require("./parser"));
|
|
19
|
+
__export(require("./providers"));
|
|
20
|
+
__export(require("./request-context"));
|
|
21
|
+
__export(require("./rest-http-error"));
|
|
18
22
|
__export(require("./rest.application"));
|
|
19
23
|
__export(require("./rest.component"));
|
|
20
24
|
__export(require("./rest.server"));
|
|
25
|
+
__export(require("./router"));
|
|
21
26
|
__export(require("./sequence"));
|
|
22
|
-
__export(require("./rest-http-error"));
|
|
23
|
-
__export(require("./parse-json"));
|
|
24
27
|
__export(require("./validation/request-body.validator"));
|
|
28
|
+
__export(require("./writer"));
|
|
25
29
|
// export all errors from external http-errors package
|
|
26
|
-
const
|
|
27
|
-
exports.HttpErrors =
|
|
28
|
-
__export(require("@loopback/openapi-v3"));
|
|
30
|
+
const http_errors_1 = __importDefault(require("http-errors"));
|
|
31
|
+
exports.HttpErrors = http_errors_1.default;
|
|
29
32
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;;;;;AAEhE,0CAAqC;AACrC,oCAA+B;AAC/B,oCAA+B;AAC/B,4BAAuB;AACvB,kCAA6B;AAC7B,8BAAyB;AACzB,iCAA4B;AAC5B,uCAAkC;AAClC,uCAAkC;AAClC,wCAAmC;AACnC,sCAAiC;AACjC,mCAA8B;AAC9B,8BAAyB;AACzB,gCAA2B;AAE3B,yDAAoD;AACpD,8BAAyB;AAGzB,sDAAsD;AACtD,8DAAqC;AAH7B,qBAGD,qBAAU,CAHC"}
|
package/dist/keys.d.ts
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
import { BindingKey, Context } from '@loopback/context';
|
|
4
4
|
import { HttpProtocol } from '@loopback/http-server';
|
|
5
5
|
import { OperationObject } from '@loopback/openapi-v3';
|
|
6
|
-
import
|
|
6
|
+
import https from 'https';
|
|
7
7
|
import { ErrorWriterOptions } from 'strong-error-handler';
|
|
8
8
|
import { BodyParser, RequestBodyParser } from './body-parsers';
|
|
9
9
|
import { HttpHandler } from './http-handler';
|
package/dist/parser.js
CHANGED
|
@@ -3,14 +3,17 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
const openapi_v3_1 = require("@loopback/openapi-v3");
|
|
8
|
-
const
|
|
11
|
+
const debug_1 = __importDefault(require("debug"));
|
|
9
12
|
const body_parsers_1 = require("./body-parsers");
|
|
10
13
|
const coerce_parameter_1 = require("./coercion/coerce-parameter");
|
|
11
14
|
const rest_http_error_1 = require("./rest-http-error");
|
|
12
15
|
const request_body_validator_1 = require("./validation/request-body.validator");
|
|
13
|
-
const debug =
|
|
16
|
+
const debug = debug_1.default('loopback:rest:parser');
|
|
14
17
|
/**
|
|
15
18
|
* Parses the request to derive arguments to be passed in for the Application
|
|
16
19
|
* controller method
|
|
@@ -27,6 +30,7 @@ async function parseOperationArgs(request, route, requestBodyParser = new body_p
|
|
|
27
30
|
}
|
|
28
31
|
exports.parseOperationArgs = parseOperationArgs;
|
|
29
32
|
function buildOperationArguments(operationSpec, request, pathParams, body, globalSchemas, options = {}) {
|
|
33
|
+
var _a;
|
|
30
34
|
let requestBodyIndex = -1;
|
|
31
35
|
if (operationSpec.requestBody) {
|
|
32
36
|
// the type of `operationSpec.requestBody` could be `RequestBodyObject`
|
|
@@ -38,7 +42,7 @@ function buildOperationArguments(operationSpec, request, pathParams, body, globa
|
|
|
38
42
|
requestBodyIndex = i ? i : 0;
|
|
39
43
|
}
|
|
40
44
|
const paramArgs = [];
|
|
41
|
-
for (const paramSpec of operationSpec.parameters
|
|
45
|
+
for (const paramSpec of (_a = operationSpec.parameters, (_a !== null && _a !== void 0 ? _a : []))) {
|
|
42
46
|
if (openapi_v3_1.isReferenceObject(paramSpec)) {
|
|
43
47
|
// TODO(bajtos) implement $ref parameters
|
|
44
48
|
// See https://github.com/strongloop/loopback-next/issues/435
|
package/dist/parser.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"parser.js","sourceRoot":"","sources":["../src/parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,10 +9,11 @@ class LogErrorProvider {
|
|
|
9
9
|
return (err, statusCode, req) => this.action(err, statusCode, req);
|
|
10
10
|
}
|
|
11
11
|
action(err, statusCode, req) {
|
|
12
|
+
var _a;
|
|
12
13
|
if (statusCode < 500) {
|
|
13
14
|
return;
|
|
14
15
|
}
|
|
15
|
-
console.error('Unhandled error in %s %s: %s %s', req.method, req.url, statusCode, err.stack
|
|
16
|
+
console.error('Unhandled error in %s %s: %s %s', req.method, req.url, statusCode, (_a = err.stack, (_a !== null && _a !== void 0 ? _a : err)));
|
|
16
17
|
}
|
|
17
18
|
}
|
|
18
19
|
exports.LogErrorProvider = LogErrorProvider;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"log-error.provider.js","sourceRoot":"","sources":["../../src/providers/log-error.provider.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;AAKhE,MAAa,gBAAgB;IAC3B,KAAK;QACH,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,GAAU,EAAE,UAAkB,EAAE,GAAY
|
|
1
|
+
{"version":3,"file":"log-error.provider.js","sourceRoot":"","sources":["../../src/providers/log-error.provider.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;AAKhE,MAAa,gBAAgB;IAC3B,KAAK;QACH,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,EAAE,GAAG,CAAC,CAAC;IACrE,CAAC;IAED,MAAM,CAAC,GAAU,EAAE,UAAkB,EAAE,GAAY;;QACjD,IAAI,UAAU,GAAG,GAAG,EAAE;YACpB,OAAO;SACR;QAED,OAAO,CAAC,KAAK,CACX,iCAAiC,EACjC,GAAG,CAAC,MAAM,EACV,GAAG,CAAC,GAAG,EACP,UAAU,QACV,GAAG,CAAC,KAAK,uCAAI,GAAG,GACjB,CAAC;IACJ,CAAC;CACF;AAlBD,4CAkBC"}
|
package/dist/request-context.js
CHANGED
|
@@ -3,9 +3,12 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
10
|
const context_1 = require("@loopback/context");
|
|
8
|
-
const
|
|
11
|
+
const on_finished_1 = __importDefault(require("on-finished"));
|
|
9
12
|
const keys_1 = require("./keys");
|
|
10
13
|
/**
|
|
11
14
|
* A per-request Context combining an IoC container with handler context
|
|
@@ -18,7 +21,7 @@ class RequestContext extends context_1.Context {
|
|
|
18
21
|
this.response = response;
|
|
19
22
|
this.serverConfig = serverConfig;
|
|
20
23
|
this._setupBindings(request, response);
|
|
21
|
-
|
|
24
|
+
on_finished_1.default(this.response, () => {
|
|
22
25
|
// Close the request context when the http response is finished so that
|
|
23
26
|
// it can be recycled by GC
|
|
24
27
|
this.close();
|
|
@@ -31,10 +34,10 @@ class RequestContext extends context_1.Context {
|
|
|
31
34
|
* Envoy are switching between protocols.
|
|
32
35
|
*/
|
|
33
36
|
get requestedProtocol() {
|
|
34
|
-
|
|
37
|
+
var _a, _b;
|
|
38
|
+
return (_b = ((_a = this.request.get('x-forwarded-proto'), (_a !== null && _a !== void 0 ? _a : '')).split(',')[0] ||
|
|
35
39
|
this.request.protocol ||
|
|
36
|
-
this.serverConfig.protocol
|
|
37
|
-
'http');
|
|
40
|
+
this.serverConfig.protocol), (_b !== null && _b !== void 0 ? _b : 'http'));
|
|
38
41
|
}
|
|
39
42
|
/**
|
|
40
43
|
* Get the effective base path of the incoming request. This base path
|
|
@@ -42,8 +45,9 @@ class RequestContext extends context_1.Context {
|
|
|
42
45
|
* a non-root path, with the `basePath` value configured at LB4 side.
|
|
43
46
|
*/
|
|
44
47
|
get basePath() {
|
|
48
|
+
var _a;
|
|
45
49
|
const request = this.request;
|
|
46
|
-
let basePath = this.serverConfig.basePath
|
|
50
|
+
let basePath = (_a = this.serverConfig.basePath, (_a !== null && _a !== void 0 ? _a : ''));
|
|
47
51
|
if (request.baseUrl && request.baseUrl !== '/') {
|
|
48
52
|
if (!basePath || request.baseUrl.endsWith(basePath)) {
|
|
49
53
|
// Express has already applied basePath to baseUrl
|
|
@@ -64,6 +68,7 @@ class RequestContext extends context_1.Context {
|
|
|
64
68
|
* at HTTP/TCP level, because reverse proxies like nginx are rewriting them.
|
|
65
69
|
*/
|
|
66
70
|
get requestedBaseUrl() {
|
|
71
|
+
var _a, _b, _c;
|
|
67
72
|
const request = this.request;
|
|
68
73
|
const config = this.serverConfig;
|
|
69
74
|
const protocol = this.requestedProtocol;
|
|
@@ -72,13 +77,13 @@ class RequestContext extends context_1.Context {
|
|
|
72
77
|
// [::1]
|
|
73
78
|
// 127.0.0.1:3000
|
|
74
79
|
// 127.0.0.1
|
|
75
|
-
let { host, port } = parseHostAndPort(request.get('x-forwarded-host')
|
|
76
|
-
const forwardedPort = (request.get('x-forwarded-port')
|
|
80
|
+
let { host, port } = parseHostAndPort((_a = request.get('x-forwarded-host'), (_a !== null && _a !== void 0 ? _a : request.headers.host)));
|
|
81
|
+
const forwardedPort = (_b = request.get('x-forwarded-port'), (_b !== null && _b !== void 0 ? _b : '')).split(',')[0];
|
|
77
82
|
port = forwardedPort || port;
|
|
78
83
|
if (!host) {
|
|
79
84
|
// No host detected from http headers
|
|
80
85
|
// Use the configured values or the local network address
|
|
81
|
-
host = config.host
|
|
86
|
+
host = (_c = config.host, (_c !== null && _c !== void 0 ? _c : request.socket.localAddress));
|
|
82
87
|
port = (config.port || request.socket.localPort).toString();
|
|
83
88
|
}
|
|
84
89
|
// clear default ports
|
|
@@ -102,10 +107,11 @@ class RequestContext extends context_1.Context {
|
|
|
102
107
|
}
|
|
103
108
|
exports.RequestContext = RequestContext;
|
|
104
109
|
function parseHostAndPort(host) {
|
|
105
|
-
|
|
110
|
+
var _a;
|
|
111
|
+
host = (host !== null && host !== void 0 ? host : '');
|
|
106
112
|
host = host.split(',')[0];
|
|
107
113
|
const portPattern = /:([0-9]+)$/;
|
|
108
|
-
const port = (host.match(portPattern)
|
|
114
|
+
const port = (_a = host.match(portPattern), (_a !== null && _a !== void 0 ? _a : []))[1] || '';
|
|
109
115
|
host = host.replace(portPattern, '');
|
|
110
116
|
return { host, port };
|
|
111
117
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":";AAAA,sDAAsD;AACtD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"request-context.js","sourceRoot":"","sources":["../src/request-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import
|
|
1
|
+
import HttpErrors from 'http-errors';
|
|
2
2
|
export declare namespace RestHttpErrors {
|
|
3
3
|
function invalidData<T, Props extends object = {}>(data: T, name: string, extraProperties?: Props): HttpErrors.HttpError & Props;
|
|
4
4
|
function unsupportedMediaType(contentType: string, allowedTypes?: string[]): HttpErrors.HttpError & {
|
package/dist/rest-http-error.js
CHANGED
|
@@ -3,23 +3,26 @@
|
|
|
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
|
|
6
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
7
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
8
|
+
};
|
|
6
9
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
const
|
|
10
|
+
const http_errors_1 = __importDefault(require("http-errors"));
|
|
8
11
|
var RestHttpErrors;
|
|
9
12
|
(function (RestHttpErrors) {
|
|
10
13
|
function invalidData(data, name, extraProperties) {
|
|
11
14
|
const msg = `Invalid data ${JSON.stringify(data)} for parameter ${name}!`;
|
|
12
|
-
return Object.assign(new
|
|
15
|
+
return Object.assign(new http_errors_1.default.BadRequest(msg), {
|
|
13
16
|
code: 'INVALID_PARAMETER_VALUE',
|
|
14
17
|
parameterName: name,
|
|
15
18
|
}, extraProperties);
|
|
16
19
|
}
|
|
17
20
|
RestHttpErrors.invalidData = invalidData;
|
|
18
21
|
function unsupportedMediaType(contentType, allowedTypes = []) {
|
|
19
|
-
|
|
20
|
-
|
|
22
|
+
var _a;
|
|
23
|
+
const msg = ((_a = allowedTypes) === null || _a === void 0 ? void 0 : _a.length) ? `Content-type ${contentType} does not match [${allowedTypes}].`
|
|
21
24
|
: `Content-type ${contentType} is not supported.`;
|
|
22
|
-
return Object.assign(new
|
|
25
|
+
return Object.assign(new http_errors_1.default.UnsupportedMediaType(msg), {
|
|
23
26
|
code: 'UNSUPPORTED_MEDIA_TYPE',
|
|
24
27
|
contentType: contentType,
|
|
25
28
|
allowedMediaTypes: allowedTypes,
|
|
@@ -28,7 +31,7 @@ var RestHttpErrors;
|
|
|
28
31
|
RestHttpErrors.unsupportedMediaType = unsupportedMediaType;
|
|
29
32
|
function missingRequired(name) {
|
|
30
33
|
const msg = `Required parameter ${name} is missing!`;
|
|
31
|
-
return Object.assign(new
|
|
34
|
+
return Object.assign(new http_errors_1.default.BadRequest(msg), {
|
|
32
35
|
code: 'MISSING_REQUIRED_PARAMETER',
|
|
33
36
|
parameterName: name,
|
|
34
37
|
});
|
|
@@ -36,12 +39,12 @@ var RestHttpErrors;
|
|
|
36
39
|
RestHttpErrors.missingRequired = missingRequired;
|
|
37
40
|
function invalidParamLocation(location) {
|
|
38
41
|
const msg = `Parameters with "in: ${location}" are not supported yet.`;
|
|
39
|
-
return new
|
|
42
|
+
return new http_errors_1.default.NotImplemented(msg);
|
|
40
43
|
}
|
|
41
44
|
RestHttpErrors.invalidParamLocation = invalidParamLocation;
|
|
42
45
|
RestHttpErrors.INVALID_REQUEST_BODY_MESSAGE = 'The request body is invalid. See error object `details` property for more info.';
|
|
43
46
|
function invalidRequestBody() {
|
|
44
|
-
return Object.assign(new
|
|
47
|
+
return Object.assign(new http_errors_1.default.UnprocessableEntity(RestHttpErrors.INVALID_REQUEST_BODY_MESSAGE), {
|
|
45
48
|
code: 'VALIDATION_FAILED',
|
|
46
49
|
});
|
|
47
50
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rest-http-error.js","sourceRoot":"","sources":["../src/rest-http-error.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE
|
|
1
|
+
{"version":3,"file":"rest-http-error.js","sourceRoot":"","sources":["../src/rest-http-error.ts"],"names":[],"mappings":";AAAA,iDAAiD;AACjD,8BAA8B;AAC9B,+CAA+C;AAC/C,gEAAgE;;;;;AAEhE,8DAAqC;AAErC,IAAiB,cAAc,CA+E9B;AA/ED,WAAiB,cAAc;IAC7B,SAAgB,WAAW,CACzB,IAAO,EACP,IAAY,EACZ,eAAuB;QAEvB,MAAM,GAAG,GAAG,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,IAAI,GAAG,CAAC;QAC1E,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,qBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAC9B;YACE,IAAI,EAAE,yBAAyB;YAC/B,aAAa,EAAE,IAAI;SACpB,EACD,eAAe,CAChB,CAAC;IACJ,CAAC;IAde,0BAAW,cAc1B,CAAA;IAED,SAAgB,oBAAoB,CAClC,WAAmB,EACnB,eAAyB,EAAE;;QAE3B,MAAM,GAAG,GAAG,OAAA,YAAY,0CAAE,MAAM,EAC9B,CAAC,CAAC,gBAAgB,WAAW,oBAAoB,YAAY,IAAI;YACjE,CAAC,CAAC,gBAAgB,WAAW,oBAAoB,CAAC;QACpD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,qBAAU,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE;YAC7D,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,WAAW;YACxB,iBAAiB,EAAE,YAAY;SAChC,CAAC,CAAC;IACL,CAAC;IAZe,mCAAoB,uBAYnC,CAAA;IAED,SAAgB,eAAe,CAAC,IAAY;QAC1C,MAAM,GAAG,GAAG,sBAAsB,IAAI,cAAc,CAAC;QACrD,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,qBAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;YACnD,IAAI,EAAE,4BAA4B;YAClC,aAAa,EAAE,IAAI;SACpB,CAAC,CAAC;IACL,CAAC;IANe,8BAAe,kBAM9B,CAAA;IAED,SAAgB,oBAAoB,CAAC,QAAgB;QACnD,MAAM,GAAG,GAAG,wBAAwB,QAAQ,0BAA0B,CAAC;QACvE,OAAO,IAAI,qBAAU,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IAHe,mCAAoB,uBAGnC,CAAA;IAEY,2CAA4B,GACvC,iFAAiF,CAAC;IACpF,SAAgB,kBAAkB;QAChC,OAAO,MAAM,CAAC,MAAM,CAClB,IAAI,qBAAU,CAAC,mBAAmB,CAAC,eAAA,4BAA4B,CAAC,EAChE;YACE,IAAI,EAAE,mBAAmB;SAC1B,CACF,CAAC;IACJ,CAAC;IAPe,iCAAkB,qBAOjC,CAAA;AA0BH,CAAC,EA/EgB,cAAc,GAAd,sBAAc,KAAd,sBAAc,QA+E9B"}
|