create-gitcms 0.1.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.
Files changed (86) hide show
  1. package/README.md +49 -0
  2. package/dist/args.d.ts +14 -0
  3. package/dist/args.d.ts.map +1 -0
  4. package/dist/args.js +119 -0
  5. package/dist/args.js.map +1 -0
  6. package/dist/cli.d.ts +4 -0
  7. package/dist/cli.d.ts.map +1 -0
  8. package/dist/cli.js +529 -0
  9. package/dist/cli.js.map +1 -0
  10. package/dist/core/content-detection.d.ts +2 -0
  11. package/dist/core/content-detection.d.ts.map +1 -0
  12. package/dist/core/content-detection.js +2 -0
  13. package/dist/core/content-detection.js.map +1 -0
  14. package/dist/core/filesystem.d.ts +11 -0
  15. package/dist/core/filesystem.d.ts.map +1 -0
  16. package/dist/core/filesystem.js +93 -0
  17. package/dist/core/filesystem.js.map +1 -0
  18. package/dist/core/framework-detection.d.ts +17 -0
  19. package/dist/core/framework-detection.d.ts.map +1 -0
  20. package/dist/core/framework-detection.js +60 -0
  21. package/dist/core/framework-detection.js.map +1 -0
  22. package/dist/core/frontmatter-inference.d.ts +2 -0
  23. package/dist/core/frontmatter-inference.d.ts.map +1 -0
  24. package/dist/core/frontmatter-inference.js +2 -0
  25. package/dist/core/frontmatter-inference.js.map +1 -0
  26. package/dist/core/git.d.ts +4 -0
  27. package/dist/core/git.d.ts.map +1 -0
  28. package/dist/core/git.js +45 -0
  29. package/dist/core/git.js.map +1 -0
  30. package/dist/core/gitcms-config.d.ts +153 -0
  31. package/dist/core/gitcms-config.d.ts.map +1 -0
  32. package/dist/core/gitcms-config.js +436 -0
  33. package/dist/core/gitcms-config.js.map +1 -0
  34. package/dist/core/mode-resolution.d.ts +22 -0
  35. package/dist/core/mode-resolution.d.ts.map +1 -0
  36. package/dist/core/mode-resolution.js +136 -0
  37. package/dist/core/mode-resolution.js.map +1 -0
  38. package/dist/core/paths.d.ts +6 -0
  39. package/dist/core/paths.d.ts.map +1 -0
  40. package/dist/core/paths.js +19 -0
  41. package/dist/core/paths.js.map +1 -0
  42. package/dist/core/planner.d.ts +8 -0
  43. package/dist/core/planner.d.ts.map +1 -0
  44. package/dist/core/planner.js +295 -0
  45. package/dist/core/planner.js.map +1 -0
  46. package/dist/core/site-roots.d.ts +5 -0
  47. package/dist/core/site-roots.d.ts.map +1 -0
  48. package/dist/core/site-roots.js +32 -0
  49. package/dist/core/site-roots.js.map +1 -0
  50. package/dist/core/sitemap-discovery.d.ts +2 -0
  51. package/dist/core/sitemap-discovery.d.ts.map +1 -0
  52. package/dist/core/sitemap-discovery.js +2 -0
  53. package/dist/core/sitemap-discovery.js.map +1 -0
  54. package/dist/core/vendor/content-detection.d.ts +51 -0
  55. package/dist/core/vendor/content-detection.d.ts.map +1 -0
  56. package/dist/core/vendor/content-detection.js +462 -0
  57. package/dist/core/vendor/content-detection.js.map +1 -0
  58. package/dist/core/vendor/frontmatter-inference.d.ts +5 -0
  59. package/dist/core/vendor/frontmatter-inference.d.ts.map +1 -0
  60. package/dist/core/vendor/frontmatter-inference.js +234 -0
  61. package/dist/core/vendor/frontmatter-inference.js.map +1 -0
  62. package/dist/core/vendor/paths.d.ts +3 -0
  63. package/dist/core/vendor/paths.d.ts.map +1 -0
  64. package/dist/core/vendor/paths.js +23 -0
  65. package/dist/core/vendor/paths.js.map +1 -0
  66. package/dist/core/vendor/sitemap.d.ts +10 -0
  67. package/dist/core/vendor/sitemap.d.ts.map +1 -0
  68. package/dist/core/vendor/sitemap.js +162 -0
  69. package/dist/core/vendor/sitemap.js.map +1 -0
  70. package/dist/core/writer.d.ts +4 -0
  71. package/dist/core/writer.d.ts.map +1 -0
  72. package/dist/core/writer.js +45 -0
  73. package/dist/core/writer.js.map +1 -0
  74. package/dist/index.d.ts +5 -0
  75. package/dist/index.d.ts.map +1 -0
  76. package/dist/index.js +5 -0
  77. package/dist/index.js.map +1 -0
  78. package/dist/prompts.d.ts +12 -0
  79. package/dist/prompts.d.ts.map +1 -0
  80. package/dist/prompts.js +41 -0
  81. package/dist/prompts.js.map +1 -0
  82. package/dist/types.d.ts +74 -0
  83. package/dist/types.d.ts.map +1 -0
  84. package/dist/types.js +2 -0
  85. package/dist/types.js.map +1 -0
  86. package/package.json +54 -0
