plutin 1.3.0 → 1.3.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/dist/index.d.cts +286 -28
- package/dist/index.d.ts +286 -28
- package/dist/{index.js → index.mjs} +1 -1
- package/package.json +5 -4
- package/dist/base-controller-68008870.d.ts +0 -46
- package/dist/core/decorators/controller-http-decorator.cjs +0 -310
- package/dist/core/decorators/controller-http-decorator.cjs.map +0 -1
- package/dist/core/decorators/controller-http-decorator.d.cts +0 -13
- package/dist/core/decorators/controller-http-decorator.d.ts +0 -13
- package/dist/core/decorators/controller-http-decorator.js +0 -285
- package/dist/core/decorators/controller-http-decorator.js.map +0 -1
- package/dist/core/decorators/dependency-container.cjs +0 -95
- package/dist/core/decorators/dependency-container.cjs.map +0 -1
- package/dist/core/decorators/dependency-container.d.cts +0 -22
- package/dist/core/decorators/dependency-container.d.ts +0 -22
- package/dist/core/decorators/dependency-container.js +0 -71
- package/dist/core/decorators/dependency-container.js.map +0 -1
- package/dist/core/entities/aggregate-root.cjs +0 -99
- package/dist/core/entities/aggregate-root.cjs.map +0 -1
- package/dist/core/entities/aggregate-root.d.cts +0 -8
- package/dist/core/entities/aggregate-root.d.ts +0 -8
- package/dist/core/entities/aggregate-root.js +0 -74
- package/dist/core/entities/aggregate-root.js.map +0 -1
- package/dist/core/entities/common-dto.cjs +0 -19
- package/dist/core/entities/common-dto.cjs.map +0 -1
- package/dist/core/entities/common-dto.d.cts +0 -10
- package/dist/core/entities/common-dto.d.ts +0 -10
- package/dist/core/entities/common-dto.js +0 -1
- package/dist/core/entities/common-dto.js.map +0 -1
- package/dist/core/entities/domain-event.cjs +0 -19
- package/dist/core/entities/domain-event.cjs.map +0 -1
- package/dist/core/entities/domain-event.d.cts +0 -6
- package/dist/core/entities/domain-event.d.ts +0 -6
- package/dist/core/entities/domain-event.js +0 -1
- package/dist/core/entities/domain-event.js.map +0 -1
- package/dist/core/entities/entity.cjs +0 -92
- package/dist/core/entities/entity.cjs.map +0 -1
- package/dist/core/entities/entity.d.cts +0 -18
- package/dist/core/entities/entity.d.ts +0 -18
- package/dist/core/entities/entity.js +0 -67
- package/dist/core/entities/entity.js.map +0 -1
- package/dist/core/entities/optional.cjs +0 -19
- package/dist/core/entities/optional.cjs.map +0 -1
- package/dist/core/entities/optional.d.cts +0 -3
- package/dist/core/entities/optional.d.ts +0 -3
- package/dist/core/entities/optional.js +0 -1
- package/dist/core/entities/optional.js.map +0 -1
- package/dist/core/entities/replace.cjs +0 -19
- package/dist/core/entities/replace.cjs.map +0 -1
- package/dist/core/entities/replace.d.cts +0 -5
- package/dist/core/entities/replace.d.ts +0 -5
- package/dist/core/entities/replace.js +0 -1
- package/dist/core/entities/replace.js.map +0 -1
- package/dist/core/entities/unique-entity-id.cjs +0 -50
- package/dist/core/entities/unique-entity-id.cjs.map +0 -1
- package/dist/core/entities/unique-entity-id.d.cts +0 -9
- package/dist/core/entities/unique-entity-id.d.ts +0 -9
- package/dist/core/entities/unique-entity-id.js +0 -27
- package/dist/core/entities/unique-entity-id.js.map +0 -1
- package/dist/core/entities/value-object.cjs +0 -40
- package/dist/core/entities/value-object.cjs.map +0 -1
- package/dist/core/entities/value-object.d.cts +0 -6
- package/dist/core/entities/value-object.d.ts +0 -6
- package/dist/core/entities/value-object.js +0 -17
- package/dist/core/entities/value-object.js.map +0 -1
- package/dist/core/entities/watched-list.cjs +0 -121
- package/dist/core/entities/watched-list.cjs.map +0 -1
- package/dist/core/entities/watched-list.d.cts +0 -27
- package/dist/core/entities/watched-list.d.ts +0 -27
- package/dist/core/entities/watched-list.js +0 -98
- package/dist/core/entities/watched-list.js.map +0 -1
- package/dist/core/entities/watched-list.test.cjs +0 -186
- package/dist/core/entities/watched-list.test.cjs.map +0 -1
- package/dist/core/entities/watched-list.test.d.cts +0 -2
- package/dist/core/entities/watched-list.test.d.ts +0 -2
- package/dist/core/entities/watched-list.test.js +0 -185
- package/dist/core/entities/watched-list.test.js.map +0 -1
- package/dist/core/errors/api-common-error.cjs +0 -38
- package/dist/core/errors/api-common-error.cjs.map +0 -1
- package/dist/core/errors/api-common-error.d.cts +0 -28
- package/dist/core/errors/api-common-error.d.ts +0 -28
- package/dist/core/errors/api-common-error.js +0 -13
- package/dist/core/errors/api-common-error.js.map +0 -1
- package/dist/core/errors/application-error.cjs +0 -54
- package/dist/core/errors/application-error.cjs.map +0 -1
- package/dist/core/errors/application-error.d.cts +0 -8
- package/dist/core/errors/application-error.d.ts +0 -8
- package/dist/core/errors/application-error.js +0 -33
- package/dist/core/errors/application-error.js.map +0 -1
- package/dist/core/errors/conflict-error.cjs +0 -56
- package/dist/core/errors/conflict-error.cjs.map +0 -1
- package/dist/core/errors/conflict-error.d.cts +0 -13
- package/dist/core/errors/conflict-error.d.ts +0 -13
- package/dist/core/errors/conflict-error.js +0 -35
- package/dist/core/errors/conflict-error.js.map +0 -1
- package/dist/core/errors/domain-error.cjs +0 -54
- package/dist/core/errors/domain-error.cjs.map +0 -1
- package/dist/core/errors/domain-error.d.cts +0 -8
- package/dist/core/errors/domain-error.d.ts +0 -8
- package/dist/core/errors/domain-error.js +0 -33
- package/dist/core/errors/domain-error.js.map +0 -1
- package/dist/core/errors/http-client-error.cjs +0 -54
- package/dist/core/errors/http-client-error.cjs.map +0 -1
- package/dist/core/errors/http-client-error.d.cts +0 -8
- package/dist/core/errors/http-client-error.d.ts +0 -8
- package/dist/core/errors/http-client-error.js +0 -33
- package/dist/core/errors/http-client-error.js.map +0 -1
- package/dist/core/errors/infra-error.cjs +0 -54
- package/dist/core/errors/infra-error.cjs.map +0 -1
- package/dist/core/errors/infra-error.d.cts +0 -8
- package/dist/core/errors/infra-error.d.ts +0 -8
- package/dist/core/errors/infra-error.js +0 -33
- package/dist/core/errors/infra-error.js.map +0 -1
- package/dist/core/errors/validation-error.cjs +0 -55
- package/dist/core/errors/validation-error.cjs.map +0 -1
- package/dist/core/errors/validation-error.d.cts +0 -8
- package/dist/core/errors/validation-error.d.ts +0 -8
- package/dist/core/errors/validation-error.js +0 -34
- package/dist/core/errors/validation-error.js.map +0 -1
- package/dist/core/http/base-controller.cjs +0 -295
- package/dist/core/http/base-controller.cjs.map +0 -1
- package/dist/core/http/base-controller.d.cts +0 -1
- package/dist/core/http/base-controller.d.ts +0 -1
- package/dist/core/http/base-controller.js +0 -270
- package/dist/core/http/base-controller.js.map +0 -1
- package/dist/core/http/dto-response.cjs +0 -19
- package/dist/core/http/dto-response.cjs.map +0 -1
- package/dist/core/http/dto-response.d.cts +0 -10
- package/dist/core/http/dto-response.d.ts +0 -10
- package/dist/core/http/dto-response.js +0 -1
- package/dist/core/http/dto-response.js.map +0 -1
- package/dist/core/http/error-notifier.cjs +0 -19
- package/dist/core/http/error-notifier.cjs.map +0 -1
- package/dist/core/http/error-notifier.d.cts +0 -1
- package/dist/core/http/error-notifier.d.ts +0 -1
- package/dist/core/http/error-notifier.js +0 -1
- package/dist/core/http/error-notifier.js.map +0 -1
- package/dist/core/http/get-take-and-skip.cjs +0 -40
- package/dist/core/http/get-take-and-skip.cjs.map +0 -1
- package/dist/core/http/get-take-and-skip.d.cts +0 -6
- package/dist/core/http/get-take-and-skip.d.ts +0 -6
- package/dist/core/http/get-take-and-skip.js +0 -17
- package/dist/core/http/get-take-and-skip.js.map +0 -1
- package/dist/core/http/health-connections.cjs +0 -42
- package/dist/core/http/health-connections.cjs.map +0 -1
- package/dist/core/http/health-connections.d.cts +0 -16
- package/dist/core/http/health-connections.d.ts +0 -16
- package/dist/core/http/health-connections.js +0 -23
- package/dist/core/http/health-connections.js.map +0 -1
- package/dist/core/http/http.cjs +0 -19
- package/dist/core/http/http.cjs.map +0 -1
- package/dist/core/http/http.d.cts +0 -10
- package/dist/core/http/http.d.ts +0 -10
- package/dist/core/http/http.js +0 -1
- package/dist/core/http/http.js.map +0 -1
- package/dist/core/http/pagination.cjs +0 -19
- package/dist/core/http/pagination.cjs.map +0 -1
- package/dist/core/http/pagination.d.cts +0 -9
- package/dist/core/http/pagination.d.ts +0 -9
- package/dist/core/http/pagination.js +0 -1
- package/dist/core/http/pagination.js.map +0 -1
- package/dist/core/http/validator.cjs +0 -19
- package/dist/core/http/validator.cjs.map +0 -1
- package/dist/core/http/validator.d.cts +0 -11
- package/dist/core/http/validator.d.ts +0 -11
- package/dist/core/http/validator.js +0 -1
- package/dist/core/http/validator.js.map +0 -1
- package/dist/infra/adapters/http/express-adapter.cjs +0 -139
- package/dist/infra/adapters/http/express-adapter.cjs.map +0 -1
- package/dist/infra/adapters/http/express-adapter.d.cts +0 -15
- package/dist/infra/adapters/http/express-adapter.d.ts +0 -15
- package/dist/infra/adapters/http/express-adapter.js +0 -106
- package/dist/infra/adapters/http/express-adapter.js.map +0 -1
- package/dist/infra/adapters/http/fastify-adapter.cjs +0 -124
- package/dist/infra/adapters/http/fastify-adapter.cjs.map +0 -1
- package/dist/infra/adapters/http/fastify-adapter.d.cts +0 -14
- package/dist/infra/adapters/http/fastify-adapter.d.ts +0 -14
- package/dist/infra/adapters/http/fastify-adapter.js +0 -91
- package/dist/infra/adapters/http/fastify-adapter.js.map +0 -1
- package/dist/infra/adapters/http/response-error-code.cjs +0 -35
- package/dist/infra/adapters/http/response-error-code.cjs.map +0 -1
- package/dist/infra/adapters/http/response-error-code.d.cts +0 -6
- package/dist/infra/adapters/http/response-error-code.d.ts +0 -6
- package/dist/infra/adapters/http/response-error-code.js +0 -10
- package/dist/infra/adapters/http/response-error-code.js.map +0 -1
- package/dist/infra/adapters/http/validate-controller-metadata.cjs +0 -42
- package/dist/infra/adapters/http/validate-controller-metadata.cjs.map +0 -1
- package/dist/infra/adapters/http/validate-controller-metadata.d.cts +0 -11
- package/dist/infra/adapters/http/validate-controller-metadata.d.ts +0 -11
- package/dist/infra/adapters/http/validate-controller-metadata.js +0 -19
- package/dist/infra/adapters/http/validate-controller-metadata.js.map +0 -1
- package/dist/infra/adapters/notifications/discord.cjs +0 -90
- package/dist/infra/adapters/notifications/discord.cjs.map +0 -1
- package/dist/infra/adapters/notifications/discord.d.cts +0 -14
- package/dist/infra/adapters/notifications/discord.d.ts +0 -14
- package/dist/infra/adapters/notifications/discord.js +0 -65
- package/dist/infra/adapters/notifications/discord.js.map +0 -1
- package/dist/infra/adapters/notifications/in-memory.cjs +0 -44
- package/dist/infra/adapters/notifications/in-memory.cjs.map +0 -1
- package/dist/infra/adapters/notifications/in-memory.d.cts +0 -8
- package/dist/infra/adapters/notifications/in-memory.d.ts +0 -8
- package/dist/infra/adapters/notifications/in-memory.js +0 -21
- package/dist/infra/adapters/notifications/in-memory.js.map +0 -1
- package/dist/infra/adapters/notifications/notification-factory.cjs +0 -219
- package/dist/infra/adapters/notifications/notification-factory.cjs.map +0 -1
- package/dist/infra/adapters/notifications/notification-factory.d.cts +0 -18
- package/dist/infra/adapters/notifications/notification-factory.d.ts +0 -18
- package/dist/infra/adapters/notifications/notification-factory.js +0 -184
- package/dist/infra/adapters/notifications/notification-factory.js.map +0 -1
- package/dist/infra/adapters/notifications/sentry.cjs +0 -129
- package/dist/infra/adapters/notifications/sentry.cjs.map +0 -1
- package/dist/infra/adapters/notifications/sentry.d.cts +0 -13
- package/dist/infra/adapters/notifications/sentry.d.ts +0 -13
- package/dist/infra/adapters/notifications/sentry.js +0 -96
- package/dist/infra/adapters/notifications/sentry.js.map +0 -1
- package/dist/infra/adapters/validators/zod/index.cjs +0 -179
- package/dist/infra/adapters/validators/zod/index.cjs.map +0 -1
- package/dist/infra/adapters/validators/zod/index.d.cts +0 -19
- package/dist/infra/adapters/validators/zod/index.d.ts +0 -19
- package/dist/infra/adapters/validators/zod/index.js +0 -154
- package/dist/infra/adapters/validators/zod/index.js.map +0 -1
- package/dist/infra/adapters/validators/zod/zod-map-error.cjs +0 -79
- package/dist/infra/adapters/validators/zod/zod-map-error.cjs.map +0 -1
- package/dist/infra/adapters/validators/zod/zod-map-error.d.cts +0 -15
- package/dist/infra/adapters/validators/zod/zod-map-error.d.ts +0 -15
- package/dist/infra/adapters/validators/zod/zod-map-error.js +0 -60
- package/dist/infra/adapters/validators/zod/zod-map-error.js.map +0 -1
- package/dist/infra/adapters/validators/zod/zod-validator.cjs +0 -178
- package/dist/infra/adapters/validators/zod/zod-validator.cjs.map +0 -1
- package/dist/infra/adapters/validators/zod/zod-validator.d.cts +0 -13
- package/dist/infra/adapters/validators/zod/zod-validator.d.ts +0 -13
- package/dist/infra/adapters/validators/zod/zod-validator.js +0 -153
- package/dist/infra/adapters/validators/zod/zod-validator.js.map +0 -1
- package/dist/infra/env/index.cjs +0 -467
- package/dist/infra/env/index.cjs.map +0 -1
- package/dist/infra/env/index.d.cts +0 -26
- package/dist/infra/env/index.d.ts +0 -26
- package/dist/infra/env/index.js +0 -452
- package/dist/infra/env/index.js.map +0 -1
- /package/dist/{index.js.map → index.mjs.map} +0 -0
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
-
|
|
21
|
-
// src/infra/adapters/validators/zod/index.ts
|
|
22
|
-
var zod_exports = {};
|
|
23
|
-
__export(zod_exports, {
|
|
24
|
-
default: () => ZodValidator,
|
|
25
|
-
zodValidator: () => zodValidator
|
|
26
|
-
});
|
|
27
|
-
module.exports = __toCommonJS(zod_exports);
|
|
28
|
-
|
|
29
|
-
// src/core/errors/api-common-error.ts
|
|
30
|
-
var ApiErrorEnum = /* @__PURE__ */ function(ApiErrorEnum2) {
|
|
31
|
-
ApiErrorEnum2["DOMAIN"] = "ERR001";
|
|
32
|
-
ApiErrorEnum2["APPLICATION"] = "ERR002";
|
|
33
|
-
ApiErrorEnum2["INFRA"] = "ERR003";
|
|
34
|
-
ApiErrorEnum2["HTTP_CLIENT"] = "ERR004";
|
|
35
|
-
ApiErrorEnum2["VALIDATOR"] = "ERR005";
|
|
36
|
-
return ApiErrorEnum2;
|
|
37
|
-
}({});
|
|
38
|
-
|
|
39
|
-
// src/core/errors/validation-error.ts
|
|
40
|
-
var ValidationError = class extends Error {
|
|
41
|
-
static {
|
|
42
|
-
__name(this, "ValidationError");
|
|
43
|
-
}
|
|
44
|
-
props;
|
|
45
|
-
constructor(errors) {
|
|
46
|
-
super("Validation Error");
|
|
47
|
-
this.props = {
|
|
48
|
-
code: 400,
|
|
49
|
-
errorCode: ApiErrorEnum.VALIDATOR,
|
|
50
|
-
message: "Validation Error",
|
|
51
|
-
occurredAt: /* @__PURE__ */ new Date(),
|
|
52
|
-
errors
|
|
53
|
-
};
|
|
54
|
-
}
|
|
55
|
-
};
|
|
56
|
-
|
|
57
|
-
// src/infra/adapters/validators/zod/zod-map-error.ts
|
|
58
|
-
var ZodMapError = class {
|
|
59
|
-
static {
|
|
60
|
-
__name(this, "ZodMapError");
|
|
61
|
-
}
|
|
62
|
-
static mapCommon(error) {
|
|
63
|
-
return {
|
|
64
|
-
type: error.code,
|
|
65
|
-
path: error.path.join("."),
|
|
66
|
-
property: error.path.pop(),
|
|
67
|
-
propertyType: error.expected,
|
|
68
|
-
receivedValue: error.received,
|
|
69
|
-
message: error.message
|
|
70
|
-
};
|
|
71
|
-
}
|
|
72
|
-
static mapInvalidUnion(error) {
|
|
73
|
-
const [errors] = error.unionErrors.flat().map((err) => err.issues.map((item) => this.mapCommon(item)));
|
|
74
|
-
return errors;
|
|
75
|
-
}
|
|
76
|
-
static mapInvalidType(error) {
|
|
77
|
-
return [
|
|
78
|
-
this.mapCommon(error)
|
|
79
|
-
];
|
|
80
|
-
}
|
|
81
|
-
static mapErrorsFactory(error) {
|
|
82
|
-
if (error.code === "invalid_union") {
|
|
83
|
-
return this.mapInvalidUnion(error);
|
|
84
|
-
}
|
|
85
|
-
return this.mapInvalidType(error);
|
|
86
|
-
}
|
|
87
|
-
static mapErrors(errors) {
|
|
88
|
-
const standardizedErrors = /* @__PURE__ */ new Map();
|
|
89
|
-
errors.flat().forEach((error) => {
|
|
90
|
-
const keyError = standardizedErrors.get(error.path[0]);
|
|
91
|
-
if (keyError) {
|
|
92
|
-
if (!keyError.propertyErrors) {
|
|
93
|
-
keyError.propertyErrors = [];
|
|
94
|
-
}
|
|
95
|
-
keyError.propertyErrors.push(...this.mapErrorsFactory(error));
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
standardizedErrors.set(error.path[0], {
|
|
99
|
-
location: error.path[0],
|
|
100
|
-
propertyErrors: Array.from([
|
|
101
|
-
...this.mapErrorsFactory(error)
|
|
102
|
-
])
|
|
103
|
-
});
|
|
104
|
-
});
|
|
105
|
-
return Array.from(standardizedErrors, ([, arr]) => ({
|
|
106
|
-
...arr
|
|
107
|
-
})).flat();
|
|
108
|
-
}
|
|
109
|
-
};
|
|
110
|
-
|
|
111
|
-
// src/infra/adapters/validators/zod/zod-validator.ts
|
|
112
|
-
function zodValidator(schema) {
|
|
113
|
-
return async (request) => {
|
|
114
|
-
const validator = new ZodValidator(schema);
|
|
115
|
-
const validatedRequest = await validator.validate(request);
|
|
116
|
-
return validatedRequest;
|
|
117
|
-
};
|
|
118
|
-
}
|
|
119
|
-
__name(zodValidator, "zodValidator");
|
|
120
|
-
|
|
121
|
-
// src/infra/adapters/validators/zod/index.ts
|
|
122
|
-
var ZodValidator = class {
|
|
123
|
-
static {
|
|
124
|
-
__name(this, "ZodValidator");
|
|
125
|
-
}
|
|
126
|
-
zodSchema;
|
|
127
|
-
constructor(zodSchema) {
|
|
128
|
-
this.zodSchema = zodSchema;
|
|
129
|
-
}
|
|
130
|
-
async validate(requestHttp) {
|
|
131
|
-
const errors = [];
|
|
132
|
-
const { data: headersData = {}, error: headersErrors = {} } = requestHttp.headers ? await this.zodSchema.shape.headers.safeParseAsync(requestHttp.headers, {
|
|
133
|
-
path: [
|
|
134
|
-
"headers"
|
|
135
|
-
]
|
|
136
|
-
}) : {};
|
|
137
|
-
if (headersErrors?.errors) {
|
|
138
|
-
errors.push(headersErrors?.errors);
|
|
139
|
-
}
|
|
140
|
-
const { data: paramsData = {}, error: paramsErrors = {} } = requestHttp.params ? await this.zodSchema.shape.params.safeParseAsync(requestHttp.params, {
|
|
141
|
-
path: [
|
|
142
|
-
"params"
|
|
143
|
-
]
|
|
144
|
-
}) : {};
|
|
145
|
-
if (paramsErrors?.errors) {
|
|
146
|
-
errors.push(paramsErrors?.errors);
|
|
147
|
-
}
|
|
148
|
-
const { data: queryData = {}, error: queryErrors = {} } = requestHttp.query ? await this.zodSchema.shape.query.safeParseAsync(requestHttp.query, {
|
|
149
|
-
path: [
|
|
150
|
-
"query"
|
|
151
|
-
]
|
|
152
|
-
}) : {};
|
|
153
|
-
if (queryErrors?.errors) {
|
|
154
|
-
errors.push(queryErrors?.errors);
|
|
155
|
-
}
|
|
156
|
-
const { data: bodyData = {}, error: bodyErrors = {} } = requestHttp.body ? await this.zodSchema.shape.body.safeParseAsync(requestHttp.body, {
|
|
157
|
-
path: [
|
|
158
|
-
"body"
|
|
159
|
-
]
|
|
160
|
-
}) : {};
|
|
161
|
-
if (bodyErrors?.errors) {
|
|
162
|
-
errors.push(bodyErrors?.errors);
|
|
163
|
-
}
|
|
164
|
-
if (errors.length) {
|
|
165
|
-
throw new ValidationError(ZodMapError.mapErrors(errors));
|
|
166
|
-
}
|
|
167
|
-
return {
|
|
168
|
-
body: bodyData,
|
|
169
|
-
headers: headersData,
|
|
170
|
-
params: paramsData,
|
|
171
|
-
query: queryData
|
|
172
|
-
};
|
|
173
|
-
}
|
|
174
|
-
};
|
|
175
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
176
|
-
0 && (module.exports = {
|
|
177
|
-
zodValidator
|
|
178
|
-
});
|
|
179
|
-
//# sourceMappingURL=index.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/adapters/validators/zod/index.ts","../../../../../src/core/errors/api-common-error.ts","../../../../../src/core/errors/validation-error.ts","../../../../../src/infra/adapters/validators/zod/zod-map-error.ts","../../../../../src/infra/adapters/validators/zod/zod-validator.ts"],"sourcesContent":["import { ZodEffects, type ZodError, ZodObject } from 'zod'\n\nimport ValidationError from '../../../../core/errors/validation-error'\nimport IValidationHTTP, { RequestHttp } from '../../../../core/http/validator'\n\nimport ZodMapError from './zod-map-error'\nimport { zodValidator } from './zod-validator'\n\ntype SchemaDefinition = {\n headers: ZodObject<Record<string, any>>\n params: ZodObject<Record<string, any>>\n query: ZodObject<Record<string, any>>\n body:\n | ZodObject<Record<string, any>>\n | ZodEffects<ZodObject<Record<string, any>>>\n}\n\ntype ZodSchemaObject = ZodObject<SchemaDefinition>\n\nexport default class ZodValidator implements IValidationHTTP {\n constructor(private zodSchema: ZodSchemaObject) {}\n\n async validate<T>(requestHttp: RequestHttp): Promise<T> {\n const errors = []\n\n const {\n data: headersData = {},\n error: headersErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.headers\n ? await this.zodSchema.shape.headers.safeParseAsync(requestHttp.headers, {\n path: ['headers'],\n })\n : {}\n\n if (headersErrors?.errors) {\n errors.push(headersErrors?.errors)\n }\n\n const {\n data: paramsData = {},\n error: paramsErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.params\n ? await this.zodSchema.shape.params.safeParseAsync(requestHttp.params, {\n path: ['params'],\n })\n : {}\n\n if (paramsErrors?.errors) {\n errors.push(paramsErrors?.errors)\n }\n\n const {\n data: queryData = {},\n error: queryErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.query\n ? await this.zodSchema.shape.query.safeParseAsync(requestHttp.query, {\n path: ['query'],\n })\n : {}\n\n if (queryErrors?.errors) {\n errors.push(queryErrors?.errors)\n }\n\n const {\n data: bodyData = {},\n error: bodyErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.body\n ? await this.zodSchema.shape.body.safeParseAsync(requestHttp.body, {\n path: ['body'],\n })\n : {}\n\n if (bodyErrors?.errors) {\n errors.push(bodyErrors?.errors)\n }\n\n if (errors.length) {\n throw new ValidationError(ZodMapError.mapErrors(errors))\n }\n\n return {\n body: bodyData,\n headers: headersData,\n params: paramsData,\n query: queryData,\n } as T\n }\n}\n\nexport { zodValidator }\n","export type PropertiesError = {\n receivedValue?: any\n type: string\n message: string\n property: string | number | undefined\n propertyType?: string\n path?: string\n}\n\nexport type CommonError = {\n location: string\n propertyErrors?: PropertiesError[]\n}\n\nexport type ApiCommonError = {\n code: number\n occurredAt: Date\n message: string\n errorCode: string\n errors?: CommonError[]\n}\n\nexport enum ApiErrorEnum {\n DOMAIN = 'ERR001',\n APPLICATION = 'ERR002',\n INFRA = 'ERR003',\n HTTP_CLIENT = 'ERR004',\n VALIDATOR = 'ERR005',\n}\n","import {\n type ApiCommonError,\n ApiErrorEnum,\n type CommonError,\n} from './api-common-error'\n\nexport default class ValidationError extends Error {\n props: ApiCommonError\n\n constructor(errors: CommonError[]) {\n super('Validation Error')\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.VALIDATOR,\n message: 'Validation Error',\n occurredAt: new Date(),\n errors,\n }\n }\n}\n","import type { ZodIssue } from 'zod'\n\nimport type {\n CommonError,\n PropertiesError,\n} from '../../../../core/errors/api-common-error'\n\ntype ZodError = ZodIssue & {\n expected: string\n received: string\n}\n\ntype ZodInvalidUnion = ZodError & {\n code: 'invalid_union'\n}\n\nexport default class ZodMapError {\n private static mapCommon(error: ZodError): PropertiesError {\n return {\n type: error.code,\n path: error.path.join('.'),\n property: error.path.pop(),\n propertyType: error.expected,\n receivedValue: error.received,\n message: error.message,\n }\n }\n\n private static mapInvalidUnion(error: ZodInvalidUnion): PropertiesError[] {\n const [errors] = error.unionErrors\n .flat()\n .map((err) => err.issues.map((item: any) => this.mapCommon(item)))\n\n return errors\n }\n\n private static mapInvalidType(error: ZodError): PropertiesError[] {\n return [this.mapCommon(error)]\n }\n\n private static mapErrorsFactory(error: ZodError): PropertiesError[] {\n if (error.code === 'invalid_union') {\n return this.mapInvalidUnion(error)\n }\n\n return this.mapInvalidType(error)\n }\n\n static mapErrors(errors: ZodIssue[][]) {\n const standardizedErrors = new Map<string | number, CommonError>()\n\n errors.flat().forEach((error) => {\n const keyError = standardizedErrors.get(error.path[0])\n\n if (keyError) {\n if (!keyError.propertyErrors) {\n keyError.propertyErrors = []\n }\n\n keyError.propertyErrors.push(\n ...this.mapErrorsFactory(error as ZodError)\n )\n\n return\n }\n\n standardizedErrors.set(error.path[0], {\n location: error.path[0],\n propertyErrors: Array.from([\n ...this.mapErrorsFactory(error as ZodError),\n ]),\n } as CommonError)\n })\n\n return Array.from(standardizedErrors, ([, arr]) => ({\n ...arr,\n })).flat()\n }\n}\n","import { z } from 'zod'\n\nimport { Request } from '../../../../core/http/base-controller'\n\nimport ZodValidator from './index'\n\nexport type ZodSchema = z.ZodObject<{\n headers: z.ZodObject<Record<string, any>>\n params: z.ZodObject<Record<string, any>>\n query: z.ZodObject<Record<string, any>>\n body:\n | z.ZodObject<Record<string, any>>\n | z.ZodEffects<z.ZodObject<Record<string, any>>>\n}>\n\nexport type MiddlewareFunction = (request: Request) => Promise<Request>\n\nexport function zodValidator(schema: ZodSchema): MiddlewareFunction {\n return async (request: Request): Promise<Request> => {\n const validator = new ZodValidator(schema)\n const validatedRequest = await validator.validate<Request>(request)\n return validatedRequest\n }\n}\n"],"mappings":"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","names":["ApiErrorEnum","ValidationError","Error","props","constructor","errors","code","errorCode","ApiErrorEnum","VALIDATOR","message","occurredAt","Date","ZodMapError","mapCommon","error","type","code","path","join","property","pop","propertyType","expected","receivedValue","received","message","mapInvalidUnion","errors","unionErrors","flat","map","err","issues","item","mapInvalidType","mapErrorsFactory","mapErrors","standardizedErrors","Map","forEach","keyError","get","propertyErrors","push","set","location","Array","from","arr","zodValidator","schema","request","validator","ZodValidator","validatedRequest","validate","ZodValidator","constructor","zodSchema","validate","requestHttp","errors","data","headersData","error","headersErrors","headers","shape","safeParseAsync","path","push","paramsData","paramsErrors","params","queryData","queryErrors","query","bodyData","bodyErrors","body","length","ValidationError","ZodMapError","mapErrors"]}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ZodObject, ZodEffects } from 'zod';
|
|
2
|
-
import IValidationHTTP, { RequestHttp } from '../../../../core/http/validator.cjs';
|
|
3
|
-
export { zodValidator } from './zod-validator.cjs';
|
|
4
|
-
import '../../../../base-controller-68008870.js';
|
|
5
|
-
|
|
6
|
-
type SchemaDefinition = {
|
|
7
|
-
headers: ZodObject<Record<string, any>>;
|
|
8
|
-
params: ZodObject<Record<string, any>>;
|
|
9
|
-
query: ZodObject<Record<string, any>>;
|
|
10
|
-
body: ZodObject<Record<string, any>> | ZodEffects<ZodObject<Record<string, any>>>;
|
|
11
|
-
};
|
|
12
|
-
type ZodSchemaObject = ZodObject<SchemaDefinition>;
|
|
13
|
-
declare class ZodValidator implements IValidationHTTP {
|
|
14
|
-
private zodSchema;
|
|
15
|
-
constructor(zodSchema: ZodSchemaObject);
|
|
16
|
-
validate<T>(requestHttp: RequestHttp): Promise<T>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { ZodValidator as default };
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { ZodObject, ZodEffects } from 'zod';
|
|
2
|
-
import IValidationHTTP, { RequestHttp } from '../../../../core/http/validator.js';
|
|
3
|
-
export { zodValidator } from './zod-validator.js';
|
|
4
|
-
import '../../../../base-controller-68008870.js';
|
|
5
|
-
|
|
6
|
-
type SchemaDefinition = {
|
|
7
|
-
headers: ZodObject<Record<string, any>>;
|
|
8
|
-
params: ZodObject<Record<string, any>>;
|
|
9
|
-
query: ZodObject<Record<string, any>>;
|
|
10
|
-
body: ZodObject<Record<string, any>> | ZodEffects<ZodObject<Record<string, any>>>;
|
|
11
|
-
};
|
|
12
|
-
type ZodSchemaObject = ZodObject<SchemaDefinition>;
|
|
13
|
-
declare class ZodValidator implements IValidationHTTP {
|
|
14
|
-
private zodSchema;
|
|
15
|
-
constructor(zodSchema: ZodSchemaObject);
|
|
16
|
-
validate<T>(requestHttp: RequestHttp): Promise<T>;
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
export { ZodValidator as default };
|
|
@@ -1,154 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
|
-
// src/core/errors/api-common-error.ts
|
|
5
|
-
var ApiErrorEnum = /* @__PURE__ */ function(ApiErrorEnum2) {
|
|
6
|
-
ApiErrorEnum2["DOMAIN"] = "ERR001";
|
|
7
|
-
ApiErrorEnum2["APPLICATION"] = "ERR002";
|
|
8
|
-
ApiErrorEnum2["INFRA"] = "ERR003";
|
|
9
|
-
ApiErrorEnum2["HTTP_CLIENT"] = "ERR004";
|
|
10
|
-
ApiErrorEnum2["VALIDATOR"] = "ERR005";
|
|
11
|
-
return ApiErrorEnum2;
|
|
12
|
-
}({});
|
|
13
|
-
|
|
14
|
-
// src/core/errors/validation-error.ts
|
|
15
|
-
var ValidationError = class extends Error {
|
|
16
|
-
static {
|
|
17
|
-
__name(this, "ValidationError");
|
|
18
|
-
}
|
|
19
|
-
props;
|
|
20
|
-
constructor(errors) {
|
|
21
|
-
super("Validation Error");
|
|
22
|
-
this.props = {
|
|
23
|
-
code: 400,
|
|
24
|
-
errorCode: ApiErrorEnum.VALIDATOR,
|
|
25
|
-
message: "Validation Error",
|
|
26
|
-
occurredAt: /* @__PURE__ */ new Date(),
|
|
27
|
-
errors
|
|
28
|
-
};
|
|
29
|
-
}
|
|
30
|
-
};
|
|
31
|
-
|
|
32
|
-
// src/infra/adapters/validators/zod/zod-map-error.ts
|
|
33
|
-
var ZodMapError = class {
|
|
34
|
-
static {
|
|
35
|
-
__name(this, "ZodMapError");
|
|
36
|
-
}
|
|
37
|
-
static mapCommon(error) {
|
|
38
|
-
return {
|
|
39
|
-
type: error.code,
|
|
40
|
-
path: error.path.join("."),
|
|
41
|
-
property: error.path.pop(),
|
|
42
|
-
propertyType: error.expected,
|
|
43
|
-
receivedValue: error.received,
|
|
44
|
-
message: error.message
|
|
45
|
-
};
|
|
46
|
-
}
|
|
47
|
-
static mapInvalidUnion(error) {
|
|
48
|
-
const [errors] = error.unionErrors.flat().map((err) => err.issues.map((item) => this.mapCommon(item)));
|
|
49
|
-
return errors;
|
|
50
|
-
}
|
|
51
|
-
static mapInvalidType(error) {
|
|
52
|
-
return [
|
|
53
|
-
this.mapCommon(error)
|
|
54
|
-
];
|
|
55
|
-
}
|
|
56
|
-
static mapErrorsFactory(error) {
|
|
57
|
-
if (error.code === "invalid_union") {
|
|
58
|
-
return this.mapInvalidUnion(error);
|
|
59
|
-
}
|
|
60
|
-
return this.mapInvalidType(error);
|
|
61
|
-
}
|
|
62
|
-
static mapErrors(errors) {
|
|
63
|
-
const standardizedErrors = /* @__PURE__ */ new Map();
|
|
64
|
-
errors.flat().forEach((error) => {
|
|
65
|
-
const keyError = standardizedErrors.get(error.path[0]);
|
|
66
|
-
if (keyError) {
|
|
67
|
-
if (!keyError.propertyErrors) {
|
|
68
|
-
keyError.propertyErrors = [];
|
|
69
|
-
}
|
|
70
|
-
keyError.propertyErrors.push(...this.mapErrorsFactory(error));
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
standardizedErrors.set(error.path[0], {
|
|
74
|
-
location: error.path[0],
|
|
75
|
-
propertyErrors: Array.from([
|
|
76
|
-
...this.mapErrorsFactory(error)
|
|
77
|
-
])
|
|
78
|
-
});
|
|
79
|
-
});
|
|
80
|
-
return Array.from(standardizedErrors, ([, arr]) => ({
|
|
81
|
-
...arr
|
|
82
|
-
})).flat();
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
// src/infra/adapters/validators/zod/zod-validator.ts
|
|
87
|
-
function zodValidator(schema) {
|
|
88
|
-
return async (request) => {
|
|
89
|
-
const validator = new ZodValidator(schema);
|
|
90
|
-
const validatedRequest = await validator.validate(request);
|
|
91
|
-
return validatedRequest;
|
|
92
|
-
};
|
|
93
|
-
}
|
|
94
|
-
__name(zodValidator, "zodValidator");
|
|
95
|
-
|
|
96
|
-
// src/infra/adapters/validators/zod/index.ts
|
|
97
|
-
var ZodValidator = class {
|
|
98
|
-
static {
|
|
99
|
-
__name(this, "ZodValidator");
|
|
100
|
-
}
|
|
101
|
-
zodSchema;
|
|
102
|
-
constructor(zodSchema) {
|
|
103
|
-
this.zodSchema = zodSchema;
|
|
104
|
-
}
|
|
105
|
-
async validate(requestHttp) {
|
|
106
|
-
const errors = [];
|
|
107
|
-
const { data: headersData = {}, error: headersErrors = {} } = requestHttp.headers ? await this.zodSchema.shape.headers.safeParseAsync(requestHttp.headers, {
|
|
108
|
-
path: [
|
|
109
|
-
"headers"
|
|
110
|
-
]
|
|
111
|
-
}) : {};
|
|
112
|
-
if (headersErrors?.errors) {
|
|
113
|
-
errors.push(headersErrors?.errors);
|
|
114
|
-
}
|
|
115
|
-
const { data: paramsData = {}, error: paramsErrors = {} } = requestHttp.params ? await this.zodSchema.shape.params.safeParseAsync(requestHttp.params, {
|
|
116
|
-
path: [
|
|
117
|
-
"params"
|
|
118
|
-
]
|
|
119
|
-
}) : {};
|
|
120
|
-
if (paramsErrors?.errors) {
|
|
121
|
-
errors.push(paramsErrors?.errors);
|
|
122
|
-
}
|
|
123
|
-
const { data: queryData = {}, error: queryErrors = {} } = requestHttp.query ? await this.zodSchema.shape.query.safeParseAsync(requestHttp.query, {
|
|
124
|
-
path: [
|
|
125
|
-
"query"
|
|
126
|
-
]
|
|
127
|
-
}) : {};
|
|
128
|
-
if (queryErrors?.errors) {
|
|
129
|
-
errors.push(queryErrors?.errors);
|
|
130
|
-
}
|
|
131
|
-
const { data: bodyData = {}, error: bodyErrors = {} } = requestHttp.body ? await this.zodSchema.shape.body.safeParseAsync(requestHttp.body, {
|
|
132
|
-
path: [
|
|
133
|
-
"body"
|
|
134
|
-
]
|
|
135
|
-
}) : {};
|
|
136
|
-
if (bodyErrors?.errors) {
|
|
137
|
-
errors.push(bodyErrors?.errors);
|
|
138
|
-
}
|
|
139
|
-
if (errors.length) {
|
|
140
|
-
throw new ValidationError(ZodMapError.mapErrors(errors));
|
|
141
|
-
}
|
|
142
|
-
return {
|
|
143
|
-
body: bodyData,
|
|
144
|
-
headers: headersData,
|
|
145
|
-
params: paramsData,
|
|
146
|
-
query: queryData
|
|
147
|
-
};
|
|
148
|
-
}
|
|
149
|
-
};
|
|
150
|
-
export {
|
|
151
|
-
ZodValidator as default,
|
|
152
|
-
zodValidator
|
|
153
|
-
};
|
|
154
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/core/errors/api-common-error.ts","../../../../../src/core/errors/validation-error.ts","../../../../../src/infra/adapters/validators/zod/zod-map-error.ts","../../../../../src/infra/adapters/validators/zod/zod-validator.ts","../../../../../src/infra/adapters/validators/zod/index.ts"],"sourcesContent":["export type PropertiesError = {\n receivedValue?: any\n type: string\n message: string\n property: string | number | undefined\n propertyType?: string\n path?: string\n}\n\nexport type CommonError = {\n location: string\n propertyErrors?: PropertiesError[]\n}\n\nexport type ApiCommonError = {\n code: number\n occurredAt: Date\n message: string\n errorCode: string\n errors?: CommonError[]\n}\n\nexport enum ApiErrorEnum {\n DOMAIN = 'ERR001',\n APPLICATION = 'ERR002',\n INFRA = 'ERR003',\n HTTP_CLIENT = 'ERR004',\n VALIDATOR = 'ERR005',\n}\n","import {\n type ApiCommonError,\n ApiErrorEnum,\n type CommonError,\n} from './api-common-error'\n\nexport default class ValidationError extends Error {\n props: ApiCommonError\n\n constructor(errors: CommonError[]) {\n super('Validation Error')\n this.props = {\n code: 400,\n errorCode: ApiErrorEnum.VALIDATOR,\n message: 'Validation Error',\n occurredAt: new Date(),\n errors,\n }\n }\n}\n","import type { ZodIssue } from 'zod'\n\nimport type {\n CommonError,\n PropertiesError,\n} from '../../../../core/errors/api-common-error'\n\ntype ZodError = ZodIssue & {\n expected: string\n received: string\n}\n\ntype ZodInvalidUnion = ZodError & {\n code: 'invalid_union'\n}\n\nexport default class ZodMapError {\n private static mapCommon(error: ZodError): PropertiesError {\n return {\n type: error.code,\n path: error.path.join('.'),\n property: error.path.pop(),\n propertyType: error.expected,\n receivedValue: error.received,\n message: error.message,\n }\n }\n\n private static mapInvalidUnion(error: ZodInvalidUnion): PropertiesError[] {\n const [errors] = error.unionErrors\n .flat()\n .map((err) => err.issues.map((item: any) => this.mapCommon(item)))\n\n return errors\n }\n\n private static mapInvalidType(error: ZodError): PropertiesError[] {\n return [this.mapCommon(error)]\n }\n\n private static mapErrorsFactory(error: ZodError): PropertiesError[] {\n if (error.code === 'invalid_union') {\n return this.mapInvalidUnion(error)\n }\n\n return this.mapInvalidType(error)\n }\n\n static mapErrors(errors: ZodIssue[][]) {\n const standardizedErrors = new Map<string | number, CommonError>()\n\n errors.flat().forEach((error) => {\n const keyError = standardizedErrors.get(error.path[0])\n\n if (keyError) {\n if (!keyError.propertyErrors) {\n keyError.propertyErrors = []\n }\n\n keyError.propertyErrors.push(\n ...this.mapErrorsFactory(error as ZodError)\n )\n\n return\n }\n\n standardizedErrors.set(error.path[0], {\n location: error.path[0],\n propertyErrors: Array.from([\n ...this.mapErrorsFactory(error as ZodError),\n ]),\n } as CommonError)\n })\n\n return Array.from(standardizedErrors, ([, arr]) => ({\n ...arr,\n })).flat()\n }\n}\n","import { z } from 'zod'\n\nimport { Request } from '../../../../core/http/base-controller'\n\nimport ZodValidator from './index'\n\nexport type ZodSchema = z.ZodObject<{\n headers: z.ZodObject<Record<string, any>>\n params: z.ZodObject<Record<string, any>>\n query: z.ZodObject<Record<string, any>>\n body:\n | z.ZodObject<Record<string, any>>\n | z.ZodEffects<z.ZodObject<Record<string, any>>>\n}>\n\nexport type MiddlewareFunction = (request: Request) => Promise<Request>\n\nexport function zodValidator(schema: ZodSchema): MiddlewareFunction {\n return async (request: Request): Promise<Request> => {\n const validator = new ZodValidator(schema)\n const validatedRequest = await validator.validate<Request>(request)\n return validatedRequest\n }\n}\n","import { ZodEffects, type ZodError, ZodObject } from 'zod'\n\nimport ValidationError from '../../../../core/errors/validation-error'\nimport IValidationHTTP, { RequestHttp } from '../../../../core/http/validator'\n\nimport ZodMapError from './zod-map-error'\nimport { zodValidator } from './zod-validator'\n\ntype SchemaDefinition = {\n headers: ZodObject<Record<string, any>>\n params: ZodObject<Record<string, any>>\n query: ZodObject<Record<string, any>>\n body:\n | ZodObject<Record<string, any>>\n | ZodEffects<ZodObject<Record<string, any>>>\n}\n\ntype ZodSchemaObject = ZodObject<SchemaDefinition>\n\nexport default class ZodValidator implements IValidationHTTP {\n constructor(private zodSchema: ZodSchemaObject) {}\n\n async validate<T>(requestHttp: RequestHttp): Promise<T> {\n const errors = []\n\n const {\n data: headersData = {},\n error: headersErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.headers\n ? await this.zodSchema.shape.headers.safeParseAsync(requestHttp.headers, {\n path: ['headers'],\n })\n : {}\n\n if (headersErrors?.errors) {\n errors.push(headersErrors?.errors)\n }\n\n const {\n data: paramsData = {},\n error: paramsErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.params\n ? await this.zodSchema.shape.params.safeParseAsync(requestHttp.params, {\n path: ['params'],\n })\n : {}\n\n if (paramsErrors?.errors) {\n errors.push(paramsErrors?.errors)\n }\n\n const {\n data: queryData = {},\n error: queryErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.query\n ? await this.zodSchema.shape.query.safeParseAsync(requestHttp.query, {\n path: ['query'],\n })\n : {}\n\n if (queryErrors?.errors) {\n errors.push(queryErrors?.errors)\n }\n\n const {\n data: bodyData = {},\n error: bodyErrors = {} as ZodError<{ errors: ZodError[] }>,\n } = requestHttp.body\n ? await this.zodSchema.shape.body.safeParseAsync(requestHttp.body, {\n path: ['body'],\n })\n : {}\n\n if (bodyErrors?.errors) {\n errors.push(bodyErrors?.errors)\n }\n\n if (errors.length) {\n throw new ValidationError(ZodMapError.mapErrors(errors))\n }\n\n return {\n body: bodyData,\n headers: headersData,\n params: paramsData,\n query: queryData,\n } as T\n }\n}\n\nexport { zodValidator }\n"],"mappings":"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","names":["ApiErrorEnum","ValidationError","Error","props","constructor","errors","code","errorCode","ApiErrorEnum","VALIDATOR","message","occurredAt","Date","ZodMapError","mapCommon","error","type","code","path","join","property","pop","propertyType","expected","receivedValue","received","message","mapInvalidUnion","errors","unionErrors","flat","map","err","issues","item","mapInvalidType","mapErrorsFactory","mapErrors","standardizedErrors","Map","forEach","keyError","get","propertyErrors","push","set","location","Array","from","arr","zodValidator","schema","request","validator","ZodValidator","validatedRequest","validate","ZodValidator","constructor","zodSchema","validate","requestHttp","errors","data","headersData","error","headersErrors","headers","shape","safeParseAsync","path","push","paramsData","paramsErrors","params","queryData","queryErrors","query","bodyData","bodyErrors","body","length","ValidationError","ZodMapError","mapErrors"]}
|
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
7
|
-
var __export = (target, all) => {
|
|
8
|
-
for (var name in all)
|
|
9
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
10
|
-
};
|
|
11
|
-
var __copyProps = (to, from, except, desc) => {
|
|
12
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
13
|
-
for (let key of __getOwnPropNames(from))
|
|
14
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
15
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
16
|
-
}
|
|
17
|
-
return to;
|
|
18
|
-
};
|
|
19
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
20
|
-
|
|
21
|
-
// src/infra/adapters/validators/zod/zod-map-error.ts
|
|
22
|
-
var zod_map_error_exports = {};
|
|
23
|
-
__export(zod_map_error_exports, {
|
|
24
|
-
default: () => ZodMapError
|
|
25
|
-
});
|
|
26
|
-
module.exports = __toCommonJS(zod_map_error_exports);
|
|
27
|
-
var ZodMapError = class {
|
|
28
|
-
static {
|
|
29
|
-
__name(this, "ZodMapError");
|
|
30
|
-
}
|
|
31
|
-
static mapCommon(error) {
|
|
32
|
-
return {
|
|
33
|
-
type: error.code,
|
|
34
|
-
path: error.path.join("."),
|
|
35
|
-
property: error.path.pop(),
|
|
36
|
-
propertyType: error.expected,
|
|
37
|
-
receivedValue: error.received,
|
|
38
|
-
message: error.message
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
static mapInvalidUnion(error) {
|
|
42
|
-
const [errors] = error.unionErrors.flat().map((err) => err.issues.map((item) => this.mapCommon(item)));
|
|
43
|
-
return errors;
|
|
44
|
-
}
|
|
45
|
-
static mapInvalidType(error) {
|
|
46
|
-
return [
|
|
47
|
-
this.mapCommon(error)
|
|
48
|
-
];
|
|
49
|
-
}
|
|
50
|
-
static mapErrorsFactory(error) {
|
|
51
|
-
if (error.code === "invalid_union") {
|
|
52
|
-
return this.mapInvalidUnion(error);
|
|
53
|
-
}
|
|
54
|
-
return this.mapInvalidType(error);
|
|
55
|
-
}
|
|
56
|
-
static mapErrors(errors) {
|
|
57
|
-
const standardizedErrors = /* @__PURE__ */ new Map();
|
|
58
|
-
errors.flat().forEach((error) => {
|
|
59
|
-
const keyError = standardizedErrors.get(error.path[0]);
|
|
60
|
-
if (keyError) {
|
|
61
|
-
if (!keyError.propertyErrors) {
|
|
62
|
-
keyError.propertyErrors = [];
|
|
63
|
-
}
|
|
64
|
-
keyError.propertyErrors.push(...this.mapErrorsFactory(error));
|
|
65
|
-
return;
|
|
66
|
-
}
|
|
67
|
-
standardizedErrors.set(error.path[0], {
|
|
68
|
-
location: error.path[0],
|
|
69
|
-
propertyErrors: Array.from([
|
|
70
|
-
...this.mapErrorsFactory(error)
|
|
71
|
-
])
|
|
72
|
-
});
|
|
73
|
-
});
|
|
74
|
-
return Array.from(standardizedErrors, ([, arr]) => ({
|
|
75
|
-
...arr
|
|
76
|
-
})).flat();
|
|
77
|
-
}
|
|
78
|
-
};
|
|
79
|
-
//# sourceMappingURL=zod-map-error.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/adapters/validators/zod/zod-map-error.ts"],"sourcesContent":["import type { ZodIssue } from 'zod'\n\nimport type {\n CommonError,\n PropertiesError,\n} from '../../../../core/errors/api-common-error'\n\ntype ZodError = ZodIssue & {\n expected: string\n received: string\n}\n\ntype ZodInvalidUnion = ZodError & {\n code: 'invalid_union'\n}\n\nexport default class ZodMapError {\n private static mapCommon(error: ZodError): PropertiesError {\n return {\n type: error.code,\n path: error.path.join('.'),\n property: error.path.pop(),\n propertyType: error.expected,\n receivedValue: error.received,\n message: error.message,\n }\n }\n\n private static mapInvalidUnion(error: ZodInvalidUnion): PropertiesError[] {\n const [errors] = error.unionErrors\n .flat()\n .map((err) => err.issues.map((item: any) => this.mapCommon(item)))\n\n return errors\n }\n\n private static mapInvalidType(error: ZodError): PropertiesError[] {\n return [this.mapCommon(error)]\n }\n\n private static mapErrorsFactory(error: ZodError): PropertiesError[] {\n if (error.code === 'invalid_union') {\n return this.mapInvalidUnion(error)\n }\n\n return this.mapInvalidType(error)\n }\n\n static mapErrors(errors: ZodIssue[][]) {\n const standardizedErrors = new Map<string | number, CommonError>()\n\n errors.flat().forEach((error) => {\n const keyError = standardizedErrors.get(error.path[0])\n\n if (keyError) {\n if (!keyError.propertyErrors) {\n keyError.propertyErrors = []\n }\n\n keyError.propertyErrors.push(\n ...this.mapErrorsFactory(error as ZodError)\n )\n\n return\n }\n\n standardizedErrors.set(error.path[0], {\n location: error.path[0],\n propertyErrors: Array.from([\n ...this.mapErrorsFactory(error as ZodError),\n ]),\n } as CommonError)\n })\n\n return Array.from(standardizedErrors, ([, arr]) => ({\n ...arr,\n })).flat()\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAgBA;;;;;AAAA,IAAqBA,cAArB,MAAqBA;EAArB,OAAqBA;;;EACnB,OAAeC,UAAUC,OAAkC;AACzD,WAAO;MACLC,MAAMD,MAAME;MACZC,MAAMH,MAAMG,KAAKC,KAAK,GAAA;MACtBC,UAAUL,MAAMG,KAAKG,IAAG;MACxBC,cAAcP,MAAMQ;MACpBC,eAAeT,MAAMU;MACrBC,SAASX,MAAMW;IACjB;EACF;EAEA,OAAeC,gBAAgBZ,OAA2C;AACxE,UAAM,CAACa,MAAAA,IAAUb,MAAMc,YACpBC,KAAI,EACJC,IAAI,CAACC,QAAQA,IAAIC,OAAOF,IAAI,CAACG,SAAc,KAAKpB,UAAUoB,IAAAA,CAAAA,CAAAA;AAE7D,WAAON;EACT;EAEA,OAAeO,eAAepB,OAAoC;AAChE,WAAO;MAAC,KAAKD,UAAUC,KAAAA;;EACzB;EAEA,OAAeqB,iBAAiBrB,OAAoC;AAClE,QAAIA,MAAME,SAAS,iBAAiB;AAClC,aAAO,KAAKU,gBAAgBZ,KAAAA;IAC9B;AAEA,WAAO,KAAKoB,eAAepB,KAAAA;EAC7B;EAEA,OAAOsB,UAAUT,QAAsB;AACrC,UAAMU,qBAAqB,oBAAIC,IAAAA;AAE/BX,WAAOE,KAAI,EAAGU,QAAQ,CAACzB,UAAAA;AACrB,YAAM0B,WAAWH,mBAAmBI,IAAI3B,MAAMG,KAAK,CAAA,CAAE;AAErD,UAAIuB,UAAU;AACZ,YAAI,CAACA,SAASE,gBAAgB;AAC5BF,mBAASE,iBAAiB,CAAA;QAC5B;AAEAF,iBAASE,eAAeC,KAAI,GACvB,KAAKR,iBAAiBrB,KAAAA,CAAAA;AAG3B;MACF;AAEAuB,yBAAmBO,IAAI9B,MAAMG,KAAK,CAAA,GAAI;QACpC4B,UAAU/B,MAAMG,KAAK,CAAA;QACrByB,gBAAgBI,MAAMC,KAAK;aACtB,KAAKZ,iBAAiBrB,KAAAA;SAC1B;MACH,CAAA;IACF,CAAA;AAEA,WAAOgC,MAAMC,KAAKV,oBAAoB,CAAC,CAAA,EAAGW,GAAAA,OAAU;MAClD,GAAGA;IACL,EAAA,EAAInB,KAAI;EACV;AACF;","names":["ZodMapError","mapCommon","error","type","code","path","join","property","pop","propertyType","expected","receivedValue","received","message","mapInvalidUnion","errors","unionErrors","flat","map","err","issues","item","mapInvalidType","mapErrorsFactory","mapErrors","standardizedErrors","Map","forEach","keyError","get","propertyErrors","push","set","location","Array","from","arr"]}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ZodIssue } from 'zod';
|
|
2
|
-
import { PropertiesError } from '../../../../core/errors/api-common-error.cjs';
|
|
3
|
-
|
|
4
|
-
declare class ZodMapError {
|
|
5
|
-
private static mapCommon;
|
|
6
|
-
private static mapInvalidUnion;
|
|
7
|
-
private static mapInvalidType;
|
|
8
|
-
private static mapErrorsFactory;
|
|
9
|
-
static mapErrors(errors: ZodIssue[][]): {
|
|
10
|
-
location: string;
|
|
11
|
-
propertyErrors?: PropertiesError[];
|
|
12
|
-
}[];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export { ZodMapError as default };
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { ZodIssue } from 'zod';
|
|
2
|
-
import { PropertiesError } from '../../../../core/errors/api-common-error.js';
|
|
3
|
-
|
|
4
|
-
declare class ZodMapError {
|
|
5
|
-
private static mapCommon;
|
|
6
|
-
private static mapInvalidUnion;
|
|
7
|
-
private static mapInvalidType;
|
|
8
|
-
private static mapErrorsFactory;
|
|
9
|
-
static mapErrors(errors: ZodIssue[][]): {
|
|
10
|
-
location: string;
|
|
11
|
-
propertyErrors?: PropertiesError[];
|
|
12
|
-
}[];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
export { ZodMapError as default };
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
3
|
-
|
|
4
|
-
// src/infra/adapters/validators/zod/zod-map-error.ts
|
|
5
|
-
var ZodMapError = class {
|
|
6
|
-
static {
|
|
7
|
-
__name(this, "ZodMapError");
|
|
8
|
-
}
|
|
9
|
-
static mapCommon(error) {
|
|
10
|
-
return {
|
|
11
|
-
type: error.code,
|
|
12
|
-
path: error.path.join("."),
|
|
13
|
-
property: error.path.pop(),
|
|
14
|
-
propertyType: error.expected,
|
|
15
|
-
receivedValue: error.received,
|
|
16
|
-
message: error.message
|
|
17
|
-
};
|
|
18
|
-
}
|
|
19
|
-
static mapInvalidUnion(error) {
|
|
20
|
-
const [errors] = error.unionErrors.flat().map((err) => err.issues.map((item) => this.mapCommon(item)));
|
|
21
|
-
return errors;
|
|
22
|
-
}
|
|
23
|
-
static mapInvalidType(error) {
|
|
24
|
-
return [
|
|
25
|
-
this.mapCommon(error)
|
|
26
|
-
];
|
|
27
|
-
}
|
|
28
|
-
static mapErrorsFactory(error) {
|
|
29
|
-
if (error.code === "invalid_union") {
|
|
30
|
-
return this.mapInvalidUnion(error);
|
|
31
|
-
}
|
|
32
|
-
return this.mapInvalidType(error);
|
|
33
|
-
}
|
|
34
|
-
static mapErrors(errors) {
|
|
35
|
-
const standardizedErrors = /* @__PURE__ */ new Map();
|
|
36
|
-
errors.flat().forEach((error) => {
|
|
37
|
-
const keyError = standardizedErrors.get(error.path[0]);
|
|
38
|
-
if (keyError) {
|
|
39
|
-
if (!keyError.propertyErrors) {
|
|
40
|
-
keyError.propertyErrors = [];
|
|
41
|
-
}
|
|
42
|
-
keyError.propertyErrors.push(...this.mapErrorsFactory(error));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
standardizedErrors.set(error.path[0], {
|
|
46
|
-
location: error.path[0],
|
|
47
|
-
propertyErrors: Array.from([
|
|
48
|
-
...this.mapErrorsFactory(error)
|
|
49
|
-
])
|
|
50
|
-
});
|
|
51
|
-
});
|
|
52
|
-
return Array.from(standardizedErrors, ([, arr]) => ({
|
|
53
|
-
...arr
|
|
54
|
-
})).flat();
|
|
55
|
-
}
|
|
56
|
-
};
|
|
57
|
-
export {
|
|
58
|
-
ZodMapError as default
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=zod-map-error.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/infra/adapters/validators/zod/zod-map-error.ts"],"sourcesContent":["import type { ZodIssue } from 'zod'\n\nimport type {\n CommonError,\n PropertiesError,\n} from '../../../../core/errors/api-common-error'\n\ntype ZodError = ZodIssue & {\n expected: string\n received: string\n}\n\ntype ZodInvalidUnion = ZodError & {\n code: 'invalid_union'\n}\n\nexport default class ZodMapError {\n private static mapCommon(error: ZodError): PropertiesError {\n return {\n type: error.code,\n path: error.path.join('.'),\n property: error.path.pop(),\n propertyType: error.expected,\n receivedValue: error.received,\n message: error.message,\n }\n }\n\n private static mapInvalidUnion(error: ZodInvalidUnion): PropertiesError[] {\n const [errors] = error.unionErrors\n .flat()\n .map((err) => err.issues.map((item: any) => this.mapCommon(item)))\n\n return errors\n }\n\n private static mapInvalidType(error: ZodError): PropertiesError[] {\n return [this.mapCommon(error)]\n }\n\n private static mapErrorsFactory(error: ZodError): PropertiesError[] {\n if (error.code === 'invalid_union') {\n return this.mapInvalidUnion(error)\n }\n\n return this.mapInvalidType(error)\n }\n\n static mapErrors(errors: ZodIssue[][]) {\n const standardizedErrors = new Map<string | number, CommonError>()\n\n errors.flat().forEach((error) => {\n const keyError = standardizedErrors.get(error.path[0])\n\n if (keyError) {\n if (!keyError.propertyErrors) {\n keyError.propertyErrors = []\n }\n\n keyError.propertyErrors.push(\n ...this.mapErrorsFactory(error as ZodError)\n )\n\n return\n }\n\n standardizedErrors.set(error.path[0], {\n location: error.path[0],\n propertyErrors: Array.from([\n ...this.mapErrorsFactory(error as ZodError),\n ]),\n } as CommonError)\n })\n\n return Array.from(standardizedErrors, ([, arr]) => ({\n ...arr,\n })).flat()\n }\n}\n"],"mappings":";;;;AAgBA,IAAqBA,cAArB,MAAqBA;EAArB,OAAqBA;;;EACnB,OAAeC,UAAUC,OAAkC;AACzD,WAAO;MACLC,MAAMD,MAAME;MACZC,MAAMH,MAAMG,KAAKC,KAAK,GAAA;MACtBC,UAAUL,MAAMG,KAAKG,IAAG;MACxBC,cAAcP,MAAMQ;MACpBC,eAAeT,MAAMU;MACrBC,SAASX,MAAMW;IACjB;EACF;EAEA,OAAeC,gBAAgBZ,OAA2C;AACxE,UAAM,CAACa,MAAAA,IAAUb,MAAMc,YACpBC,KAAI,EACJC,IAAI,CAACC,QAAQA,IAAIC,OAAOF,IAAI,CAACG,SAAc,KAAKpB,UAAUoB,IAAAA,CAAAA,CAAAA;AAE7D,WAAON;EACT;EAEA,OAAeO,eAAepB,OAAoC;AAChE,WAAO;MAAC,KAAKD,UAAUC,KAAAA;;EACzB;EAEA,OAAeqB,iBAAiBrB,OAAoC;AAClE,QAAIA,MAAME,SAAS,iBAAiB;AAClC,aAAO,KAAKU,gBAAgBZ,KAAAA;IAC9B;AAEA,WAAO,KAAKoB,eAAepB,KAAAA;EAC7B;EAEA,OAAOsB,UAAUT,QAAsB;AACrC,UAAMU,qBAAqB,oBAAIC,IAAAA;AAE/BX,WAAOE,KAAI,EAAGU,QAAQ,CAACzB,UAAAA;AACrB,YAAM0B,WAAWH,mBAAmBI,IAAI3B,MAAMG,KAAK,CAAA,CAAE;AAErD,UAAIuB,UAAU;AACZ,YAAI,CAACA,SAASE,gBAAgB;AAC5BF,mBAASE,iBAAiB,CAAA;QAC5B;AAEAF,iBAASE,eAAeC,KAAI,GACvB,KAAKR,iBAAiBrB,KAAAA,CAAAA;AAG3B;MACF;AAEAuB,yBAAmBO,IAAI9B,MAAMG,KAAK,CAAA,GAAI;QACpC4B,UAAU/B,MAAMG,KAAK,CAAA;QACrByB,gBAAgBI,MAAMC,KAAK;aACtB,KAAKZ,iBAAiBrB,KAAAA;SAC1B;MACH,CAAA;IACF,CAAA;AAEA,WAAOgC,MAAMC,KAAKV,oBAAoB,CAAC,CAAA,EAAGW,GAAAA,OAAU;MAClD,GAAGA;IACL,EAAA,EAAInB,KAAI;EACV;AACF;","names":["ZodMapError","mapCommon","error","type","code","path","join","property","pop","propertyType","expected","receivedValue","received","message","mapInvalidUnion","errors","unionErrors","flat","map","err","issues","item","mapInvalidType","mapErrorsFactory","mapErrors","standardizedErrors","Map","forEach","keyError","get","propertyErrors","push","set","location","Array","from","arr"]}
|