@tstdl/base 0.71.87 → 0.78.0-beta1
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/.eslintrc.js +2 -4
- package/api/client/client.js +2 -12
- package/api/client/client.js.map +1 -1
- package/api/default-error-handlers.d.ts +0 -4
- package/api/default-error-handlers.js +1 -6
- package/api/default-error-handlers.js.map +1 -1
- package/api/server/error-handler.js +2 -2
- package/api/server/error-handler.js.map +1 -1
- package/api/server/gateway.js +12 -18
- package/api/server/gateway.js.map +1 -1
- package/api/server/module.d.ts +0 -4
- package/api/server/module.js +1 -12
- package/api/server/module.js.map +1 -1
- package/api/types.d.ts +8 -32
- package/api/types.js.map +1 -1
- package/container/container.js +2 -2
- package/container/container.js.map +1 -1
- package/data-structures/index.d.ts +1 -0
- package/data-structures/index.js +1 -0
- package/data-structures/index.js.map +1 -1
- package/data-structures/iterable-weak-map.d.ts +29 -0
- package/data-structures/iterable-weak-map.js +128 -0
- package/data-structures/iterable-weak-map.js.map +1 -0
- package/data-structures/multi-key-map.d.ts +12 -1
- package/data-structures/multi-key-map.js +22 -11
- package/data-structures/multi-key-map.js.map +1 -1
- package/error/custom.error.d.ts +3 -1
- package/error/custom.error.js +16 -7
- package/error/custom.error.js.map +1 -1
- package/examples/api/basic-overview.js +16 -8
- package/examples/api/basic-overview.js.map +1 -1
- package/http/http.error.d.ts +4 -2
- package/http/http.error.js +6 -0
- package/http/http.error.js.map +1 -1
- package/image-service/image-service.d.ts +32 -65
- package/image-service/image-service.js +73 -15
- package/image-service/image-service.js.map +1 -1
- package/json-path/json-path.d.ts +8 -3
- package/json-path/json-path.js +24 -7
- package/json-path/json-path.js.map +1 -1
- package/logger/console/logger.js +2 -2
- package/logger/console/logger.js.map +1 -1
- package/mail/mail.service.js +2 -2
- package/mail/mail.service.js.map +1 -1
- package/module/modules/index.d.ts +0 -1
- package/module/modules/index.js +0 -1
- package/module/modules/index.js.map +1 -1
- package/openid-connect/oidc-configuration.service.js +7 -7
- package/openid-connect/oidc-configuration.service.js.map +1 -1
- package/openid-connect/oidc.service.js +7 -7
- package/openid-connect/oidc.service.js.map +1 -1
- package/package.json +3 -4
- package/process-shutdown.js +3 -2
- package/process-shutdown.js.map +1 -1
- package/reflection/decorators.js +1 -0
- package/reflection/decorators.js.map +1 -1
- package/reflection/reflection-data-map.d.ts +10 -0
- package/reflection/reflection-data-map.js +40 -0
- package/reflection/reflection-data-map.js.map +1 -0
- package/reflection/registry.d.ts +7 -7
- package/reflection/registry.js +7 -6
- package/reflection/registry.js.map +1 -1
- package/reflection/types.d.ts +1 -0
- package/reflection/utils.d.ts +6 -3
- package/reflection/utils.js +9 -35
- package/reflection/utils.js.map +1 -1
- package/schema/array-constraints/index.d.ts +2 -0
- package/{old-api/validation/validators → schema/array-constraints}/index.js +2 -1
- package/schema/array-constraints/index.js.map +1 -0
- package/schema/array-constraints/maximum-length.d.ts +11 -0
- package/schema/array-constraints/maximum-length.js +26 -0
- package/schema/array-constraints/maximum-length.js.map +1 -0
- package/schema/array-constraints/minimum-length.d.ts +11 -0
- package/schema/array-constraints/minimum-length.js +26 -0
- package/schema/array-constraints/minimum-length.js.map +1 -0
- package/schema/coercers/boolean.coercer.d.ts +9 -0
- package/schema/coercers/boolean.coercer.js +35 -0
- package/schema/coercers/boolean.coercer.js.map +1 -0
- package/schema/coercers/date.coercer.d.ts +9 -0
- package/schema/coercers/date.coercer.js +24 -0
- package/schema/coercers/date.coercer.js.map +1 -0
- package/schema/coercers/default-value.coercer.d.ts +9 -0
- package/schema/coercers/default-value.coercer.js +16 -0
- package/schema/coercers/default-value.coercer.js.map +1 -0
- package/schema/coercers/index.d.ts +7 -0
- package/schema/coercers/index.js +24 -0
- package/schema/coercers/index.js.map +1 -0
- package/schema/coercers/number.coercer.d.ts +9 -0
- package/schema/coercers/number.coercer.js +22 -0
- package/schema/coercers/number.coercer.js.map +1 -0
- package/schema/coercers/regexp.coercer.d.ts +11 -0
- package/schema/coercers/regexp.coercer.js +24 -0
- package/schema/coercers/regexp.coercer.js.map +1 -0
- package/schema/coercers/string.coercer.d.ts +9 -0
- package/schema/coercers/string.coercer.js +22 -0
- package/schema/coercers/string.coercer.js.map +1 -0
- package/schema/coercers/uint8-array.coercer.d.ts +9 -0
- package/schema/coercers/uint8-array.coercer.js +31 -0
- package/schema/coercers/uint8-array.coercer.js.map +1 -0
- package/schema/constraints/enumeration.d.ts +13 -0
- package/schema/constraints/enumeration.js +29 -0
- package/schema/constraints/enumeration.js.map +1 -0
- package/schema/constraints/generic.d.ts +22 -0
- package/schema/constraints/generic.js +32 -0
- package/schema/constraints/generic.js.map +1 -0
- package/schema/constraints/index.d.ts +12 -0
- package/schema/constraints/index.js +29 -0
- package/schema/constraints/index.js.map +1 -0
- package/schema/constraints/integer.d.ts +12 -0
- package/schema/constraints/integer.js +27 -0
- package/schema/constraints/integer.js.map +1 -0
- package/schema/constraints/length.d.ts +6 -0
- package/schema/constraints/length.js +20 -0
- package/schema/constraints/length.js.map +1 -0
- package/schema/constraints/literal.d.ts +10 -0
- package/schema/constraints/literal.js +26 -0
- package/schema/constraints/literal.js.map +1 -0
- package/schema/constraints/maximum-date.d.ts +12 -0
- package/schema/constraints/maximum-date.js +29 -0
- package/schema/constraints/maximum-date.js.map +1 -0
- package/schema/constraints/maximum-length.d.ts +12 -0
- package/schema/constraints/maximum-length.js +29 -0
- package/schema/constraints/maximum-length.js.map +1 -0
- package/schema/constraints/maximum.d.ts +12 -0
- package/schema/constraints/maximum.js +27 -0
- package/schema/constraints/maximum.js.map +1 -0
- package/schema/constraints/minimum-date.d.ts +12 -0
- package/schema/constraints/minimum-date.js +29 -0
- package/schema/constraints/minimum-date.js.map +1 -0
- package/schema/constraints/minimum-length.d.ts +12 -0
- package/schema/constraints/minimum-length.js +29 -0
- package/schema/constraints/minimum-length.js.map +1 -0
- package/schema/constraints/minimum.d.ts +12 -0
- package/schema/constraints/minimum.js +27 -0
- package/schema/constraints/minimum.js.map +1 -0
- package/schema/constraints/pattern.d.ts +13 -0
- package/schema/constraints/pattern.js +28 -0
- package/schema/constraints/pattern.js.map +1 -0
- package/schema/decorators/array.d.ts +4 -0
- package/schema/decorators/array.js +11 -0
- package/schema/decorators/array.js.map +1 -0
- package/schema/decorators/coerce.d.ts +2 -0
- package/schema/decorators/coerce.js +10 -0
- package/schema/decorators/coerce.js.map +1 -0
- package/schema/decorators/defaulted.d.ts +3 -0
- package/schema/decorators/defaulted.js +11 -0
- package/schema/decorators/defaulted.js.map +1 -0
- package/schema/decorators/index.d.ts +8 -0
- package/{old-api → schema/decorators}/index.js +8 -3
- package/schema/decorators/index.js.map +1 -0
- package/schema/decorators/nullable.d.ts +2 -0
- package/schema/decorators/nullable.js +10 -0
- package/schema/decorators/nullable.js.map +1 -0
- package/schema/decorators/optional.d.ts +2 -0
- package/schema/decorators/optional.js +10 -0
- package/schema/decorators/optional.js.map +1 -0
- package/schema/decorators/property.d.ts +6 -0
- package/schema/decorators/property.js +19 -0
- package/schema/decorators/property.js.map +1 -0
- package/schema/decorators/type.d.ts +3 -0
- package/schema/decorators/type.js +10 -0
- package/schema/decorators/type.js.map +1 -0
- package/schema/decorators/types.d.ts +18 -0
- package/schema/decorators/types.js +3 -0
- package/schema/decorators/types.js.map +1 -0
- package/schema/decorators/utils.d.ts +10 -0
- package/schema/decorators/utils.js +59 -0
- package/schema/decorators/utils.js.map +1 -0
- package/schema/index.d.ts +7 -1
- package/schema/index.js +7 -1
- package/schema/index.js.map +1 -1
- package/schema/schema.d.ts +19 -0
- package/schema/schema.error.d.ts +13 -7
- package/schema/schema.error.js +45 -13
- package/schema/schema.error.js.map +1 -1
- package/schema/schema.js +286 -0
- package/schema/schema.js.map +1 -0
- package/schema/schemas/any.d.ts +4 -8
- package/schema/schemas/any.js +9 -14
- package/schema/schemas/any.js.map +1 -1
- package/schema/schemas/array.d.ts +7 -13
- package/schema/schemas/array.js +14 -43
- package/schema/schemas/array.js.map +1 -1
- package/schema/schemas/assign.d.ts +8 -0
- package/schema/schemas/assign.js +28 -0
- package/schema/schemas/assign.js.map +1 -0
- package/schema/schemas/boolean.d.ts +5 -9
- package/schema/schemas/boolean.js +11 -38
- package/schema/schemas/boolean.js.map +1 -1
- package/schema/schemas/constraint.d.ts +4 -0
- package/schema/schemas/constraint.js +14 -0
- package/schema/schemas/constraint.js.map +1 -0
- package/schema/schemas/date.d.ts +7 -11
- package/schema/schemas/date.js +18 -53
- package/schema/schemas/date.js.map +1 -1
- package/schema/schemas/defaulted.d.ts +2 -15
- package/schema/schemas/defaulted.js +7 -23
- package/schema/schemas/defaulted.js.map +1 -1
- package/schema/schemas/enumeration.d.ts +6 -18
- package/schema/schemas/enumeration.js +13 -50
- package/schema/schemas/enumeration.js.map +1 -1
- package/schema/schemas/exclude.d.ts +4 -0
- package/schema/schemas/exclude.js +17 -0
- package/schema/schemas/exclude.js.map +1 -0
- package/schema/schemas/index.d.ts +5 -6
- package/schema/schemas/index.js +5 -6
- package/schema/schemas/index.js.map +1 -1
- package/schema/schemas/instance.d.ts +2 -12
- package/schema/schemas/instance.js +4 -20
- package/schema/schemas/instance.js.map +1 -1
- package/schema/schemas/literal.d.ts +4 -11
- package/schema/schemas/literal.js +13 -18
- package/schema/schemas/literal.js.map +1 -1
- package/schema/schemas/nullable.d.ts +3 -13
- package/schema/schemas/nullable.js +3 -26
- package/schema/schemas/nullable.js.map +1 -1
- package/schema/schemas/number.d.ts +7 -14
- package/schema/schemas/number.js +23 -44
- package/schema/schemas/number.js.map +1 -1
- package/schema/schemas/object.d.ts +6 -34
- package/schema/schemas/object.js +8 -112
- package/schema/schemas/object.js.map +1 -1
- package/schema/schemas/optional.d.ts +3 -13
- package/schema/schemas/optional.js +3 -26
- package/schema/schemas/optional.js.map +1 -1
- package/schema/schemas/pick.d.ts +4 -0
- package/schema/schemas/pick.js +17 -0
- package/schema/schemas/pick.js.map +1 -0
- package/schema/schemas/readable-stream.d.ts +4 -9
- package/schema/schemas/readable-stream.js +9 -15
- package/schema/schemas/readable-stream.js.map +1 -1
- package/schema/schemas/record.d.ts +4 -0
- package/schema/schemas/record.js +14 -0
- package/schema/schemas/record.js.map +1 -0
- package/schema/schemas/regexp.d.ts +6 -9
- package/schema/schemas/regexp.js +10 -27
- package/schema/schemas/regexp.js.map +1 -1
- package/schema/schemas/string.d.ts +9 -13
- package/schema/schemas/string.js +34 -46
- package/schema/schemas/string.js.map +1 -1
- package/schema/schemas/transform.d.ts +4 -16
- package/schema/schemas/transform.js +7 -36
- package/schema/schemas/transform.js.map +1 -1
- package/schema/schemas/uint8-array.d.ts +8 -11
- package/schema/schemas/uint8-array.js +20 -32
- package/schema/schemas/uint8-array.js.map +1 -1
- package/schema/schemas/union.d.ts +5 -17
- package/schema/schemas/union.js +9 -35
- package/schema/schemas/union.js.map +1 -1
- package/schema/schemas/unknown.d.ts +4 -8
- package/schema/schemas/unknown.js +9 -14
- package/schema/schemas/unknown.js.map +1 -1
- package/schema/transformers/generic.d.ts +13 -0
- package/schema/transformers/generic.js +28 -0
- package/schema/transformers/generic.js.map +1 -0
- package/schema/transformers/index.d.ts +3 -0
- package/{old-api/endpoints → schema/transformers}/index.js +3 -1
- package/schema/transformers/index.js.map +1 -0
- package/schema/transformers/lowercase.d.ts +9 -0
- package/schema/transformers/lowercase.js +22 -0
- package/schema/transformers/lowercase.js.map +1 -0
- package/schema/transformers/trim.d.ts +9 -0
- package/schema/transformers/trim.js +22 -0
- package/schema/transformers/trim.js.map +1 -0
- package/schema/transformers/uppercase.d.ts +9 -0
- package/schema/transformers/uppercase.js +22 -0
- package/schema/transformers/uppercase.js.map +1 -0
- package/schema/types.d.ts +135 -15
- package/schema/types.js +39 -3
- package/schema/types.js.map +1 -1
- package/schema/utils/index.d.ts +2 -0
- package/{old-api/validation → schema/utils}/index.js +2 -1
- package/schema/utils/index.js.map +1 -0
- package/schema/utils/schema.d.ts +12 -0
- package/schema/utils/schema.js +78 -0
- package/schema/utils/schema.js.map +1 -0
- package/schema/utils/value-type.d.ts +4 -0
- package/schema/utils/value-type.js +35 -0
- package/schema/utils/value-type.js.map +1 -0
- package/templates/providers/file-template.provider.base.d.ts +1 -1
- package/templates/providers/file-template.provider.base.js +3 -2
- package/templates/providers/file-template.provider.base.js.map +1 -1
- package/types.d.ts +5 -1
- package/utils/clone.d.ts +1 -0
- package/utils/clone.js +45 -0
- package/utils/clone.js.map +1 -0
- package/utils/enum.d.ts +1 -1
- package/utils/format-error.d.ts +20 -0
- package/utils/format-error.js +42 -0
- package/utils/format-error.js.map +1 -0
- package/utils/function/memoize.d.ts +6 -2
- package/utils/function/memoize.js +28 -20
- package/utils/function/memoize.js.map +1 -1
- package/utils/helpers.d.ts +1 -32
- package/utils/helpers.js +3 -158
- package/utils/helpers.js.map +1 -1
- package/utils/index.d.ts +3 -0
- package/utils/index.js +3 -0
- package/utils/index.js.map +1 -1
- package/utils/merge.d.ts +5 -0
- package/utils/merge.js +32 -0
- package/utils/merge.js.map +1 -0
- package/utils/object/decycle.d.ts +16 -0
- package/utils/object/decycle.js +81 -0
- package/utils/object/decycle.js.map +1 -0
- package/utils/object/dereference.js.map +1 -1
- package/utils/object/index.d.ts +1 -0
- package/utils/object/index.js +1 -0
- package/utils/object/index.js.map +1 -1
- package/utils/object/object.d.ts +4 -0
- package/utils/object/object.js +9 -2
- package/utils/object/object.js.map +1 -1
- package/utils/patterns.d.ts +1 -1
- package/utils/patterns.js +3 -3
- package/utils/patterns.js.map +1 -1
- package/utils/timing.d.ts +0 -8
- package/utils/timing.js.map +1 -1
- package/utils/type-guards.d.ts +6 -0
- package/utils/type-guards.js +16 -4
- package/utils/type-guards.js.map +1 -1
- package/instance-provider.d.ts +0 -17
- package/instance-provider.js +0 -55
- package/instance-provider.js.map +0 -1
- package/module/modules/old-web-server.module.d.ts +0 -22
- package/module/modules/old-web-server.module.js +0 -37
- package/module/modules/old-web-server.module.js.map +0 -1
- package/old-api/endpoint.d.ts +0 -5
- package/old-api/endpoint.js +0 -20
- package/old-api/endpoint.js.map +0 -1
- package/old-api/endpoints/echo.endpoint.d.ts +0 -2
- package/old-api/endpoints/echo.endpoint.js +0 -6
- package/old-api/endpoints/echo.endpoint.js.map +0 -1
- package/old-api/endpoints/index.d.ts +0 -1
- package/old-api/endpoints/index.js.map +0 -1
- package/old-api/http-api.d.ts +0 -63
- package/old-api/http-api.js +0 -269
- package/old-api/http-api.js.map +0 -1
- package/old-api/index.d.ts +0 -3
- package/old-api/index.js.map +0 -1
- package/old-api/validation/index.d.ts +0 -1
- package/old-api/validation/index.js.map +0 -1
- package/old-api/validation/types.d.ts +0 -6
- package/old-api/validation/types.js +0 -6
- package/old-api/validation/types.js.map +0 -1
- package/old-api/validation/validators/index.d.ts +0 -1
- package/old-api/validation/validators/index.js.map +0 -1
- package/old-api/validation/validators/noop.d.ts +0 -2
- package/old-api/validation/validators/noop.js +0 -8
- package/old-api/validation/validators/noop.js.map +0 -1
- package/old-api/validation/validators/superstruct.d.ts +0 -14
- package/old-api/validation/validators/superstruct.js +0 -66
- package/old-api/validation/validators/superstruct.js.map +0 -1
- package/old-api/validation/validators/yup.d.ts +0 -7
- package/old-api/validation/validators/yup.js +0 -60
- package/old-api/validation/validators/yup.js.map +0 -1
- package/schema/schema.validator.d.ts +0 -40
- package/schema/schema.validator.js +0 -75
- package/schema/schema.validator.js.map +0 -1
- package/schema/schemas/async-iterable.d.ts +0 -13
- package/schema/schemas/async-iterable.js +0 -40
- package/schema/schemas/async-iterable.js.map +0 -1
- package/schema/schemas/iterable.d.ts +0 -13
- package/schema/schemas/iterable.js +0 -40
- package/schema/schemas/iterable.js.map +0 -1
- package/schema/schemas/never.d.ts +0 -9
- package/schema/schemas/never.js +0 -22
- package/schema/schemas/never.js.map +0 -1
- package/schema/schemas/preprocess.d.ts +0 -16
- package/schema/schemas/preprocess.js +0 -35
- package/schema/schemas/preprocess.js.map +0 -1
- package/schema/schemas/refine.d.ts +0 -24
- package/schema/schemas/refine.js +0 -52
- package/schema/schemas/refine.js.map +0 -1
package/old-api/http-api.js
DELETED
|
@@ -1,269 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.HttpApi = exports.noopRequestDataTransformer = exports.getDefaultRequestDataTransformer = exports.getSimpleRouteHandler = exports.getStreamRouteHandler = exports.getBufferRouteHandler = exports.getJsonRouteHandler = exports.getTextRouteHandler = exports.route = exports.simpleRoute = void 0;
|
|
4
|
-
const response_1 = require("../api/response");
|
|
5
|
-
const error_1 = require("../error");
|
|
6
|
-
const http_1 = require("../http");
|
|
7
|
-
const array_1 = require("../utils/array");
|
|
8
|
-
const encoding_1 = require("../utils/encoding");
|
|
9
|
-
const math_1 = require("../utils/math");
|
|
10
|
-
const stream_reader_1 = require("../utils/stream/stream-reader");
|
|
11
|
-
const timer_1 = require("../utils/timer");
|
|
12
|
-
const type_guards_1 = require("../utils/type-guards");
|
|
13
|
-
const KoaRouter = require("@koa/router");
|
|
14
|
-
const Koa = require("koa");
|
|
15
|
-
const server_1 = require("../http/server");
|
|
16
|
-
function simpleRoute({ method, path, bodyType, maxRequestBodyBytes, endpoint }) {
|
|
17
|
-
return route({
|
|
18
|
-
method,
|
|
19
|
-
path,
|
|
20
|
-
bodyType,
|
|
21
|
-
maxRequestBodyBytes,
|
|
22
|
-
handler: getJsonRouteHandler(),
|
|
23
|
-
requestDataTransformer: getDefaultRequestDataTransformer(),
|
|
24
|
-
endpoint
|
|
25
|
-
});
|
|
26
|
-
}
|
|
27
|
-
exports.simpleRoute = simpleRoute;
|
|
28
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
29
|
-
function route(route) {
|
|
30
|
-
return route;
|
|
31
|
-
}
|
|
32
|
-
exports.route = route;
|
|
33
|
-
function getTextRouteHandler() {
|
|
34
|
-
return getSimpleRouteHandler((result) => server_1.HttpServerResponse.fromObject({ body: { text: result } }));
|
|
35
|
-
}
|
|
36
|
-
exports.getTextRouteHandler = getTextRouteHandler;
|
|
37
|
-
function getJsonRouteHandler() {
|
|
38
|
-
return getSimpleRouteHandler((result) => server_1.HttpServerResponse.fromObject({ body: { json: result } }));
|
|
39
|
-
}
|
|
40
|
-
exports.getJsonRouteHandler = getJsonRouteHandler;
|
|
41
|
-
function getBufferRouteHandler() {
|
|
42
|
-
return getSimpleRouteHandler((result) => server_1.HttpServerResponse.fromObject({ body: { buffer: result } }));
|
|
43
|
-
}
|
|
44
|
-
exports.getBufferRouteHandler = getBufferRouteHandler;
|
|
45
|
-
function getStreamRouteHandler() {
|
|
46
|
-
return getSimpleRouteHandler((result) => server_1.HttpServerResponse.fromObject({ body: { stream: result } }));
|
|
47
|
-
}
|
|
48
|
-
exports.getStreamRouteHandler = getStreamRouteHandler;
|
|
49
|
-
function getSimpleRouteHandler(handler) {
|
|
50
|
-
async function routeHandler(request, parameters, endpoint) {
|
|
51
|
-
const result = await endpoint(parameters, request);
|
|
52
|
-
return handler(result);
|
|
53
|
-
}
|
|
54
|
-
return routeHandler;
|
|
55
|
-
}
|
|
56
|
-
exports.getSimpleRouteHandler = getSimpleRouteHandler;
|
|
57
|
-
function getDefaultRequestDataTransformer() {
|
|
58
|
-
function defaultRequestDataTransformer(data, bodyType, context) {
|
|
59
|
-
let transformed = { ...data.parameters };
|
|
60
|
-
const requestBodyType = contentTypeToBodyType(context.request.type);
|
|
61
|
-
if ((bodyType == 'json' && (0, type_guards_1.isObject)(data.body) && !Array.isArray(data.body)) || (bodyType == 'auto' && requestBodyType == 'json')) {
|
|
62
|
-
transformed = { ...transformed, ...data.body };
|
|
63
|
-
}
|
|
64
|
-
else if (bodyType != 'none' && (0, type_guards_1.isDefined)(data.body)) {
|
|
65
|
-
transformed = { ...transformed, body: data.body };
|
|
66
|
-
}
|
|
67
|
-
return transformed;
|
|
68
|
-
}
|
|
69
|
-
return defaultRequestDataTransformer;
|
|
70
|
-
}
|
|
71
|
-
exports.getDefaultRequestDataTransformer = getDefaultRequestDataTransformer;
|
|
72
|
-
function noopRequestDataTransformer(data) {
|
|
73
|
-
return data;
|
|
74
|
-
}
|
|
75
|
-
exports.noopRequestDataTransformer = noopRequestDataTransformer;
|
|
76
|
-
class HttpApi {
|
|
77
|
-
constructor({ prefix, logger, behindProxy = false }) {
|
|
78
|
-
this.logger = logger;
|
|
79
|
-
this.koa = new Koa();
|
|
80
|
-
this.router = new KoaRouter();
|
|
81
|
-
this.supressedErrors = new Set();
|
|
82
|
-
this.requestHandler = this.koa.callback();
|
|
83
|
-
this.koa.proxy = behindProxy;
|
|
84
|
-
if (prefix != undefined) {
|
|
85
|
-
this.router.prefix(prefix);
|
|
86
|
-
}
|
|
87
|
-
this.koa.use(responseTimeMiddleware);
|
|
88
|
-
this.koa.use(errorCatchMiddleware(logger, this.supressedErrors));
|
|
89
|
-
this.koa.use(this.router.routes());
|
|
90
|
-
this.koa.use(this.router.allowedMethods());
|
|
91
|
-
}
|
|
92
|
-
handleRequest(request, response) {
|
|
93
|
-
this.requestHandler(request, response);
|
|
94
|
-
}
|
|
95
|
-
supressErrorLog(...errorConstructors) {
|
|
96
|
-
for (const errorConstructor of errorConstructors) {
|
|
97
|
-
this.supressedErrors.add(errorConstructor);
|
|
98
|
-
}
|
|
99
|
-
}
|
|
100
|
-
registerRoutes(...routes) {
|
|
101
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
102
|
-
for (const route of routes) {
|
|
103
|
-
const methods = (0, array_1.toArray)(route.method);
|
|
104
|
-
for (const method of methods) {
|
|
105
|
-
switch (method) {
|
|
106
|
-
case 'GET':
|
|
107
|
-
this.registerRoute(method, route.path, 'none', route.maxRequestBodyBytes ?? 10e6, route.requestDataTransformer, route.endpoint, route.handler);
|
|
108
|
-
break;
|
|
109
|
-
case 'POST':
|
|
110
|
-
case 'PATCH':
|
|
111
|
-
case 'PUT':
|
|
112
|
-
case 'DELETE':
|
|
113
|
-
this.registerRoute(method, route.path, route.bodyType ?? 'auto', route.maxRequestBodyBytes ?? 10e6, route.requestDataTransformer, route.endpoint, route.handler);
|
|
114
|
-
break;
|
|
115
|
-
default:
|
|
116
|
-
throw new Error('unknown route method');
|
|
117
|
-
}
|
|
118
|
-
}
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
registerRoute(method, path, bodyType, maxBytes, requestDataTransformer, endpoint, handler) {
|
|
122
|
-
this.router.register(path, [method], async (context, next) => {
|
|
123
|
-
await this.handle(context, bodyType, maxBytes, requestDataTransformer, endpoint, handler);
|
|
124
|
-
return next();
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
// eslint-disable-next-line max-lines-per-function, max-statements, class-methods-use-this
|
|
128
|
-
async handle(context, bodyType, maxBytes, requestDataTransformer, endpoint, handler) {
|
|
129
|
-
const { request, response, params } = context;
|
|
130
|
-
const { query: { ...query } } = request;
|
|
131
|
-
const requestParameters = { ...params, ...query };
|
|
132
|
-
let body;
|
|
133
|
-
try {
|
|
134
|
-
body = await getBody(request, bodyType, maxBytes);
|
|
135
|
-
}
|
|
136
|
-
catch (error) {
|
|
137
|
-
response.status = (0, response_1.getErrorStatusCode)(error, 400);
|
|
138
|
-
response.body = (0, response_1.createErrorResponse)(error);
|
|
139
|
-
return;
|
|
140
|
-
}
|
|
141
|
-
const requestData = { parameters: requestParameters, body };
|
|
142
|
-
const handlerParameters = requestDataTransformer(requestData, bodyType, { request });
|
|
143
|
-
const httpRequest = new server_1.HttpServerRequest({
|
|
144
|
-
url: context.URL,
|
|
145
|
-
method: context.request.method,
|
|
146
|
-
headers: new http_1.HttpHeaders(context.req.headers),
|
|
147
|
-
query: new http_1.HttpQuery(query),
|
|
148
|
-
ip: context.request.ip,
|
|
149
|
-
body: request.req
|
|
150
|
-
});
|
|
151
|
-
const httpResponse = await handler(httpRequest, handlerParameters, endpoint);
|
|
152
|
-
applyResponse(response, httpResponse);
|
|
153
|
-
}
|
|
154
|
-
}
|
|
155
|
-
exports.HttpApi = HttpApi;
|
|
156
|
-
function applyResponse(response, responseResult) {
|
|
157
|
-
if (responseResult.body?.json != undefined) {
|
|
158
|
-
response.set('Content-Type', 'application/json; charset=utf-8');
|
|
159
|
-
response.body = JSON.stringify(responseResult.body.json);
|
|
160
|
-
}
|
|
161
|
-
else if (responseResult.body?.text != undefined) {
|
|
162
|
-
response.body = responseResult.body.text;
|
|
163
|
-
}
|
|
164
|
-
else if (responseResult.body?.stream != undefined) {
|
|
165
|
-
response.body = responseResult.body.stream;
|
|
166
|
-
}
|
|
167
|
-
else if (responseResult.body?.buffer != undefined) {
|
|
168
|
-
response.body = responseResult.body.buffer;
|
|
169
|
-
}
|
|
170
|
-
for (const [field, value] of responseResult.headers.normalizedEntries()) {
|
|
171
|
-
response.remove(field);
|
|
172
|
-
for (const val of (0, array_1.toArray)(value)) {
|
|
173
|
-
response.append(field, val);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
if (responseResult.statusCode != undefined) {
|
|
177
|
-
response.status = responseResult.statusCode;
|
|
178
|
-
}
|
|
179
|
-
if (responseResult.statusMessage != undefined) {
|
|
180
|
-
response.message = responseResult.statusMessage;
|
|
181
|
-
}
|
|
182
|
-
}
|
|
183
|
-
async function getBody(request, bodyType, maxBytes = 10e6) {
|
|
184
|
-
switch (bodyType) {
|
|
185
|
-
case 'none':
|
|
186
|
-
return undefined;
|
|
187
|
-
case 'text':
|
|
188
|
-
return readBody(request, maxBytes);
|
|
189
|
-
case 'json':
|
|
190
|
-
return readJsonBody(request, maxBytes);
|
|
191
|
-
case 'stream':
|
|
192
|
-
return request.req;
|
|
193
|
-
case 'buffer':
|
|
194
|
-
return readRawBody(request, maxBytes);
|
|
195
|
-
case 'auto':
|
|
196
|
-
const requestBodyType = contentTypeToBodyType(request.type);
|
|
197
|
-
return getBody(request, requestBodyType, maxBytes);
|
|
198
|
-
default:
|
|
199
|
-
throw new Error('unknown HttpBodyType');
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
async function readJsonBody(request, maxBytes) {
|
|
203
|
-
const body = await readBody(request, maxBytes);
|
|
204
|
-
try {
|
|
205
|
-
const json = JSON.parse(body);
|
|
206
|
-
return json;
|
|
207
|
-
}
|
|
208
|
-
catch (error) {
|
|
209
|
-
throw new error_1.UnsupportedMediaTypeError('expected application/json');
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
async function readBody(request, maxBytes) {
|
|
213
|
-
const rawBody = await readRawBody(request, maxBytes);
|
|
214
|
-
const encoding = ((0, type_guards_1.isDefined)(request.charset) && (request.charset.length > 0)) ? request.charset : undefined;
|
|
215
|
-
const body = (0, encoding_1.decodeText)(rawBody, encoding);
|
|
216
|
-
return body;
|
|
217
|
-
}
|
|
218
|
-
async function readRawBody(request, maxBytes) {
|
|
219
|
-
if (request.length > maxBytes) {
|
|
220
|
-
throw new error_1.MaxBytesExceededError(`maximum content-length of ${maxBytes} bytes exceeded`);
|
|
221
|
-
}
|
|
222
|
-
const buffer = await (0, stream_reader_1.readBinaryStream)(request.req, request.length, maxBytes);
|
|
223
|
-
return buffer.buffer.slice(buffer.byteOffset, buffer.byteOffset + buffer.byteLength);
|
|
224
|
-
}
|
|
225
|
-
function errorCatchMiddleware(logger, supressedErrors) {
|
|
226
|
-
// eslint-disable-next-line @typescript-eslint/no-shadow
|
|
227
|
-
return async function errorCatchMiddleware({ response }, next) {
|
|
228
|
-
try {
|
|
229
|
-
// eslint-disable-next-line callback-return
|
|
230
|
-
await next();
|
|
231
|
-
}
|
|
232
|
-
catch (error) {
|
|
233
|
-
const errorConstructor = error.constructor;
|
|
234
|
-
const supressed = supressedErrors.has(errorConstructor);
|
|
235
|
-
if (!supressed) {
|
|
236
|
-
logger.error(error);
|
|
237
|
-
}
|
|
238
|
-
if ((0, response_1.hasErrorHandler)(errorConstructor)) {
|
|
239
|
-
response.status = (0, response_1.getErrorStatusCode)(error);
|
|
240
|
-
response.body = (0, response_1.createErrorResponse)(error);
|
|
241
|
-
}
|
|
242
|
-
else {
|
|
243
|
-
response.status = 500;
|
|
244
|
-
response.body = (0, response_1.createErrorResponse)('500', 'Internal Server Error');
|
|
245
|
-
}
|
|
246
|
-
}
|
|
247
|
-
};
|
|
248
|
-
}
|
|
249
|
-
async function responseTimeMiddleware(context, next) {
|
|
250
|
-
const milliseconds = await timer_1.Timer.measureAsync(next);
|
|
251
|
-
const roundedMilliseconds = (0, math_1.round)(milliseconds, 2);
|
|
252
|
-
context.response.set('X-Response-Time', `${roundedMilliseconds}ms`);
|
|
253
|
-
}
|
|
254
|
-
function contentTypeToBodyType(contentType) {
|
|
255
|
-
switch (contentType) {
|
|
256
|
-
case 'text/plain':
|
|
257
|
-
return 'text';
|
|
258
|
-
case 'application/json':
|
|
259
|
-
return 'json';
|
|
260
|
-
case 'application/octet-stream':
|
|
261
|
-
return 'buffer';
|
|
262
|
-
case '':
|
|
263
|
-
case undefined:
|
|
264
|
-
return 'none';
|
|
265
|
-
default:
|
|
266
|
-
throw new error_1.BadRequestError('unsupported Content-Type');
|
|
267
|
-
}
|
|
268
|
-
}
|
|
269
|
-
//# sourceMappingURL=http-api.js.map
|
package/old-api/http-api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"http-api.js","sourceRoot":"","sources":["../../source/old-api/http-api.ts"],"names":[],"mappings":"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"}
|
package/old-api/index.d.ts
DELETED
package/old-api/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/old-api/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,gEAA6C;AAC7C,kDAA+B;AAC/B,6CAA2B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './types';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../source/old-api/validation/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,0CAAwB"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import { ValidationError } from "../../error";
|
|
2
|
-
export { ValidationError };
|
|
3
|
-
export declare type SyncEndpointParametersValidator<Input, Output> = (object: Input) => ValidationResult<Output>;
|
|
4
|
-
export declare type AsyncEndpointParametersValidator<Input, Output> = (object: Input) => Promise<ValidationResult<Output>>;
|
|
5
|
-
export declare type EndpointParametersValidator<Input, Output> = SyncEndpointParametersValidator<Input, Output> | AsyncEndpointParametersValidator<Input, Output>;
|
|
6
|
-
export declare type ValidationResult<Output> = Output;
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.ValidationError = void 0;
|
|
4
|
-
const error_1 = require("../../error");
|
|
5
|
-
Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return error_1.ValidationError; } });
|
|
6
|
-
//# sourceMappingURL=types.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../source/old-api/validation/types.ts"],"names":[],"mappings":";;;AAAA,uCAA0C;AACjC,gGADA,uBAAe,OACA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from './noop';
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../source/old-api/validation/validators/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,yCAAuB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"noop.js","sourceRoot":"","sources":["../../../../source/old-api/validation/validators/noop.ts"],"names":[],"mappings":";;;AAEA,SAAgB,aAAa,CAAI,KAAQ;IACvC,OAAO,KAAK,CAAC;AACf,CAAC;AAFD,sCAEC"}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Struct } from 'superstruct';
|
|
2
|
-
import type { SyncEndpointParametersValidator, ValidationResult } from '../types';
|
|
3
|
-
export declare type SuperstructOptions = {
|
|
4
|
-
coerce?: boolean;
|
|
5
|
-
mask?: boolean;
|
|
6
|
-
};
|
|
7
|
-
export declare function setDefaultSuperstructOptions(options: SuperstructOptions): void;
|
|
8
|
-
export declare const email: () => Struct<string, null>;
|
|
9
|
-
export declare const coerceNumber: (struct?: Struct<number, null>) => Struct<number, null>;
|
|
10
|
-
export declare const coerceBoolean: () => Struct<boolean, null>;
|
|
11
|
-
export declare const lowercased: <T, S>(struct: Struct<T, S>) => Struct<T, S>;
|
|
12
|
-
export declare const nulledStructSchema: <T>(struct: Struct<T, any>) => Struct<T, null>;
|
|
13
|
-
export declare function validator<T>(struct: Struct<T>, options?: SuperstructOptions): SyncEndpointParametersValidator<unknown, T>;
|
|
14
|
-
export declare function validate<T, U>(struct: Struct<T>, value: U, options?: SuperstructOptions): ValidationResult<T>;
|
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate = exports.validator = exports.nulledStructSchema = exports.lowercased = exports.coerceBoolean = exports.coerceNumber = exports.email = exports.setDefaultSuperstructOptions = void 0;
|
|
4
|
-
const patterns_1 = require("../../../utils/patterns");
|
|
5
|
-
const type_guards_1 = require("../../../utils/type-guards");
|
|
6
|
-
const superstruct_1 = require("superstruct");
|
|
7
|
-
const types_1 = require("../types");
|
|
8
|
-
let defaultOptions = {
|
|
9
|
-
coerce: true,
|
|
10
|
-
mask: false
|
|
11
|
-
};
|
|
12
|
-
function setDefaultSuperstructOptions(options) {
|
|
13
|
-
defaultOptions = options;
|
|
14
|
-
}
|
|
15
|
-
exports.setDefaultSuperstructOptions = setDefaultSuperstructOptions;
|
|
16
|
-
const coerceBooleanLiteralsStruct = (0, superstruct_1.union)([(0, superstruct_1.literal)(true), (0, superstruct_1.literal)(false), (0, superstruct_1.literal)(1), (0, superstruct_1.literal)(0), (0, superstruct_1.literal)('true'), (0, superstruct_1.literal)('false'), (0, superstruct_1.literal)('1'), (0, superstruct_1.literal)('0'), (0, superstruct_1.literal)('yes'), (0, superstruct_1.literal)('no')]);
|
|
17
|
-
const coerceBooleanTrueLiterals = [true, 1, 'true', '1', 'yes'];
|
|
18
|
-
const numberStruct = (0, superstruct_1.number)();
|
|
19
|
-
const numberStringStruct = (0, superstruct_1.pattern)((0, superstruct_1.string)(), /^[+-]?(?:\d*\.)?\d+$/u);
|
|
20
|
-
const email = () => (0, superstruct_1.pattern)((0, superstruct_1.string)(), patterns_1.emailPattern);
|
|
21
|
-
exports.email = email;
|
|
22
|
-
const coerceNumber = (struct = numberStruct) => (0, superstruct_1.coerce)(struct, numberStringStruct, (value) => parseFloat(value));
|
|
23
|
-
exports.coerceNumber = coerceNumber;
|
|
24
|
-
const coerceBoolean = () => (0, superstruct_1.coerce)((0, superstruct_1.boolean)(), coerceBooleanLiteralsStruct, (value) => coerceBooleanTrueLiterals.includes(value));
|
|
25
|
-
exports.coerceBoolean = coerceBoolean;
|
|
26
|
-
const lowercased = (struct) => (0, superstruct_1.coerce)(struct, (0, superstruct_1.string)(), (x) => x.toLowerCase());
|
|
27
|
-
exports.lowercased = lowercased;
|
|
28
|
-
const nulledStructSchema = (struct) => struct;
|
|
29
|
-
exports.nulledStructSchema = nulledStructSchema;
|
|
30
|
-
function validator(struct, options = defaultOptions) {
|
|
31
|
-
return (value) => validate(struct, value, options);
|
|
32
|
-
}
|
|
33
|
-
exports.validator = validator;
|
|
34
|
-
function validate(struct, value, options = defaultOptions) {
|
|
35
|
-
let result;
|
|
36
|
-
let error;
|
|
37
|
-
if (options.mask == true) {
|
|
38
|
-
try {
|
|
39
|
-
result = struct.mask(value);
|
|
40
|
-
}
|
|
41
|
-
catch (_error) {
|
|
42
|
-
error = _error;
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
else {
|
|
46
|
-
[error, result] = struct.validate(value, { coerce: options.coerce });
|
|
47
|
-
}
|
|
48
|
-
if ((0, type_guards_1.isDefined)(error)) {
|
|
49
|
-
throw convertError(error);
|
|
50
|
-
}
|
|
51
|
-
return result;
|
|
52
|
-
}
|
|
53
|
-
exports.validate = validate;
|
|
54
|
-
function convertError(error) {
|
|
55
|
-
const failures = error.failures().map((failure) => convertFailure(failure));
|
|
56
|
-
const inner = (failures.length > 0) ? failures : undefined;
|
|
57
|
-
return convertFailure(error, inner);
|
|
58
|
-
}
|
|
59
|
-
function convertFailure(failure, inner) {
|
|
60
|
-
const details = {
|
|
61
|
-
path: failure.path,
|
|
62
|
-
type: failure.type
|
|
63
|
-
};
|
|
64
|
-
return new types_1.ValidationError(failure.message, { details, inner });
|
|
65
|
-
}
|
|
66
|
-
//# sourceMappingURL=superstruct.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"superstruct.js","sourceRoot":"","sources":["../../../../source/old-api/validation/validators/superstruct.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as yup from 'yup';
|
|
2
|
-
import type { EndpointParametersValidator, ValidationResult } from '../types';
|
|
3
|
-
export declare function setDefaultYupValidationOptions(options: yup.ValidateOptions): void;
|
|
4
|
-
export declare function stripNullFromSchema<T>(schema: yup.MixedSchema<T>): yup.MixedSchema<Exclude<T, null>>;
|
|
5
|
-
export declare function oneOfSchemas<T>(schemas: yup.Schema<T>[], message?: string): yup.Schema<T>;
|
|
6
|
-
export declare function validator<T>(schema: yup.Schema<T>, options?: yup.ValidateOptions): EndpointParametersValidator<unknown, T>;
|
|
7
|
-
export declare function validate<T, U>(schema: yup.Schema<T>, value: U, options?: yup.ValidateOptions): ValidationResult<T>;
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.validate = exports.validator = exports.oneOfSchemas = exports.stripNullFromSchema = exports.setDefaultYupValidationOptions = void 0;
|
|
4
|
-
const yup = require("yup");
|
|
5
|
-
const types_1 = require("../types");
|
|
6
|
-
let defaultOptions = {
|
|
7
|
-
abortEarly: false,
|
|
8
|
-
stripUnknown: false
|
|
9
|
-
};
|
|
10
|
-
function setDefaultYupValidationOptions(options) {
|
|
11
|
-
defaultOptions = options;
|
|
12
|
-
}
|
|
13
|
-
exports.setDefaultYupValidationOptions = setDefaultYupValidationOptions;
|
|
14
|
-
function stripNullFromSchema(schema) {
|
|
15
|
-
return schema;
|
|
16
|
-
}
|
|
17
|
-
exports.stripNullFromSchema = stripNullFromSchema;
|
|
18
|
-
function oneOfSchemas(schemas, message = 'value did not match any of the allowed schemas') {
|
|
19
|
-
return yup.mixed().test({
|
|
20
|
-
name: 'one-of-schemas',
|
|
21
|
-
message,
|
|
22
|
-
test(value) {
|
|
23
|
-
const errors = [];
|
|
24
|
-
for (const schema of schemas) {
|
|
25
|
-
try {
|
|
26
|
-
schema.validateSync(value, this.options);
|
|
27
|
-
return true;
|
|
28
|
-
}
|
|
29
|
-
catch (error) {
|
|
30
|
-
errors.push(error);
|
|
31
|
-
}
|
|
32
|
-
}
|
|
33
|
-
const error = new yup.ValidationError('none of the provided schemas validated successfully', value, this.path);
|
|
34
|
-
error.inner = errors;
|
|
35
|
-
return error;
|
|
36
|
-
}
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
exports.oneOfSchemas = oneOfSchemas;
|
|
40
|
-
function validator(schema, options) {
|
|
41
|
-
return (value) => validate(schema, value, options);
|
|
42
|
-
}
|
|
43
|
-
exports.validator = validator;
|
|
44
|
-
function validate(schema, value, options = defaultOptions) {
|
|
45
|
-
try {
|
|
46
|
-
return schema.validateSync(value, options);
|
|
47
|
-
}
|
|
48
|
-
catch (error) {
|
|
49
|
-
throw convertError(error);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
exports.validate = validate;
|
|
53
|
-
function convertError(error) {
|
|
54
|
-
const details = {
|
|
55
|
-
path: error.path
|
|
56
|
-
};
|
|
57
|
-
const inner = (error.inner.length > 0) ? error.inner.map(convertError) : undefined;
|
|
58
|
-
return new types_1.ValidationError(error.message, { details, inner });
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=yup.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"yup.js","sourceRoot":"","sources":["../../../../source/old-api/validation/validators/yup.ts"],"names":[],"mappings":";;;AAAA,2BAA2B;AAE3B,oCAA2C;AAE3C,IAAI,cAAc,GAAwB;IACxC,UAAU,EAAE,KAAK;IACjB,YAAY,EAAE,KAAK;CACpB,CAAC;AAEF,SAAgB,8BAA8B,CAAC,OAA4B;IACzE,cAAc,GAAG,OAAO,CAAC;AAC3B,CAAC;AAFD,wEAEC;AAED,SAAgB,mBAAmB,CAAI,MAA0B;IAC/D,OAAO,MAA2C,CAAC;AACrD,CAAC;AAFD,kDAEC;AAED,SAAgB,YAAY,CAAI,OAAwB,EAAE,UAAkB,gDAAgD;IAC1H,OAAO,GAAG,CAAC,KAAK,EAAK,CAAC,IAAI,CAAC;QACzB,IAAI,EAAE,gBAAgB;QACtB,OAAO;QACP,IAAI,CAAC,KAAU;YACb,MAAM,MAAM,GAA0B,EAAE,CAAC;YAEzC,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;gBAC5B,IAAI;oBACF,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;oBACzC,OAAO,IAAI,CAAC;iBACb;gBACD,OAAO,KAAc,EAAE;oBACrB,MAAM,CAAC,IAAI,CAAC,KAA4B,CAAC,CAAC;iBAC3C;aACF;YAED,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,qDAAqD,EAAE,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC/G,KAAK,CAAC,KAAK,GAAG,MAAM,CAAC;YAErB,OAAO,KAAK,CAAC;QACf,CAAC;KACF,CAAC,CAAC;AACL,CAAC;AAvBD,oCAuBC;AAED,SAAgB,SAAS,CAAI,MAAqB,EAAE,OAA6B;IAC/E,OAAO,CAAC,KAAc,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AAC9D,CAAC;AAFD,8BAEC;AAED,SAAgB,QAAQ,CAAO,MAAqB,EAAE,KAAQ,EAAE,UAA+B,cAAc;IAC3G,IAAI;QACF,OAAO,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KAC5C;IACD,OAAO,KAAc,EAAE;QACrB,MAAM,YAAY,CAAC,KAA4B,CAAC,CAAC;KAClD;AACH,CAAC;AAPD,4BAOC;AAED,SAAS,YAAY,CAAC,KAA0B;IAC9C,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,KAAK,CAAC,IAAI;KACjB,CAAC;IAEF,MAAM,KAAK,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEnF,OAAO,IAAI,uBAAe,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;AAChE,CAAC"}
|
|
@@ -1,40 +0,0 @@
|
|
|
1
|
-
import { JsonPath } from "../json-path";
|
|
2
|
-
import type { PrimitiveType, PrimitiveTypeString, Type } from "../types";
|
|
3
|
-
import { SchemaError } from './schema.error';
|
|
4
|
-
import type { Coercible, Maskable, SchemaDefinition, SchemaInput, SchemaOutput } from './types';
|
|
5
|
-
export declare const test: unique symbol;
|
|
6
|
-
export declare const testAsync: unique symbol;
|
|
7
|
-
export declare type CoercerFunction<P extends PrimitiveTypeString, T> = (value: PrimitiveType<P>, path: string | JsonPath) => ValidationTestResult<T>;
|
|
8
|
-
export declare type CoercerMap<T> = {
|
|
9
|
-
[P in PrimitiveTypeString]?: CoercerFunction<P, T>;
|
|
10
|
-
};
|
|
11
|
-
export declare type ValidationOptions = Coercible & Maskable;
|
|
12
|
-
export declare type DefinedValidationOptions = Required<ValidationOptions>;
|
|
13
|
-
export declare type ValidationTestResult<T> = {
|
|
14
|
-
valid: true;
|
|
15
|
-
value: T;
|
|
16
|
-
error?: undefined;
|
|
17
|
-
} | {
|
|
18
|
-
valid: false;
|
|
19
|
-
value?: undefined;
|
|
20
|
-
error: SchemaError;
|
|
21
|
-
};
|
|
22
|
-
export declare type EnsureTypeOptions = Coercible;
|
|
23
|
-
export declare abstract class SchemaValidator<S extends SchemaDefinition = SchemaDefinition> {
|
|
24
|
-
readonly schema: S;
|
|
25
|
-
/** used for type inference only */
|
|
26
|
-
readonly inputType: SchemaInput<S>;
|
|
27
|
-
/** used for type inference only */
|
|
28
|
-
readonly outputType: SchemaOutput<S>;
|
|
29
|
-
constructor(schema: S);
|
|
30
|
-
is(value: any, options?: ValidationOptions): value is SchemaOutput<S>;
|
|
31
|
-
isAsync(value: SchemaInput<S>, options?: ValidationOptions): Promise<boolean>;
|
|
32
|
-
parse(value: SchemaInput<S>, options?: ValidationOptions): SchemaOutput<S>;
|
|
33
|
-
parseAsync(value: SchemaInput<S>, options?: ValidationOptions): Promise<SchemaOutput<S>>;
|
|
34
|
-
test(value: SchemaInput<S>, options?: ValidationOptions): ValidationTestResult<SchemaOutput<S>>;
|
|
35
|
-
testAsync(value: SchemaInput<S>, options?: ValidationOptions): Promise<ValidationTestResult<SchemaOutput<S>>>;
|
|
36
|
-
protected ensureType<U extends PrimitiveType>(type: PrimitiveTypeString<U>, value: unknown, path: JsonPath, options?: EnsureTypeOptions, coercers?: CoercerMap<U>): ValidationTestResult<U>;
|
|
37
|
-
protected ensureInstance<U extends PrimitiveType>(type: Type, value: unknown, path: JsonPath, options?: EnsureTypeOptions, coercers?: CoercerMap<U>): ValidationTestResult<U>;
|
|
38
|
-
protected [testAsync](value: SchemaInput<S>, options: DefinedValidationOptions, path: JsonPath): Promise<ValidationTestResult<SchemaOutput<S>>>;
|
|
39
|
-
protected abstract [test](value: SchemaInput<S>, options: DefinedValidationOptions, path: JsonPath): ValidationTestResult<SchemaOutput<S>>;
|
|
40
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SchemaValidator = exports.testAsync = exports.test = void 0;
|
|
4
|
-
const json_path_1 = require("../json-path");
|
|
5
|
-
const type_guards_1 = require("../utils/type-guards");
|
|
6
|
-
const type_of_1 = require("../utils/type-of");
|
|
7
|
-
const schema_error_1 = require("./schema.error");
|
|
8
|
-
exports.test = Symbol('test');
|
|
9
|
-
exports.testAsync = Symbol('testAsync');
|
|
10
|
-
class SchemaValidator {
|
|
11
|
-
constructor(schema) {
|
|
12
|
-
this.schema = schema;
|
|
13
|
-
}
|
|
14
|
-
is(value, options) {
|
|
15
|
-
const result = this.test(value, options);
|
|
16
|
-
return result.valid;
|
|
17
|
-
}
|
|
18
|
-
async isAsync(value, options) {
|
|
19
|
-
const result = await this.testAsync(value, options);
|
|
20
|
-
return result.valid;
|
|
21
|
-
}
|
|
22
|
-
parse(value, options) {
|
|
23
|
-
const result = this.test(value, options);
|
|
24
|
-
if (result.valid) {
|
|
25
|
-
return result.value;
|
|
26
|
-
}
|
|
27
|
-
throw result.error;
|
|
28
|
-
}
|
|
29
|
-
async parseAsync(value, options) {
|
|
30
|
-
const result = await this.testAsync(value, options);
|
|
31
|
-
if (result.valid) {
|
|
32
|
-
return result.value;
|
|
33
|
-
}
|
|
34
|
-
throw result.error;
|
|
35
|
-
}
|
|
36
|
-
test(value, options) {
|
|
37
|
-
return this[exports.test](value, convertOptions(options), new json_path_1.JsonPath());
|
|
38
|
-
}
|
|
39
|
-
async testAsync(value, options) {
|
|
40
|
-
return this[exports.testAsync](value, convertOptions(options), new json_path_1.JsonPath());
|
|
41
|
-
}
|
|
42
|
-
ensureType(type, value, path, options, coercers) {
|
|
43
|
-
const valueType = typeof value;
|
|
44
|
-
if (valueType == type) {
|
|
45
|
-
return { valid: true, value: value };
|
|
46
|
-
}
|
|
47
|
-
const coercer = (options?.coerce ?? false) ? coercers?.[valueType] : undefined;
|
|
48
|
-
if ((0, type_guards_1.isUndefined)(coercer)) {
|
|
49
|
-
return { valid: false, error: schema_error_1.SchemaError.expectedButGot(type, (0, type_of_1.typeOf)(value), path) };
|
|
50
|
-
}
|
|
51
|
-
return coercer(value, path);
|
|
52
|
-
}
|
|
53
|
-
ensureInstance(type, value, path, options, coercers) {
|
|
54
|
-
if (value instanceof type) {
|
|
55
|
-
return { valid: true, value: value };
|
|
56
|
-
}
|
|
57
|
-
const coercer = (options?.coerce ?? false) ? coercers?.[typeof value] : undefined;
|
|
58
|
-
if ((0, type_guards_1.isUndefined)(coercer)) {
|
|
59
|
-
return { valid: false, error: schema_error_1.SchemaError.expectedButGot(type.name, (0, type_of_1.typeOf)(value), path) };
|
|
60
|
-
}
|
|
61
|
-
return coercer(value, path);
|
|
62
|
-
}
|
|
63
|
-
// eslint-disable-next-line @typescript-eslint/adjacent-overload-signatures, @typescript-eslint/require-await
|
|
64
|
-
async [exports.testAsync](value, options, path) {
|
|
65
|
-
return this[exports.test](value, options, path);
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
exports.SchemaValidator = SchemaValidator;
|
|
69
|
-
function convertOptions(options) {
|
|
70
|
-
return {
|
|
71
|
-
coerce: options?.coerce ?? false,
|
|
72
|
-
mask: options?.mask ?? false
|
|
73
|
-
};
|
|
74
|
-
}
|
|
75
|
-
//# sourceMappingURL=schema.validator.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"schema.validator.js","sourceRoot":"","sources":["../../source/schema/schema.validator.ts"],"names":[],"mappings":";;;AAAA,4CAAuC;AAEvC,sDAAkD;AAClD,8CAAyC;AACzC,iDAA6C;AAGhC,QAAA,IAAI,GAAkB,MAAM,CAAC,MAAM,CAAC,CAAC;AACrC,QAAA,SAAS,GAAkB,MAAM,CAAC,WAAW,CAAC,CAAC;AAgB5D,MAAsB,eAAe;IASnC,YAAY,MAAS;QACnB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,EAAE,CAAC,KAAU,EAAE,OAA2B;QACxC,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAuB,EAAE,OAAO,CAAC,CAAC;QAC3D,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAqB,EAAE,OAA2B;QAC9D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACpD,OAAO,MAAM,CAAC,KAAK,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,KAAqB,EAAE,OAA2B;QACtD,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEzC,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC,KAAK,CAAC;SACrB;QAED,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAqB,EAAE,OAA2B;QACjE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAEpD,IAAI,MAAM,CAAC,KAAK,EAAE;YAChB,OAAO,MAAM,CAAC,KAAK,CAAC;SACrB;QAED,MAAM,MAAM,CAAC,KAAK,CAAC;IACrB,CAAC;IAED,IAAI,CAAC,KAAqB,EAAE,OAA2B;QACrD,OAAO,IAAI,CAAC,YAAI,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,oBAAQ,EAAE,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB,EAAE,OAA2B;QAChE,OAAO,IAAI,CAAC,iBAAS,CAAC,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,EAAE,IAAI,oBAAQ,EAAE,CAAC,CAAC;IACzE,CAAC;IAES,UAAU,CAA0B,IAA4B,EAAE,KAAc,EAAE,IAAc,EAAE,OAA2B,EAAE,QAAwB;QAC/J,MAAM,SAAS,GAAG,OAAO,KAAK,CAAC;QAE/B,IAAI,SAAS,IAAI,IAAI,EAAE;YACrB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SAC3C;QAED,MAAM,OAAO,GAA0C,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEtH,IAAI,IAAA,yBAAW,EAAC,OAAO,CAAC,EAAE;YACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,IAAI,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;SACvF;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAES,cAAc,CAA0B,IAAU,EAAE,KAAc,EAAE,IAAc,EAAE,OAA2B,EAAE,QAAwB;QACjJ,IAAI,KAAK,YAAY,IAAI,EAAE;YACzB,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAU,EAAE,CAAC;SAC3C;QAED,MAAM,OAAO,GAA0C,CAAC,OAAO,EAAE,MAAM,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAEzH,IAAI,IAAA,yBAAW,EAAC,OAAO,CAAC,EAAE;YACxB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,0BAAW,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,IAAA,gBAAM,EAAC,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,CAAC;SAC5F;QAED,OAAO,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,6GAA6G;IACnG,KAAK,CAAC,CAAC,iBAAS,CAAC,CAAC,KAAqB,EAAE,OAAiC,EAAE,IAAc;QAClG,OAAO,IAAI,CAAC,YAAI,CAAC,CAAC,KAAK,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAC1C,CAAC;CAGF;AAvFD,0CAuFC;AAED,SAAS,cAAc,CAAC,OAA2B;IACjD,OAAO;QACL,MAAM,EAAE,OAAO,EAAE,MAAM,IAAI,KAAK;QAChC,IAAI,EAAE,OAAO,EAAE,IAAI,IAAI,KAAK;KAC7B,CAAC;AACJ,CAAC"}
|