@cosmneo/onion-lasagna 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/backend/core/global.cjs +283 -0
- package/dist/backend/core/global.cjs.map +1 -0
- package/dist/backend/core/global.d.cts +294 -0
- package/dist/backend/core/global.d.ts +294 -0
- package/dist/backend/core/global.js +39 -0
- package/dist/backend/core/global.js.map +1 -0
- package/dist/backend/core/onion-layers.cjs +2302 -0
- package/dist/backend/core/onion-layers.cjs.map +1 -0
- package/dist/backend/core/onion-layers.d.cts +1675 -0
- package/dist/backend/core/onion-layers.d.ts +1675 -0
- package/dist/backend/core/onion-layers.js +1158 -0
- package/dist/backend/core/onion-layers.js.map +1 -0
- package/dist/backend/core/presentation.cjs +573 -0
- package/dist/backend/core/presentation.cjs.map +1 -0
- package/dist/backend/core/presentation.d.cts +5 -0
- package/dist/backend/core/presentation.d.ts +5 -0
- package/dist/backend/core/presentation.js +28 -0
- package/dist/backend/core/presentation.js.map +1 -0
- package/dist/backend/core/validators/arktype.cjs +947 -0
- package/dist/backend/core/validators/arktype.cjs.map +1 -0
- package/dist/backend/core/validators/arktype.d.cts +188 -0
- package/dist/backend/core/validators/arktype.d.ts +188 -0
- package/dist/backend/core/validators/arktype.js +287 -0
- package/dist/backend/core/validators/arktype.js.map +1 -0
- package/dist/backend/core/validators/typebox.cjs +939 -0
- package/dist/backend/core/validators/typebox.cjs.map +1 -0
- package/dist/backend/core/validators/typebox.d.cts +189 -0
- package/dist/backend/core/validators/typebox.d.ts +189 -0
- package/dist/backend/core/validators/typebox.js +281 -0
- package/dist/backend/core/validators/typebox.js.map +1 -0
- package/dist/backend/core/validators/valibot.cjs +942 -0
- package/dist/backend/core/validators/valibot.cjs.map +1 -0
- package/dist/backend/core/validators/valibot.d.cts +160 -0
- package/dist/backend/core/validators/valibot.d.ts +160 -0
- package/dist/backend/core/validators/valibot.js +294 -0
- package/dist/backend/core/validators/valibot.js.map +1 -0
- package/dist/backend/core/validators/zod.cjs +934 -0
- package/dist/backend/core/validators/zod.cjs.map +1 -0
- package/dist/backend/core/validators/zod.d.cts +188 -0
- package/dist/backend/core/validators/zod.d.ts +188 -0
- package/dist/backend/core/validators/zod.js +278 -0
- package/dist/backend/core/validators/zod.js.map +1 -0
- package/dist/backend/frameworks/elysia.cjs +715 -0
- package/dist/backend/frameworks/elysia.cjs.map +1 -0
- package/dist/backend/frameworks/elysia.d.cts +208 -0
- package/dist/backend/frameworks/elysia.d.ts +208 -0
- package/dist/backend/frameworks/elysia.js +251 -0
- package/dist/backend/frameworks/elysia.js.map +1 -0
- package/dist/backend/frameworks/fastify.cjs +677 -0
- package/dist/backend/frameworks/fastify.cjs.map +1 -0
- package/dist/backend/frameworks/fastify.d.cts +201 -0
- package/dist/backend/frameworks/fastify.d.ts +201 -0
- package/dist/backend/frameworks/fastify.js +213 -0
- package/dist/backend/frameworks/fastify.js.map +1 -0
- package/dist/backend/frameworks/hono.cjs +715 -0
- package/dist/backend/frameworks/hono.cjs.map +1 -0
- package/dist/backend/frameworks/hono.d.cts +163 -0
- package/dist/backend/frameworks/hono.d.ts +163 -0
- package/dist/backend/frameworks/hono.js +249 -0
- package/dist/backend/frameworks/hono.js.map +1 -0
- package/dist/backend/frameworks/nestjs.cjs +260 -0
- package/dist/backend/frameworks/nestjs.cjs.map +1 -0
- package/dist/backend/frameworks/nestjs.d.cts +168 -0
- package/dist/backend/frameworks/nestjs.d.ts +168 -0
- package/dist/backend/frameworks/nestjs.js +193 -0
- package/dist/backend/frameworks/nestjs.js.map +1 -0
- package/dist/base-dto.class-D7W9iqoU.d.cts +146 -0
- package/dist/base-dto.class-D7W9iqoU.d.ts +146 -0
- package/dist/base-uuid-v7.vo-BPGEIWLM.d.ts +799 -0
- package/dist/base-uuid-v7.vo-BjqKX44G.d.cts +799 -0
- package/dist/chunk-74IKUOSE.js +116 -0
- package/dist/chunk-74IKUOSE.js.map +1 -0
- package/dist/chunk-BKZOLGQW.js +29 -0
- package/dist/chunk-BKZOLGQW.js.map +1 -0
- package/dist/chunk-CGZBV6BD.js +54 -0
- package/dist/chunk-CGZBV6BD.js.map +1 -0
- package/dist/chunk-DDAHJZVK.js +258 -0
- package/dist/chunk-DDAHJZVK.js.map +1 -0
- package/dist/chunk-MQD5GXMT.js +171 -0
- package/dist/chunk-MQD5GXMT.js.map +1 -0
- package/dist/chunk-OKFXZHBC.js +43 -0
- package/dist/chunk-OKFXZHBC.js.map +1 -0
- package/dist/chunk-RLLWYFPI.js +168 -0
- package/dist/chunk-RLLWYFPI.js.map +1 -0
- package/dist/chunk-VCHFXT5W.js +425 -0
- package/dist/chunk-VCHFXT5W.js.map +1 -0
- package/dist/chunk-ZWLYNGO3.js +40 -0
- package/dist/chunk-ZWLYNGO3.js.map +1 -0
- package/dist/http-response-BAhi8lF4.d.cts +124 -0
- package/dist/http-response-BAhi8lF4.d.ts +124 -0
- package/dist/index-DingXh7B.d.cts +1187 -0
- package/dist/index-tOH7XBa3.d.ts +1187 -0
- package/dist/routing.type-DB4pt-d9.d.ts +184 -0
- package/dist/routing.type-DF2BIL7x.d.cts +184 -0
- package/dist/validation-error.type-kD4_qNZ9.d.cts +199 -0
- package/dist/validation-error.type-kD4_qNZ9.d.ts +199 -0
- package/package.json +191 -0
|
@@ -0,0 +1,281 @@
|
|
|
1
|
+
import {
|
|
2
|
+
BaseAuditByVo,
|
|
3
|
+
BaseAuditInfoVo,
|
|
4
|
+
BaseAuditOnVo,
|
|
5
|
+
BaseEmailVo,
|
|
6
|
+
BaseLongTextVo,
|
|
7
|
+
BaseMediumTextVo,
|
|
8
|
+
BasePaginationVo,
|
|
9
|
+
BaseShortTextVo,
|
|
10
|
+
BaseUuidV4Vo,
|
|
11
|
+
BaseUuidV7Vo,
|
|
12
|
+
SKIP_VALUE_OBJECT_VALIDATION
|
|
13
|
+
} from "../../../chunk-VCHFXT5W.js";
|
|
14
|
+
import {
|
|
15
|
+
BaseDto
|
|
16
|
+
} from "../../../chunk-BKZOLGQW.js";
|
|
17
|
+
import "../../../chunk-ZWLYNGO3.js";
|
|
18
|
+
import {
|
|
19
|
+
ObjectValidationError
|
|
20
|
+
} from "../../../chunk-MQD5GXMT.js";
|
|
21
|
+
import "../../../chunk-CGZBV6BD.js";
|
|
22
|
+
|
|
23
|
+
// src/backend/core/validators/typebox/object-validator.typebox.ts
|
|
24
|
+
import { Value } from "@sinclair/typebox/value";
|
|
25
|
+
var formatPath = (path) => {
|
|
26
|
+
if (!path || path === "/") return "root";
|
|
27
|
+
return path.slice(1).split("/").map((segment, index) => {
|
|
28
|
+
const num = Number(segment);
|
|
29
|
+
if (!isNaN(num)) return `[${num}]`;
|
|
30
|
+
return index === 0 ? segment : `.${segment}`;
|
|
31
|
+
}).join("");
|
|
32
|
+
};
|
|
33
|
+
var toValidationErrors = (errors) => [...errors].map((error) => ({
|
|
34
|
+
field: formatPath(error?.path ?? "/"),
|
|
35
|
+
message: error?.message ?? "Validation failed"
|
|
36
|
+
}));
|
|
37
|
+
var TypeBoxObjectValidator = class {
|
|
38
|
+
validateObject(schema11, value) {
|
|
39
|
+
const errors = [...Value.Errors(schema11, value)];
|
|
40
|
+
if (errors.length === 0) {
|
|
41
|
+
return Value.Decode(schema11, value);
|
|
42
|
+
}
|
|
43
|
+
throw new ObjectValidationError({
|
|
44
|
+
message: "Object validation failed",
|
|
45
|
+
cause: errors,
|
|
46
|
+
validationErrors: toValidationErrors(errors)
|
|
47
|
+
});
|
|
48
|
+
}
|
|
49
|
+
withSchema(schema11) {
|
|
50
|
+
return {
|
|
51
|
+
validate: (value) => this.validateObject(schema11, value)
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// src/backend/core/validators/typebox/bootstrap.ts
|
|
57
|
+
var typeBoxObjectValidator = new TypeBoxObjectValidator();
|
|
58
|
+
var createTypeBoxValidator = (schema11) => typeBoxObjectValidator.withSchema(schema11);
|
|
59
|
+
|
|
60
|
+
// src/backend/core/validators/typebox/wrappers/dto.ts
|
|
61
|
+
var Dto = class extends BaseDto {
|
|
62
|
+
constructor(schema11, value) {
|
|
63
|
+
super(value, createTypeBoxValidator(schema11));
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
|
|
67
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/audit-by.vo.ts
|
|
68
|
+
import { Type as Type2 } from "@sinclair/typebox";
|
|
69
|
+
|
|
70
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/uuid-v4.vo.ts
|
|
71
|
+
import { Type } from "@sinclair/typebox";
|
|
72
|
+
var schema = Type.String({ format: "uuid" });
|
|
73
|
+
var UuidV4Vo = class _UuidV4Vo extends BaseUuidV4Vo {
|
|
74
|
+
constructor(value) {
|
|
75
|
+
super(value, createTypeBoxValidator(schema));
|
|
76
|
+
}
|
|
77
|
+
static create(value) {
|
|
78
|
+
return new _UuidV4Vo(value);
|
|
79
|
+
}
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/audit-by.vo.ts
|
|
83
|
+
var schema2 = Type2.Object({
|
|
84
|
+
createdBy: Type2.Optional(Type2.String({ format: "uuid" })),
|
|
85
|
+
updatedBy: Type2.Optional(Type2.String({ format: "uuid" }))
|
|
86
|
+
});
|
|
87
|
+
var AuditByVo = class _AuditByVo extends BaseAuditByVo {
|
|
88
|
+
constructor(value) {
|
|
89
|
+
super(value, SKIP_VALUE_OBJECT_VALIDATION);
|
|
90
|
+
}
|
|
91
|
+
static create({ createdBy, updatedBy }) {
|
|
92
|
+
const validated = createTypeBoxValidator(schema2).validate({
|
|
93
|
+
createdBy,
|
|
94
|
+
updatedBy
|
|
95
|
+
});
|
|
96
|
+
return new _AuditByVo({
|
|
97
|
+
createdBy: validated.createdBy ? UuidV4Vo.create(validated.createdBy) : void 0,
|
|
98
|
+
updatedBy: validated.updatedBy ? UuidV4Vo.create(validated.updatedBy) : void 0
|
|
99
|
+
});
|
|
100
|
+
}
|
|
101
|
+
update(updatedBy) {
|
|
102
|
+
return new _AuditByVo({ createdBy: this.createdBy, updatedBy });
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
|
|
106
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/audit-info.vo.ts
|
|
107
|
+
import { Type as Type4 } from "@sinclair/typebox";
|
|
108
|
+
|
|
109
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/audit-on.vo.ts
|
|
110
|
+
import { Type as Type3 } from "@sinclair/typebox";
|
|
111
|
+
var schema3 = Type3.Object({
|
|
112
|
+
createdAt: Type3.Optional(Type3.Date()),
|
|
113
|
+
updatedAt: Type3.Optional(Type3.Date())
|
|
114
|
+
});
|
|
115
|
+
var AuditOnVo = class _AuditOnVo extends BaseAuditOnVo {
|
|
116
|
+
constructor(value) {
|
|
117
|
+
super(value, SKIP_VALUE_OBJECT_VALIDATION);
|
|
118
|
+
}
|
|
119
|
+
static create({ createdAt, updatedAt }) {
|
|
120
|
+
const validated = createTypeBoxValidator(schema3).validate({
|
|
121
|
+
createdAt,
|
|
122
|
+
updatedAt
|
|
123
|
+
});
|
|
124
|
+
const finalCreatedAt = validated.createdAt ?? /* @__PURE__ */ new Date();
|
|
125
|
+
const finalUpdatedAt = validated.updatedAt ?? finalCreatedAt;
|
|
126
|
+
return new _AuditOnVo({
|
|
127
|
+
createdAt: new Date(finalCreatedAt),
|
|
128
|
+
updatedAt: new Date(finalUpdatedAt)
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
update() {
|
|
132
|
+
return new _AuditOnVo({ createdAt: this.createdAt, updatedAt: /* @__PURE__ */ new Date() });
|
|
133
|
+
}
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/audit-info.vo.ts
|
|
137
|
+
var schema4 = Type4.Object({
|
|
138
|
+
createdBy: Type4.Optional(Type4.String({ format: "uuid" })),
|
|
139
|
+
createdAt: Type4.Optional(Type4.Date()),
|
|
140
|
+
updatedBy: Type4.Optional(Type4.String({ format: "uuid" })),
|
|
141
|
+
updatedAt: Type4.Optional(Type4.Date())
|
|
142
|
+
});
|
|
143
|
+
var AuditInfoVo = class _AuditInfoVo extends BaseAuditInfoVo {
|
|
144
|
+
constructor(value) {
|
|
145
|
+
super(value, SKIP_VALUE_OBJECT_VALIDATION);
|
|
146
|
+
}
|
|
147
|
+
static create({
|
|
148
|
+
createdBy,
|
|
149
|
+
createdAt,
|
|
150
|
+
updatedBy,
|
|
151
|
+
updatedAt
|
|
152
|
+
}) {
|
|
153
|
+
const validated = createTypeBoxValidator(schema4).validate({
|
|
154
|
+
createdBy,
|
|
155
|
+
createdAt,
|
|
156
|
+
updatedBy,
|
|
157
|
+
updatedAt
|
|
158
|
+
});
|
|
159
|
+
const by = AuditByVo.create({
|
|
160
|
+
createdBy: validated.createdBy,
|
|
161
|
+
updatedBy: validated.updatedBy
|
|
162
|
+
});
|
|
163
|
+
const on = AuditOnVo.create({
|
|
164
|
+
createdAt: validated.createdAt,
|
|
165
|
+
updatedAt: validated.updatedAt
|
|
166
|
+
});
|
|
167
|
+
return new _AuditInfoVo({ by, on });
|
|
168
|
+
}
|
|
169
|
+
static createNew(createdBy) {
|
|
170
|
+
const by = AuditByVo.create({ createdBy });
|
|
171
|
+
const on = AuditOnVo.create({});
|
|
172
|
+
return new _AuditInfoVo({ by, on });
|
|
173
|
+
}
|
|
174
|
+
update(updatedBy) {
|
|
175
|
+
const by = this.value.by.update(updatedBy);
|
|
176
|
+
const on = this.value.on.update();
|
|
177
|
+
return new _AuditInfoVo({ by, on });
|
|
178
|
+
}
|
|
179
|
+
};
|
|
180
|
+
|
|
181
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/email.vo.ts
|
|
182
|
+
import { Type as Type5 } from "@sinclair/typebox";
|
|
183
|
+
var schema5 = Type5.String({ format: "email" });
|
|
184
|
+
var EmailVo = class _EmailVo extends BaseEmailVo {
|
|
185
|
+
constructor(value) {
|
|
186
|
+
super(value, createTypeBoxValidator(schema5));
|
|
187
|
+
}
|
|
188
|
+
static create(value) {
|
|
189
|
+
return new _EmailVo(value);
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
|
|
193
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/long-text.vo.ts
|
|
194
|
+
import { Type as Type6 } from "@sinclair/typebox";
|
|
195
|
+
var schema6 = (maxLen) => Type6.String({ minLength: 1, maxLength: maxLen });
|
|
196
|
+
var LongTextVo = class _LongTextVo extends BaseLongTextVo {
|
|
197
|
+
constructor(value, maxLen = 2e3) {
|
|
198
|
+
super(value, createTypeBoxValidator(schema6(maxLen)));
|
|
199
|
+
}
|
|
200
|
+
static create(value, maxLen = 2e3) {
|
|
201
|
+
return new _LongTextVo(value, maxLen);
|
|
202
|
+
}
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/medium-text.vo.ts
|
|
206
|
+
import { Type as Type7 } from "@sinclair/typebox";
|
|
207
|
+
var schema7 = (maxLen) => Type7.String({ minLength: 1, maxLength: maxLen });
|
|
208
|
+
var MediumTextVo = class _MediumTextVo extends BaseMediumTextVo {
|
|
209
|
+
constructor(value, maxLen = 500) {
|
|
210
|
+
super(value, createTypeBoxValidator(schema7(maxLen)));
|
|
211
|
+
}
|
|
212
|
+
static create(value, maxLen = 500) {
|
|
213
|
+
return new _MediumTextVo(value, maxLen);
|
|
214
|
+
}
|
|
215
|
+
};
|
|
216
|
+
|
|
217
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/pagination.vo.ts
|
|
218
|
+
import { Type as Type8 } from "@sinclair/typebox";
|
|
219
|
+
var schema8 = (maxPageSize) => Type8.Object({
|
|
220
|
+
page: Type8.Integer({ minimum: 1 }),
|
|
221
|
+
pageSize: Type8.Integer({ minimum: 1, maximum: maxPageSize })
|
|
222
|
+
});
|
|
223
|
+
var PaginationVo = class _PaginationVo extends BasePaginationVo {
|
|
224
|
+
constructor(value) {
|
|
225
|
+
super(value, SKIP_VALUE_OBJECT_VALIDATION);
|
|
226
|
+
}
|
|
227
|
+
static create({
|
|
228
|
+
page,
|
|
229
|
+
pageSize,
|
|
230
|
+
maxPageSize = 100
|
|
231
|
+
}) {
|
|
232
|
+
const validated = createTypeBoxValidator(
|
|
233
|
+
schema8(maxPageSize)
|
|
234
|
+
).validate({
|
|
235
|
+
page,
|
|
236
|
+
pageSize
|
|
237
|
+
});
|
|
238
|
+
return new _PaginationVo(validated);
|
|
239
|
+
}
|
|
240
|
+
};
|
|
241
|
+
|
|
242
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/short-text.vo.ts
|
|
243
|
+
import { Type as Type9 } from "@sinclair/typebox";
|
|
244
|
+
var schema9 = (maxLen) => Type9.String({ minLength: 1, maxLength: maxLen });
|
|
245
|
+
var ShortTextVo = class _ShortTextVo extends BaseShortTextVo {
|
|
246
|
+
constructor(value, maxLen = 100) {
|
|
247
|
+
super(value, createTypeBoxValidator(schema9(maxLen)));
|
|
248
|
+
}
|
|
249
|
+
static create(value, maxLen = 100) {
|
|
250
|
+
return new _ShortTextVo(value, maxLen);
|
|
251
|
+
}
|
|
252
|
+
};
|
|
253
|
+
|
|
254
|
+
// src/backend/core/validators/typebox/wrappers/value-objects/uuid-v7.vo.ts
|
|
255
|
+
import { Type as Type10 } from "@sinclair/typebox";
|
|
256
|
+
var schema10 = Type10.String({ format: "uuid" });
|
|
257
|
+
var UuidV7Vo = class _UuidV7Vo extends BaseUuidV7Vo {
|
|
258
|
+
constructor(value) {
|
|
259
|
+
super(value, createTypeBoxValidator(schema10));
|
|
260
|
+
}
|
|
261
|
+
static create(value) {
|
|
262
|
+
return new _UuidV7Vo(value);
|
|
263
|
+
}
|
|
264
|
+
};
|
|
265
|
+
export {
|
|
266
|
+
AuditByVo,
|
|
267
|
+
AuditInfoVo,
|
|
268
|
+
AuditOnVo,
|
|
269
|
+
Dto,
|
|
270
|
+
EmailVo,
|
|
271
|
+
LongTextVo,
|
|
272
|
+
MediumTextVo,
|
|
273
|
+
PaginationVo,
|
|
274
|
+
ShortTextVo,
|
|
275
|
+
TypeBoxObjectValidator,
|
|
276
|
+
UuidV4Vo,
|
|
277
|
+
UuidV7Vo,
|
|
278
|
+
createTypeBoxValidator,
|
|
279
|
+
typeBoxObjectValidator
|
|
280
|
+
};
|
|
281
|
+
//# sourceMappingURL=typebox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/backend/core/validators/typebox/object-validator.typebox.ts","../../../../src/backend/core/validators/typebox/bootstrap.ts","../../../../src/backend/core/validators/typebox/wrappers/dto.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/audit-by.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/uuid-v4.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/audit-info.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/audit-on.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/email.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/long-text.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/medium-text.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/pagination.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/short-text.vo.ts","../../../../src/backend/core/validators/typebox/wrappers/value-objects/uuid-v7.vo.ts"],"sourcesContent":["/**\n * TypeBox implementation of the ObjectValidatorPort.\n *\n * Adapts TypeBox's validation API to the framework's validator abstraction,\n * converting TypeBox errors to {@link ObjectValidationError} with normalized paths.\n *\n * **Path Format (By Design):**\n * Each validation library reports error paths differently. TypeBox uses\n * JSON Pointer format (`/field/0/subfield`). The internal `formatPath` function\n * normalizes this to a consistent format:\n * - Object fields: `user.email`\n * - Array indices: `items[0].name`\n * - Root-level: `root`\n *\n * @example Direct usage\n * ```typescript\n * const validator = new TypeBoxObjectValidator();\n * const result = validator.validateObject(Type.String(), 'hello');\n * ```\n *\n * @example With bootstrap (recommended)\n * ```typescript\n * import { createTypeBoxValidator } from '@cosmneo/onion-lasagna/backend/core/validators/typebox';\n * const stringValidator = createTypeBoxValidator<string>(Type.String());\n * ```\n *\n * @module\n */\nimport type { TSchema } from '@sinclair/typebox';\nimport { Value } from '@sinclair/typebox/value';\nimport type {\n BoundValidator,\n ObjectValidatorPort,\n} from '../../global/interfaces/ports/object-validator.port';\nimport { ObjectValidationError } from '../../global/exceptions/object-validation.error';\nimport type { ValidationError } from '../../global/interfaces/types/validation-error.type';\n\n/**\n * Converts TypeBox's JSON Pointer path to dot-notation string.\n *\n * @param path - JSON Pointer path from TypeBox error (e.g., \"/user/email\")\n * @returns Normalized path string (e.g., \"user.email\", \"items[0]\")\n */\nconst formatPath = (path: string): string => {\n if (!path || path === '/') return 'root';\n // Convert JSON pointer format (/field/0/subfield) to dot notation (field[0].subfield)\n return path\n .slice(1) // Remove leading /\n .split('/')\n .map((segment, index) => {\n const num = Number(segment);\n if (!isNaN(num)) return `[${num}]`;\n return index === 0 ? segment : `.${segment}`;\n })\n .join('');\n};\n\n/**\n * Transforms TypeBox errors to framework ValidationError format.\n */\nconst toValidationErrors = (\n errors: Iterable<{ path?: string; message?: string }>,\n): ValidationError[] =>\n [...errors].map((error) => ({\n field: formatPath(error?.path ?? '/'),\n message: error?.message ?? 'Validation failed',\n }));\n\n/**\n * TypeBox adapter implementing the ObjectValidatorPort interface.\n *\n * @implements {ObjectValidatorPort<TSchema>}\n */\nexport class TypeBoxObjectValidator implements ObjectValidatorPort<TSchema> {\n /**\n * Validates a value against a TypeBox schema.\n *\n * @typeParam T - The validated output type\n * @param schema - TypeBox TSchema to validate against\n * @param value - Unknown value to validate\n * @returns The validated and typed value\n * @throws {ObjectValidationError} When validation fails\n */\n public validateObject<T>(schema: TSchema, value: unknown): T;\n public validateObject(schema: TSchema, value: unknown): unknown;\n public validateObject(schema: TSchema, value: unknown): unknown {\n const errors = [...Value.Errors(schema, value)];\n if (errors.length === 0) {\n return Value.Decode(schema, value);\n }\n\n throw new ObjectValidationError({\n message: 'Object validation failed',\n cause: errors,\n validationErrors: toValidationErrors(errors),\n });\n }\n\n /**\n * Creates a bound validator from a TypeBox schema.\n *\n * @typeParam T - The validated output type\n * @param schema - TypeBox TSchema to bind\n * @returns A BoundValidator ready for use with BaseDto or BaseValueObject\n */\n public withSchema<T>(schema: TSchema): BoundValidator<T>;\n public withSchema(schema: TSchema): BoundValidator<unknown>;\n public withSchema(schema: TSchema): BoundValidator<unknown> {\n return {\n validate: (value: unknown) => this.validateObject(schema, value),\n };\n }\n}\n","/**\n * TypeBox validator bootstrap module.\n *\n * Entry point for creating TypeBox-based validators compatible with\n * {@link BaseDto} and {@link BaseValueObject}. Provides both a\n * singleton instance and a factory function for convenience.\n *\n * @see {@link TypeBoxObjectValidator} for path normalization details.\n *\n * @example\n * ```typescript\n * import { createTypeBoxValidator } from '@cosmneo/onion-lasagna/backend/core/validators/typebox';\n * import { Type } from '@sinclair/typebox';\n *\n * const userSchema = Type.Object({\n * name: Type.String({ minLength: 1 }),\n * email: Type.String({ format: 'email' }),\n * });\n *\n * const validator = createTypeBoxValidator<{ name: string; email: string }>(userSchema);\n *\n * // Use with BaseDto\n * class CreateUserDto extends BaseDto<{ name: string; email: string }> {\n * static create(data: unknown) {\n * return new CreateUserDto(data, validator);\n * }\n * }\n * ```\n *\n * @module\n */\nimport type { TSchema } from '@sinclair/typebox';\nimport { TypeBoxObjectValidator } from './object-validator.typebox';\nimport type { BoundValidator } from '../../global/interfaces/ports/object-validator.port';\n\n/**\n * Singleton TypeBox validator instance.\n *\n * Use this directly when you need access to the underlying\n * {@link ObjectValidatorPort} implementation.\n */\nexport const typeBoxObjectValidator = new TypeBoxObjectValidator();\n\n/**\n * Creates a bound validator from a TypeBox schema.\n *\n * @typeParam T - The validated output type (must be specified explicitly)\n * @param schema - A TypeBox TSchema defining the validation rules\n * @returns A {@link BoundValidator} ready for use with BaseDto or BaseValueObject\n *\n * @example\n * ```typescript\n * const emailValidator = createTypeBoxValidator<string>(Type.String({ format: 'email' }));\n * const validated = emailValidator.validate('user@example.com'); // Returns string\n * ```\n */\nexport const createTypeBoxValidator = <T>(schema: TSchema): BoundValidator<T> =>\n typeBoxObjectValidator.withSchema<T>(schema);\n","import type { TSchema } from '@sinclair/typebox';\nimport { BaseDto } from '../../../global/classes/base-dto.class';\nimport { createTypeBoxValidator } from '../bootstrap';\n\nexport class Dto<T> extends BaseDto<T> {\n constructor(schema: TSchema, value: T) {\n super(value, createTypeBoxValidator<T>(schema));\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseAuditByVo } from '../../../../onion-layers/domain/value-objects/base-audit-by.vo';\nimport { SKIP_VALUE_OBJECT_VALIDATION } from '../../../../onion-layers/domain/classes/base-value-object.class';\nimport { createTypeBoxValidator } from '../../bootstrap';\nimport type { BaseUuidV4Vo } from '../../../../onion-layers/domain/value-objects/base-uuid-v4.vo';\nimport { UuidV4Vo } from './uuid-v4.vo';\n\nconst schema = Type.Object({\n createdBy: Type.Optional(Type.String({ format: 'uuid' })),\n updatedBy: Type.Optional(Type.String({ format: 'uuid' })),\n});\n\nexport class AuditByVo extends BaseAuditByVo {\n private constructor(value: { createdBy?: BaseUuidV4Vo; updatedBy?: BaseUuidV4Vo }) {\n super(value, SKIP_VALUE_OBJECT_VALIDATION);\n }\n\n static create({ createdBy, updatedBy }: { createdBy?: string; updatedBy?: string }): AuditByVo {\n const validated = createTypeBoxValidator<{\n createdBy?: string;\n updatedBy?: string;\n }>(schema).validate({\n createdBy,\n updatedBy,\n });\n\n return new AuditByVo({\n createdBy: validated.createdBy ? UuidV4Vo.create(validated.createdBy) : undefined,\n updatedBy: validated.updatedBy ? UuidV4Vo.create(validated.updatedBy) : undefined,\n });\n }\n\n update(updatedBy: BaseUuidV4Vo): AuditByVo {\n return new AuditByVo({ createdBy: this.createdBy, updatedBy });\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseUuidV4Vo } from '../../../../onion-layers/domain/value-objects/base-uuid-v4.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = Type.String({ format: 'uuid' });\n\nexport class UuidV4Vo extends BaseUuidV4Vo {\n private constructor(value: string) {\n super(value, createTypeBoxValidator(schema));\n }\n\n static override create(value: string): UuidV4Vo {\n return new UuidV4Vo(value);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseAuditInfoVo } from '../../../../onion-layers/domain/value-objects/base-audit-info.vo';\nimport { SKIP_VALUE_OBJECT_VALIDATION } from '../../../../onion-layers/domain/classes/base-value-object.class';\nimport { createTypeBoxValidator } from '../../bootstrap';\nimport type { BaseAuditByVo } from '../../../../onion-layers/domain/value-objects/base-audit-by.vo';\nimport type { BaseAuditOnVo } from '../../../../onion-layers/domain/value-objects/base-audit-on.vo';\nimport type { BaseUuidV4Vo } from '../../../../onion-layers/domain/value-objects/base-uuid-v4.vo';\nimport { AuditByVo } from './audit-by.vo';\nimport { AuditOnVo } from './audit-on.vo';\n\nconst schema = Type.Object({\n createdBy: Type.Optional(Type.String({ format: 'uuid' })),\n createdAt: Type.Optional(Type.Date()),\n updatedBy: Type.Optional(Type.String({ format: 'uuid' })),\n updatedAt: Type.Optional(Type.Date()),\n});\n\nexport class AuditInfoVo extends BaseAuditInfoVo {\n private constructor(value: { by: BaseAuditByVo; on: BaseAuditOnVo }) {\n super(value, SKIP_VALUE_OBJECT_VALIDATION);\n }\n\n static create({\n createdBy,\n createdAt,\n updatedBy,\n updatedAt,\n }: {\n createdBy?: string;\n createdAt?: Date;\n updatedBy?: string;\n updatedAt?: Date;\n }): AuditInfoVo {\n const validated = createTypeBoxValidator<{\n createdBy?: string;\n createdAt?: Date;\n updatedBy?: string;\n updatedAt?: Date;\n }>(schema).validate({\n createdBy,\n createdAt,\n updatedBy,\n updatedAt,\n });\n\n const by = AuditByVo.create({\n createdBy: validated.createdBy,\n updatedBy: validated.updatedBy,\n });\n const on = AuditOnVo.create({\n createdAt: validated.createdAt,\n updatedAt: validated.updatedAt,\n });\n\n return new AuditInfoVo({ by, on });\n }\n\n static createNew(createdBy?: string): AuditInfoVo {\n const by = AuditByVo.create({ createdBy });\n const on = AuditOnVo.create({});\n return new AuditInfoVo({ by, on });\n }\n\n update(updatedBy: BaseUuidV4Vo): AuditInfoVo {\n const by = this.value.by.update(updatedBy);\n const on = this.value.on.update();\n return new AuditInfoVo({ by, on });\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseAuditOnVo } from '../../../../onion-layers/domain/value-objects/base-audit-on.vo';\nimport { SKIP_VALUE_OBJECT_VALIDATION } from '../../../../onion-layers/domain/classes/base-value-object.class';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = Type.Object({\n createdAt: Type.Optional(Type.Date()),\n updatedAt: Type.Optional(Type.Date()),\n});\n\nexport class AuditOnVo extends BaseAuditOnVo {\n private constructor(value: { createdAt: Date; updatedAt: Date }) {\n super(value, SKIP_VALUE_OBJECT_VALIDATION);\n }\n\n static create({ createdAt, updatedAt }: { createdAt?: Date; updatedAt?: Date }): AuditOnVo {\n const validated = createTypeBoxValidator<{\n createdAt?: Date;\n updatedAt?: Date;\n }>(schema).validate({\n createdAt,\n updatedAt,\n });\n\n const finalCreatedAt = validated.createdAt ?? new Date();\n const finalUpdatedAt = validated.updatedAt ?? finalCreatedAt;\n\n return new AuditOnVo({\n createdAt: new Date(finalCreatedAt),\n updatedAt: new Date(finalUpdatedAt),\n });\n }\n\n update(): AuditOnVo {\n return new AuditOnVo({ createdAt: this.createdAt, updatedAt: new Date() });\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseEmailVo } from '../../../../onion-layers/domain/value-objects/base-email.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = Type.String({ format: 'email' });\n\nexport class EmailVo extends BaseEmailVo {\n private constructor(value: string) {\n super(value, createTypeBoxValidator(schema));\n }\n\n static create(value: string): EmailVo {\n return new EmailVo(value);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseLongTextVo } from '../../../../onion-layers/domain/value-objects/base-long-text.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = (maxLen: number) => Type.String({ minLength: 1, maxLength: maxLen });\n\nexport class LongTextVo extends BaseLongTextVo {\n private constructor(value: string, maxLen = 2000) {\n super(value, createTypeBoxValidator(schema(maxLen)));\n }\n\n static create(value: string, maxLen = 2000): LongTextVo {\n return new LongTextVo(value, maxLen);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseMediumTextVo } from '../../../../onion-layers/domain/value-objects/base-medium-text.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = (maxLen: number) => Type.String({ minLength: 1, maxLength: maxLen });\n\nexport class MediumTextVo extends BaseMediumTextVo {\n private constructor(value: string, maxLen = 500) {\n super(value, createTypeBoxValidator(schema(maxLen)));\n }\n\n static create(value: string, maxLen = 500): MediumTextVo {\n return new MediumTextVo(value, maxLen);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BasePaginationVo } from '../../../../onion-layers/domain/value-objects/base-pagination.vo';\nimport { SKIP_VALUE_OBJECT_VALIDATION } from '../../../../onion-layers/domain/classes/base-value-object.class';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = (maxPageSize: number) =>\n Type.Object({\n page: Type.Integer({ minimum: 1 }),\n pageSize: Type.Integer({ minimum: 1, maximum: maxPageSize }),\n });\n\nexport class PaginationVo extends BasePaginationVo {\n private constructor(value: { page: number; pageSize: number }) {\n super(value, SKIP_VALUE_OBJECT_VALIDATION);\n }\n\n static create({\n page,\n pageSize,\n maxPageSize = 100,\n }: {\n page: number;\n pageSize: number;\n maxPageSize?: number;\n }): PaginationVo {\n const validated = createTypeBoxValidator<{ page: number; pageSize: number }>(\n schema(maxPageSize),\n ).validate({\n page,\n pageSize,\n });\n return new PaginationVo(validated);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseShortTextVo } from '../../../../onion-layers/domain/value-objects/base-short-text.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = (maxLen: number) => Type.String({ minLength: 1, maxLength: maxLen });\n\nexport class ShortTextVo extends BaseShortTextVo {\n private constructor(value: string, maxLen = 100) {\n super(value, createTypeBoxValidator(schema(maxLen)));\n }\n\n static create(value: string, maxLen = 100): ShortTextVo {\n return new ShortTextVo(value, maxLen);\n }\n}\n","import { Type } from '@sinclair/typebox';\nimport { BaseUuidV7Vo } from '../../../../onion-layers/domain/value-objects/base-uuid-v7.vo';\nimport { createTypeBoxValidator } from '../../bootstrap';\n\nconst schema = Type.String({ format: 'uuid' });\n\nexport class UuidV7Vo extends BaseUuidV7Vo {\n private constructor(value: string) {\n super(value, createTypeBoxValidator(schema));\n }\n\n static override create(value: string): UuidV7Vo {\n return new UuidV7Vo(value);\n }\n}\n"],"mappings":"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","names":["schema","schema","schema","Type","schema","Type","Type","Type","schema","Type","schema","Type","Type","schema","Type","Type","schema","Type","Type","schema","Type","Type","schema","Type","Type","schema","Type","Type","schema","Type"]}
|