@intlayer/backend-contract 0.0.0-stage → 9.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +330 -2
- package/dist/cjs/ai.cjs +267 -0
- package/dist/cjs/ai.cjs.map +1 -0
- package/dist/cjs/analytics.cjs +175 -0
- package/dist/cjs/analytics.cjs.map +1 -0
- package/dist/cjs/asset.cjs +88 -0
- package/dist/cjs/asset.cjs.map +1 -0
- package/dist/cjs/blogComment.cjs +98 -0
- package/dist/cjs/blogComment.cjs.map +1 -0
- package/dist/cjs/cliSessionToken.cjs +40 -0
- package/dist/cjs/cliSessionToken.cjs.map +1 -0
- package/dist/cjs/common.cjs +42 -0
- package/dist/cjs/common.cjs.map +1 -0
- package/dist/cjs/defineRoute.cjs +26 -0
- package/dist/cjs/defineRoute.cjs.map +1 -0
- package/dist/cjs/demo.cjs +22 -0
- package/dist/cjs/demo.cjs.map +1 -0
- package/dist/cjs/dictionary.cjs +168 -0
- package/dist/cjs/dictionary.cjs.map +1 -0
- package/dist/cjs/environment.cjs +91 -0
- package/dist/cjs/environment.cjs.map +1 -0
- package/dist/cjs/eventListener.cjs +19 -0
- package/dist/cjs/eventListener.cjs.map +1 -0
- package/dist/cjs/gitProviders.cjs +361 -0
- package/dist/cjs/gitProviders.cjs.map +1 -0
- package/dist/cjs/newsletter.cjs +50 -0
- package/dist/cjs/newsletter.cjs.map +1 -0
- package/dist/cjs/oAuth2.cjs +62 -0
- package/dist/cjs/oAuth2.cjs.map +1 -0
- package/dist/cjs/organization.cjs +226 -0
- package/dist/cjs/organization.cjs.map +1 -0
- package/dist/cjs/project.cjs +401 -0
- package/dist/cjs/project.cjs.map +1 -0
- package/dist/cjs/public.cjs +60 -0
- package/dist/cjs/public.cjs.map +1 -0
- package/dist/cjs/responseData.cjs +33 -0
- package/dist/cjs/responseData.cjs.map +1 -0
- package/dist/cjs/reviewer.cjs +401 -0
- package/dist/cjs/reviewer.cjs.map +1 -0
- package/dist/cjs/scan.cjs +235 -0
- package/dist/cjs/scan.cjs.map +1 -0
- package/dist/cjs/search.cjs +40 -0
- package/dist/cjs/search.cjs.map +1 -0
- package/dist/cjs/session.cjs +56 -0
- package/dist/cjs/session.cjs.map +1 -0
- package/dist/cjs/showcaseProject.cjs +185 -0
- package/dist/cjs/showcaseProject.cjs.map +1 -0
- package/dist/cjs/stripe.cjs +388 -0
- package/dist/cjs/stripe.cjs.map +1 -0
- package/dist/cjs/tag.cjs +83 -0
- package/dist/cjs/tag.cjs.map +1 -0
- package/dist/cjs/translation.cjs +54 -0
- package/dist/cjs/translation.cjs.map +1 -0
- package/dist/cjs/user.cjs +153 -0
- package/dist/cjs/user.cjs.map +1 -0
- package/dist/esm/ai.mjs +261 -0
- package/dist/esm/ai.mjs.map +1 -0
- package/dist/esm/analytics.mjs +168 -0
- package/dist/esm/analytics.mjs.map +1 -0
- package/dist/esm/asset.mjs +86 -0
- package/dist/esm/asset.mjs.map +1 -0
- package/dist/esm/blogComment.mjs +94 -0
- package/dist/esm/blogComment.mjs.map +1 -0
- package/dist/esm/cliSessionToken.mjs +39 -0
- package/dist/esm/cliSessionToken.mjs.map +1 -0
- package/dist/esm/common.mjs +35 -0
- package/dist/esm/common.mjs.map +1 -0
- package/dist/esm/defineRoute.mjs +23 -0
- package/dist/esm/defineRoute.mjs.map +1 -0
- package/dist/esm/demo.mjs +21 -0
- package/dist/esm/demo.mjs.map +1 -0
- package/dist/esm/dictionary.mjs +163 -0
- package/dist/esm/dictionary.mjs.map +1 -0
- package/dist/esm/environment.mjs +90 -0
- package/dist/esm/environment.mjs.map +1 -0
- package/dist/esm/eventListener.mjs +18 -0
- package/dist/esm/eventListener.mjs.map +1 -0
- package/dist/esm/gitProviders.mjs +352 -0
- package/dist/esm/gitProviders.mjs.map +1 -0
- package/dist/esm/newsletter.mjs +49 -0
- package/dist/esm/newsletter.mjs.map +1 -0
- package/dist/esm/oAuth2.mjs +60 -0
- package/dist/esm/oAuth2.mjs.map +1 -0
- package/dist/esm/organization.mjs +219 -0
- package/dist/esm/organization.mjs.map +1 -0
- package/dist/esm/project.mjs +387 -0
- package/dist/esm/project.mjs.map +1 -0
- package/dist/esm/public.mjs +58 -0
- package/dist/esm/public.mjs.map +1 -0
- package/dist/esm/responseData.mjs +30 -0
- package/dist/esm/responseData.mjs.map +1 -0
- package/dist/esm/reviewer.mjs +390 -0
- package/dist/esm/reviewer.mjs.map +1 -0
- package/dist/esm/scan.mjs +225 -0
- package/dist/esm/scan.mjs.map +1 -0
- package/dist/esm/search.mjs +38 -0
- package/dist/esm/search.mjs.map +1 -0
- package/dist/esm/session.mjs +53 -0
- package/dist/esm/session.mjs.map +1 -0
- package/dist/esm/showcaseProject.mjs +182 -0
- package/dist/esm/showcaseProject.mjs.map +1 -0
- package/dist/esm/stripe.mjs +379 -0
- package/dist/esm/stripe.mjs.map +1 -0
- package/dist/esm/tag.mjs +81 -0
- package/dist/esm/tag.mjs.map +1 -0
- package/dist/esm/translation.mjs +53 -0
- package/dist/esm/translation.mjs.map +1 -0
- package/dist/esm/user.mjs +149 -0
- package/dist/esm/user.mjs.map +1 -0
- package/dist/types/ai.d.ts +549 -0
- package/dist/types/ai.d.ts.map +1 -0
- package/dist/types/analytics.d.ts +378 -0
- package/dist/types/analytics.d.ts.map +1 -0
- package/dist/types/asset.d.ts +207 -0
- package/dist/types/asset.d.ts.map +1 -0
- package/dist/types/blogComment.d.ts +241 -0
- package/dist/types/blogComment.d.ts.map +1 -0
- package/dist/types/cliSessionToken.d.ts +263 -0
- package/dist/types/cliSessionToken.d.ts.map +1 -0
- package/dist/types/common.d.ts +32 -0
- package/dist/types/common.d.ts.map +1 -0
- package/dist/types/defineRoute.d.ts +57 -0
- package/dist/types/defineRoute.d.ts.map +1 -0
- package/dist/types/demo.d.ts +21 -0
- package/dist/types/demo.d.ts.map +1 -0
- package/dist/types/dictionary.d.ts +360 -0
- package/dist/types/dictionary.d.ts.map +1 -0
- package/dist/types/environment.d.ts +284 -0
- package/dist/types/environment.d.ts.map +1 -0
- package/dist/types/eventListener.d.ts +17 -0
- package/dist/types/eventListener.d.ts.map +1 -0
- package/dist/types/gitProviders.d.ts +807 -0
- package/dist/types/gitProviders.d.ts.map +1 -0
- package/dist/types/newsletter.d.ts +165 -0
- package/dist/types/newsletter.d.ts.map +1 -0
- package/dist/types/oAuth2.d.ts +481 -0
- package/dist/types/oAuth2.d.ts.map +1 -0
- package/dist/types/organization.d.ts +1069 -0
- package/dist/types/organization.d.ts.map +1 -0
- package/dist/types/project.d.ts +1735 -0
- package/dist/types/project.d.ts.map +1 -0
- package/dist/types/public.d.ts +109 -0
- package/dist/types/public.d.ts.map +1 -0
- package/dist/types/responseData.d.ts +68 -0
- package/dist/types/responseData.d.ts.map +1 -0
- package/dist/types/reviewer.d.ts +1239 -0
- package/dist/types/reviewer.d.ts.map +1 -0
- package/dist/types/scan.d.ts +625 -0
- package/dist/types/scan.d.ts.map +1 -0
- package/dist/types/search.d.ts +55 -0
- package/dist/types/search.d.ts.map +1 -0
- package/dist/types/session.d.ts +286 -0
- package/dist/types/session.d.ts.map +1 -0
- package/dist/types/showcaseProject.d.ts +550 -0
- package/dist/types/showcaseProject.d.ts.map +1 -0
- package/dist/types/stripe.d.ts +1219 -0
- package/dist/types/stripe.d.ts.map +1 -0
- package/dist/types/tag.d.ts +193 -0
- package/dist/types/tag.d.ts.map +1 -0
- package/dist/types/translation.d.ts +162 -0
- package/dist/types/translation.d.ts.map +1 -0
- package/dist/types/user.d.ts +447 -0
- package/dist/types/user.d.ts.map +1 -0
- package/package.json +300 -4
|
@@ -0,0 +1,149 @@
|
|
|
1
|
+
import { defineRoute, defineRouteGroup } from "./defineRoute.mjs";
|
|
2
|
+
import { paginatedResponseSchema, responseDataSchema } from "./responseData.mjs";
|
|
3
|
+
import { dateTimeSchema, objectIdSchema, paginationQueryShape, repeatableQueryValueSchema } from "./common.mjs";
|
|
4
|
+
import { z } from "zod/mini";
|
|
5
|
+
|
|
6
|
+
//#region src/user.ts
|
|
7
|
+
/** Mailing lists a user can subscribe to. */
|
|
8
|
+
const emailsListSchema = z.enum(["newsLetter"]);
|
|
9
|
+
/** Mailing list names, usable as values (`EmailsList.NEWS_LETTER`). */
|
|
10
|
+
const EmailsList = { NEWS_LETTER: "newsLetter" };
|
|
11
|
+
/** User as returned by the API (auth provider and session internals stripped). */
|
|
12
|
+
const userSchema = z.looseObject({
|
|
13
|
+
id: z.string(),
|
|
14
|
+
email: z.string(),
|
|
15
|
+
emailVerified: z.boolean(),
|
|
16
|
+
name: z.string(),
|
|
17
|
+
image: z.optional(z.nullable(z.string())),
|
|
18
|
+
phone: z.optional(z.string()),
|
|
19
|
+
dateOfBirth: z.optional(dateTimeSchema),
|
|
20
|
+
emailsList: z.optional(z.partialRecord(emailsListSchema, z.boolean())),
|
|
21
|
+
/** Stripe customer id. */
|
|
22
|
+
customerId: z.optional(z.string()),
|
|
23
|
+
role: z.optional(z.nullable(z.string())),
|
|
24
|
+
lastLoginMethod: z.optional(z.enum([
|
|
25
|
+
"email",
|
|
26
|
+
"google",
|
|
27
|
+
"github",
|
|
28
|
+
"passkey"
|
|
29
|
+
])),
|
|
30
|
+
lang: z.optional(z.string()),
|
|
31
|
+
lastActiveOrganizationId: z.optional(z.nullable(z.string())),
|
|
32
|
+
lastActiveProjectId: z.optional(z.nullable(z.string())),
|
|
33
|
+
createdAt: dateTimeSchema,
|
|
34
|
+
updatedAt: dateTimeSchema
|
|
35
|
+
});
|
|
36
|
+
const userIdParamsSchema = z.object({ userId: objectIdSchema });
|
|
37
|
+
/** REST contract of the `/api/user` routes. */
|
|
38
|
+
const userContract = defineRouteGroup({
|
|
39
|
+
prefix: "/api/user",
|
|
40
|
+
tag: "User",
|
|
41
|
+
routes: {
|
|
42
|
+
getSetupStatus: defineRoute({
|
|
43
|
+
method: "GET",
|
|
44
|
+
path: "/setup",
|
|
45
|
+
summary: "Whether the instance still needs its first admin (self-hosted)",
|
|
46
|
+
schemas: { response: { 200: responseDataSchema(z.object({ isSetupRequired: z.boolean() })) } }
|
|
47
|
+
}),
|
|
48
|
+
getUsers: defineRoute({
|
|
49
|
+
method: "GET",
|
|
50
|
+
path: "/",
|
|
51
|
+
summary: "List users (organization members, or all for admins)",
|
|
52
|
+
schemas: {
|
|
53
|
+
querystring: z.looseObject({
|
|
54
|
+
...paginationQueryShape,
|
|
55
|
+
ids: z.optional(repeatableQueryValueSchema),
|
|
56
|
+
firstName: z.optional(z.string()),
|
|
57
|
+
lastName: z.optional(z.string()),
|
|
58
|
+
email: z.optional(z.string()),
|
|
59
|
+
emailVerified: z.optional(z.string()),
|
|
60
|
+
role: z.optional(z.string()),
|
|
61
|
+
search: z.optional(z.string()),
|
|
62
|
+
sortBy: z.optional(z.string()),
|
|
63
|
+
sortOrder: z.optional(z.string()),
|
|
64
|
+
/** Admin only: list every user. */
|
|
65
|
+
fetchAll: z.optional(z.enum(["true", "false"]))
|
|
66
|
+
}),
|
|
67
|
+
response: { 200: paginatedResponseSchema(userSchema) }
|
|
68
|
+
}
|
|
69
|
+
}),
|
|
70
|
+
updateUser: defineRoute({
|
|
71
|
+
method: "PUT",
|
|
72
|
+
path: "/",
|
|
73
|
+
summary: "Update a user profile",
|
|
74
|
+
schemas: {
|
|
75
|
+
/**
|
|
76
|
+
* Allow-list. `role`, `emailVerified` and `email` are honoured for
|
|
77
|
+
* admins only (users change their email through the verified auth
|
|
78
|
+
* flow). A new `email` is unverified unless `emailVerified` is sent.
|
|
79
|
+
*/
|
|
80
|
+
body: z.object({
|
|
81
|
+
id: objectIdSchema,
|
|
82
|
+
name: z.optional(z.string().check(z.minLength(1))),
|
|
83
|
+
email: z.optional(z.string().check(z.email())),
|
|
84
|
+
phone: z.optional(z.string()),
|
|
85
|
+
image: z.optional(z.nullable(z.string())),
|
|
86
|
+
lang: z.optional(z.string()),
|
|
87
|
+
emailVerified: z.optional(z.boolean()),
|
|
88
|
+
role: z.optional(z.nullable(z.string()))
|
|
89
|
+
}),
|
|
90
|
+
response: { 200: responseDataSchema(userSchema) }
|
|
91
|
+
}
|
|
92
|
+
}),
|
|
93
|
+
createUser: defineRoute({
|
|
94
|
+
method: "POST",
|
|
95
|
+
path: "/",
|
|
96
|
+
summary: "Admin only: create a user (sign-up goes through auth)",
|
|
97
|
+
schemas: {
|
|
98
|
+
body: z.object({
|
|
99
|
+
email: z.string().check(z.minLength(1)),
|
|
100
|
+
name: z.optional(z.string())
|
|
101
|
+
}),
|
|
102
|
+
response: { 200: responseDataSchema(userSchema) }
|
|
103
|
+
}
|
|
104
|
+
}),
|
|
105
|
+
getUserById: defineRoute({
|
|
106
|
+
method: "GET",
|
|
107
|
+
path: "/:userId",
|
|
108
|
+
summary: "Get a user",
|
|
109
|
+
schemas: {
|
|
110
|
+
params: userIdParamsSchema,
|
|
111
|
+
response: { 200: responseDataSchema(userSchema) }
|
|
112
|
+
}
|
|
113
|
+
}),
|
|
114
|
+
getUserByEmail: defineRoute({
|
|
115
|
+
method: "GET",
|
|
116
|
+
path: "/email/:email",
|
|
117
|
+
summary: "Get a user by email",
|
|
118
|
+
schemas: {
|
|
119
|
+
params: z.object({ email: z.string().check(z.minLength(1)) }),
|
|
120
|
+
response: { 200: responseDataSchema(userSchema) }
|
|
121
|
+
}
|
|
122
|
+
}),
|
|
123
|
+
deleteUser: defineRoute({
|
|
124
|
+
method: "DELETE",
|
|
125
|
+
path: "/:userId",
|
|
126
|
+
summary: "Delete a user",
|
|
127
|
+
schemas: {
|
|
128
|
+
params: userIdParamsSchema,
|
|
129
|
+
response: { 200: responseDataSchema(userSchema) }
|
|
130
|
+
}
|
|
131
|
+
}),
|
|
132
|
+
verifyEmailStatusSSE: defineRoute({
|
|
133
|
+
method: "GET",
|
|
134
|
+
path: "/verify-email-status/:userId",
|
|
135
|
+
summary: "Email verification status (server-sent events stream)",
|
|
136
|
+
schemas: { params: userIdParamsSchema }
|
|
137
|
+
}),
|
|
138
|
+
uploadAvatar: defineRoute({
|
|
139
|
+
method: "POST",
|
|
140
|
+
path: "/avatar",
|
|
141
|
+
summary: "Upload the avatar of the signed-in user (raw image body)",
|
|
142
|
+
schemas: { response: { 200: responseDataSchema(userSchema) } }
|
|
143
|
+
})
|
|
144
|
+
}
|
|
145
|
+
});
|
|
146
|
+
|
|
147
|
+
//#endregion
|
|
148
|
+
export { EmailsList, emailsListSchema, userContract, userSchema };
|
|
149
|
+
//# sourceMappingURL=user.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user.mjs","names":[],"sources":["../../src/user.ts"],"sourcesContent":["import { z } from 'zod/mini';\nimport {\n dateTimeSchema,\n objectIdSchema,\n paginationQueryShape,\n repeatableQueryValueSchema,\n} from './common';\nimport {\n defineRoute,\n defineRouteGroup,\n type RouteBodyInput,\n type RouteParams,\n type RouteQuerystring,\n} from './defineRoute';\nimport {\n type PaginatedResponse,\n paginatedResponseSchema,\n type ResponseData,\n responseDataSchema,\n} from './responseData';\n\n/** Mailing lists a user can subscribe to. */\nexport const emailsListSchema = z.enum(['newsLetter']);\n\n/** Mailing list names, usable as values (`EmailsList.NEWS_LETTER`). */\nexport const EmailsList = { NEWS_LETTER: 'newsLetter' } as const;\nexport type EmailsList = z.output<typeof emailsListSchema>;\n\n/** User as returned by the API (auth provider and session internals stripped). */\nexport const userSchema = z.looseObject({\n id: z.string(),\n email: z.string(),\n emailVerified: z.boolean(),\n name: z.string(),\n image: z.optional(z.nullable(z.string())),\n phone: z.optional(z.string()),\n dateOfBirth: z.optional(dateTimeSchema),\n emailsList: z.optional(z.partialRecord(emailsListSchema, z.boolean())),\n /** Stripe customer id. */\n customerId: z.optional(z.string()),\n role: z.optional(z.nullable(z.string())),\n lastLoginMethod: z.optional(z.enum(['email', 'google', 'github', 'passkey'])),\n lang: z.optional(z.string()),\n lastActiveOrganizationId: z.optional(z.nullable(z.string())),\n lastActiveProjectId: z.optional(z.nullable(z.string())),\n createdAt: dateTimeSchema,\n updatedAt: dateTimeSchema,\n});\n\nexport type UserAPI = z.output<typeof userSchema>;\n\nconst userIdParamsSchema = z.object({ userId: objectIdSchema });\n\n/** REST contract of the `/api/user` routes. */\nexport const userContract = defineRouteGroup({\n prefix: '/api/user',\n tag: 'User',\n routes: {\n getSetupStatus: defineRoute({\n method: 'GET',\n path: '/setup',\n summary: 'Whether the instance still needs its first admin (self-hosted)',\n schemas: {\n response: {\n 200: responseDataSchema(z.object({ isSetupRequired: z.boolean() })),\n },\n },\n }),\n getUsers: defineRoute({\n method: 'GET',\n path: '/',\n summary: 'List users (organization members, or all for admins)',\n schemas: {\n querystring: z.looseObject({\n ...paginationQueryShape,\n ids: z.optional(repeatableQueryValueSchema),\n firstName: z.optional(z.string()),\n lastName: z.optional(z.string()),\n email: z.optional(z.string()),\n emailVerified: z.optional(z.string()),\n role: z.optional(z.string()),\n search: z.optional(z.string()),\n sortBy: z.optional(z.string()),\n sortOrder: z.optional(z.string()),\n /** Admin only: list every user. */\n fetchAll: z.optional(z.enum(['true', 'false'])),\n }),\n response: { 200: paginatedResponseSchema(userSchema) },\n },\n }),\n updateUser: defineRoute({\n method: 'PUT',\n path: '/',\n summary: 'Update a user profile',\n schemas: {\n /**\n * Allow-list. `role`, `emailVerified` and `email` are honoured for\n * admins only (users change their email through the verified auth\n * flow). A new `email` is unverified unless `emailVerified` is sent.\n */\n body: z.object({\n id: objectIdSchema,\n name: z.optional(z.string().check(z.minLength(1))),\n email: z.optional(z.string().check(z.email())),\n phone: z.optional(z.string()),\n image: z.optional(z.nullable(z.string())),\n lang: z.optional(z.string()),\n emailVerified: z.optional(z.boolean()),\n role: z.optional(z.nullable(z.string())),\n }),\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n createUser: defineRoute({\n method: 'POST',\n path: '/',\n summary: 'Admin only: create a user (sign-up goes through auth)',\n schemas: {\n body: z.object({\n email: z.string().check(z.minLength(1)),\n name: z.optional(z.string()),\n }),\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n getUserById: defineRoute({\n method: 'GET',\n path: '/:userId',\n summary: 'Get a user',\n schemas: {\n params: userIdParamsSchema,\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n getUserByEmail: defineRoute({\n method: 'GET',\n path: '/email/:email',\n summary: 'Get a user by email',\n schemas: {\n params: z.object({ email: z.string().check(z.minLength(1)) }),\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n deleteUser: defineRoute({\n method: 'DELETE',\n path: '/:userId',\n summary: 'Delete a user',\n schemas: {\n params: userIdParamsSchema,\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n verifyEmailStatusSSE: defineRoute({\n method: 'GET',\n path: '/verify-email-status/:userId',\n summary: 'Email verification status (server-sent events stream)',\n schemas: {\n params: userIdParamsSchema,\n },\n }),\n uploadAvatar: defineRoute({\n method: 'POST',\n path: '/avatar',\n summary: 'Upload the avatar of the signed-in user (raw image body)',\n schemas: {\n response: { 200: responseDataSchema(userSchema) },\n },\n }),\n },\n});\n\n/** Route definitions of the `/api/user` group, by name. */\nexport type UserRoutes = (typeof userContract)['routes'];\n\nexport type GetSetupStatusResult = ResponseData<{ isSetupRequired: boolean }>;\nexport type GetUsersParams = RouteQuerystring<UserRoutes['getUsers']>;\nexport type GetUsersResult = PaginatedResponse<UserAPI>;\nexport type UpdateUserBody = RouteBodyInput<UserRoutes['updateUser']>;\nexport type UpdateUserResult = ResponseData<UserAPI>;\nexport type CreateUserBody = RouteBodyInput<UserRoutes['createUser']>;\nexport type CreateUserResult = ResponseData<UserAPI>;\nexport type GetUserByIdParams = RouteParams<UserRoutes['getUserById']>;\nexport type GetUserByIdResult = ResponseData<UserAPI>;\nexport type GetUserByEmailParams = RouteParams<UserRoutes['getUserByEmail']>;\nexport type GetUserByEmailResult = ResponseData<UserAPI>;\nexport type DeleteUserParams = RouteParams<UserRoutes['deleteUser']>;\nexport type DeleteUserResult = ResponseData<UserAPI>;\nexport type UploadUserAvatarResult = ResponseData<UserAPI>;\n"],"mappings":";;;;;;;AAsBA,MAAa,mBAAmB,EAAE,KAAK,CAAC,YAAY,CAAC;;AAGrD,MAAa,aAAa,EAAE,aAAa,aAAa;;AAItD,MAAa,aAAa,EAAE,YAAY;CACtC,IAAI,EAAE,OAAO;CACb,OAAO,EAAE,OAAO;CAChB,eAAe,EAAE,QAAQ;CACzB,MAAM,EAAE,OAAO;CACf,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;CACxC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;CAC5B,aAAa,EAAE,SAAS,cAAc;CACtC,YAAY,EAAE,SAAS,EAAE,cAAc,kBAAkB,EAAE,QAAQ,CAAC,CAAC;;CAErE,YAAY,EAAE,SAAS,EAAE,OAAO,CAAC;CACjC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;CACvC,iBAAiB,EAAE,SAAS,EAAE,KAAK;EAAC;EAAS;EAAU;EAAU;CAAS,CAAC,CAAC;CAC5E,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;CAC3B,0BAA0B,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;CAC3D,qBAAqB,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;CACtD,WAAW;CACX,WAAW;AACb,CAAC;AAID,MAAM,qBAAqB,EAAE,OAAO,EAAE,QAAQ,eAAe,CAAC;;AAG9D,MAAa,eAAe,iBAAiB;CAC3C,QAAQ;CACR,KAAK;CACL,QAAQ;EACN,gBAAgB,YAAY;GAC1B,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS,EACP,UAAU,EACR,KAAK,mBAAmB,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,CAAC,CAAC,EACpE,EACF;EACF,CAAC;EACD,UAAU,YAAY;GACpB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;IACP,aAAa,EAAE,YAAY;KACzB,GAAG;KACH,KAAK,EAAE,SAAS,0BAA0B;KAC1C,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;KAChC,UAAU,EAAE,SAAS,EAAE,OAAO,CAAC;KAC/B,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;KAC5B,eAAe,EAAE,SAAS,EAAE,OAAO,CAAC;KACpC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3B,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;KAC7B,QAAQ,EAAE,SAAS,EAAE,OAAO,CAAC;KAC7B,WAAW,EAAE,SAAS,EAAE,OAAO,CAAC;;KAEhC,UAAU,EAAE,SAAS,EAAE,KAAK,CAAC,QAAQ,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,UAAU,EAAE,KAAK,wBAAwB,UAAU,EAAE;GACvD;EACF,CAAC;EACD,YAAY,YAAY;GACtB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;;;;;;IAMP,MAAM,EAAE,OAAO;KACb,IAAI;KACJ,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;KACjD,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC7C,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC;KAC5B,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;KACxC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;KAC3B,eAAe,EAAE,SAAS,EAAE,QAAQ,CAAC;KACrC,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IACzC,CAAC;IACD,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE;GAClD;EACF,CAAC;EACD,YAAY,YAAY;GACtB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;IACP,MAAM,EAAE,OAAO;KACb,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;KACtC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC;IAC7B,CAAC;IACD,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE;GAClD;EACF,CAAC;EACD,aAAa,YAAY;GACvB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;IACP,QAAQ;IACR,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE;GAClD;EACF,CAAC;EACD,gBAAgB,YAAY;GAC1B,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;IACP,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC;IAC5D,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE;GAClD;EACF,CAAC;EACD,YAAY,YAAY;GACtB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS;IACP,QAAQ;IACR,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE;GAClD;EACF,CAAC;EACD,sBAAsB,YAAY;GAChC,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS,EACP,QAAQ,mBACV;EACF,CAAC;EACD,cAAc,YAAY;GACxB,QAAQ;GACR,MAAM;GACN,SAAS;GACT,SAAS,EACP,UAAU,EAAE,KAAK,mBAAmB,UAAU,EAAE,EAClD;EACF,CAAC;CACH;AACF,CAAC"}
|