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