@better-i18n/sdk 3.0.0 → 3.2.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 +46 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/types.d.ts +75 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -211,12 +211,57 @@ type RelationValue = {
|
|
|
211
211
|
} & Record<string, string | null>;
|
|
212
212
|
```
|
|
213
213
|
|
|
214
|
+
## Content Models & Fields
|
|
215
|
+
|
|
216
|
+
`getModels()` returns model definitions including custom field metadata — useful for building dynamic forms and tables:
|
|
217
|
+
|
|
218
|
+
```typescript
|
|
219
|
+
const models = await client.getModels();
|
|
220
|
+
|
|
221
|
+
for (const model of models) {
|
|
222
|
+
console.log(model.slug, model.displayName);
|
|
223
|
+
console.log("Has body field:", model.includeBody);
|
|
224
|
+
|
|
225
|
+
for (const field of model.fields) {
|
|
226
|
+
console.log(` ${field.name} (${field.type})`);
|
|
227
|
+
|
|
228
|
+
// Enum fields include their allowed values
|
|
229
|
+
if (field.type === "enum" && field.enumValues) {
|
|
230
|
+
console.log(" Options:", field.enumValues.map((v) => v.label));
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### ContentModel
|
|
237
|
+
|
|
238
|
+
| Field | Type | Description |
|
|
239
|
+
| --- | --- | --- |
|
|
240
|
+
| `slug` | `string` | Model identifier |
|
|
241
|
+
| `displayName` | `string` | Human-readable name |
|
|
242
|
+
| `description` | `string \| null` | Model description |
|
|
243
|
+
| `kind` | `string` | `"collection"` or `"single"` |
|
|
244
|
+
| `entryCount` | `number` | Number of entries |
|
|
245
|
+
| `includeBody` | `boolean` | Whether model has a body/rich-text field |
|
|
246
|
+
| `fields` | `ContentModelField[]` | Custom field definitions |
|
|
247
|
+
|
|
248
|
+
### ContentModelField
|
|
249
|
+
|
|
250
|
+
| Field | Type | Description |
|
|
251
|
+
| --- | --- | --- |
|
|
252
|
+
| `name` | `string` | Field identifier (snake_case) |
|
|
253
|
+
| `displayName` | `string` | Human-readable name |
|
|
254
|
+
| `type` | `string` | `text`, `textarea`, `richtext`, `number`, `boolean`, `date`, `datetime`, `enum`, `media`, `relation` |
|
|
255
|
+
| `required` | `boolean` | Whether field is required |
|
|
256
|
+
| `localized` | `boolean` | Whether field is localized per language |
|
|
257
|
+
| `enumValues` | `Array<{ label, value }>` | Enum options (only for `type: "enum"`) |
|
|
258
|
+
|
|
214
259
|
## Legacy API
|
|
215
260
|
|
|
216
261
|
The method-based API is still available for backward compatibility:
|
|
217
262
|
|
|
218
263
|
```typescript
|
|
219
|
-
// List content models
|
|
264
|
+
// List content models (now includes fields and includeBody)
|
|
220
265
|
const models = await client.getModels();
|
|
221
266
|
|
|
222
267
|
// List entries (throws on error)
|
package/dist/index.d.ts
CHANGED
|
@@ -3,6 +3,6 @@ export { ContentQueryBuilder, SingleQueryBuilder } from "./query-builder.js";
|
|
|
3
3
|
export { createHttpClient } from "./http.js";
|
|
4
4
|
/** @deprecated Use `createHttpClient` from `./http.js` instead. */
|
|
5
5
|
export { createContentAPIClient } from "./content-api.js";
|
|
6
|
-
export type { ClientConfig, ContentClient, ContentEntry, ContentEntryListItem, ContentEntryStatus, ContentEntrySortField, ContentModel, ListEntriesOptions, GetEntryOptions, PaginatedResponse, QueryResult, SingleQueryResult, RelationValue, } from "./types.js";
|
|
6
|
+
export type { ClientConfig, ContentClient, ContentEntry, ContentEntryListItem, ContentEntryStatus, ContentEntrySortField, ContentModel, ContentModelField, ContentModelEnumValue, ListEntriesOptions, GetEntryOptions, PaginatedResponse, QueryResult, SingleQueryResult, RelationValue, } from "./types.js";
|
|
7
7
|
export type { HttpClient, HttpResult } from "./http.js";
|
|
8
8
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,mEAAmE;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,EAAE,mBAAmB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7E,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AAC7C,mEAAmE;AACnE,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,aAAa,EACb,YAAY,EACZ,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,EACrB,YAAY,EACZ,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,WAAW,EACX,iBAAiB,EACjB,aAAa,GACd,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/types.d.ts
CHANGED
|
@@ -20,6 +20,15 @@ export type RelationValue = {
|
|
|
20
20
|
/** Target model slug */
|
|
21
21
|
modelSlug: string;
|
|
22
22
|
} & Record<string, string | null>;
|
|
23
|
+
/** A language descriptor returned in the `availableLanguageDetails` array on single-entry responses. */
|
|
24
|
+
export interface ContentEntryLanguage {
|
|
25
|
+
/** BCP 47 language code (e.g. `"en"`, `"fr"`, `"tr"`). */
|
|
26
|
+
code: string;
|
|
27
|
+
/** Human-readable language name (e.g. `"English"`, `"French"`). */
|
|
28
|
+
name: string;
|
|
29
|
+
/** ISO 3166-1 alpha-2 country code for the locale flag (e.g. `"US"`, `"FR"`). */
|
|
30
|
+
countryCode?: string;
|
|
31
|
+
}
|
|
23
32
|
/**
|
|
24
33
|
* A full content entry with all localized fields.
|
|
25
34
|
* Custom fields are spread directly on the entry object (flat access).
|
|
@@ -40,8 +49,45 @@ export type ContentEntry<CF extends Record<string, string | null> = Record<strin
|
|
|
40
49
|
slug: string;
|
|
41
50
|
status: "draft" | "published" | "archived";
|
|
42
51
|
publishedAt: string | null;
|
|
52
|
+
/** Source language code of the project (e.g. `"en"`). */
|
|
43
53
|
sourceLanguage: string;
|
|
54
|
+
/** Language codes that have translations for this entry (e.g. `["en", "fr", "tr"]`). */
|
|
44
55
|
availableLanguages: string[];
|
|
56
|
+
/**
|
|
57
|
+
* Rich language descriptors for each available translation.
|
|
58
|
+
* Present on single-entry responses (`single()`) — includes display name and country code.
|
|
59
|
+
* Use this instead of `availableLanguages` when you need to render language pickers or flags.
|
|
60
|
+
*
|
|
61
|
+
* @example
|
|
62
|
+
* ```typescript
|
|
63
|
+
* const { data: post } = await client.from("blog-posts").single("hello-world");
|
|
64
|
+
* post.availableLanguageDetails?.map(lang => `${lang.name} (${lang.countryCode})`);
|
|
65
|
+
* ```
|
|
66
|
+
*/
|
|
67
|
+
availableLanguageDetails?: ContentEntryLanguage[];
|
|
68
|
+
/**
|
|
69
|
+
* Per-language translation publish status.
|
|
70
|
+
* Keys are language codes; values are `"draft"` or `"published"`.
|
|
71
|
+
*
|
|
72
|
+
* @example
|
|
73
|
+
* ```typescript
|
|
74
|
+
* const { data: post } = await client.from("blog-posts").single("hello-world");
|
|
75
|
+
* post.translationStatus?.["fr"]; // "published" | "draft" | undefined
|
|
76
|
+
* ```
|
|
77
|
+
*/
|
|
78
|
+
translationStatus?: Record<string, "draft" | "published">;
|
|
79
|
+
/**
|
|
80
|
+
* Body content rendered as an HTML string.
|
|
81
|
+
* Only present when the model has `includeBody: true` and the entry has body content.
|
|
82
|
+
* Returned alongside `body` (Markdown) — use whichever suits your renderer.
|
|
83
|
+
*/
|
|
84
|
+
bodyHtml?: string;
|
|
85
|
+
/**
|
|
86
|
+
* Body content as a plain Markdown string.
|
|
87
|
+
* Identical to the base `body` field — provided as an explicit alias for clarity
|
|
88
|
+
* when `bodyHtml` is also present.
|
|
89
|
+
*/
|
|
90
|
+
bodyMarkdown?: string;
|
|
45
91
|
/** Expanded relation fields (only present when expand is used) */
|
|
46
92
|
relations?: Record<string, RelationValue | null>;
|
|
47
93
|
title: string;
|
|
@@ -66,6 +112,31 @@ export interface PaginatedResponse<T> {
|
|
|
66
112
|
total: number;
|
|
67
113
|
hasMore: boolean;
|
|
68
114
|
}
|
|
115
|
+
/** An enum option for enum-type fields. */
|
|
116
|
+
export interface ContentModelEnumValue {
|
|
117
|
+
label: string;
|
|
118
|
+
value: string;
|
|
119
|
+
}
|
|
120
|
+
/** A field definition within a content model. */
|
|
121
|
+
export interface ContentModelField {
|
|
122
|
+
/** Field identifier (snake_case). */
|
|
123
|
+
name: string;
|
|
124
|
+
/** Human-readable field name. */
|
|
125
|
+
displayName: string;
|
|
126
|
+
/** Field type (text, textarea, richtext, number, boolean, date, datetime, enum, media, relation, user_select). */
|
|
127
|
+
type: string;
|
|
128
|
+
/** Whether this field is required. */
|
|
129
|
+
required: boolean;
|
|
130
|
+
/** Whether this field is localized per language. */
|
|
131
|
+
localized: boolean;
|
|
132
|
+
/** Enum options — only present when `type` is `"enum"`. */
|
|
133
|
+
enumValues?: ContentModelEnumValue[];
|
|
134
|
+
/** Relation configuration — only present when `type` is `"relation"`. */
|
|
135
|
+
fieldConfig?: {
|
|
136
|
+
/** Slug of the target content model this field points to. */
|
|
137
|
+
targetModel?: string;
|
|
138
|
+
};
|
|
139
|
+
}
|
|
69
140
|
/** A content model definition. */
|
|
70
141
|
export interface ContentModel {
|
|
71
142
|
slug: string;
|
|
@@ -73,6 +144,10 @@ export interface ContentModel {
|
|
|
73
144
|
description: string | null;
|
|
74
145
|
kind: string;
|
|
75
146
|
entryCount: number;
|
|
147
|
+
/** Whether this model has a body/rich-text field. `false` for structured data models with only custom fields. */
|
|
148
|
+
includeBody: boolean;
|
|
149
|
+
/** Field definitions for this model (custom fields, enums, relations, etc.). */
|
|
150
|
+
fields: ContentModelField[];
|
|
76
151
|
}
|
|
77
152
|
/** Result of a list query — Supabase-style `{ data, error }` pattern. */
|
|
78
153
|
export interface QueryResult<T> {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,2HAA2H;AAC3H,MAAM,MAAM,aAAa,GAAG;IAC1B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAIlC;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,CAAC;IACvB,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IAEjD,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;AAEpE,+FAA+F;AAC/F,MAAM,MAAM,oBAAoB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI;IAC3G,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;CAClD,GAAG,EAAE,CAAC;AAEP,kCAAkC;AAClC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAEA,+DAA+D;AAC/D,MAAM,WAAW,YAAY;IAC3B,8GAA8G;IAC9G,OAAO,EAAE,MAAM,CAAC;IAChB,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAID,2HAA2H;AAC3H,MAAM,MAAM,aAAa,GAAG;IAC1B,4BAA4B;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,4BAA4B;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,qEAAqE;IACrE,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAAC;AAIlC,wGAAwG;AACxG,MAAM,WAAW,oBAAoB;IACnC,0DAA0D;IAC1D,IAAI,EAAE,MAAM,CAAC;IACb,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,iFAAiF;IACjF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,YAAY,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI;IACnG,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;IAC3C,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,yDAAyD;IACzD,cAAc,EAAE,MAAM,CAAC;IACvB,wFAAwF;IACxF,kBAAkB,EAAE,MAAM,EAAE,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,wBAAwB,CAAC,EAAE,oBAAoB,EAAE,CAAC;IAClD;;;;;;;;;OASG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,WAAW,CAAC,CAAC;IAC1D;;;;OAIG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;IAEjD,KAAK,EAAE,MAAM,CAAC;IACd,yCAAyC;IACzC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,EAAE,CAAC;AAEP,kCAAkC;AAClC,MAAM,MAAM,kBAAkB,GAAG,OAAO,GAAG,WAAW,GAAG,UAAU,CAAC;AAEpE,+FAA+F;AAC/F,MAAM,MAAM,oBAAoB,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,IAAI;IAC3G,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oEAAoE;IACpE,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI,CAAC,CAAC;CAClD,GAAG,EAAE,CAAC;AAEP,kCAAkC;AAClC,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,2CAA2C;AAC3C,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACf;AAED,iDAAiD;AACjD,MAAM,WAAW,iBAAiB;IAChC,qCAAqC;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,iCAAiC;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,kHAAkH;IAClH,IAAI,EAAE,MAAM,CAAC;IACb,sCAAsC;IACtC,QAAQ,EAAE,OAAO,CAAC;IAClB,oDAAoD;IACpD,SAAS,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,UAAU,CAAC,EAAE,qBAAqB,EAAE,CAAC;IACrC,yEAAyE;IACzE,WAAW,CAAC,EAAE;QACZ,6DAA6D;QAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,kCAAkC;AAClC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,iHAAiH;IACjH,WAAW,EAAE,OAAO,CAAC;IACrB,gFAAgF;IAChF,MAAM,EAAE,iBAAiB,EAAE,CAAC;CAC7B;AAID,yEAAyE;AACzE,MAAM,WAAW,WAAW,CAAC,CAAC;IAC5B,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,iFAAiF;AACjF,MAAM,WAAW,iBAAiB,CAAC,CAAC;IAClC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IACf,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAID,2CAA2C;AAC3C,MAAM,MAAM,qBAAqB,GAAG,aAAa,GAAG,WAAW,GAAG,WAAW,GAAG,OAAO,CAAC;AAExF,2CAA2C;AAC3C,MAAM,WAAW,kBAAkB;IACjC,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,8BAA8B;IAC9B,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,mDAAmD;IACnD,IAAI,CAAC,EAAE,qBAAqB,CAAC;IAC7B,4CAA4C;IAC5C,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,6BAA6B;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oDAAoD;IACpD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,gHAAgH;IAChH,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,mDAAmD;AACnD,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oGAAoG;IACpG,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,oEAAoE;IACpE,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;CACnB;AAGD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,sDAAsD;AACtD,MAAM,WAAW,aAAa;IAC5B;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,mBAAmB,CAAC;IAE7C,8CAA8C;IAC9C,SAAS,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAC;IACrC;;;OAGG;IACH,UAAU,CACR,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,iBAAiB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IACpD;;;OAGG;IACH,QAAQ,CAAC,EAAE,SAAS,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,EAC/E,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,eAAe,GACxB,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC;CAC9B"}
|