exisjs 0.7.3 → 0.7.5

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 (162) hide show
  1. package/dist/cli/commands/build.d.ts +4 -2
  2. package/dist/cli/commands/build.d.ts.map +1 -1
  3. package/dist/cli/commands/build.js +80 -22
  4. package/dist/cli/commands/build.js.map +1 -1
  5. package/dist/cli/commands/dev.d.ts.map +1 -1
  6. package/dist/cli/commands/dev.js +121 -27
  7. package/dist/cli/commands/dev.js.map +1 -1
  8. package/dist/cli/commands/doctor.d.ts.map +1 -1
  9. package/dist/cli/commands/doctor.js +5 -2
  10. package/dist/cli/commands/doctor.js.map +1 -1
  11. package/dist/cli/commands/generate.d.ts +5 -0
  12. package/dist/cli/commands/generate.d.ts.map +1 -1
  13. package/dist/cli/commands/generate.js +252 -14
  14. package/dist/cli/commands/generate.js.map +1 -1
  15. package/dist/cli/commands/start.d.ts.map +1 -1
  16. package/dist/cli/commands/start.js +17 -5
  17. package/dist/cli/commands/start.js.map +1 -1
  18. package/dist/cli/index.js +16 -5
  19. package/dist/cli/index.js.map +1 -1
  20. package/dist/cli/manifest.d.ts.map +1 -1
  21. package/dist/cli/manifest.js +12 -4
  22. package/dist/cli/manifest.js.map +1 -1
  23. package/dist/config/config.js +1 -1
  24. package/dist/config/config.js.map +1 -1
  25. package/dist/config/env.d.ts.map +1 -1
  26. package/dist/config/env.js +8 -0
  27. package/dist/config/env.js.map +1 -1
  28. package/dist/database/index.d.ts +4 -0
  29. package/dist/database/index.d.ts.map +1 -0
  30. package/dist/database/index.js +20 -0
  31. package/dist/database/index.js.map +1 -0
  32. package/dist/database/lifecycle.d.ts +52 -0
  33. package/dist/database/lifecycle.d.ts.map +1 -0
  34. package/dist/database/lifecycle.js +122 -0
  35. package/dist/database/lifecycle.js.map +1 -0
  36. package/dist/database/mongoose.d.ts +47 -0
  37. package/dist/database/mongoose.d.ts.map +1 -0
  38. package/dist/database/mongoose.js +44 -0
  39. package/dist/database/mongoose.js.map +1 -0
  40. package/dist/database/transaction.d.ts +39 -0
  41. package/dist/database/transaction.d.ts.map +1 -0
  42. package/dist/database/transaction.js +99 -0
  43. package/dist/database/transaction.js.map +1 -0
  44. package/dist/decorators/constants.d.ts +2 -0
  45. package/dist/decorators/constants.d.ts.map +1 -1
  46. package/dist/decorators/index.d.ts +1 -0
  47. package/dist/decorators/index.d.ts.map +1 -1
  48. package/dist/decorators/index.js +1 -0
  49. package/dist/decorators/index.js.map +1 -1
  50. package/dist/decorators/middleware.d.ts +10 -0
  51. package/dist/decorators/middleware.d.ts.map +1 -1
  52. package/dist/decorators/middleware.js +27 -0
  53. package/dist/decorators/middleware.js.map +1 -1
  54. package/dist/decorators/upload.d.ts +37 -0
  55. package/dist/decorators/upload.d.ts.map +1 -0
  56. package/dist/decorators/upload.js +78 -0
  57. package/dist/decorators/upload.js.map +1 -0
  58. package/dist/docs/content/boundaries.mdx +33 -3
  59. package/dist/docs/content/cli/commands.mdx +4 -3
  60. package/dist/docs/content/config.mdx +27 -1
  61. package/dist/docs/content/errors.mdx +81 -11
  62. package/dist/docs/content/middleware.mdx +138 -0
  63. package/dist/docs/content/providers.mdx +89 -0
  64. package/dist/docs/content/requests.mdx +191 -69
  65. package/dist/docs/content/responses.mdx +99 -6
  66. package/dist/docs/content/routing.mdx +117 -0
  67. package/dist/docs/content/security.mdx +17 -4
  68. package/dist/docs/content/structure.mdx +91 -12
  69. package/dist/docs/content/validation.mdx +131 -10
  70. package/dist/docs/reference/database.mdx +152 -0
  71. package/dist/docs/reference/decorators.mdx +4 -0
  72. package/dist/docs/reference/error.mdx +3 -1
  73. package/dist/docs/reference/middleware.mdx +84 -2
  74. package/dist/docs/reference/router.mdx +4 -2
  75. package/dist/docs/reference/validator.mdx +43 -5
  76. package/dist/error/errors.d.ts +10 -0
  77. package/dist/error/errors.d.ts.map +1 -1
  78. package/dist/error/errors.js +156 -25
  79. package/dist/error/errors.js.map +1 -1
  80. package/dist/error/index.d.ts +1 -1
  81. package/dist/error/index.d.ts.map +1 -1
  82. package/dist/error/index.js +3 -1
  83. package/dist/error/index.js.map +1 -1
  84. package/dist/lib/start-server.js +16 -0
  85. package/dist/lib/start-server.js.map +1 -1
  86. package/dist/middleware/index.d.ts +2 -0
  87. package/dist/middleware/index.d.ts.map +1 -0
  88. package/dist/middleware/index.js +18 -0
  89. package/dist/middleware/index.js.map +1 -0
  90. package/dist/middleware/middleware.d.ts +13 -0
  91. package/dist/middleware/middleware.d.ts.map +1 -1
  92. package/dist/middleware/middleware.js +22 -2
  93. package/dist/middleware/middleware.js.map +1 -1
  94. package/dist/middleware/rate-limit.d.ts.map +1 -1
  95. package/dist/middleware/rate-limit.js +9 -0
  96. package/dist/middleware/rate-limit.js.map +1 -1
  97. package/dist/middleware/security.d.ts +13 -3
  98. package/dist/middleware/security.d.ts.map +1 -1
  99. package/dist/middleware/security.js +98 -14
  100. package/dist/middleware/security.js.map +1 -1
  101. package/dist/middleware/upload.d.ts +82 -0
  102. package/dist/middleware/upload.d.ts.map +1 -0
  103. package/dist/middleware/upload.js +387 -0
  104. package/dist/middleware/upload.js.map +1 -0
  105. package/dist/router/boundary.d.ts +12 -0
  106. package/dist/router/boundary.d.ts.map +1 -1
  107. package/dist/router/boundary.js.map +1 -1
  108. package/dist/router/index.d.ts +3 -1
  109. package/dist/router/index.d.ts.map +1 -1
  110. package/dist/router/index.js +6 -1
  111. package/dist/router/index.js.map +1 -1
  112. package/dist/router/route-builder.d.ts +11 -2
  113. package/dist/router/route-builder.d.ts.map +1 -1
  114. package/dist/router/route-builder.js.map +1 -1
  115. package/dist/router/route-scanner.d.ts +1 -0
  116. package/dist/router/route-scanner.d.ts.map +1 -1
  117. package/dist/router/route-scanner.js +219 -8
  118. package/dist/router/route-scanner.js.map +1 -1
  119. package/dist/router/router.d.ts.map +1 -1
  120. package/dist/router/router.js +58 -2
  121. package/dist/router/router.js.map +1 -1
  122. package/dist/router/types.d.ts +33 -1
  123. package/dist/router/types.d.ts.map +1 -1
  124. package/dist/sanitize/index.d.ts +6 -6
  125. package/dist/sanitize/index.d.ts.map +1 -1
  126. package/dist/sanitize/index.js +8 -8
  127. package/dist/sanitize/index.js.map +1 -1
  128. package/dist/server/app.d.ts +1 -0
  129. package/dist/server/app.d.ts.map +1 -1
  130. package/dist/server/app.js +4 -0
  131. package/dist/server/app.js.map +1 -1
  132. package/dist/server/engines/node-engine.d.ts.map +1 -1
  133. package/dist/server/engines/node-engine.js +1 -0
  134. package/dist/server/engines/node-engine.js.map +1 -1
  135. package/dist/server/request-handler.d.ts.map +1 -1
  136. package/dist/server/request-handler.js +15 -1
  137. package/dist/server/request-handler.js.map +1 -1
  138. package/dist/server/request.d.ts +11 -0
  139. package/dist/server/request.d.ts.map +1 -1
  140. package/dist/server/request.js +125 -36
  141. package/dist/server/request.js.map +1 -1
  142. package/dist/server/response.d.ts +3 -1
  143. package/dist/server/response.d.ts.map +1 -1
  144. package/dist/server/response.js +98 -10
  145. package/dist/server/response.js.map +1 -1
  146. package/dist/testing/mocks.d.ts +3 -1
  147. package/dist/testing/mocks.d.ts.map +1 -1
  148. package/dist/testing/mocks.js +7 -1
  149. package/dist/testing/mocks.js.map +1 -1
  150. package/dist/validator/index.d.ts +1 -1
  151. package/dist/validator/index.d.ts.map +1 -1
  152. package/dist/validator/index.js +3 -1
  153. package/dist/validator/index.js.map +1 -1
  154. package/dist/validator/tex-types.d.ts +5 -1
  155. package/dist/validator/tex-types.d.ts.map +1 -1
  156. package/dist/validator/tex-types.js +4 -0
  157. package/dist/validator/tex-types.js.map +1 -1
  158. package/dist/validator/tex.d.ts +45 -7
  159. package/dist/validator/tex.d.ts.map +1 -1
  160. package/dist/validator/tex.js +341 -20
  161. package/dist/validator/tex.js.map +1 -1
  162. package/package.json +12 -8
