@crowi/api 2.0.0-alpha.0 → 2.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/hono/handlers/access-token.d.ts +55 -55
- package/dist/hono/handlers/activation.d.ts +27 -27
- package/dist/hono/handlers/admin/app.d.ts +26 -26
- package/dist/hono/handlers/admin/auth.d.ts +24 -24
- package/dist/hono/handlers/admin/mail.d.ts +30 -30
- package/dist/hono/handlers/admin/plugins.d.ts +112 -112
- package/dist/hono/handlers/admin/search.d.ts +21 -21
- package/dist/hono/handlers/admin/security.d.ts +24 -24
- package/dist/hono/handlers/admin/storage.d.ts +19 -19
- package/dist/hono/handlers/admin/users.d.ts +305 -305
- package/dist/hono/handlers/adminCrypto.d.ts +32 -32
- package/dist/hono/handlers/app.d.ts +11 -8
- package/dist/hono/handlers/app.js +31 -1
- package/dist/hono/handlers/app.js.map +1 -1
- package/dist/hono/handlers/attachment.d.ts +180 -180
- package/dist/hono/handlers/autocomplete.d.ts +45 -45
- package/dist/hono/handlers/backlink.d.ts +33 -33
- package/dist/hono/handlers/bookmark.d.ts +95 -95
- package/dist/hono/handlers/comment.d.ts +55 -55
- package/dist/hono/handlers/draft.d.ts +27 -27
- package/dist/hono/handlers/emailChange.d.ts +25 -25
- package/dist/hono/handlers/installer.d.ts +16 -16
- package/dist/hono/handlers/inviteAccept.d.ts +37 -37
- package/dist/hono/handlers/me.d.ts +92 -92
- package/dist/hono/handlers/notification.d.ts +94 -94
- package/dist/hono/handlers/oauth.d.ts +58 -58
- package/dist/hono/handlers/page-collab.d.ts +20 -20
- package/dist/hono/handlers/page-preview.d.ts +7 -7
- package/dist/hono/handlers/page.d.ts +333 -333
- package/dist/hono/handlers/passwordReset.d.ts +37 -37
- package/dist/hono/handlers/presence.d.ts +44 -44
- package/dist/hono/handlers/revision.d.ts +99 -99
- package/dist/hono/handlers/search.d.ts +64 -64
- package/dist/hono/handlers/tokenAuth.d.ts +80 -80
- package/dist/hono/handlers/user.d.ts +102 -102
- package/dist/hono/handlers/user.js +15 -5
- package/dist/hono/handlers/user.js.map +1 -1
- package/dist/hono/index.d.ts +94 -94
- package/dist/mcp/result.d.ts +15 -0
- package/dist/mcp/result.js +20 -1
- package/dist/mcp/result.js.map +1 -1
- package/dist/mcp/tools/page.js +9 -4
- package/dist/mcp/tools/page.js.map +1 -1
- package/dist/migration/migrations/index.js +2 -0
- package/dist/migration/migrations/index.js.map +1 -1
- package/dist/migration/migrations/relocate-reserved-api-paths.d.ts +3 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js +135 -0
- package/dist/migration/migrations/relocate-reserved-api-paths.js.map +1 -0
- package/dist/models/page.js +9 -2
- package/dist/models/page.js.map +1 -1
- package/dist/util/replace-url.d.ts +85 -0
- package/dist/util/replace-url.js +251 -0
- package/dist/util/replace-url.js.map +1 -0
- package/package.json +6 -4
- package/public/images/file-not-found.png +0 -0
- package/views/mail/activation.mjml +9 -0
- package/views/mail/activation.text +13 -0
- package/views/mail/adminApprovalPending.mjml +7 -0
- package/views/mail/adminApprovalPending.text +11 -0
- package/views/mail/emailChange.mjml +9 -0
- package/views/mail/emailChange.text +13 -0
- package/views/mail/invite.mjml +9 -0
- package/views/mail/invite.text +13 -0
- package/views/mail/layout.mjml +36 -0
- package/views/mail/passwordChanged.mjml +4 -0
- package/views/mail/passwordChanged.text +9 -0
- package/views/mail/passwordReset.mjml +9 -0
- package/views/mail/passwordReset.text +13 -0
- package/views/mail/test.mjml +2 -0
- package/views/mail/test.text +7 -0
|
@@ -4,6 +4,49 @@ import type { CrowiHonoBindings } from '../app';
|
|
|
4
4
|
export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBindings>>(app: E, crowi: Crowi) => OpenAPIHono<CrowiHonoBindings, {
|
|
5
5
|
"/user/:username": {
|
|
6
6
|
$get: {
|
|
7
|
+
input: {
|
|
8
|
+
param: {
|
|
9
|
+
username: string;
|
|
10
|
+
};
|
|
11
|
+
};
|
|
12
|
+
output: {
|
|
13
|
+
error: {
|
|
14
|
+
code: "INTERNAL_ERROR";
|
|
15
|
+
message: "Internal server error";
|
|
16
|
+
};
|
|
17
|
+
};
|
|
18
|
+
outputFormat: "json";
|
|
19
|
+
status: 500;
|
|
20
|
+
} | {
|
|
21
|
+
input: {
|
|
22
|
+
param: {
|
|
23
|
+
username: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
output: {
|
|
27
|
+
error: {
|
|
28
|
+
code: "USER_NOT_FOUND";
|
|
29
|
+
message: "User not found";
|
|
30
|
+
};
|
|
31
|
+
};
|
|
32
|
+
outputFormat: "json";
|
|
33
|
+
status: 404;
|
|
34
|
+
} | {
|
|
35
|
+
input: {
|
|
36
|
+
param: {
|
|
37
|
+
username: string;
|
|
38
|
+
};
|
|
39
|
+
};
|
|
40
|
+
output: {
|
|
41
|
+
error: {
|
|
42
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
43
|
+
message: "Authentication is required";
|
|
44
|
+
redirectTo?: string | undefined;
|
|
45
|
+
};
|
|
46
|
+
};
|
|
47
|
+
outputFormat: "json";
|
|
48
|
+
status: 401;
|
|
49
|
+
} | {
|
|
7
50
|
input: {
|
|
8
51
|
param: {
|
|
9
52
|
username: string;
|
|
@@ -86,7 +129,7 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
86
129
|
editVia?: "web" | "oauth" | "pat" | undefined;
|
|
87
130
|
} | undefined;
|
|
88
131
|
redirectTo?: string | null | undefined;
|
|
89
|
-
status?: "
|
|
132
|
+
status?: "published" | "wip" | "deleted" | "deprecated" | "draft" | null | undefined;
|
|
90
133
|
grant?: number | undefined;
|
|
91
134
|
grantedUsers?: string[] | undefined;
|
|
92
135
|
creator?: string | {
|
|
@@ -182,7 +225,7 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
182
225
|
editVia?: "web" | "oauth" | "pat" | undefined;
|
|
183
226
|
} | undefined;
|
|
184
227
|
redirectTo?: string | null | undefined;
|
|
185
|
-
status?: "
|
|
228
|
+
status?: "published" | "wip" | "deleted" | "deprecated" | "draft" | null | undefined;
|
|
186
229
|
grant?: number | undefined;
|
|
187
230
|
grantedUsers?: string[] | undefined;
|
|
188
231
|
creator?: string | {
|
|
@@ -231,26 +274,39 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
231
274
|
};
|
|
232
275
|
outputFormat: "json";
|
|
233
276
|
status: 200;
|
|
234
|
-
}
|
|
277
|
+
};
|
|
278
|
+
};
|
|
279
|
+
} & {
|
|
280
|
+
"/user/:username/bookmarks": {
|
|
281
|
+
$get: {
|
|
235
282
|
input: {
|
|
236
283
|
param: {
|
|
237
284
|
username: string;
|
|
238
285
|
};
|
|
286
|
+
} & {
|
|
287
|
+
query: {
|
|
288
|
+
limit?: unknown;
|
|
289
|
+
offset?: unknown;
|
|
290
|
+
};
|
|
239
291
|
};
|
|
240
292
|
output: {
|
|
241
293
|
error: {
|
|
242
|
-
code: "
|
|
243
|
-
message: "
|
|
244
|
-
redirectTo?: string | undefined;
|
|
294
|
+
code: "INTERNAL_ERROR";
|
|
295
|
+
message: "Internal server error";
|
|
245
296
|
};
|
|
246
297
|
};
|
|
247
298
|
outputFormat: "json";
|
|
248
|
-
status:
|
|
299
|
+
status: 500;
|
|
249
300
|
} | {
|
|
250
301
|
input: {
|
|
251
302
|
param: {
|
|
252
303
|
username: string;
|
|
253
304
|
};
|
|
305
|
+
} & {
|
|
306
|
+
query: {
|
|
307
|
+
limit?: unknown;
|
|
308
|
+
offset?: unknown;
|
|
309
|
+
};
|
|
254
310
|
};
|
|
255
311
|
output: {
|
|
256
312
|
error: {
|
|
@@ -265,20 +321,22 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
265
321
|
param: {
|
|
266
322
|
username: string;
|
|
267
323
|
};
|
|
324
|
+
} & {
|
|
325
|
+
query: {
|
|
326
|
+
limit?: unknown;
|
|
327
|
+
offset?: unknown;
|
|
328
|
+
};
|
|
268
329
|
};
|
|
269
330
|
output: {
|
|
270
331
|
error: {
|
|
271
|
-
code: "
|
|
272
|
-
message: "
|
|
332
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
333
|
+
message: "Authentication is required";
|
|
334
|
+
redirectTo?: string | undefined;
|
|
273
335
|
};
|
|
274
336
|
};
|
|
275
337
|
outputFormat: "json";
|
|
276
|
-
status:
|
|
277
|
-
}
|
|
278
|
-
};
|
|
279
|
-
} & {
|
|
280
|
-
"/user/:username/bookmarks": {
|
|
281
|
-
$get: {
|
|
338
|
+
status: 401;
|
|
339
|
+
} | {
|
|
282
340
|
input: {
|
|
283
341
|
param: {
|
|
284
342
|
username: string;
|
|
@@ -354,7 +412,7 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
354
412
|
editVia?: "web" | "oauth" | "pat" | undefined;
|
|
355
413
|
} | undefined;
|
|
356
414
|
redirectTo?: string | null | undefined;
|
|
357
|
-
status?: "
|
|
415
|
+
status?: "published" | "wip" | "deleted" | "deprecated" | "draft" | null | undefined;
|
|
358
416
|
grant?: number | undefined;
|
|
359
417
|
grantedUsers?: string[] | undefined;
|
|
360
418
|
creator?: string | {
|
|
@@ -409,7 +467,11 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
409
467
|
};
|
|
410
468
|
outputFormat: "json";
|
|
411
469
|
status: 200;
|
|
412
|
-
}
|
|
470
|
+
};
|
|
471
|
+
};
|
|
472
|
+
} & {
|
|
473
|
+
"/user/:username/pages": {
|
|
474
|
+
$get: {
|
|
413
475
|
input: {
|
|
414
476
|
param: {
|
|
415
477
|
username: string;
|
|
@@ -422,13 +484,12 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
422
484
|
};
|
|
423
485
|
output: {
|
|
424
486
|
error: {
|
|
425
|
-
code: "
|
|
426
|
-
message: "
|
|
427
|
-
redirectTo?: string | undefined;
|
|
487
|
+
code: "INTERNAL_ERROR";
|
|
488
|
+
message: "Internal server error";
|
|
428
489
|
};
|
|
429
490
|
};
|
|
430
491
|
outputFormat: "json";
|
|
431
|
-
status:
|
|
492
|
+
status: 500;
|
|
432
493
|
} | {
|
|
433
494
|
input: {
|
|
434
495
|
param: {
|
|
@@ -461,17 +522,14 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
461
522
|
};
|
|
462
523
|
output: {
|
|
463
524
|
error: {
|
|
464
|
-
code: "
|
|
465
|
-
message: "
|
|
525
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
526
|
+
message: "Authentication is required";
|
|
527
|
+
redirectTo?: string | undefined;
|
|
466
528
|
};
|
|
467
529
|
};
|
|
468
530
|
outputFormat: "json";
|
|
469
|
-
status:
|
|
470
|
-
}
|
|
471
|
-
};
|
|
472
|
-
} & {
|
|
473
|
-
"/user/:username/pages": {
|
|
474
|
-
$get: {
|
|
531
|
+
status: 401;
|
|
532
|
+
} | {
|
|
475
533
|
input: {
|
|
476
534
|
param: {
|
|
477
535
|
username: string;
|
|
@@ -545,7 +603,7 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
545
603
|
editVia?: "web" | "oauth" | "pat" | undefined;
|
|
546
604
|
} | undefined;
|
|
547
605
|
redirectTo?: string | null | undefined;
|
|
548
|
-
status?: "
|
|
606
|
+
status?: "published" | "wip" | "deleted" | "deprecated" | "draft" | null | undefined;
|
|
549
607
|
grant?: number | undefined;
|
|
550
608
|
grantedUsers?: string[] | undefined;
|
|
551
609
|
creator?: string | {
|
|
@@ -586,69 +644,44 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
586
644
|
};
|
|
587
645
|
outputFormat: "json";
|
|
588
646
|
status: 200;
|
|
589
|
-
}
|
|
647
|
+
};
|
|
648
|
+
};
|
|
649
|
+
} & {
|
|
650
|
+
"/users": {
|
|
651
|
+
$get: {
|
|
590
652
|
input: {
|
|
591
|
-
param: {
|
|
592
|
-
username: string;
|
|
593
|
-
};
|
|
594
|
-
} & {
|
|
595
653
|
query: {
|
|
654
|
+
q?: string | undefined;
|
|
596
655
|
limit?: unknown;
|
|
597
656
|
offset?: unknown;
|
|
598
657
|
};
|
|
599
658
|
};
|
|
600
659
|
output: {
|
|
601
660
|
error: {
|
|
602
|
-
code: "
|
|
603
|
-
message: "
|
|
604
|
-
redirectTo?: string | undefined;
|
|
661
|
+
code: "INTERNAL_ERROR";
|
|
662
|
+
message: "Internal server error";
|
|
605
663
|
};
|
|
606
664
|
};
|
|
607
665
|
outputFormat: "json";
|
|
608
|
-
status:
|
|
666
|
+
status: 500;
|
|
609
667
|
} | {
|
|
610
668
|
input: {
|
|
611
|
-
param: {
|
|
612
|
-
username: string;
|
|
613
|
-
};
|
|
614
|
-
} & {
|
|
615
669
|
query: {
|
|
670
|
+
q?: string | undefined;
|
|
616
671
|
limit?: unknown;
|
|
617
672
|
offset?: unknown;
|
|
618
673
|
};
|
|
619
674
|
};
|
|
620
675
|
output: {
|
|
621
676
|
error: {
|
|
622
|
-
code: "
|
|
623
|
-
message: "
|
|
677
|
+
code: "AUTHENTICATION_REQUIRED";
|
|
678
|
+
message: "Authentication is required";
|
|
679
|
+
redirectTo?: string | undefined;
|
|
624
680
|
};
|
|
625
681
|
};
|
|
626
682
|
outputFormat: "json";
|
|
627
|
-
status:
|
|
683
|
+
status: 401;
|
|
628
684
|
} | {
|
|
629
|
-
input: {
|
|
630
|
-
param: {
|
|
631
|
-
username: string;
|
|
632
|
-
};
|
|
633
|
-
} & {
|
|
634
|
-
query: {
|
|
635
|
-
limit?: unknown;
|
|
636
|
-
offset?: unknown;
|
|
637
|
-
};
|
|
638
|
-
};
|
|
639
|
-
output: {
|
|
640
|
-
error: {
|
|
641
|
-
code: "INTERNAL_ERROR";
|
|
642
|
-
message: "Internal server error";
|
|
643
|
-
};
|
|
644
|
-
};
|
|
645
|
-
outputFormat: "json";
|
|
646
|
-
status: 500;
|
|
647
|
-
};
|
|
648
|
-
};
|
|
649
|
-
} & {
|
|
650
|
-
"/users": {
|
|
651
|
-
$get: {
|
|
652
685
|
input: {
|
|
653
686
|
query: {
|
|
654
687
|
q?: string | undefined;
|
|
@@ -672,39 +705,6 @@ export declare const registerUserRoutes: <E extends OpenAPIHono<CrowiHonoBinding
|
|
|
672
705
|
};
|
|
673
706
|
outputFormat: "json";
|
|
674
707
|
status: 200;
|
|
675
|
-
} | {
|
|
676
|
-
input: {
|
|
677
|
-
query: {
|
|
678
|
-
q?: string | undefined;
|
|
679
|
-
limit?: unknown;
|
|
680
|
-
offset?: unknown;
|
|
681
|
-
};
|
|
682
|
-
};
|
|
683
|
-
output: {
|
|
684
|
-
error: {
|
|
685
|
-
code: "AUTHENTICATION_REQUIRED";
|
|
686
|
-
message: "Authentication is required";
|
|
687
|
-
redirectTo?: string | undefined;
|
|
688
|
-
};
|
|
689
|
-
};
|
|
690
|
-
outputFormat: "json";
|
|
691
|
-
status: 401;
|
|
692
|
-
} | {
|
|
693
|
-
input: {
|
|
694
|
-
query: {
|
|
695
|
-
q?: string | undefined;
|
|
696
|
-
limit?: unknown;
|
|
697
|
-
offset?: unknown;
|
|
698
|
-
};
|
|
699
|
-
};
|
|
700
|
-
output: {
|
|
701
|
-
error: {
|
|
702
|
-
code: "INTERNAL_ERROR";
|
|
703
|
-
message: "Internal server error";
|
|
704
|
-
};
|
|
705
|
-
};
|
|
706
|
-
outputFormat: "json";
|
|
707
|
-
status: 500;
|
|
708
708
|
};
|
|
709
709
|
};
|
|
710
710
|
}, "/">;
|
|
@@ -17,8 +17,11 @@ exports.registerUserRoutes = void 0;
|
|
|
17
17
|
* Wire-format parity is preserved. The legacy handlers checked `req.user`
|
|
18
18
|
* manually and returned `AUTHENTICATION_REQUIRED`; the middleware does
|
|
19
19
|
* that uniformly now so the per-handler guard goes away. The 404 envelope
|
|
20
|
-
* (`USER_NOT_FOUND`) covers
|
|
21
|
-
*
|
|
20
|
+
* (`USER_NOT_FOUND`) covers "no document" and non-viewable accounts
|
|
21
|
+
* (deleted / invited / registered). Active *and* suspended users are shown:
|
|
22
|
+
* a suspended author is gone, but the pages they wrote stay browseable under
|
|
23
|
+
* /user/<username>/..., so hiding only the profile is a broken link, not
|
|
24
|
+
* privacy.
|
|
22
25
|
*
|
|
23
26
|
* Both pagination endpoints respect the same `visiblePageStatusOr` +
|
|
24
27
|
* `GRANT_PUBLIC` policy as the ts-rest version when viewing another
|
|
@@ -50,6 +53,13 @@ const registerUserRoutes = (app, crowi) => {
|
|
|
50
53
|
const User = crowi.model('User');
|
|
51
54
|
const Page = crowi.model('Page');
|
|
52
55
|
const Bookmark = crowi.model('Bookmark');
|
|
56
|
+
// A user page stays reachable for ACTIVE and SUSPENDED accounts. A suspended
|
|
57
|
+
// user is gone, but the pages they authored remain visible (they show up in
|
|
58
|
+
// the page tree under /user/<username>/...), so 404-ing only their profile is
|
|
59
|
+
// a broken link rather than real privacy. DELETED accounts are tombstoned
|
|
60
|
+
// (renamed `deleted-<id>`, so the original username 404s anyway) and
|
|
61
|
+
// INVITED / REGISTERED placeholders never had a real profile — all stay hidden.
|
|
62
|
+
const isViewableUserStatus = (status) => status === User.STATUS_ACTIVE || status === User.STATUS_SUSPENDED;
|
|
53
63
|
// Every `/user/*` endpoint requires auth. Apply the middleware
|
|
54
64
|
// broadly so each route below sees `c.get('user')` populated. The
|
|
55
65
|
// member directory lives at the sibling path `/users` (plural), which
|
|
@@ -68,7 +78,7 @@ const registerUserRoutes = (app, crowi) => {
|
|
|
68
78
|
debug('getUserPage called with:', { username, currentUserId: currentUser._id });
|
|
69
79
|
try {
|
|
70
80
|
const targetUser = await User.findUserByUsername(username);
|
|
71
|
-
if (!targetUser || targetUser.status
|
|
81
|
+
if (!targetUser || !isViewableUserStatus(targetUser.status)) {
|
|
72
82
|
return c.json(USER_NOT_FOUND_BODY, 404);
|
|
73
83
|
}
|
|
74
84
|
const isViewingSelf = currentUser._id.equals(targetUser._id);
|
|
@@ -108,7 +118,7 @@ const registerUserRoutes = (app, crowi) => {
|
|
|
108
118
|
debug('getUserBookmarks called with:', { username, limit, offset, currentUserId: currentUser._id });
|
|
109
119
|
try {
|
|
110
120
|
const targetUser = await User.findUserByUsername(username);
|
|
111
|
-
if (!targetUser || targetUser.status
|
|
121
|
+
if (!targetUser || !isViewableUserStatus(targetUser.status)) {
|
|
112
122
|
return c.json(USER_NOT_FOUND_BODY, 404);
|
|
113
123
|
}
|
|
114
124
|
const bookmarkResult = await Bookmark.findByUserId(targetUser._id, { limit, offset });
|
|
@@ -135,7 +145,7 @@ const registerUserRoutes = (app, crowi) => {
|
|
|
135
145
|
debug('getUserPages called with:', { username, limit, offset, currentUserId: currentUser._id });
|
|
136
146
|
try {
|
|
137
147
|
const targetUser = await User.findUserByUsername(username);
|
|
138
|
-
if (!targetUser || targetUser.status
|
|
148
|
+
if (!targetUser || !isViewableUserStatus(targetUser.status)) {
|
|
139
149
|
return c.json(USER_NOT_FOUND_BODY, 404);
|
|
140
150
|
}
|
|
141
151
|
const rawPages = await Page.findListByCreator(targetUser, { limit, offset }, currentUser);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/hono/handlers/user.ts"],"names":[],"mappings":";;;;;;AAAA
|
|
1
|
+
{"version":3,"file":"user.js","sourceRoot":"","sources":["../../../src/hono/handlers/user.ts"],"names":[],"mappings":";;;;;;AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,sDAAmH;AAEnH,kDAA0B;AAK1B,0CAAyE;AACzE,0DAAuE;AACvE,0CAA8C;AAC9C,8DAAwI;AAGxI,6CAAmD;AACnD,+DAAyD;AAEzD,8CAAwD;AAExD,MAAM,KAAK,GAAG,IAAA,eAAK,EAAC,0BAA0B,CAAC,CAAC;AAEhD,MAAM,mBAAmB,GAAG;IAC1B,KAAK,EAAE,EAAE,IAAI,EAAE,gBAAyB,EAAE,OAAO,EAAE,gBAAyB,EAAE;CAC/E,CAAC;AAcF,MAAM,kBAAkB,GAAG,CAAC,QAAyC,EAAE,EAAE;IACvE,MAAM,GAAG,GACP,OAAQ,QAA6B,CAAC,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAE,QAA6B,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAE,QAAyB,CAAC;IACzI,OAAO;QACL,GAAG,EAAE,IAAA,4BAAU,EAAC,GAAG,CAAC,GAAG,CAAC;QACxB,IAAI,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,8BAAc,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI;QAChD,IAAI,EAAE,IAAA,iCAAe,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAU,EAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAA,4BAAU,EAAC,GAAG,CAAC,IAA+B,CAAC;QACxG,SAAS,EAAE,IAAA,mCAAiB,EAAC,GAAG,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;KACxE,CAAC;AACJ,CAAC,CAAC;AAEK,MAAM,kBAAkB,GAAG,CAA2C,GAAM,EAAE,KAAY,EAAE,EAAE;IACnG,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;IACjC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IAEzC,6EAA6E;IAC7E,4EAA4E;IAC5E,8EAA8E;IAC9E,0EAA0E;IAC1E,qEAAqE;IACrE,gFAAgF;IAChF,MAAM,oBAAoB,GAAG,CAAC,MAAc,EAAW,EAAE,CAAC,MAAM,KAAK,IAAI,CAAC,aAAa,IAAI,MAAM,KAAK,IAAI,CAAC,gBAAgB,CAAC;IAE5H,+DAA+D;IAC/D,kEAAkE;IAClE,sEAAsE;IACtE,2DAA2D;IAC3D,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,IAAA,oBAAa,EAAC,KAAK,CAAC,CAAC,CAAC;IACzC,GAAG,CAAC,GAAG,CAAC,QAAQ,EAAE,IAAA,oBAAa,EAAC,KAAK,CAAC,CAAC,CAAC;IAExC,oEAAoE;IACpE,IAAA,0BAAU,EAAC,GAAG,EAAE,+BAAgB,EAAE,cAAc,CAAC,CAAC;IAClD,IAAA,0BAAU,EAAC,GAAG,EAAE,oCAAqB,EAAE,cAAc,CAAC,CAAC;IACvD,IAAA,0BAAU,EAAC,GAAG,EAAE,gCAAiB,EAAE,cAAc,CAAC,CAAC;IACnD,IAAA,0BAAU,EAAC,GAAG,EAAE,+BAAgB,EAAE,cAAc,CAAC,CAAC;IAElD,OAAO,GAAG;SACP,OAAO,CAAC,+BAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE1C,KAAK,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhF,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;YAC7D,qDAAqD;YACrD,MAAM,mBAAmB,GAA4B;gBACnD,OAAO,EAAE,UAAU,CAAC,GAAG;gBACvB,UAAU,EAAE,IAAI;gBAChB,GAAG,EAAE,IAAA,0BAAmB,EAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;aAC1D,CAAC;YACF,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAChD,CAAC;YACD,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YACzE,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,cAAc,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC,CAAC;YAE/E,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;YACvG,MAAM,WAAW,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,cAAc,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAA8B,CAAC;YAE1I,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;YAC7F,MAAM,eAAe,GAAG,cAAc,CAAC,IAA0B,CAAC;YAElE,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,IAAI,EAAE,IAAA,8BAAY,EAAC,UAAU,CAAC;gBAC9B,iBAAiB;gBACjB,cAAc;gBACd,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8BAAc,EAAC,IAAI,CAAC,CAAC;gBAC5D,eAAe,EAAE,eAAe,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;aACrH,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,KAAK,CAAC,2BAA2B,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC/D,OAAO,CAAC,CAAC,IAAI,CAAC,4BAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CAAC,oCAAqB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QAC1C,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,KAAK,CAAC,+BAA+B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAEpG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,cAAc,GAAG,MAAM,QAAQ,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;YACtF,MAAM,SAAS,GAAG,cAAc,CAAC,IAA0B,CAAC;YAC5D,MAAM,KAAK,GAAG,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC;YAExC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,SAAS,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;gBACxG,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,KAAK;aACN,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,KAAK,CAAC,gCAAgC,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YACpE,OAAO,CAAC,CAAC,IAAI,CAAC,4BAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CAAC,gCAAiB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAClC,MAAM,EAAE,QAAQ,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAE/C,KAAK,CAAC,2BAA2B,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,aAAa,EAAE,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC;QAEhG,IAAI,CAAC;YACH,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CAAC,CAAC;YAC3D,IAAI,CAAC,UAAU,IAAI,CAAC,oBAAoB,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC,CAAC;YAC1C,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,WAAW,CAAC,CAAC;YAC1F,MAAM,KAAK,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC,CAA8B,CAAC;YAE9H,MAAM,mBAAmB,GAA4B;gBACnD,OAAO,EAAE,UAAU,CAAC,GAAG;gBACvB,UAAU,EAAE,IAAI;gBAChB,GAAG,EAAE,IAAA,0BAAmB,EAAC,WAAW,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC;aAC1D,CAAC;YACF,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;gBAC5C,mBAAmB,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC;YAChD,CAAC;YACD,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,mBAAmB,CAAC,CAAC;YAE7D,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAA,8BAAc,EAAC,IAAI,CAAC,CAAC;gBAChD,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,KAAK;aACN,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,KAAK,CAAC,4BAA4B,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAChE,OAAO,CAAC,CAAC,IAAI,CAAC,4BAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC;SACD,OAAO,CAAC,+BAAgB,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACrC,MAAM,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAElD,KAAK,CAAC,0BAA0B,EAAE,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;QAExD,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC;YAC1B,MAAM,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAA,oBAAY,EAAC,OAAO,CAAC,EAAE,QAAQ,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7E,MAAM,MAAM,GAA4B;gBACtC,MAAM,EAAE,IAAI,CAAC,aAAa;gBAC1B,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACzD,CAAC;YAEF,0DAA0D;YAC1D,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;gBACvC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC;gBAC3B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;qBACd,MAAM,CAAC,qBAAqB,CAAC;oBAC9B,gEAAgE;oBAChE,kEAAkE;oBAClE,kEAAkE;oBAClE,yDAAyD;qBACxD,SAAS,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;qBACxC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;qBAC9B,IAAI,CAAC,MAAM,CAAC;qBACZ,KAAK,CAAC,KAAK,CAAC;qBACZ,IAAI,EAA6G;aACrH,CAAC,CAAC;YAEH,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAC7D,MAAM,IAAI,GAAG,MAAM,GAAG,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,OAAO,CAAC,CAAC,IAAI,CACX;gBACE,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;oBACvB,GAAG,EAAE,IAAA,4BAAU,EAAC,CAAC,CAAC,GAAG,CAAC;oBACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,IAAI,EAAE,CAAC,CAAC,IAAI;oBACZ,KAAK,EAAE,CAAC,CAAC,KAAK,IAAI,IAAI;iBACvB,CAAC,CAAC;gBACH,KAAK,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE;gBAC7B,KAAK;aACN,EACD,GAAG,CACJ,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,KAAK,GAAG,GAAY,CAAC;YAC3B,KAAK,CAAC,wBAAwB,EAAE,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;YAC5D,OAAO,CAAC,CAAC,IAAI,CAAC,4BAAmB,EAAE,GAAG,CAAC,CAAC;QAC1C,CAAC;IACH,CAAC,CAAC,CAAC;AACP,CAAC,CAAC;AA1MW,QAAA,kBAAkB,sBA0M7B"}
|