@lokalise/projects-engine-contracts 8.1.0 → 9.0.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 +11 -4
- package/dist/apiContracts/projectsContracts.d.ts +2 -62
- package/dist/apiContracts/projectsContracts.js +3 -18
- package/dist/apiContracts/projectsContracts.js.map +1 -1
- package/dist/schemas/projectSchemas.d.ts +0 -57
- package/dist/schemas/projectSchemas.js +0 -9
- package/dist/schemas/projectSchemas.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -6,12 +6,19 @@ Shared API contracts and domain schemas for the Projects Engine service.
|
|
|
6
6
|
|
|
7
7
|
### `src/apiContracts/`
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
Typed route contracts built with `@lokalise/api-contracts`, one file per resource:
|
|
10
|
+
`projectsContracts.ts` (`getProjectsContract`, `getProjectContract`, `patchProjectContract`,
|
|
11
|
+
`deleteProjectContract`), plus `languageContracts.ts`, `projectSettingsContracts.ts`,
|
|
12
|
+
`translationSettingsContracts.ts`, `defaultReviewersContracts.ts` and `contributorsContracts.ts`.
|
|
11
13
|
|
|
12
|
-
### `src/
|
|
14
|
+
### `src/schemas/`
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
The Zod schemas those contracts are assembled from — `projectSchemas.ts` (`PROJECT_SCHEMA`,
|
|
17
|
+
`GET_PROJECTS_QUERY_SCHEMA` with `limit`/`after`, `PROJECTS_DEFAULT_LIMIT`, `PROJECTS_MAX_LIMIT`),
|
|
18
|
+
`domainSchemas.ts`, `pathParamsSchemas.ts`, and one file per resource alongside them.
|
|
19
|
+
|
|
20
|
+
The project collection is cursor-paginated: `getProjectsContract` responds with the shared
|
|
21
|
+
`@lokalise/api-common` envelope (`data` array plus `meta: { count, cursor, hasMore }`).
|
|
15
22
|
|
|
16
23
|
## Publishing
|
|
17
24
|
|
|
@@ -99,71 +99,11 @@ export declare const patchProjectContract: import("@lokalise/api-contracts").Pay
|
|
|
99
99
|
authorization: import("zod").ZodString;
|
|
100
100
|
'content-type': import("zod").ZodOptional<import("zod").ZodString>;
|
|
101
101
|
}, import("zod/v4/core").$strip>, undefined, false, false, undefined>;
|
|
102
|
-
/**
|
|
103
|
-
* Public API router definition for getting the list of projects for a given workspace
|
|
104
|
-
*
|
|
105
|
-
* @deprecated Use `getProjectsContract` instead. This route puts a verb in the URL and returns an
|
|
106
|
-
* unpaginated list; both are replaced by `GET /v1/workspaces/{workspaceId}/projects`.
|
|
107
|
-
*/
|
|
108
|
-
export declare const getProjectsListContract: import("@lokalise/api-contracts").GetRouteDefinition<import("zod").ZodObject<{
|
|
109
|
-
data: import("zod").ZodObject<{
|
|
110
|
-
projects: import("zod").ZodArray<import("zod").ZodObject<{
|
|
111
|
-
projectId: import("zod").ZodString;
|
|
112
|
-
uuid: import("zod").ZodGUID;
|
|
113
|
-
name: import("zod").ZodString;
|
|
114
|
-
description: import("zod").ZodString;
|
|
115
|
-
baseLanguage: import("zod").ZodObject<{
|
|
116
|
-
projectLanguageId: import("zod").ZodNumber;
|
|
117
|
-
languageId: import("zod").ZodNumber;
|
|
118
|
-
languageIso: import("zod").ZodString;
|
|
119
|
-
projectLanguageUuid: import("zod").ZodGUID;
|
|
120
|
-
}, import("zod/v4/core").$strip>;
|
|
121
|
-
targetLanguages: import("zod").ZodArray<import("zod").ZodObject<{
|
|
122
|
-
projectLanguageId: import("zod").ZodNumber;
|
|
123
|
-
languageId: import("zod").ZodNumber;
|
|
124
|
-
languageIso: import("zod").ZodString;
|
|
125
|
-
projectLanguageUuid: import("zod").ZodGUID;
|
|
126
|
-
}, import("zod/v4/core").$strip>>;
|
|
127
|
-
translationSettings: import("zod").ZodIntersection<import("zod").ZodUnion<readonly [import("zod").ZodObject<{
|
|
128
|
-
workflowType: import("zod").ZodIntersection<import("zod").ZodEnum<{
|
|
129
|
-
readonly AI_ONLY: 'AI_ONLY';
|
|
130
|
-
readonly AI_HUMAN_REVIEW: 'AI_HUMAN_REVIEW';
|
|
131
|
-
}>, import("zod").ZodLiteral<"AI_HUMAN_REVIEW">>;
|
|
132
|
-
reviewThreshold: import("zod").ZodEnum<{
|
|
133
|
-
readonly FULL_REVIEW: 'FULL_REVIEW';
|
|
134
|
-
readonly CRITICAL_MAJOR_MINOR: 'CRITICAL_MAJOR_MINOR';
|
|
135
|
-
readonly CRITICAL_MAJOR: 'CRITICAL_MAJOR';
|
|
136
|
-
readonly CRITICAL: 'CRITICAL';
|
|
137
|
-
}>;
|
|
138
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
139
|
-
workflowType: import("zod").ZodIntersection<import("zod").ZodEnum<{
|
|
140
|
-
readonly AI_ONLY: 'AI_ONLY';
|
|
141
|
-
readonly AI_HUMAN_REVIEW: 'AI_HUMAN_REVIEW';
|
|
142
|
-
}>, import("zod").ZodLiteral<"AI_ONLY">>;
|
|
143
|
-
reviewThreshold: import("zod").ZodNull;
|
|
144
|
-
}, import("zod/v4/core").$strip>]>, import("zod").ZodObject<{
|
|
145
|
-
reviewTurnaroundDays: import("zod").ZodNumber;
|
|
146
|
-
}, import("zod/v4/core").$strip>>;
|
|
147
|
-
contentSourceType: import("zod").ZodNullable<import("zod").ZodString>;
|
|
148
|
-
contentSourceName: import("zod").ZodOptional<import("zod").ZodNullable<import("zod").ZodString>>;
|
|
149
|
-
projectType: import("zod").ZodString;
|
|
150
|
-
}, import("zod/v4/core").$strip>>;
|
|
151
|
-
}, import("zod/v4/core").$strip>;
|
|
152
|
-
meta: import("zod").ZodObject<{
|
|
153
|
-
count: import("zod").ZodNumber;
|
|
154
|
-
}, import("zod/v4/core").$strip>;
|
|
155
|
-
}, import("zod/v4/core").$strip>, import("zod").ZodObject<{
|
|
156
|
-
workspaceId: import("zod").ZodGUID;
|
|
157
|
-
}, import("zod/v4/core").$strip>, undefined, import("zod").ZodObject<{
|
|
158
|
-
authorization: import("zod").ZodString;
|
|
159
|
-
'content-type': import("zod").ZodOptional<import("zod").ZodString>;
|
|
160
|
-
}, import("zod/v4/core").$strip>, undefined, false, false, undefined>;
|
|
161
102
|
/**
|
|
162
103
|
* Public API router definition for reading the projects collection of a workspace.
|
|
163
104
|
*
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* cursor-paginated, returning the cursor as `meta.cursor`.
|
|
105
|
+
* The path carries no verb, so this and `GET .../projects/{projectId}` read as a
|
|
106
|
+
* collection/member pair, and the response is cursor-paginated with the cursor at `meta.cursor`.
|
|
167
107
|
*/
|
|
168
108
|
export declare const getProjectsContract: import("@lokalise/api-contracts").GetRouteDefinition<import("zod").ZodObject<{
|
|
169
109
|
data: import("zod").ZodArray<import("zod").ZodObject<{
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { buildRestContract } from '@lokalise/api-contracts';
|
|
2
2
|
import { AUTH_HEADERS } from '../schemas/domainSchemas.js';
|
|
3
|
-
import { DELETE_PROJECT_PATH_PARAMS_SCHEMA, DELETE_PROJECT_SUCCESS_RESPONSE_BODY, GET_PROJECT_PATH_PARAMS_SCHEMA, GET_PROJECT_SUCCESS_RESPONSE_BODY,
|
|
3
|
+
import { DELETE_PROJECT_PATH_PARAMS_SCHEMA, DELETE_PROJECT_SUCCESS_RESPONSE_BODY, GET_PROJECT_PATH_PARAMS_SCHEMA, GET_PROJECT_SUCCESS_RESPONSE_BODY, GET_PROJECTS_PATH_PARAMS_SCHEMA, GET_PROJECTS_QUERY_SCHEMA, GET_PROJECTS_SUCCESS_RESPONSE_BODY, PATCH_PROJECT_PATH_PARAMS_SCHEMA, PATCH_PROJECT_REQUEST_BODY_SCHEMA, PATCH_PROJECT_SUCCESS_RESPONSE_BODY, } from '../schemas/projectSchemas.js';
|
|
4
4
|
export const getProjectContract = buildRestContract({
|
|
5
5
|
method: 'get',
|
|
6
6
|
pathResolver: (params) => `/v1/workspaces/${params.workspaceId}/projects/${params.projectId}`,
|
|
@@ -18,26 +18,11 @@ export const patchProjectContract = buildRestContract({
|
|
|
18
18
|
requestBodySchema: PATCH_PROJECT_REQUEST_BODY_SCHEMA,
|
|
19
19
|
successResponseBodySchema: PATCH_PROJECT_SUCCESS_RESPONSE_BODY,
|
|
20
20
|
});
|
|
21
|
-
/**
|
|
22
|
-
* Public API router definition for getting the list of projects for a given workspace
|
|
23
|
-
*
|
|
24
|
-
* @deprecated Use `getProjectsContract` instead. This route puts a verb in the URL and returns an
|
|
25
|
-
* unpaginated list; both are replaced by `GET /v1/workspaces/{workspaceId}/projects`.
|
|
26
|
-
*/
|
|
27
|
-
export const getProjectsListContract = buildRestContract({
|
|
28
|
-
method: 'get',
|
|
29
|
-
pathResolver: (params) => `/v1/workspaces/${params.workspaceId}/projects/list`,
|
|
30
|
-
description: 'Get projects list (deprecated, use GET /v1/workspaces/{workspaceId}/projects)',
|
|
31
|
-
requestHeaderSchema: AUTH_HEADERS,
|
|
32
|
-
requestPathParamsSchema: GET_PROJECTS_LIST_PATH_PARAMS_SCHEMA,
|
|
33
|
-
successResponseBodySchema: GET_PROJECTS_LIST_SUCCESS_RESPONSE_BODY,
|
|
34
|
-
});
|
|
35
21
|
/**
|
|
36
22
|
* Public API router definition for reading the projects collection of a workspace.
|
|
37
23
|
*
|
|
38
|
-
*
|
|
39
|
-
*
|
|
40
|
-
* cursor-paginated, returning the cursor as `meta.cursor`.
|
|
24
|
+
* The path carries no verb, so this and `GET .../projects/{projectId}` read as a
|
|
25
|
+
* collection/member pair, and the response is cursor-paginated with the cursor at `meta.cursor`.
|
|
41
26
|
*/
|
|
42
27
|
export const getProjectsContract = buildRestContract({
|
|
43
28
|
method: 'get',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectsContracts.js","sourceRoot":"","sources":["../../src/apiContracts/projectsContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,8BAA8B,EAC9B,iCAAiC,EACjC
|
|
1
|
+
{"version":3,"file":"projectsContracts.js","sourceRoot":"","sources":["../../src/apiContracts/projectsContracts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAA;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAA;AAC1D,OAAO,EACL,iCAAiC,EACjC,oCAAoC,EACpC,8BAA8B,EAC9B,iCAAiC,EACjC,+BAA+B,EAC/B,yBAAyB,EACzB,kCAAkC,EAClC,gCAAgC,EAChC,iCAAiC,EACjC,mCAAmC,GACpC,MAAM,8BAA8B,CAAA;AAErC,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;IAClD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,SAAS,EAAE;IAC7F,WAAW,EAAE,mBAAmB;IAChC,mBAAmB,EAAE,YAAY;IACjC,uBAAuB,EAAE,8BAA8B;IACvD,yBAAyB,EAAE,iCAAiC;CAC7D,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC;IACpD,MAAM,EAAE,OAAO;IACf,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,SAAS,EAAE;IAC7F,WAAW,EAAE,uBAAuB;IACpC,mBAAmB,EAAE,YAAY;IACjC,uBAAuB,EAAE,gCAAgC;IACzD,iBAAiB,EAAE,iCAAiC;IACpD,yBAAyB,EAAE,mCAAmC;CAC/D,CAAC,CAAA;AAEF;;;;;GAKG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC;IACnD,MAAM,EAAE,KAAK;IACb,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,CAAC,WAAW,WAAW;IACzE,WAAW,EAAE,cAAc;IAC3B,mBAAmB,EAAE,YAAY;IACjC,uBAAuB,EAAE,+BAA+B;IACxD,kBAAkB,EAAE,yBAAyB;IAC7C,yBAAyB,EAAE,kCAAkC;CAC9D,CAAC,CAAA;AAEF;;GAEG;AACH,MAAM,CAAC,MAAM,qBAAqB,GAAG,iBAAiB,CAAC;IACrD,MAAM,EAAE,QAAQ;IAChB,YAAY,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,kBAAkB,MAAM,CAAC,WAAW,aAAa,MAAM,CAAC,SAAS,EAAE;IAC7F,WAAW,EAAE,kBAAkB;IAC/B,mBAAmB,EAAE,YAAY;IACjC,uBAAuB,EAAE,iCAAiC;IAC1D,yBAAyB,EAAE,oCAAoC;IAC/D,uBAAuB,EAAE,KAAK;CAC/B,CAAC,CAAA"}
|
|
@@ -1,61 +1,4 @@
|
|
|
1
1
|
import { z } from 'zod/v4';
|
|
2
|
-
export declare const GET_PROJECTS_LIST_PATH_PARAMS_SCHEMA: z.ZodObject<{
|
|
3
|
-
workspaceId: z.ZodGUID;
|
|
4
|
-
}, z.core.$strip>;
|
|
5
|
-
export type GetProjectsListPathParams = z.infer<typeof GET_PROJECTS_LIST_PATH_PARAMS_SCHEMA>;
|
|
6
|
-
export declare const PROJECTS_LIST_RESPONSE_META_SCHEMA: z.ZodObject<{
|
|
7
|
-
count: z.ZodNumber;
|
|
8
|
-
}, z.core.$strip>;
|
|
9
|
-
export type ProjectsListResponseMeta = z.infer<typeof PROJECTS_LIST_RESPONSE_META_SCHEMA>;
|
|
10
|
-
export declare const GET_PROJECTS_LIST_SUCCESS_RESPONSE_BODY: z.ZodObject<{
|
|
11
|
-
data: z.ZodObject<{
|
|
12
|
-
projects: z.ZodArray<z.ZodObject<{
|
|
13
|
-
projectId: z.ZodString;
|
|
14
|
-
uuid: z.ZodGUID;
|
|
15
|
-
name: z.ZodString;
|
|
16
|
-
description: z.ZodString;
|
|
17
|
-
baseLanguage: z.ZodObject<{
|
|
18
|
-
projectLanguageId: z.ZodNumber;
|
|
19
|
-
languageId: z.ZodNumber;
|
|
20
|
-
languageIso: z.ZodString;
|
|
21
|
-
projectLanguageUuid: z.ZodGUID;
|
|
22
|
-
}, z.core.$strip>;
|
|
23
|
-
targetLanguages: z.ZodArray<z.ZodObject<{
|
|
24
|
-
projectLanguageId: z.ZodNumber;
|
|
25
|
-
languageId: z.ZodNumber;
|
|
26
|
-
languageIso: z.ZodString;
|
|
27
|
-
projectLanguageUuid: z.ZodGUID;
|
|
28
|
-
}, z.core.$strip>>;
|
|
29
|
-
translationSettings: z.ZodIntersection<z.ZodUnion<readonly [z.ZodObject<{
|
|
30
|
-
workflowType: z.ZodIntersection<z.ZodEnum<{
|
|
31
|
-
readonly AI_ONLY: 'AI_ONLY';
|
|
32
|
-
readonly AI_HUMAN_REVIEW: 'AI_HUMAN_REVIEW';
|
|
33
|
-
}>, z.ZodLiteral<"AI_HUMAN_REVIEW">>;
|
|
34
|
-
reviewThreshold: z.ZodEnum<{
|
|
35
|
-
readonly FULL_REVIEW: 'FULL_REVIEW';
|
|
36
|
-
readonly CRITICAL_MAJOR_MINOR: 'CRITICAL_MAJOR_MINOR';
|
|
37
|
-
readonly CRITICAL_MAJOR: 'CRITICAL_MAJOR';
|
|
38
|
-
readonly CRITICAL: 'CRITICAL';
|
|
39
|
-
}>;
|
|
40
|
-
}, z.core.$strip>, z.ZodObject<{
|
|
41
|
-
workflowType: z.ZodIntersection<z.ZodEnum<{
|
|
42
|
-
readonly AI_ONLY: 'AI_ONLY';
|
|
43
|
-
readonly AI_HUMAN_REVIEW: 'AI_HUMAN_REVIEW';
|
|
44
|
-
}>, z.ZodLiteral<"AI_ONLY">>;
|
|
45
|
-
reviewThreshold: z.ZodNull;
|
|
46
|
-
}, z.core.$strip>]>, z.ZodObject<{
|
|
47
|
-
reviewTurnaroundDays: z.ZodNumber;
|
|
48
|
-
}, z.core.$strip>>;
|
|
49
|
-
contentSourceType: z.ZodNullable<z.ZodString>;
|
|
50
|
-
contentSourceName: z.ZodOptional<z.ZodNullable<z.ZodString>>;
|
|
51
|
-
projectType: z.ZodString;
|
|
52
|
-
}, z.core.$strip>>;
|
|
53
|
-
}, z.core.$strip>;
|
|
54
|
-
meta: z.ZodObject<{
|
|
55
|
-
count: z.ZodNumber;
|
|
56
|
-
}, z.core.$strip>;
|
|
57
|
-
}, z.core.$strip>;
|
|
58
|
-
export type GetProjectsListSuccessResponse = z.infer<typeof GET_PROJECTS_LIST_SUCCESS_RESPONSE_BODY>;
|
|
59
2
|
export declare const GET_PROJECTS_PATH_PARAMS_SCHEMA: z.ZodObject<{
|
|
60
3
|
workspaceId: z.ZodGUID;
|
|
61
4
|
}, z.core.$strip>;
|
|
@@ -3,15 +3,6 @@ import { MAX_BATCH_PROJECT_IDS } from '@lokalise/content-type-app-engine-contrac
|
|
|
3
3
|
import { z } from 'zod/v4';
|
|
4
4
|
import { PROJECT_SCHEMA } from './domainSchemas.js';
|
|
5
5
|
import { PROJECT_PATH_PARAMS_SCHEMA, WORKSPACE_ONLY_PATH_PARAMS_SCHEMA, } from './pathParamsSchemas.js';
|
|
6
|
-
// GET PROJECTS LIST (deprecated, superseded by GET PROJECTS below)
|
|
7
|
-
export const GET_PROJECTS_LIST_PATH_PARAMS_SCHEMA = WORKSPACE_ONLY_PATH_PARAMS_SCHEMA;
|
|
8
|
-
export const PROJECTS_LIST_RESPONSE_META_SCHEMA = z.object({
|
|
9
|
-
count: z.number().int().nonnegative(),
|
|
10
|
-
});
|
|
11
|
-
export const GET_PROJECTS_LIST_SUCCESS_RESPONSE_BODY = z.object({
|
|
12
|
-
data: z.object({ projects: z.array(PROJECT_SCHEMA) }),
|
|
13
|
-
meta: PROJECTS_LIST_RESPONSE_META_SCHEMA,
|
|
14
|
-
});
|
|
15
6
|
// GET PROJECTS (cursor-paginated collection read)
|
|
16
7
|
export const GET_PROJECTS_PATH_PARAMS_SCHEMA = WORKSPACE_ONLY_PATH_PARAMS_SCHEMA;
|
|
17
8
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"projectSchemas.js","sourceRoot":"","sources":["../../src/schemas/projectSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,wBAAwB,CAAA;AAE/B,
|
|
1
|
+
{"version":3,"file":"projectSchemas.js","sourceRoot":"","sources":["../../src/schemas/projectSchemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,sBAAsB,CAAA;AAC9D,OAAO,EAAE,qBAAqB,EAAE,MAAM,6CAA6C,CAAA;AACnF,OAAO,EAAE,CAAC,EAAE,MAAM,QAAQ,CAAA;AAC1B,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EACL,0BAA0B,EAC1B,iCAAiC,GAClC,MAAM,wBAAwB,CAAA;AAE/B,kDAAkD;AAClD,MAAM,CAAC,MAAM,+BAA+B,GAAG,iCAAiC,CAAA;AAGhF;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAG,GAAG,CAAA;AACzC,MAAM,CAAC,MAAM,kBAAkB,GAAG,qBAAqB,CAAA;AAEvD;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,CAAC,MAAM,CAAC;IAChD,KAAK,EAAE,CAAC,CAAC,MAAM;SACZ,MAAM,EAAE;SACR,GAAG,EAAE;SACL,GAAG,CAAC,CAAC,CAAC;SACN,GAAG,CAAC,kBAAkB,CAAC;SACvB,OAAO,CAAC,sBAAsB,CAAC;SAC/B,QAAQ,CAAC,uCAAuC,CAAC;IACpD,KAAK,EAAE,CAAC;SACL,MAAM,EAAE;SACR,GAAG,CAAC,CAAC,CAAC;SACN,QAAQ,EAAE;SACV,QAAQ,CACP,qFAAqF,CACtF;CACJ,CAAC,CAAA;AAGF;;;;GAIG;AACH,MAAM,CAAC,MAAM,kCAAkC,GAAG,uBAAuB,CAAC,cAAc,CAAC,CAAA;AAGzF,cAAc;AACd,MAAM,CAAC,MAAM,8BAA8B,GAAG,0BAA0B,CAAA;AAGxE,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,cAAc;CACrB,CAAC,CAAA;AAGF,gBAAgB;AAChB,MAAM,CAAC,MAAM,gCAAgC,GAAG,0BAA0B,CAAA;AAG1E,MAAM,CAAC,MAAM,iCAAiC,GAAG,CAAC,CAAC,MAAM,CAAC;IACxD,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC;IACvB,WAAW,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;CACnC,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,mCAAmC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC1D,IAAI,EAAE,cAAc;CACrB,CAAC,CAAA;AAGF,iBAAiB;AACjB,MAAM,CAAC,MAAM,iCAAiC,GAAG,0BAA0B,CAAA;AAG3E,MAAM,CAAC,MAAM,oCAAoC,GAAG,CAAC,CAAC,MAAM,CAAC;IAC3D,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACb,SAAS,EAAE,CAAC,CAAC,MAAM,EAAE;QACrB,WAAW,EAAE,CAAC,CAAC,IAAI,EAAE;QACrB,cAAc,EAAE,CAAC,CAAC,OAAO,EAAE;KAC5B,CAAC;CACH,CAAC,CAAA"}
|