@@ -1,6 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tex = exports.TexEngine = exports.ValidatorError = exports.TexBuilder = void 0;
4
+ exports.paginate = paginate;
5
+ exports.getPaginationSkip = getPaginationSkip;
4
6
  const rs_1 = require("@exisjs/rs");
5
7
  const tex_types_1 = require("./tex-types");
6
8
  class TexBuilder {
@@ -8,6 +10,10 @@ class TexBuilder {
8
10
  let base = 'string';
9
11
  if (opts?.optional)
10
12
  base += '?';
13
+ if (opts?.nullable)
14
+ base += ' | nullable';
15
+ if (opts?.nullish)
16
+ base += ' | nullish';
11
17
  if (opts?.min !== undefined)
12
18
  base += ` | min:${opts.min}`;
13
19
  if (opts?.max !== undefined)
@@ -38,18 +44,28 @@ class TexBuilder {
38
44
  let base = 'number';
39
45
  if (opts?.optional)
40
46
  base += '?';
47
+ if (opts?.nullable)
48
+ base += ' | nullable';
49
+ if (opts?.nullish)
50
+ base += ' | nullish';
41
51
  if (opts?.coerce)
42
52
  base += ' | coerce';
43
53
  if (opts?.min !== undefined)
44
54
  base += ` | min:${opts.min}`;
45
55
  if (opts?.max !== undefined)
46
56
  base += ` | max:${opts.max}`;
57
+ if (opts?.default !== undefined)
58
+ base += ` | default:${opts.default}`;
47
59
  return new tex_types_1.TexType(base);
48
60
  }
49
61
  boolean(opts) {
50
62
  let base = 'boolean';
51
63
  if (opts?.optional)
52
64
  base += '?';
65
+ if (opts?.nullable)
66
+ base += ' | nullable';
67
+ if (opts?.nullish)
68
+ base += ' | nullish';
53
69
  if (opts?.coerce)
54
70
  base += ' | coerce';
55
71
  return new tex_types_1.TexType(base);
@@ -58,6 +74,10 @@ class TexBuilder {
58
74
  let base = 'email';
59
75
  if (opts?.optional)
60
76
  base += '?';
77
+ if (opts?.nullable)
78
+ base += ' | nullable';
79
+ if (opts?.nullish)
80
+ base += ' | nullish';
61
81
  if (opts?.trim)
62
82
  base += ' | trim';
63
83
  if (opts?.toLowerCase)
@@ -70,6 +90,10 @@ class TexBuilder {
70
90
  let base = 'uuid';
71
91
  if (opts?.optional)
72
92
  base += '?';
93
+ if (opts?.nullable)
94
+ base += ' | nullable';
95
+ if (opts?.nullish)
96
+ base += ' | nullish';
73
97
  if (opts?.version)
74
98
  base += ` | version:${opts.version}`;
75
99
  return new tex_types_1.TexType(base);
@@ -78,12 +102,20 @@ class TexBuilder {
78
102
  let base = 'cuid';
79
103
  if (opts?.optional)
80
104
  base += '?';
105
+ if (opts?.nullable)
106
+ base += ' | nullable';
107
+ if (opts?.nullish)
108
+ base += ' | nullish';
81
109
  return new tex_types_1.TexType(base);
82
110
  }
83
111
  creditCard(opts) {
84
112
  let base = 'creditcard';
85
113
  if (opts?.optional)
86
114
  base += '?';
115
+ if (opts?.nullable)
116
+ base += ' | nullable';
117
+ if (opts?.nullish)
118
+ base += ' | nullish';
87
119
  if (opts?.mask)
88
120
  base += ' | mask';
89
121
  return new tex_types_1.TexType(base);
@@ -92,6 +124,10 @@ class TexBuilder {
92
124
  let base = 'password';
93
125
  if (opts?.optional)
94
126
  base += '?';
127
+ if (opts?.nullable)
128
+ base += ' | nullable';
129
+ if (opts?.nullish)
130
+ base += ' | nullish';
95
131
  if (opts?.min !== undefined)
96
132
  base += ` | min:${opts.min}`;
97
133
  if (opts?.max !== undefined)
@@ -107,22 +143,45 @@ class TexBuilder {
107
143
  return new tex_types_1.TexType(base);
108
144
  }
109
145
  array(schema, opts) {
110
- const itemSchema = schema instanceof tex_types_1.TexType ? schema._raw : schema;
146
+ let resolvedItem = schema;
147
+ if (typeof schema === 'object' &&
148
+ schema !== null &&
149
+ !(schema instanceof tex_types_1.TexType) &&
150
+ !(schema instanceof TexEngine)) {
151
+ resolvedItem = this.object(schema);
152
+ }
153
+ const itemSchema = resolvedItem instanceof TexEngine
154
+ ? `object<${JSON.stringify(resolvedItem.getCompiledSchema())}>`
155
+ : resolvedItem instanceof tex_types_1.TexType
156
+ ? resolvedItem._raw
157
+ : resolvedItem;
111
158
  let base = `array<${itemSchema}>`;
112
159
  if (opts?.optional)
113
160
  base += '?';
161
+ if (opts?.nullable)
162
+ base += ' | nullable';
163
+ if (opts?.nullish)
164
+ base += ' | nullish';
114
165
  if (opts?.min !== undefined)
115
166
  base += ` | min:${opts.min}`;
116
167
  if (opts?.max !== undefined)
117
168
  base += ` | max:${opts.max}`;
118
169
  if (opts?.dedupe)
119
170
  base += ' | dedupe';
120
- return new tex_types_1.TexType(base);
171
+ if (opts?.coerce)
172
+ base += ' | coerce';
173
+ const res = new tex_types_1.TexType(base);
174
+ res._item = resolvedItem;
175
+ return res;
121
176
  }
122
177
  enum(values, opts) {
123
178
  let base = `enum:${values.join(',')}`;
124
179
  if (opts?.optional)
125
180
  base += '?';
181
+ if (opts?.nullable)
182
+ base += ' | nullable';
183
+ if (opts?.nullish)
184
+ base += ' | nullish';
126
185
  if (opts?.default)
127
186
  base += ` | default:${opts.default}`;
128
187
  return new tex_types_1.TexType(base);
@@ -131,6 +190,10 @@ class TexBuilder {
131
190
  let base = `literal:${value}`;
132
191
  if (opts?.optional)
133
192
  base += '?';
193
+ if (opts?.nullable)
194
+ base += ' | nullable';
195
+ if (opts?.nullish)
196
+ base += ' | nullish';
134
197
  return new tex_types_1.TexType(base);
135
198
  }
136
199
  union(schemas, opts) {
@@ -138,12 +201,22 @@ class TexBuilder {
138
201
  let base = items.join(' || ');
139
202
  if (opts?.optional)
140
203
  base = `(${base})?`;
204
+ if (opts?.nullable)
205
+ base += ' | nullable';
206
+ if (opts?.nullish)
207
+ base += ' | nullish';
141
208
  return new tex_types_1.TexType(base);
142
209
  }
143
210
  date(opts) {
144
211
  let base = 'date';
145
212
  if (opts?.optional)
146
213
  base += '?';
214
+ if (opts?.nullable)
215
+ base += ' | nullable';
216
+ if (opts?.nullish)
217
+ base += ' | nullish';
218
+ if (opts?.coerce)
219
+ base += ' | coerce';
147
220
  if (opts?.minDate)
148
221
  base += ` | minDate:${opts.minDate}`;
149
222
  if (opts?.maxDate)
@@ -155,18 +228,30 @@ class TexBuilder {
155
228
  let base = `record<${itemSchema}>`;
156
229
  if (opts?.optional)
157
230
  base += '?';
231
+ if (opts?.nullable)
232
+ base += ' | nullable';
233
+ if (opts?.nullish)
234
+ base += ' | nullish';
158
235
  return new tex_types_1.TexType(base);
159
236
  }
160
237
  any(opts) {
161
238
  let base = 'any';
162
239
  if (opts?.optional)
163
240
  base += '?';
241
+ if (opts?.nullable)
242
+ base += ' | nullable';
243
+ if (opts?.nullish)
244
+ base += ' | nullish';
164
245
  return new tex_types_1.TexType(base);
165
246
  }
166
247
  file(opts) {
167
248
  let base = 'file';
168
249
  if (opts?.optional)
169
250
  base += '?';
251
+ if (opts?.nullable)
252
+ base += ' | nullable';
253
+ if (opts?.nullish)
254
+ base += ' | nullish';
170
255
  if (opts?.maxSize)
171
256
  base += ` | maxSize:${opts.maxSize}`;
172
257
  if (opts?.mimeTypes)
@@ -189,6 +274,22 @@ class TexBuilder {
189
274
  }
190
275
  return new TexEngine(compiledSchema, schema, opts?.strict);
191
276
  }
277
+ pagination(options) {
278
+ const defaultLimit = options?.defaultLimit ?? 10;
279
+ const maxLimit = options?.maxLimit ?? 100;
280
+ return this.object({
281
+ page: this.number({ optional: true, coerce: true, min: 1, default: 1 }),
282
+ limit: this.number({
283
+ optional: true,
284
+ coerce: true,
285
+ min: 1,
286
+ max: maxLimit,
287
+ default: defaultLimit,
288
+ }),
289
+ sort: this.string({ optional: true, trim: true }),
290
+ order: this.enum(['asc', 'desc'], { optional: true }),
291
+ });
292
+ }
192
293
  }
193
294
  exports.TexBuilder = TexBuilder;
194
295
  class ValidatorError extends Error {
@@ -261,12 +362,143 @@ class TexEngine {
261
362
  // 1. Run pre-validation sanitizers on the raw payload (if it's an object)
262
363
  if (data && typeof data === 'object') {
263
364
  for (const [key, val] of Object.entries(this.rawSchema)) {
264
- if (data[key] !== undefined &&
265
- data[key] !== null &&
266
- val instanceof tex_types_1.TexType &&
267
- val.sanitizers.length > 0) {
268
- for (const s of val.sanitizers) {
269
- data[key] = s(data[key]);
365
+ if (typeof data[key] === 'string' && data[key].trim() === '') {
366
+ const raw = val instanceof tex_types_1.TexType ? val._raw : String(val);
367
+ if (raw.includes('optional') ||
368
+ raw.includes('nullable') ||
369
+ raw.includes('nullish') ||
370
+ raw.includes('?') ||
371
+ val?._isOptional) {
372
+ if (raw.includes('nullable') &&
373
+ !raw.includes('optional') &&
374
+ !raw.includes('nullish')) {
375
+ data[key] = null;
376
+ }
377
+ else {
378
+ delete data[key];
379
+ }
380
+ }
381
+ }
382
+ if (data[key] !== undefined && data[key] !== null) {
383
+ if (val instanceof tex_types_1.TexType && val._raw.startsWith('date')) {
384
+ if (val._raw.includes('coerce')) {
385
+ if (typeof data[key] === 'string' ||
386
+ typeof data[key] === 'number') {
387
+ const d = new Date(data[key]);
388
+ if (isNaN(d.getTime())) {
389
+ throw new ValidatorError([
390
+ { path: key, message: 'Must be a valid date' },
391
+ ]);
392
+ }
393
+ data[key] = d;
394
+ }
395
+ }
396
+ if (!(data[key] instanceof Date) &&
397
+ typeof data[key] !== 'string' &&
398
+ typeof data[key] !== 'number') {
399
+ throw new ValidatorError([
400
+ { path: key, message: 'Must be a valid date' },
401
+ ]);
402
+ }
403
+ if (data[key] instanceof Date && isNaN(data[key].getTime())) {
404
+ throw new ValidatorError([
405
+ { path: key, message: 'Must be a valid date' },
406
+ ]);
407
+ }
408
+ if (val._raw.includes('minDate:')) {
409
+ const minStr = val._raw.match(/minDate:([^\s|]+)/)?.[1];
410
+ if (minStr &&
411
+ new Date(data[key]).getTime() < new Date(minStr).getTime()) {
412
+ throw new ValidatorError([
413
+ { path: key, message: `Date must be after ${minStr}` },
414
+ ]);
415
+ }
416
+ }
417
+ if (val._raw.includes('maxDate:')) {
418
+ const maxStr = val._raw.match(/maxDate:([^\s|]+)/)?.[1];
419
+ if (maxStr &&
420
+ new Date(data[key]).getTime() > new Date(maxStr).getTime()) {
421
+ throw new ValidatorError([
422
+ { path: key, message: `Date must be before ${maxStr}` },
423
+ ]);
424
+ }
425
+ }
426
+ }
427
+ if (val instanceof tex_types_1.TexType &&
428
+ val._raw.startsWith('array<') &&
429
+ val._raw.includes('coerce')) {
430
+ if (!Array.isArray(data[key])) {
431
+ if (typeof data[key] === 'string') {
432
+ const parts = data[key].includes(',')
433
+ ? data[key].split(',').map((s) => s.trim())
434
+ : [data[key]];
435
+ if (val._raw.startsWith('array<number')) {
436
+ data[key] = parts.map((p) => {
437
+ const n = Number(p);
438
+ return isNaN(n) ? p : n;
439
+ });
440
+ }
441
+ else if (val._raw.startsWith('array<boolean')) {
442
+ data[key] = parts.map((p) => {
443
+ if (p.toLowerCase() === 'true')
444
+ return true;
445
+ if (p.toLowerCase() === 'false')
446
+ return false;
447
+ return p;
448
+ });
449
+ }
450
+ else {
451
+ data[key] = parts;
452
+ }
453
+ }
454
+ else {
455
+ data[key] = [data[key]];
456
+ }
457
+ }
458
+ else {
459
+ if (val._raw.startsWith('array<number')) {
460
+ data[key] = data[key].map((item) => {
461
+ if (typeof item === 'string') {
462
+ const n = Number(item);
463
+ return isNaN(n) ? item : n;
464
+ }
465
+ return item;
466
+ });
467
+ }
468
+ else if (val._raw.startsWith('array<boolean')) {
469
+ data[key] = data[key].map((item) => {
470
+ if (typeof item === 'string') {
471
+ if (item.toLowerCase() === 'true')
472
+ return true;
473
+ if (item.toLowerCase() === 'false')
474
+ return false;
475
+ }
476
+ return item;
477
+ });
478
+ }
479
+ }
480
+ }
481
+ if (val instanceof tex_types_1.TexType && val.sanitizers.length > 0) {
482
+ for (const s of val.sanitizers) {
483
+ if (data[key] === undefined || data[key] === null)
484
+ break;
485
+ data[key] = s(data[key]);
486
+ }
487
+ }
488
+ const itemSchema = val?._item;
489
+ if (itemSchema && Array.isArray(data[key])) {
490
+ if (itemSchema instanceof tex_types_1.TexType &&
491
+ itemSchema.sanitizers.length > 0) {
492
+ for (let i = 0; i < data[key].length; i++) {
493
+ if (data[key][i] !== undefined && data[key][i] !== null) {
494
+ for (const s of itemSchema.sanitizers) {
495
+ if (data[key][i] === undefined || data[key][i] === null)
496
+ break;
497
+ data[key][i] = s(data[key][i]);
498
+ }
499
+ }
500
+ }
501
+ }
270
502
  }
271
503
  }
272
504
  }
@@ -277,6 +509,25 @@ class TexEngine {
277
509
  parsedData = this.validator.parse(data);
278
510
  }
279
511
  catch (err) {
512
+ if (data === process.env &&
513
+ (process.env.__EXIS_SKIP_ENV_CHECK === 'true' ||
514
+ process.env.EXIS_SKIP_ENV_CHECK === 'true')) {
515
+ const mock = { ...data };
516
+ for (const [key, val] of Object.entries(this.rawSchema)) {
517
+ if (mock[key] === undefined) {
518
+ const raw = val instanceof tex_types_1.TexType ? val._raw : String(val);
519
+ if (raw.includes('number'))
520
+ mock[key] = 0;
521
+ else if (raw.includes('boolean'))
522
+ mock[key] = false;
523
+ else if (raw.includes('array'))
524
+ mock[key] = [];
525
+ else
526
+ mock[key] = `mock_${key}`;
527
+ }
528
+ }
529
+ return mock;
530
+ }
280
531
  let path = 'root';
281
532
  let message = err.message || 'Validation failed';
282
533
  if (message.startsWith('Missing required field: ')) {
@@ -299,19 +550,55 @@ class TexEngine {
299
550
  }
300
551
  throw new ValidatorError([{ path, message }]);
301
552
  }
553
+ // Preserve coerced Date objects
554
+ if (parsedData && typeof parsedData === 'object') {
555
+ for (const [key, val] of Object.entries(this.rawSchema)) {
556
+ if (val instanceof tex_types_1.TexType &&
557
+ val._raw.startsWith('date') &&
558
+ val._raw.includes('coerce') &&
559
+ data[key] instanceof Date) {
560
+ parsedData[key] = data[key];
561
+ }
562
+ }
563
+ }
302
564
  // 3. Post-validation synchronous refinements
303
565
  const errors = [];
304
566
  if (parsedData && typeof parsedData === 'object') {
305
567
  for (const [key, val] of Object.entries(this.rawSchema)) {
306
- if (parsedData[key] !== undefined &&
307
- val instanceof tex_types_1.TexType &&
308
- val.refinements.length > 0) {
309
- for (const r of val.refinements) {
310
- if (!r.async && !r.fn(parsedData[key])) {
311
- const msg = typeof r.message === 'function'
312
- ? r.message(parsedData[key])
313
- : r.message || 'Invalid value';
314
- errors.push({ path: key, message: msg });
568
+ if (parsedData[key] !== undefined) {
569
+ const isNullableField = val instanceof tex_types_1.TexType &&
570
+ (val._raw.includes('nullable') || val._raw.includes('nullish'));
571
+ if (parsedData[key] === null && isNullableField) {
572
+ continue;
573
+ }
574
+ if (val instanceof tex_types_1.TexType && val.refinements.length > 0) {
575
+ for (const r of val.refinements) {
576
+ if (!r.async && !r.fn(parsedData[key])) {
577
+ const msg = typeof r.message === 'function'
578
+ ? r.message(parsedData[key])
579
+ : r.message || 'Invalid value';
580
+ errors.push({ path: key, message: msg });
581
+ }
582
+ }
583
+ }
584
+ const itemSchema = val?._item;
585
+ if (itemSchema && Array.isArray(parsedData[key])) {
586
+ if (itemSchema instanceof tex_types_1.TexType &&
587
+ itemSchema.refinements.length > 0) {
588
+ const isItemNullable = itemSchema._raw.includes('nullable') ||
589
+ itemSchema._raw.includes('nullish');
590
+ for (let i = 0; i < parsedData[key].length; i++) {
591
+ if (parsedData[key][i] === null && isItemNullable)
592
+ continue;
593
+ for (const r of itemSchema.refinements) {
594
+ if (!r.async && !r.fn(parsedData[key][i])) {
595
+ const msg = typeof r.message === 'function'
596
+ ? r.message(parsedData[key][i])
597
+ : r.message || 'Invalid value';
598
+ errors.push({ path: `${key}[${i}]`, message: msg });
599
+ }
600
+ }
601
+ }
315
602
  }
316
603
  }
317
604
  }
@@ -326,13 +613,18 @@ class TexEngine {
326
613
  const errors = [];
327
614
  if (parsed && typeof parsed === 'object') {
328
615
  await Promise.all(Object.entries(this.rawSchema).map(async ([key, val]) => {
329
- if (parsed[key] !== undefined &&
616
+ const valData = parsed[key];
617
+ const isNullableField = val instanceof tex_types_1.TexType &&
618
+ (val._raw.includes('nullable') || val._raw.includes('nullish'));
619
+ if (valData === null && isNullableField)
620
+ return;
621
+ if (valData !== undefined &&
330
622
  val instanceof tex_types_1.TexType &&
331
623
  val.refinements.length > 0) {
332
624
  for (const r of val.refinements) {
333
- if (r.async && !(await r.fn(parsed[key]))) {
625
+ if (r.async && !(await r.fn(valData))) {
334
626
  const msg = typeof r.message === 'function'
335
- ? r.message(parsed[key])
627
+ ? r.message(valData)
336
628
  : r.message || 'Invalid value';
337
629
  errors.push({ path: key, message: msg });
338
630
  }
@@ -412,4 +704,33 @@ class TexEngine {
412
704
  }
413
705
  exports.TexEngine = TexEngine;
414
706
  exports.tex = new TexBuilder();
707
+ function paginate(data, total, options = {}) {
708
+ const page = Math.max(1, Number(options.page) || 1);
709
+ const limit = Math.max(1, Number(options.limit) || 20);
710
+ const totalPages = Math.ceil(total / limit);
711
+ const hasNext = page < totalPages;
712
+ const hasPrev = page > 1;
713
+ return {
714
+ data,
715
+ pagination: {
716
+ page,
717
+ limit,
718
+ total,
719
+ totalPages,
720
+ hasNextPage: hasNext,
721
+ hasPrevPage: hasPrev,
722
+ hasNext,
723
+ hasPrev,
724
+ },
725
+ };
726
+ }
727
+ function getPaginationSkip(query = {}) {
728
+ const page = Math.max(1, Number(query.page) || 1);
729
+ const limit = Math.max(1, Number(query.limit) || 20);
730
+ return {
731
+ skip: (page - 1) * limit,
732
+ limit,
733
+ page,
734
+ };
735
+ }
415
736
  //# sourceMappingURL=tex.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"tex.js","sourceRoot":"","sources":["../../src/validator/tex.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tex.js","sourceRoot":"","sources":["../../src/validator/tex.ts"],"names":[],"mappings":";;;AAg2BA,4BAwBC;AAED,8CAcC;AAx4BD,mCAAyC;AACzC,2CAcoB;AAmEpB,MAAa,UAAU;IACrB,MAAM,CACJ,IAAQ;QAER,IAAI,IAAI,GAAG,QAAQ,CAAA;QACnB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,IAAI,SAAS,CAAA;QACjC,IAAI,IAAI,EAAE,kBAAkB;YAAE,IAAI,IAAI,uBAAuB,CAAA;QAC7D,IAAI,IAAI,EAAE,WAAW;YAAE,IAAI,IAAI,cAAc,CAAA;QAC7C,IAAI,IAAI,EAAE,WAAW;YAAE,IAAI,IAAI,cAAc,CAAA;QAC7C,IAAI,IAAI,EAAE,UAAU;YAAE,IAAI,IAAI,eAAe,CAAA;QAC7C,IAAI,IAAI,EAAE,SAAS;YAAE,IAAI,IAAI,cAAc,CAAA;QAC3C,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,IAAI,SAAS,CAAA;QACjC,IAAI,IAAI,EAAE,UAAU;YAAE,IAAI,IAAI,eAAe,CAAA;QAC7C,IAAI,IAAI,EAAE,gBAAgB;YAAE,IAAI,IAAI,qBAAqB,CAAA;QACzD,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,MAAM,CACJ,IAAQ;QAER,IAAI,IAAI,GAAG,QAAQ,CAAA;QACnB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,IAAI,WAAW,CAAA;QACrC,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,OAAO,KAAK,SAAS;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACrE,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,OAAO,CACL,IAAQ;QAER,IAAI,IAAI,GAAG,SAAS,CAAA;QACpB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,IAAI,WAAW,CAAA;QACrC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,KAAK,CACH,IAAQ;QAER,IAAI,IAAI,GAAG,OAAO,CAAA;QAClB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,IAAI,SAAS,CAAA;QACjC,IAAI,IAAI,EAAE,WAAW;YAAE,IAAI,IAAI,cAAc,CAAA;QAC7C,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,IAAI,SAAS,CAAA;QACjC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,IAAI,CAIF,IAAQ;QACR,IAAI,IAAI,GAAG,MAAM,CAAA;QACjB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACvD,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,IAAI,CACF,IAAQ;QAER,IAAI,IAAI,GAAG,MAAM,CAAA;QACjB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,UAAU,CACR,IAAQ;QAER,IAAI,IAAI,GAAG,YAAY,CAAA;QACvB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,IAAI;YAAE,IAAI,IAAI,SAAS,CAAA;QACjC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,QAAQ,CACN,IAAQ;QAER,IAAI,IAAI,GAAG,UAAU,CAAA;QACrB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,cAAc;YAAE,IAAI,IAAI,mBAAmB,CAAA;QACrD,IAAI,IAAI,EAAE,cAAc;YAAE,IAAI,IAAI,mBAAmB,CAAA;QACrD,IAAI,IAAI,EAAE,gBAAgB;YAAE,IAAI,IAAI,qBAAqB,CAAA;QACzD,IAAI,IAAI,EAAE,gBAAgB;YAAE,IAAI,IAAI,qBAAqB,CAAA;QACzD,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,KAAK,CACH,MAAS,EACT,IAAQ;QAER,IAAI,YAAY,GAAG,MAAa,CAAA;QAChC,IACE,OAAO,MAAM,KAAK,QAAQ;YAC1B,MAAM,KAAK,IAAI;YACf,CAAC,CAAC,MAAM,YAAY,mBAAO,CAAC;YAC5B,CAAC,CAAC,MAAM,YAAY,SAAS,CAAC,EAC9B,CAAC;YACD,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAa,CAAC,CAAA;QAC3C,CAAC;QAED,MAAM,UAAU,GACd,YAAY,YAAY,SAAS;YAC/B,CAAC,CAAC,UAAU,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC,GAAG;YAC/D,CAAC,CAAC,YAAY,YAAY,mBAAO;gBAC/B,CAAC,CAAC,YAAY,CAAC,IAAI;gBACnB,CAAC,CAAE,YAAuB,CAAA;QAChC,IAAI,IAAI,GAAG,SAAS,UAAU,GAAG,CAAA;QACjC,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,GAAG,KAAK,SAAS;YAAE,IAAI,IAAI,UAAU,IAAI,CAAC,GAAG,EAAE,CAAA;QACzD,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,IAAI,WAAW,CAAA;QACrC,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,IAAI,WAAW,CAAA;QACrC,MAAM,GAAG,GAAG,IAAI,mBAAO,CAAC,IAAI,CAG3B,CACA;QAAC,GAAW,CAAC,KAAK,GAAG,YAAY,CAAA;QAClC,OAAO,GAAG,CAAA;IACZ,CAAC;IAED,IAAI,CACF,MAAW,EACX,IAAQ;QAER,IAAI,IAAI,GAAG,QAAQ,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QACrC,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACvD,OAAO,IAAI,mBAAO,CAAC,IAAI,CAGtB,CAAA;IACH,CAAC;IAED,OAAO,CAIL,KAAQ,EACR,IAAQ;QAER,IAAI,IAAI,GAAG,WAAW,KAAK,EAAE,CAAA;QAC7B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAGtB,CAAA;IACH,CAAC;IAED,KAAK,CACH,OAAU,EACV,IAAQ;QAER,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,YAAY,mBAAO,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QACrE,IAAI,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QAC7B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,GAAG,IAAI,IAAI,IAAI,CAAA;QACvC,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAGtB,CAAA;IACH,CAAC;IAED,IAAI,CACF,IAAQ;QAER,IAAI,IAAI,GAAG,MAAM,CAAA;QACjB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,MAAM;YAAE,IAAI,IAAI,WAAW,CAAA;QACrC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACvD,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACvD,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,MAAM,CACJ,MAAS,EACT,IAAQ;QAER,MAAM,UAAU,GAAG,MAAM,YAAY,mBAAO,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAA;QACnE,IAAI,IAAI,GAAG,UAAU,UAAoB,GAAG,CAAA;QAC5C,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAGtB,CAAA;IACH,CAAC;IAED,GAAG,CACD,IAAQ;QAER,IAAI,IAAI,GAAG,KAAK,CAAA;QAChB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,IAAI,CACF,IAAQ;QAER,IAAI,IAAI,GAAG,MAAM,CAAA;QACjB,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,GAAG,CAAA;QAC/B,IAAI,IAAI,EAAE,QAAQ;YAAE,IAAI,IAAI,aAAa,CAAA;QACzC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,YAAY,CAAA;QACvC,IAAI,IAAI,EAAE,OAAO;YAAE,IAAI,IAAI,cAAc,IAAI,CAAC,OAAO,EAAE,CAAA;QACvD,IAAI,IAAI,EAAE,SAAS;YAAE,IAAI,IAAI,gBAAgB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAA;QACvE,OAAO,IAAI,mBAAO,CAAC,IAAI,CAEtB,CAAA;IACH,CAAC;IAED,MAAM,CACJ,MAAS,EACT,IAAuB;QAEvB,MAAM,cAAc,GAA2B,EAAE,CAAA;QACjD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;YAClD,IAAI,KAAK,YAAY,SAAS,EAAE,CAAC;gBAC/B,cAAc,CAAC,GAAG,CAAC;oBACjB,UAAU,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,GAAG,CAAA;YAC1D,CAAC;iBAAM,IAAI,KAAK,YAAY,mBAAO,EAAE,CAAC;gBACpC,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAA;YAClC,CAAC;iBAAM,CAAC;gBACN,cAAc,CAAC,GAAG,CAAC,GAAG,KAAe,CAAA;YACvC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,cAAc,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,CAAA;IAC5D,CAAC;IAED,UAAU,CAAC,OAAsD;QAC/D,MAAM,YAAY,GAAG,OAAO,EAAE,YAAY,IAAI,EAAE,CAAA;QAChD,MAAM,QAAQ,GAAG,OAAO,EAAE,QAAQ,IAAI,GAAG,CAAA;QACzC,OAAO,IAAI,CAAC,MAAM,CAAC;YACjB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;YACvE,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC;gBACjB,QAAQ,EAAE,IAAI;gBACd,MAAM,EAAE,IAAI;gBACZ,GAAG,EAAE,CAAC;gBACN,GAAG,EAAE,QAAQ;gBACb,OAAO,EAAE,YAAY;aACtB,CAAC;YACF,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;YACjD,KAAK,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;SACtD,CAAC,CAAA;IACJ,CAAC;CACF;AA5SD,gCA4SC;AAED,MAAa,cAAe,SAAQ,KAAK;IACvC,YAAmB,MAA2C;QAC5D,KAAK,CACH,oBAAoB;YAClB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAC1D,CAAA;QAJgB,WAAM,GAAN,MAAM,CAAqC;QAK5D,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAA;IAC9B,CAAC;CACF;AARD,wCAQC;AAED,MAAa,SAAS;IASpB,YACE,MAA8B,EAC9B,SAA8B,EAC9B,MAAM,GAAG,KAAK,EACd,UAAU,GAAG,KAAK;QANb,gBAAW,GAAG,KAAK,CAAA;QAQxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,SAAS,GAAG,SAAS,CAAA;QAC1B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,WAAW,GAAG,UAAU,CAAA;QAC7B,IAAI,CAAC,SAAS,GAAG,IAAI,iBAAY,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,iBAAiB;QACf,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,QAAQ;QACN,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAQ,CAAA;IAC7E,CAAC;IAED,OAAO;QACL,MAAM,SAAS,GAA2B,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAwB,EAAE,CAAA;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,CAAA;YACpD,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YAClC,IAAI,MAAM,YAAY,mBAAO,EAAE,CAAC;gBAC9B,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,mBAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAA;gBACzC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,MAAM,CAAC,UAAU,CAAA;gBAC1C,MAAM,CAAC,GAAG,CAAC,CAAC,WAAW,GAAG,MAAM,CAAC,WAAW,CAAA;YAC9C,CAAC;iBAAM,IAAI,MAAM,YAAY,SAAS,EAAE,CAAC;gBACvC,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAA;YACjC,CAAC;iBAAM,CAAC;gBACN,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,GAAG,CAAC,CAAA;YAC9B,CAAC;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAA;IACxE,CAAC;IAED,IAAI,CAAoB,IAAS;QAC/B,MAAM,SAAS,GAA2B,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAwB,EAAE,CAAA;QACtC,KAAK,MAAM,GAAG,IAAI,IAAgB,EAAE,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACrB,SAAS,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;gBACjC,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAClB,SAAS,EACT,MAAM,EACN,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACV,CAAA;IACV,CAAC;IAED,IAAI,CAAoB,IAAS;QAC/B,MAAM,SAAS,GAA2B,EAAE,CAAA;QAC5C,MAAM,MAAM,GAAwB,EAAE,CAAA;QACtC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACrD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAU,CAAC,EAAE,CAAC;gBAC/B,SAAS,CAAC,GAAG,CAAC,GAAG,GAAG,CAAA;gBACpB,MAAM,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAA;YACnC,CAAC;QACH,CAAC;QACD,OAAO,IAAI,SAAS,CAClB,SAAS,EACT,MAAM,EACN,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,WAAW,CACV,CAAA;IACV,CAAC;IAED,KAAK,CAAC,IAAS;QACb,0EAA0E;QAC1E,IAAI,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;YACrC,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC;oBAC7D,MAAM,GAAG,GAAG,GAAG,YAAY,mBAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;oBAC3D,IACE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;wBACxB,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;wBACxB,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;wBACvB,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC;wBAChB,GAAW,EAAE,WAAW,EACzB,CAAC;wBACD,IACE,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;4BACxB,CAAC,GAAG,CAAC,QAAQ,CAAC,UAAU,CAAC;4BACzB,CAAC,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC,EACxB,CAAC;4BACD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;wBAClB,CAAC;6BAAM,CAAC;4BACN,OAAO,IAAI,CAAC,GAAG,CAAC,CAAA;wBAClB,CAAC;oBACH,CAAC;gBACH,CAAC;gBACD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBAClD,IAAI,GAAG,YAAY,mBAAO,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC1D,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC;4BAChC,IACE,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;gCAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAC7B,CAAC;gCACD,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gCAC7B,IAAI,KAAK,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;oCACvB,MAAM,IAAI,cAAc,CAAC;wCACvB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE;qCAC/C,CAAC,CAAA;gCACJ,CAAC;gCACD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;4BACf,CAAC;wBACH,CAAC;wBACD,IACE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,CAAC;4BAC5B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ;4BAC7B,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAC7B,CAAC;4BACD,MAAM,IAAI,cAAc,CAAC;gCACvB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE;6BAC/C,CAAC,CAAA;wBACJ,CAAC;wBACD,IAAI,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,CAAC;4BAC5D,MAAM,IAAI,cAAc,CAAC;gCACvB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,EAAE;6BAC/C,CAAC,CAAA;wBACJ,CAAC;wBACD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAClC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;4BACvD,IACE,MAAM;gCACN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAC1D,CAAC;gCACD,MAAM,IAAI,cAAc,CAAC;oCACvB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,sBAAsB,MAAM,EAAE,EAAE;iCACvD,CAAC,CAAA;4BACJ,CAAC;wBACH,CAAC;wBACD,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;4BAClC,MAAM,MAAM,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAA;4BACvD,IACE,MAAM;gCACN,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,EAAE,EAC1D,CAAC;gCACD,MAAM,IAAI,cAAc,CAAC;oCACvB,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,uBAAuB,MAAM,EAAE,EAAE;iCACxD,CAAC,CAAA;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IACE,GAAG,YAAY,mBAAO;wBACtB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;wBAC7B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAC3B,CAAC;wBACD,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;4BAC9B,IAAI,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,QAAQ,EAAE,CAAC;gCAClC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;oCACnC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;oCACnD,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;gCACf,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;oCACxC,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;wCAClC,MAAM,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;wCACnB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oCACzB,CAAC,CAAC,CAAA;gCACJ,CAAC;qCAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;oCAChD,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAS,EAAE,EAAE;wCAClC,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM;4CAAE,OAAO,IAAI,CAAA;wCAC3C,IAAI,CAAC,CAAC,WAAW,EAAE,KAAK,OAAO;4CAAE,OAAO,KAAK,CAAA;wCAC7C,OAAO,CAAC,CAAA;oCACV,CAAC,CAAC,CAAA;gCACJ,CAAC;qCAAM,CAAC;oCACN,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;gCACnB,CAAC;4BACH,CAAC;iCAAM,CAAC;gCACN,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;4BACzB,CAAC;wBACH,CAAC;6BAAM,CAAC;4BACN,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,EAAE,CAAC;gCACxC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;oCACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wCAC7B,MAAM,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;wCACtB,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;oCAC5B,CAAC;oCACD,OAAO,IAAI,CAAA;gCACb,CAAC,CAAC,CAAA;4BACJ,CAAC;iCAAM,IAAI,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,EAAE,CAAC;gCAChD,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAS,EAAE,EAAE;oCACtC,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;wCAC7B,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,MAAM;4CAAE,OAAO,IAAI,CAAA;wCAC9C,IAAI,IAAI,CAAC,WAAW,EAAE,KAAK,OAAO;4CAAE,OAAO,KAAK,CAAA;oCAClD,CAAC;oCACD,OAAO,IAAI,CAAA;gCACb,CAAC,CAAC,CAAA;4BACJ,CAAC;wBACH,CAAC;oBACH,CAAC;oBAED,IAAI,GAAG,YAAY,mBAAO,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACxD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;4BAC/B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,IAAI;gCAAE,MAAK;4BACxD,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAA;wBAC1B,CAAC;oBACH,CAAC;oBAED,MAAM,UAAU,GAAI,GAAW,EAAE,KAAK,CAAA;oBACtC,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBAC3C,IACE,UAAU,YAAY,mBAAO;4BAC7B,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAChC,CAAC;4BACD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAC1C,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oCACxD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,UAAU,EAAE,CAAC;wCACtC,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,SAAS,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI;4CACrD,MAAK;wCACP,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;oCAChC,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,qBAAqB;QACrB,IAAI,UAAe,CAAA;QACnB,IAAI,CAAC;YACH,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA;QACzC,CAAC;QAAC,OAAO,GAAQ,EAAE,CAAC;YAClB,IACE,IAAI,KAAK,OAAO,CAAC,GAAG;gBACpB,CAAC,OAAO,CAAC,GAAG,CAAC,qBAAqB,KAAK,MAAM;oBAC3C,OAAO,CAAC,GAAG,CAAC,mBAAmB,KAAK,MAAM,CAAC,EAC7C,CAAC;gBACD,MAAM,IAAI,GAAQ,EAAE,GAAG,IAAI,EAAE,CAAA;gBAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;oBACxD,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC5B,MAAM,GAAG,GAAG,GAAG,YAAY,mBAAO,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;wBAC3D,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;4BAAE,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;6BACpC,IAAI,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;4BAAE,IAAI,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;6BAC9C,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC;4BAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAA;;4BACzC,IAAI,CAAC,GAAG,CAAC,GAAG,QAAQ,GAAG,EAAE,CAAA;oBAChC,CAAC;gBACH,CAAC;gBACD,OAAO,IAAS,CAAA;YAClB,CAAC;YAED,IAAI,IAAI,GAAG,MAAM,CAAA;YACjB,IAAI,OAAO,GAAG,GAAG,CAAC,OAAO,IAAI,mBAAmB,CAAA;YAEhD,IAAI,OAAO,CAAC,UAAU,CAAC,0BAA0B,CAAC,EAAE,CAAC;gBACnD,IAAI,GAAG,OAAO,CAAC,OAAO,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAA;gBAC7D,OAAO,GAAG,oCAAoC,CAAA;YAChD,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;gBACzC,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,sBAAsB,CAAC,CAAA;gBACnD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;oBACf,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAA;gBAChE,CAAC;YACH,CAAC;iBAAM,IAAI,OAAO,CAAC,UAAU,CAAC,oCAAoC,CAAC,EAAE,CAAC;gBACpE,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CACzB,4CAA4C,CAC7C,CAAA;gBACD,IAAI,KAAK,EAAE,CAAC;oBACV,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;oBACf,OAAO,GAAG,0CAA0C,CAAA;gBACtD,CAAC;YACH,CAAC;YAED,MAAM,IAAI,cAAc,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAA;QAC/C,CAAC;QAED,gCAAgC;QAChC,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,IACE,GAAG,YAAY,mBAAO;oBACtB,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;oBAC3B,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;oBAC3B,IAAI,CAAC,GAAG,CAAC,YAAY,IAAI,EACzB,CAAC;oBACD,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAA;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,MAAM,MAAM,GAAwC,EAAE,CAAA;QACtD,IAAI,UAAU,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACjD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;gBACxD,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;oBAClC,MAAM,eAAe,GACnB,GAAG,YAAY,mBAAO;wBACtB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;oBACjE,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,IAAI,IAAI,eAAe,EAAE,CAAC;wBAChD,SAAQ;oBACV,CAAC;oBAED,IAAI,GAAG,YAAY,mBAAO,IAAI,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBACzD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;4BAChC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;gCACvC,MAAM,GAAG,GACP,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU;oCAC7B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;oCAC5B,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAA;gCAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;4BAC1C,CAAC;wBACH,CAAC;oBACH,CAAC;oBACD,MAAM,UAAU,GAAI,GAAW,EAAE,KAAK,CAAA;oBACtC,IAAI,UAAU,IAAI,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;wBACjD,IACE,UAAU,YAAY,mBAAO;4BAC7B,UAAU,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EACjC,CAAC;4BACD,MAAM,cAAc,GAClB,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC;gCACpC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAA;4BACrC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gCAChD,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,IAAI,cAAc;oCAAE,SAAQ;gCAC3D,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,WAAW,EAAE,CAAC;oCACvC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;wCAC1C,MAAM,GAAG,GACP,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU;4CAC7B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;4CAC/B,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAA;wCAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;oCACrD,CAAC;gCACH,CAAC;4BACH,CAAC;wBACH,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACvD,OAAO,UAAU,CAAA;IACnB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAS;QACxB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAA,CAAC,+CAA+C;QAE/E,MAAM,MAAM,GAAwC,EAAE,CAAA;QACtD,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;YACzC,MAAM,OAAO,CAAC,GAAG,CACf,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,EAAE;gBACtD,MAAM,OAAO,GAAG,MAAM,CAAC,GAAc,CAAC,CAAA;gBACtC,MAAM,eAAe,GACnB,GAAG,YAAY,mBAAO;oBACtB,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAA;gBACjE,IAAI,OAAO,KAAK,IAAI,IAAI,eAAe;oBAAE,OAAM;gBAE/C,IACE,OAAO,KAAK,SAAS;oBACrB,GAAG,YAAY,mBAAO;oBACtB,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAC1B,CAAC;oBACD,KAAK,MAAM,CAAC,IAAI,GAAG,CAAC,WAAW,EAAE,CAAC;wBAChC,IAAI,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;4BACtC,MAAM,GAAG,GACP,OAAO,CAAC,CAAC,OAAO,KAAK,UAAU;gCAC7B,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC;gCACpB,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,eAAe,CAAA;4BAClC,MAAM,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAA;wBAC1C,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC,CAAC,CACH,CAAA;QACH,CAAC;QAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,IAAI,cAAc,CAAC,MAAM,CAAC,CAAA;QACvD,OAAO,MAAM,CAAA;IACf,CAAC;IAED,aAAa;QACX,MAAM,SAAS,GAAwB,EAAE,CAAA;QACzC,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YACzC,MAAM,KAAK,GAAQ,EAAE,CAAA;YAErB,IACE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC7B,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;gBAC5B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;gBAE/B,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;iBAChB,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA;iBACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,KAAK,CAAC,IAAI,GAAG,OAAO,CAAA;iBACxD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,KAAK,CAAC,IAAI,GAAG,IAAI,CAAA;;gBAClD,KAAK,CAAC,IAAI,GAAG,MAAM,CAAA,CAAC,gCAAgC;YAEzD,IAAI,CAAC,UAAU;gBAAE,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAA;YACtC,SAAS,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACxB,CAAC;QACD,OAAO,SAAS,CAAA;IAClB,CAAC;IAED,SAAS;QACP,MAAM,UAAU,GAAwB,EAAE,CAAA;QAC1C,MAAM,QAAQ,GAAa,EAAE,CAAA;QAC7B,KAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAA;YAC3C,MAAM,UAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAA;YACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAA;YACzC,MAAM,IAAI,GAAQ,EAAE,CAAA;YAEpB,IACE,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAC7B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAC3B,QAAQ,CAAC,UAAU,CAAC,UAAU,CAAC;gBAE/B,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;iBACjB,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC;gBACtC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;gBACpB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAA;YACvB,CAAC;iBAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;iBACzD,IAAI,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,SAAS,CAAA;iBACzD,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;iBACrD,IAAI,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC;gBAAE,IAAI,CAAC,IAAI,GAAG,OAAO,CAAA;iBACtD,IAAI,QAAQ,CAAC,UAAU,CAAC,OAAO,CAAC;gBACnC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA,CAAC,iBAAiB;;gBACnC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAA;YAEzB,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAA;YACtB,IAAI,CAAC,UAAU;gBAAE,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QACrC,CAAC;QACD,MAAM,MAAM,GAAQ,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAA;QAClD,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC;YAAE,MAAM,CAAC,QAAQ,GAAG,QAAQ,CAAA;QACnD,OAAO,MAAM,CAAA;IACf,CAAC;CACF;AAlcD,8BAkcC;AAEY,QAAA,GAAG,GAAG,IAAI,UAAU,EAAE,CAAA;AAkBnC,SAAgB,QAAQ,CACtB,IAAS,EACT,KAAa,EACb,UAA6C,EAAE;IAE/C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACtD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAA;IAC3C,MAAM,OAAO,GAAG,IAAI,GAAG,UAAU,CAAA;IACjC,MAAM,OAAO,GAAG,IAAI,GAAG,CAAC,CAAA;IAExB,OAAO;QACL,IAAI;QACJ,UAAU,EAAE;YACV,IAAI;YACJ,KAAK;YACL,KAAK;YACL,UAAU;YACV,WAAW,EAAE,OAAO;YACpB,WAAW,EAAE,OAAO;YACpB,OAAO;YACP,OAAO;SACR;KACF,CAAA;AACH,CAAC;AAED,SAAgB,iBAAiB,CAC/B,QAA2C,EAAE;IAM7C,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAA;IACjD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAA;IACpD,OAAO;QACL,IAAI,EAAE,CAAC,IAAI,GAAG,CAAC,CAAC,GAAG,KAAK;QACxB,KAAK;QACL,IAAI;KACL,CAAA;AACH,CAAC"}