@@ -0,0 +1,462 @@
1
+ // Vendored from @gitcms/onboarding-core to keep create-gitcms publishable
2
+ // as a single package on npm.
3
+ import yaml from 'js-yaml';
4
+ import { normalizeSiteRoot } from './paths.js';
5
+ const IGNORED_DIRECTORIES = new Set([
6
+ 'node_modules',
7
+ '.git',
8
+ '.github',
9
+ '.next',
10
+ '.nuxt',
11
+ '.astro',
12
+ '.svelte-kit',
13
+ '.vuepress',
14
+ '.docusaurus',
15
+ 'dist',
16
+ 'build',
17
+ 'out',
18
+ '.output',
19
+ '__tests__',
20
+ '__mocks__',
21
+ 'test',
22
+ 'tests',
23
+ 'e2e',
24
+ 'cypress',
25
+ '.turbo',
26
+ '.cache',
27
+ 'coverage',
28
+ 'archetypes',
29
+ 'public',
30
+ ]);
31
+ const INDEX_FILENAMES = new Set([
32
+ 'index.md',
33
+ 'index.mdx',
34
+ '_index.md',
35
+ '_index.mdx',
36
+ ]);
37
+ const CONTENT_CONTAINER_NAMES = new Set([
38
+ 'content',
39
+ 'contents',
40
+ 'collections',
41
+ 'data',
42
+ '_posts',
43
+ '_pages',
44
+ '_collections',
45
+ ]);
46
+ const NON_CONTENT_FILENAMES = new Set([
47
+ 'readme.md',
48
+ 'readme.mdx',
49
+ 'changelog.md',
50
+ 'changelog.mdx',
51
+ 'contributing.md',
52
+ 'contributing.mdx',
53
+ 'license.md',
54
+ 'license.mdx',
55
+ 'code_of_conduct.md',
56
+ 'code_of_conduct.mdx',
57
+ 'security.md',
58
+ 'security.mdx',
59
+ ]);
60
+ const LOCALE_DIRECTORY_PATTERN = /^[a-z]{2}(?:-[a-z0-9]{2,8})*$/;
61
+ export function createLocalTree(files) {
62
+ const tree = [];
63
+ for (const file of files) {
64
+ tree.push({ type: 'blob', path: file, sha: null });
65
+ }
66
+ return tree;
67
+ }
68
+ export function detectCollectionRoots(tree, siteRoot) {
69
+ const cleanSiteRoot = normalizeSiteRoot(siteRoot);
70
+ const sitePrefix = cleanSiteRoot ? `${cleanSiteRoot}/` : '';
71
+ const markdownPaths = tree
72
+ .filter((item) => {
73
+ if (item.type !== 'blob' || !item.path)
74
+ return false;
75
+ const relativePath = sitePrefix
76
+ ? (item.path.startsWith(sitePrefix) ? item.path.slice(sitePrefix.length) : null)
77
+ : item.path;
78
+ if (!relativePath)
79
+ return false;
80
+ return isContentMarkdownPath(relativePath);
81
+ })
82
+ .map((item) => (sitePrefix ? item.path.slice(sitePrefix.length) : item.path));
83
+ if (markdownPaths.length === 0)
84
+ return [];
85
+ const topLevelGroups = new Map();
86
+ for (const relativePath of markdownPaths) {
87
+ const firstSlash = relativePath.indexOf('/');
88
+ if (firstSlash === -1) {
89
+ continue;
90
+ }
91
+ const topDir = relativePath.slice(0, firstSlash);
92
+ const existing = topLevelGroups.get(topDir) ?? [];
93
+ existing.push(relativePath);
94
+ topLevelGroups.set(topDir, existing);
95
+ }
96
+ const collections = [];
97
+ for (const [topDir, files] of topLevelGroups) {
98
+ const boundaries = findCollectionBoundaries(topDir, files);
99
+ for (const boundary of boundaries) {
100
+ const boundaryPrefix = `${boundary.path}/`;
101
+ const filesInBoundary = files.filter((filePath) => filePath.startsWith(boundaryPrefix) || filePath === boundary.path);
102
+ if (filesInBoundary.length === 0)
103
+ continue;
104
+ const detectedI18n = boundary.i18n ?? detectCollectionI18n(boundary.path, filesInBoundary);
105
+ const mdxCount = filesInBoundary.filter((filePath) => filePath.toLowerCase().endsWith('.mdx')).length;
106
+ const mdCount = filesInBoundary.length - mdxCount;
107
+ const dominantExtension = mdxCount >= mdCount ? '.mdx' : '.md';
108
+ collections.push({
109
+ name: boundary.path.split('/').pop() ?? boundary.path,
110
+ gitPath: boundary.path,
111
+ fileCount: filesInBoundary.length,
112
+ dominantExtension,
113
+ collectionType: boundary.collectionType,
114
+ i18n: detectedI18n ?? undefined,
115
+ });
116
+ }
117
+ }
118
+ return collections.sort((a, b) => b.fileCount - a.fileCount);
119
+ }
120
+ function findCollectionBoundaries(currentPath, filesInGroup) {
121
+ const prefix = `${currentPath}/`;
122
+ const dirName = currentPath.split('/').pop()?.toLowerCase() ?? '';
123
+ let hasNonIndexDirectFiles = false;
124
+ for (const filePath of filesInGroup) {
125
+ if (!filePath.startsWith(prefix))
126
+ continue;
127
+ const remainder = filePath.slice(prefix.length);
128
+ if (remainder.includes('/'))
129
+ continue;
130
+ const filename = remainder.toLowerCase();
131
+ if (!INDEX_FILENAMES.has(filename)) {
132
+ hasNonIndexDirectFiles = true;
133
+ break;
134
+ }
135
+ }
136
+ const subDirs = new Set();
137
+ for (const filePath of filesInGroup) {
138
+ if (!filePath.startsWith(prefix))
139
+ continue;
140
+ const remainder = filePath.slice(prefix.length);
141
+ const nextSlash = remainder.indexOf('/');
142
+ if (nextSlash !== -1) {
143
+ subDirs.add(remainder.slice(0, nextSlash));
144
+ }
145
+ }
146
+ const detectedI18n = detectCollectionI18n(currentPath, filesInGroup);
147
+ if (detectedI18n) {
148
+ return [{
149
+ path: currentPath,
150
+ collectionType: 'grouped',
151
+ i18n: detectedI18n,
152
+ }];
153
+ }
154
+ if (hasNonIndexDirectFiles && subDirs.size > 0) {
155
+ return Array.from(subDirs).map((subDir) => ({
156
+ path: `${currentPath}/${subDir}`,
157
+ collectionType: classifyCollectionType(`${currentPath}/${subDir}`, filesInGroup),
158
+ }));
159
+ }
160
+ if (hasNonIndexDirectFiles && subDirs.size === 0) {
161
+ return [{ path: currentPath, collectionType: 'flat' }];
162
+ }
163
+ if (subDirs.size === 1) {
164
+ const onlySubDir = Array.from(subDirs)[0];
165
+ if (!onlySubDir) {
166
+ return [{ path: currentPath, collectionType: 'flat' }];
167
+ }
168
+ return findCollectionBoundaries(`${currentPath}/${onlySubDir}`, filesInGroup);
169
+ }
170
+ if (subDirs.size > 1) {
171
+ if (CONTENT_CONTAINER_NAMES.has(dirName)) {
172
+ return Array.from(subDirs).map((subDir) => ({
173
+ path: `${currentPath}/${subDir}`,
174
+ collectionType: classifyCollectionType(`${currentPath}/${subDir}`, filesInGroup),
175
+ }));
176
+ }
177
+ return [{ path: currentPath, collectionType: 'grouped' }];
178
+ }
179
+ return [{ path: currentPath, collectionType: 'flat' }];
180
+ }
181
+ function classifyCollectionType(collectionPath, allFiles) {
182
+ const prefix = `${collectionPath}/`;
183
+ for (const filePath of allFiles) {
184
+ if (!filePath.startsWith(prefix))
185
+ continue;
186
+ const remainder = filePath.slice(prefix.length);
187
+ if (remainder.includes('/'))
188
+ return 'grouped';
189
+ }
190
+ return 'flat';
191
+ }
192
+ function normalizeLocaleDirectory(value) {
193
+ const trimmed = value.trim().toLowerCase();
194
+ if (!trimmed)
195
+ return null;
196
+ return trimmed.replace(/_/g, '-');
197
+ }
198
+ function isLocaleDirectoryName(value) {
199
+ return LOCALE_DIRECTORY_PATTERN.test(value);
200
+ }
201
+ function getRequiredOverlap(referenceSize) {
202
+ if (referenceSize <= 1)
203
+ return 1;
204
+ return Math.max(2, Math.ceil(referenceSize * 0.35));
205
+ }
206
+ function getOverlapCount(reference, candidate) {
207
+ let overlap = 0;
208
+ for (const path of candidate) {
209
+ if (reference.has(path)) {
210
+ overlap += 1;
211
+ }
212
+ }
213
+ return overlap;
214
+ }
215
+ function buildCollectionFileShape(collectionPath, filesInGroup) {
216
+ const prefix = `${collectionPath}/`;
217
+ const rootPaths = new Set();
218
+ const localePathsByFolder = new Map();
219
+ for (const filePath of filesInGroup) {
220
+ if (!filePath.startsWith(prefix))
221
+ continue;
222
+ const relativePath = filePath.slice(prefix.length);
223
+ if (!relativePath)
224
+ continue;
225
+ const segments = relativePath.split('/').filter(Boolean);
226
+ if (segments.length === 0)
227
+ continue;
228
+ const normalizedRelativePath = segments.join('/').toLowerCase();
229
+ if (segments.length === 1) {
230
+ rootPaths.add(normalizedRelativePath);
231
+ continue;
232
+ }
233
+ const firstSegment = segments[0];
234
+ if (!firstSegment)
235
+ continue;
236
+ const normalizedLocaleFolder = normalizeLocaleDirectory(firstSegment);
237
+ if (!normalizedLocaleFolder || !isLocaleDirectoryName(normalizedLocaleFolder)) {
238
+ continue;
239
+ }
240
+ const localeRelativePath = segments.slice(1).join('/').toLowerCase();
241
+ if (!localeRelativePath)
242
+ continue;
243
+ const existingPaths = localePathsByFolder.get(normalizedLocaleFolder) ?? new Set();
244
+ existingPaths.add(localeRelativePath);
245
+ localePathsByFolder.set(normalizedLocaleFolder, existingPaths);
246
+ }
247
+ return {
248
+ rootPaths,
249
+ localePathsByFolder,
250
+ };
251
+ }
252
+ function detectCollectionI18n(collectionPath, filesInGroup) {
253
+ const { rootPaths, localePathsByFolder } = buildCollectionFileShape(collectionPath, filesInGroup);
254
+ if (localePathsByFolder.size === 0) {
255
+ return null;
256
+ }
257
+ const sortedLocaleFolders = Array.from(localePathsByFolder.keys())
258
+ .sort((a, b) => a.localeCompare(b));
259
+ if (rootPaths.size > 0) {
260
+ const requiredOverlap = getRequiredOverlap(rootPaths.size);
261
+ const localeFolders = sortedLocaleFolders.filter((localeFolder) => {
262
+ const localePaths = localePathsByFolder.get(localeFolder);
263
+ if (!localePaths)
264
+ return false;
265
+ return getOverlapCount(rootPaths, localePaths) >= requiredOverlap;
266
+ });
267
+ if (localeFolders.length === 0) {
268
+ return null;
269
+ }
270
+ return {
271
+ enabled: true,
272
+ locales: localeFolders,
273
+ localeFolders,
274
+ defaultLocale: null,
275
+ prefixDefaultLocale: false,
276
+ };
277
+ }
278
+ if (localePathsByFolder.size < 2) {
279
+ return null;
280
+ }
281
+ const baselineEntry = Array.from(localePathsByFolder.entries())
282
+ .sort((left, right) => right[1].size - left[1].size)[0];
283
+ if (!baselineEntry) {
284
+ return null;
285
+ }
286
+ const baselinePaths = baselineEntry[1];
287
+ const requiredOverlap = getRequiredOverlap(baselinePaths.size);
288
+ const localeFolders = sortedLocaleFolders.filter((localeFolder) => {
289
+ const localePaths = localePathsByFolder.get(localeFolder);
290
+ if (!localePaths)
291
+ return false;
292
+ return getOverlapCount(baselinePaths, localePaths) >= requiredOverlap;
293
+ });
294
+ if (localeFolders.length < 2) {
295
+ return null;
296
+ }
297
+ const defaultLocale = localeFolders.includes('en')
298
+ ? 'en'
299
+ : localeFolders[0];
300
+ return {
301
+ enabled: true,
302
+ locales: localeFolders,
303
+ localeFolders,
304
+ defaultLocale,
305
+ prefixDefaultLocale: true,
306
+ };
307
+ }
308
+ function findSampleMarkdownCandidate(tree, siteRoot, collectionGitPath) {
309
+ const cleanSiteRoot = normalizeSiteRoot(siteRoot);
310
+ const cleanCollectionPath = normalizeSiteRoot(collectionGitPath);
311
+ const fullPrefix = [cleanSiteRoot, cleanCollectionPath].filter(Boolean).join('/');
312
+ const searchPrefix = `${fullPrefix}/`;
313
+ const candidates = tree
314
+ .filter((item) => {
315
+ if (item.type !== 'blob' || !item.path)
316
+ return false;
317
+ if (!item.path.startsWith(searchPrefix))
318
+ return false;
319
+ const filename = item.path.split('/').pop()?.toLowerCase() ?? '';
320
+ if (NON_CONTENT_FILENAMES.has(filename))
321
+ return false;
322
+ return filename.endsWith('.md') || filename.endsWith('.mdx');
323
+ })
324
+ .map((item) => {
325
+ const path = item.path ?? '';
326
+ const relative = path.slice(searchPrefix.length);
327
+ return {
328
+ path,
329
+ sha: item.sha ?? null,
330
+ depth: relative.split('/').length,
331
+ };
332
+ });
333
+ if (candidates.length === 0)
334
+ return null;
335
+ candidates.sort((a, b) => a.depth - b.depth);
336
+ const first = candidates[0];
337
+ if (!first)
338
+ return null;
339
+ return first;
340
+ }
341
+ export function findSampleMarkdownFile(tree, siteRoot, collectionGitPath) {
342
+ const sample = findSampleMarkdownCandidate(tree, siteRoot, collectionGitPath);
343
+ if (!sample)
344
+ return null;
345
+ return sample.path;
346
+ }
347
+ export function findSampleMarkdownBlob(tree, siteRoot, collectionGitPath) {
348
+ const sample = findSampleMarkdownCandidate(tree, siteRoot, collectionGitPath);
349
+ if (!sample || !sample.sha)
350
+ return null;
351
+ return {
352
+ path: sample.path,
353
+ sha: sample.sha,
354
+ };
355
+ }
356
+ export function parseFrontmatter(content) {
357
+ const trimmed = content.trimStart();
358
+ if (trimmed.startsWith('---')) {
359
+ const delimiterMatch = trimmed.slice(3).match(/\r?\n---(?=\r?\n|$)/);
360
+ if (!delimiterMatch || delimiterMatch.index === undefined)
361
+ return null;
362
+ const delimiterOffset = delimiterMatch[0].startsWith('\r\n') ? 2 : 1;
363
+ const endIndex = 3 + delimiterMatch.index + delimiterOffset;
364
+ const yamlContent = trimmed.slice(3, endIndex).trim();
365
+ if (!yamlContent)
366
+ return null;
367
+ try {
368
+ const parsed = yaml.load(yamlContent, { schema: yaml.JSON_SCHEMA });
369
+ if (!isRecord(parsed))
370
+ return null;
371
+ return {
372
+ format: 'yaml',
373
+ fields: parsed,
374
+ };
375
+ }
376
+ catch {
377
+ return null;
378
+ }
379
+ }
380
+ if (trimmed.startsWith('+++')) {
381
+ return {
382
+ format: 'toml',
383
+ fields: {},
384
+ };
385
+ }
386
+ if (trimmed.startsWith('{')) {
387
+ let depth = 0;
388
+ let closingIndex = -1;
389
+ let inString = false;
390
+ let isEscaped = false;
391
+ for (let i = 0; i < trimmed.length; i += 1) {
392
+ const char = trimmed[i];
393
+ if (!char)
394
+ continue;
395
+ if (inString) {
396
+ if (isEscaped) {
397
+ isEscaped = false;
398
+ continue;
399
+ }
400
+ if (char === '\\') {
401
+ isEscaped = true;
402
+ continue;
403
+ }
404
+ if (char === '"') {
405
+ inString = false;
406
+ }
407
+ continue;
408
+ }
409
+ if (char === '"') {
410
+ inString = true;
411
+ continue;
412
+ }
413
+ if (char === '{') {
414
+ depth += 1;
415
+ continue;
416
+ }
417
+ if (char === '}') {
418
+ depth -= 1;
419
+ if (depth === 0) {
420
+ closingIndex = i;
421
+ break;
422
+ }
423
+ }
424
+ }
425
+ if (closingIndex === -1)
426
+ return null;
427
+ try {
428
+ const parsed = JSON.parse(trimmed.slice(0, closingIndex + 1));
429
+ if (!isRecord(parsed))
430
+ return null;
431
+ return {
432
+ format: 'json',
433
+ fields: parsed,
434
+ };
435
+ }
436
+ catch {
437
+ return null;
438
+ }
439
+ }
440
+ return null;
441
+ }
442
+ function isContentMarkdownPath(relativePath) {
443
+ const lower = relativePath.toLowerCase();
444
+ if (!lower.endsWith('.md') && !lower.endsWith('.mdx'))
445
+ return false;
446
+ const segments = relativePath.split('/');
447
+ for (let i = 0; i < segments.length - 1; i += 1) {
448
+ const segment = segments[i];
449
+ if (!segment)
450
+ continue;
451
+ if (IGNORED_DIRECTORIES.has(segment.toLowerCase()))
452
+ return false;
453
+ }
454
+ const filename = segments[segments.length - 1]?.toLowerCase() ?? '';
455
+ if (NON_CONTENT_FILENAMES.has(filename))
456
+ return false;
457
+ return true;
458
+ }
459
+ function isRecord(value) {
460
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
461
+ }
462
+ //# sourceMappingURL=content-detection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content-detection.js","sourceRoot":"","sources":["../../../src/core/vendor/content-detection.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,5 @@
1
+ export type InferredFieldType = 'title' | 'text' | 'richtext' | 'boolean' | 'number' | 'datetime' | 'multiselect' | 'url' | 'image' | 'json' | 'list';
2
+ export declare function inferFieldType(value: unknown, fieldName?: string): Exclude<InferredFieldType, 'title'>;
3
+ export declare function humanizeFieldName(name: string): string;
4
+ export declare function inferSchemaFromFrontmatter(frontmatter: Record<string, unknown>): Record<string, unknown>[];
5
+ //# sourceMappingURL=frontmatter-inference.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"frontmatter-inference.d.ts","sourceRoot":"","sources":["../../../src/core/vendor/frontmatter-inference.ts"],"names":[],"mappings":"AAsFA,MAAM,MAAM,iBAAiB,GACzB,OAAO,GACP,MAAM,GACN,UAAU,GACV,SAAS,GACT,QAAQ,GACR,UAAU,GACV,aAAa,GACb,KAAK,GACL,OAAO,GACP,MAAM,GACN,MAAM,CAAA;AAqBV,wBAAgB,cAAc,CAC5B,KAAK,EAAE,OAAO,EACd,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CA+CrC;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,UAK7C;AAED,wBAAgB,0BAA0B,CAAC,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,6BAwG9E"}