@mr.dj2u/cli 0.1.7 → 0.1.9

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.
@@ -0,0 +1,25 @@
1
+ import { type StyleLibrary, type WritePolicy } from '../stylist-theme.js';
2
+ export interface StylistSyncArgv {
3
+ path?: string;
4
+ inputFile?: string;
5
+ inputJson?: string;
6
+ json?: boolean;
7
+ styleLibrary?: StyleLibrary | 'auto';
8
+ writePolicy?: WritePolicy;
9
+ }
10
+ export interface StylistReconcileOutputArgv {
11
+ path?: string;
12
+ json?: boolean;
13
+ preferred?: 'static' | 'server' | 'spa' | 'none';
14
+ }
15
+ export interface StylistEjectArgv {
16
+ path?: string;
17
+ json?: boolean;
18
+ styleLibrary?: StyleLibrary | 'auto';
19
+ writePolicy?: WritePolicy;
20
+ }
21
+ export declare function runStylistSyncCommand(argv: StylistSyncArgv): Promise<void>;
22
+ export declare function runStylistEjectCommand(argv: StylistEjectArgv): Promise<void>;
23
+ export declare function runStylistReconcileOutputCommand(argv: StylistReconcileOutputArgv): Promise<void>;
24
+ export declare function detectProjectStyleLibrary(projectPathInput: string): Promise<StyleLibrary>;
25
+ //# sourceMappingURL=stylist.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylist.d.ts","sourceRoot":"","sources":["../../src/commands/stylist.ts"],"names":[],"mappings":"AAKA,OAAO,EAKL,KAAK,YAAY,EACjB,KAAK,WAAW,EACjB,MAAM,qBAAqB,CAAC;AAE7B,MAAM,WAAW,eAAe;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;CAClD;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,YAAY,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IACrC,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAwBD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,IAAI,CAAC,CAoBhF;AAED,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2DlF;AAED,wBAAsB,gCAAgC,CAAC,IAAI,EAAE,0BAA0B,GAAG,OAAO,CAAC,IAAI,CAAC,CAqBtG;AA8UD,wBAAsB,yBAAyB,CAAC,gBAAgB,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CAG/F"}
@@ -0,0 +1,392 @@
1
+ import { access, readFile, rm, writeFile } from 'node:fs/promises';
2
+ import path from 'node:path';
3
+ import chalk from 'chalk';
4
+ import { detectStyleLibrary, loadStylistThemeWithDiagnostics, resolveStylistContext, syncStylistTheme, } from '../stylist-theme.js';
5
+ export async function runStylistSyncCommand(argv) {
6
+ const projectPath = path.resolve(argv.path ?? '.');
7
+ const payload = await resolvePayload(argv, projectPath);
8
+ const result = await syncStylistTheme(projectPath, payload, {
9
+ styleLibrary: argv.styleLibrary ?? 'auto',
10
+ writePolicy: argv.writePolicy,
11
+ });
12
+ if (argv.json) {
13
+ console.log(JSON.stringify(result, null, 2));
14
+ return;
15
+ }
16
+ console.log(chalk.bold('mds stylist sync'));
17
+ console.log(chalk.dim(result.projectPath));
18
+ console.log(chalk.green(`Synced ${result.updatedFiles.length} files.`));
19
+ console.log(chalk.dim(`style-library=${result.styleLibrary} write-policy=${result.writePolicy}`));
20
+ for (const filePath of result.updatedFiles) {
21
+ console.log(`- ${path.relative(process.cwd(), filePath)}`);
22
+ }
23
+ }
24
+ export async function runStylistEjectCommand(argv) {
25
+ const projectPath = path.resolve(argv.path ?? '.');
26
+ const loaded = await loadStylistThemeWithDiagnostics(projectPath);
27
+ const theme = loaded.theme;
28
+ const context = await resolveStylistContext(projectPath, {
29
+ styleLibrary: argv.styleLibrary ?? 'auto',
30
+ writePolicy: argv.writePolicy,
31
+ });
32
+ const syncResult = await syncStylistTheme(projectPath, theme, {
33
+ styleLibrary: context.styleLibrary,
34
+ writePolicy: context.writePolicy,
35
+ });
36
+ const removedFiles = await removeStylistArtifacts(projectPath);
37
+ const packageJsonUpdated = await removeStylistOnlyDependencies(projectPath);
38
+ const webOutputResult = await reconcileStylistWebOutput(projectPath);
39
+ const platformsUpdated = await reconcileExpoPlatformsFromProjectInfo(projectPath);
40
+ const projectInfoUpdated = await removeStylistMentionsFromProjectInfo(projectPath);
41
+ const result = {
42
+ projectPath,
43
+ styleLibrary: context.styleLibrary,
44
+ writePolicy: context.writePolicy,
45
+ syncedFiles: syncResult.updatedFiles,
46
+ removedFiles,
47
+ packageJsonUpdated,
48
+ projectInfoUpdated,
49
+ webOutputResult,
50
+ platformsUpdated,
51
+ };
52
+ if (argv.json) {
53
+ console.log(JSON.stringify(result, null, 2));
54
+ return;
55
+ }
56
+ console.log(chalk.bold('mds stylist eject'));
57
+ console.log(chalk.dim(projectPath));
58
+ console.log(chalk.green(`Synced ${result.syncedFiles.length} files before eject.`));
59
+ if (loaded.diagnostics.source !== 'theme.json') {
60
+ console.log(chalk.yellow(`Theme source fallback used: ${loaded.diagnostics.source}`));
61
+ }
62
+ if (loaded.diagnostics.mismatchDetected) {
63
+ console.log(chalk.yellow('Detected mismatch between project/theme.json and managed block in project/style.md.'));
64
+ }
65
+ console.log(chalk.green(`Removed ${result.removedFiles.length} stylist artifacts.`));
66
+ console.log(chalk.dim(`style-library=${result.styleLibrary} write-policy=${result.writePolicy}`));
67
+ for (const filePath of result.removedFiles) {
68
+ console.log(`- removed ${path.relative(process.cwd(), filePath)}`);
69
+ }
70
+ if (result.packageJsonUpdated) {
71
+ console.log(chalk.green('Updated package.json to remove stylist-only dependencies.'));
72
+ }
73
+ if (result.platformsUpdated) {
74
+ console.log(chalk.green('Updated expo.platforms from project/info.md.'));
75
+ }
76
+ if (result.projectInfoUpdated) {
77
+ console.log(chalk.green('Updated project/info.md to remove Stylist-specific guidance.'));
78
+ }
79
+ }
80
+ export async function runStylistReconcileOutputCommand(argv) {
81
+ const projectPath = path.resolve(argv.path ?? '.');
82
+ const result = await reconcileStylistWebOutput(projectPath, argv.preferred);
83
+ if (argv.json) {
84
+ console.log(JSON.stringify(result, null, 2));
85
+ return;
86
+ }
87
+ console.log(chalk.bold('mds stylist reconcile-output'));
88
+ console.log(chalk.dim(result.projectPath));
89
+ if (!result.appJsonPath) {
90
+ console.log(chalk.yellow('No app.json found. Skipped web.output reconciliation.'));
91
+ return;
92
+ }
93
+ const action = result.updated ? chalk.green('UPDATED') : chalk.gray('KEPT');
94
+ console.log(`${action} ${path.relative(process.cwd(), result.appJsonPath)}`);
95
+ console.log(`web.output ${result.previousWebOutput ?? '(unset)'} -> ${result.desiredWebOutput} (${result.hasStylistSyncApiRoute ? 'Stylist API route present' : 'Stylist API route missing'})`);
96
+ }
97
+ async function resolvePayload(argv, projectPath) {
98
+ if (argv.inputJson && argv.inputFile) {
99
+ throw new Error('Choose either --input-json or --input-file, not both.');
100
+ }
101
+ if (argv.inputJson) {
102
+ return parseJson(argv.inputJson, '--input-json');
103
+ }
104
+ if (argv.inputFile) {
105
+ const filePath = path.resolve(projectPath, argv.inputFile);
106
+ const text = await readFile(filePath, 'utf8');
107
+ return parseJson(text, '--input-file');
108
+ }
109
+ const loaded = await loadStylistThemeWithDiagnostics(projectPath);
110
+ return loaded.theme;
111
+ }
112
+ function parseJson(raw, source) {
113
+ try {
114
+ return JSON.parse(raw);
115
+ }
116
+ catch (error) {
117
+ throw new Error(`Failed to parse ${source} JSON: ${error instanceof Error ? error.message : String(error)}`);
118
+ }
119
+ }
120
+ async function reconcileStylistWebOutput(projectPath, preferredOverride) {
121
+ const appJsonPath = path.join(projectPath, 'app.json');
122
+ const appJsonRaw = await readOptionalText(appJsonPath);
123
+ const preferredWebOutput = preferredOverride ?? (await readPreferredWebOutputFromProjectInfo(projectPath));
124
+ const hasStylistSyncApiRoute = await detectStylistSyncApiRoute(projectPath);
125
+ const desiredWebOutput = hasStylistSyncApiRoute ? 'server' : normalizeExpoWebOutput(preferredWebOutput);
126
+ if (!appJsonRaw) {
127
+ return {
128
+ projectPath,
129
+ appJsonPath: null,
130
+ hasStylistSyncApiRoute,
131
+ preferredWebOutput,
132
+ desiredWebOutput,
133
+ previousWebOutput: null,
134
+ updated: false,
135
+ };
136
+ }
137
+ let parsed;
138
+ try {
139
+ const value = JSON.parse(appJsonRaw);
140
+ parsed = isRecord(value) ? value : {};
141
+ }
142
+ catch {
143
+ return {
144
+ projectPath,
145
+ appJsonPath,
146
+ hasStylistSyncApiRoute,
147
+ preferredWebOutput,
148
+ desiredWebOutput,
149
+ previousWebOutput: null,
150
+ updated: false,
151
+ };
152
+ }
153
+ const expo = isRecord(parsed.expo) ? parsed.expo : undefined;
154
+ if (!expo) {
155
+ return {
156
+ projectPath,
157
+ appJsonPath,
158
+ hasStylistSyncApiRoute,
159
+ preferredWebOutput,
160
+ desiredWebOutput,
161
+ previousWebOutput: null,
162
+ updated: false,
163
+ };
164
+ }
165
+ const web = isRecord(expo.web) ? expo.web : {};
166
+ const previousWebOutput = readString(web.output) ?? null;
167
+ if (previousWebOutput === desiredWebOutput) {
168
+ return {
169
+ projectPath,
170
+ appJsonPath,
171
+ hasStylistSyncApiRoute,
172
+ preferredWebOutput,
173
+ desiredWebOutput,
174
+ previousWebOutput,
175
+ updated: false,
176
+ };
177
+ }
178
+ expo.web = {
179
+ ...web,
180
+ output: desiredWebOutput,
181
+ };
182
+ await writeFile(appJsonPath, `${JSON.stringify(parsed, null, 2)}\n`, 'utf8');
183
+ return {
184
+ projectPath,
185
+ appJsonPath,
186
+ hasStylistSyncApiRoute,
187
+ preferredWebOutput,
188
+ desiredWebOutput,
189
+ previousWebOutput,
190
+ updated: true,
191
+ };
192
+ }
193
+ async function reconcileExpoPlatformsFromProjectInfo(projectPath) {
194
+ const appJsonPath = path.join(projectPath, 'app.json');
195
+ const appJsonRaw = await readOptionalText(appJsonPath);
196
+ if (!appJsonRaw) {
197
+ return false;
198
+ }
199
+ const infoRaw = await readOptionalText(path.join(projectPath, 'project', 'info.md'));
200
+ if (!infoRaw) {
201
+ return false;
202
+ }
203
+ const match = infoRaw.match(/-\s*Target platforms:\s*([^\n\r]+)/i);
204
+ if (!match?.[1]) {
205
+ return false;
206
+ }
207
+ const parsedPlatforms = match[1]
208
+ .split(',')
209
+ .map((item) => item.trim().toLowerCase())
210
+ .filter(Boolean)
211
+ .map((item) => normalizePlatform(item))
212
+ .filter((item) => Boolean(item));
213
+ if (parsedPlatforms.length === 0) {
214
+ return false;
215
+ }
216
+ let appJson = JSON.parse(appJsonRaw);
217
+ if (!isRecord(appJson)) {
218
+ appJson = {};
219
+ }
220
+ const root = appJson;
221
+ const expo = isRecord(root.expo) ? root.expo : {};
222
+ const existing = Array.isArray(expo.platforms)
223
+ ? expo.platforms.filter((value) => typeof value === 'string')
224
+ : [];
225
+ const deduped = Array.from(new Set(parsedPlatforms));
226
+ if (existing.length === deduped.length && existing.every((value, index) => value === deduped[index])) {
227
+ return false;
228
+ }
229
+ expo.platforms = deduped;
230
+ root.expo = expo;
231
+ await writeFile(appJsonPath, `${JSON.stringify(root, null, 2)}\n`, 'utf8');
232
+ return true;
233
+ }
234
+ async function removeStylistArtifacts(projectPath) {
235
+ const candidates = [
236
+ path.join(projectPath, 'src', 'features', 'exposition', 'stylist-screen.tsx'),
237
+ path.join(projectPath, 'src', 'features', 'exposition', 'embedded-fonts.ts'),
238
+ path.join(projectPath, 'src', 'app', 'exposition', 'stylist.tsx'),
239
+ path.join(projectPath, 'app', 'exposition', 'stylist.tsx'),
240
+ path.join(projectPath, 'src', 'app', 'exposition', 'stylist-sync+api.ts'),
241
+ path.join(projectPath, 'app', 'exposition', 'stylist-sync+api.ts'),
242
+ path.join(projectPath, 'project', 'stylist.config.json'),
243
+ ];
244
+ const removed = [];
245
+ for (const filePath of candidates) {
246
+ if (await pathExists(filePath)) {
247
+ await rm(filePath, { force: true });
248
+ removed.push(filePath);
249
+ }
250
+ }
251
+ await removeLineContaining(path.join(projectPath, 'src', 'app', '_layout.tsx'), 'exposition/stylist');
252
+ await removeLineContaining(path.join(projectPath, 'app', '_layout.tsx'), 'exposition/stylist');
253
+ await removeLineContaining(path.join(projectPath, 'src', 'features', 'home', 'home-screen.tsx'), '/exposition/stylist');
254
+ await removeLineContaining(path.join(projectPath, 'src', 'features', 'exposition', 'exposition-screen.tsx'), '/exposition/stylist');
255
+ return removed;
256
+ }
257
+ async function removeStylistOnlyDependencies(projectPath) {
258
+ const packageJsonPath = path.join(projectPath, 'package.json');
259
+ const raw = await readOptionalText(packageJsonPath);
260
+ if (!raw) {
261
+ return false;
262
+ }
263
+ const parsed = JSON.parse(raw);
264
+ if (!isRecord(parsed)) {
265
+ return false;
266
+ }
267
+ let changed = false;
268
+ const deps = isRecord(parsed.dependencies) ? parsed.dependencies : {};
269
+ const stylistOnlyDependencyKeys = new Set(['reanimated-color-picker']);
270
+ for (const key of stylistOnlyDependencyKeys) {
271
+ if (deps[key]) {
272
+ delete deps[key];
273
+ changed = true;
274
+ }
275
+ }
276
+ parsed.dependencies = deps;
277
+ const scripts = isRecord(parsed.scripts) ? parsed.scripts : {};
278
+ for (const scriptKey of ['mds:stylist:sync', 'mds:stylist:reconcile-output']) {
279
+ if (scripts[scriptKey]) {
280
+ delete scripts[scriptKey];
281
+ changed = true;
282
+ }
283
+ }
284
+ parsed.scripts = scripts;
285
+ if (!changed) {
286
+ return false;
287
+ }
288
+ await writeFile(packageJsonPath, `${JSON.stringify(parsed, null, 2)}\n`, 'utf8');
289
+ return true;
290
+ }
291
+ async function removeStylistMentionsFromProjectInfo(projectPath) {
292
+ const infoPath = path.join(projectPath, 'project', 'info.md');
293
+ const raw = await readOptionalText(infoPath);
294
+ if (!raw) {
295
+ return false;
296
+ }
297
+ const lines = raw.split(/\r?\n/);
298
+ const nextLines = lines.filter((line) => !/stylist/i.test(line));
299
+ const next = `${nextLines.join('\n').replace(/\s+$/, '')}\n`;
300
+ if (next === raw) {
301
+ return false;
302
+ }
303
+ await writeFile(infoPath, next, 'utf8');
304
+ return true;
305
+ }
306
+ async function removeLineContaining(filePath, token) {
307
+ const raw = await readOptionalText(filePath);
308
+ if (!raw || !raw.includes(token)) {
309
+ return;
310
+ }
311
+ const lines = raw.split(/\r?\n/).filter((line) => !line.includes(token));
312
+ await writeFile(filePath, `${lines.join('\n').replace(/\s+$/, '')}\n`, 'utf8');
313
+ }
314
+ async function readPreferredWebOutputFromProjectInfo(projectPath) {
315
+ const infoPath = path.join(projectPath, 'project', 'info.md');
316
+ const raw = await readOptionalText(infoPath);
317
+ if (!raw) {
318
+ return 'static';
319
+ }
320
+ const matched = raw.match(/-\s*Web output:\s*(static|server|spa|none)\b/i);
321
+ const value = matched?.[1]?.toLowerCase();
322
+ if (value === 'server' || value === 'spa' || value === 'none' || value === 'static') {
323
+ return value;
324
+ }
325
+ return 'static';
326
+ }
327
+ function normalizeExpoWebOutput(value) {
328
+ switch (value) {
329
+ case 'server':
330
+ return 'server';
331
+ case 'spa':
332
+ return 'single';
333
+ case 'none':
334
+ return 'static';
335
+ case 'static':
336
+ default:
337
+ return 'static';
338
+ }
339
+ }
340
+ async function detectStylistSyncApiRoute(projectPath) {
341
+ const candidates = [
342
+ path.join(projectPath, 'app', 'exposition', 'stylist-sync+api.ts'),
343
+ path.join(projectPath, 'src', 'app', 'exposition', 'stylist-sync+api.ts'),
344
+ ];
345
+ for (const candidate of candidates) {
346
+ if (await pathExists(candidate)) {
347
+ return true;
348
+ }
349
+ }
350
+ return false;
351
+ }
352
+ function normalizePlatform(value) {
353
+ switch (value) {
354
+ case 'ios':
355
+ case 'android':
356
+ case 'web':
357
+ return value;
358
+ case 'apple-tv':
359
+ case 'appletv':
360
+ return 'apple-tv';
361
+ default:
362
+ return null;
363
+ }
364
+ }
365
+ async function readOptionalText(filePath) {
366
+ try {
367
+ return await readFile(filePath, 'utf8');
368
+ }
369
+ catch {
370
+ return null;
371
+ }
372
+ }
373
+ async function pathExists(filePath) {
374
+ try {
375
+ await access(filePath);
376
+ return true;
377
+ }
378
+ catch {
379
+ return false;
380
+ }
381
+ }
382
+ function isRecord(value) {
383
+ return typeof value === 'object' && value !== null && !Array.isArray(value);
384
+ }
385
+ function readString(value) {
386
+ return typeof value === 'string' ? value : undefined;
387
+ }
388
+ export async function detectProjectStyleLibrary(projectPathInput) {
389
+ const projectPath = path.resolve(projectPathInput);
390
+ return detectStyleLibrary(projectPath);
391
+ }
392
+ //# sourceMappingURL=stylist.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stylist.js","sourceRoot":"","sources":["../../src/commands/stylist.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,OAAO,EACL,kBAAkB,EAClB,+BAA+B,EAC/B,qBAAqB,EACrB,gBAAgB,GAGjB,MAAM,qBAAqB,CAAC;AA8C7B,MAAM,CAAC,KAAK,UAAU,qBAAqB,CAAC,IAAqB;IAC/D,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,MAAM,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,OAAO,EAAE;QAC1D,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IAEH,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,YAAY,CAAC,MAAM,SAAS,CAAC,CAAC,CAAC;IACxE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC7D,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,IAAsB;IACjE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,WAAW,CAAC,CAAC;IAClE,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC;IAC3B,MAAM,OAAO,GAAG,MAAM,qBAAqB,CAAC,WAAW,EAAE;QACvD,YAAY,EAAE,IAAI,CAAC,YAAY,IAAI,MAAM;QACzC,WAAW,EAAE,IAAI,CAAC,WAAW;KAC9B,CAAC,CAAC;IACH,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,WAAW,EAAE,KAAK,EAAE;QAC5D,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;KACjC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,MAAM,sBAAsB,CAAC,WAAW,CAAC,CAAC;IAC/D,MAAM,kBAAkB,GAAG,MAAM,6BAA6B,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,eAAe,GAAG,MAAM,yBAAyB,CAAC,WAAW,CAAC,CAAC;IACrE,MAAM,gBAAgB,GAAG,MAAM,qCAAqC,CAAC,WAAW,CAAC,CAAC;IAClF,MAAM,kBAAkB,GAAG,MAAM,oCAAoC,CAAC,WAAW,CAAC,CAAC;IAEnF,MAAM,MAAM,GAAuB;QACjC,WAAW;QACX,YAAY,EAAE,OAAO,CAAC,YAAY;QAClC,WAAW,EAAE,OAAO,CAAC,WAAW;QAChC,WAAW,EAAE,UAAU,CAAC,YAAY;QACpC,YAAY;QACZ,kBAAkB;QAClB,kBAAkB;QAClB,eAAe;QACf,gBAAgB;KACjB,CAAC;IAEF,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC7C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,CAAC;IACpC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,MAAM,CAAC,WAAW,CAAC,MAAM,sBAAsB,CAAC,CAAC,CAAC;IACpF,IAAI,MAAM,CAAC,WAAW,CAAC,MAAM,KAAK,YAAY,EAAE,CAAC;QAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,+BAA+B,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,qFAAqF,CAAC,CAAC,CAAC;IACnH,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,MAAM,CAAC,YAAY,CAAC,MAAM,qBAAqB,CAAC,CAAC,CAAC;IACrF,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,iBAAiB,MAAM,CAAC,YAAY,iBAAiB,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAClG,KAAK,MAAM,QAAQ,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;QAC3C,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,2DAA2D,CAAC,CAAC,CAAC;IACxF,CAAC;IACD,IAAI,MAAM,CAAC,gBAAgB,EAAE,CAAC;QAC5B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8CAA8C,CAAC,CAAC,CAAC;IAC3E,CAAC;IACD,IAAI,MAAM,CAAC,kBAAkB,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,8DAA8D,CAAC,CAAC,CAAC;IAC3F,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,gCAAgC,CAAC,IAAgC;IACrF,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,GAAG,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,MAAM,yBAAyB,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;IAE5E,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QAC7C,OAAO;IACT,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3C,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;QACxB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,uDAAuD,CAAC,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC5E,OAAO,CAAC,GAAG,CAAC,GAAG,MAAM,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CACT,cAAc,MAAM,CAAC,iBAAiB,IAAI,SAAS,OAAO,MAAM,CAAC,gBAAgB,KAAK,MAAM,CAAC,sBAAsB,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,2BAA2B,GAAG,CACnL,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,cAAc,CAAC,IAAqB,EAAE,WAAmB;IACtE,IAAI,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACrC,MAAM,IAAI,KAAK,CAAC,uDAAuD,CAAC,CAAC;IAC3E,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,OAAO,SAAS,CAAC,IAAI,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;QAC3D,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAC9C,OAAO,SAAS,CAAC,IAAI,EAAE,cAAc,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,MAAM,GAAG,MAAM,+BAA+B,CAAC,WAAW,CAAC,CAAC;IAClE,OAAO,MAAM,CAAC,KAAK,CAAC;AACtB,CAAC;AAED,SAAS,SAAS,CAAC,GAAW,EAAE,MAAc;IAC5C,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IACpC,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,IAAI,KAAK,CAAC,mBAAmB,MAAM,UAAU,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/G,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CACtC,WAAmB,EACnB,iBAAwD;IAExD,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACvD,MAAM,kBAAkB,GAAG,iBAAiB,IAAI,CAAC,MAAM,qCAAqC,CAAC,WAAW,CAAC,CAAC,CAAC;IAC3G,MAAM,sBAAsB,GAAG,MAAM,yBAAyB,CAAC,WAAW,CAAC,CAAC;IAC5E,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,sBAAsB,CAAC,kBAAkB,CAAC,CAAC;IAExG,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO;YACL,WAAW;YACX,WAAW,EAAE,IAAI;YACjB,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,CAAC;QAChD,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO;YACL,WAAW;YACX,WAAW;YACX,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;IAC7D,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO;YACL,WAAW;YACX,WAAW;YACX,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB,EAAE,IAAI;YACvB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/C,MAAM,iBAAiB,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC;IACzD,IAAI,iBAAiB,KAAK,gBAAgB,EAAE,CAAC;QAC3C,OAAO;YACL,WAAW;YACX,WAAW;YACX,sBAAsB;YACtB,kBAAkB;YAClB,gBAAgB;YAChB,iBAAiB;YACjB,OAAO,EAAE,KAAK;SACf,CAAC;IACJ,CAAC;IAED,IAAI,CAAC,GAAG,GAAG;QACT,GAAG,GAAG;QACN,MAAM,EAAE,gBAAgB;KACzB,CAAC;IAEF,MAAM,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAE7E,OAAO;QACL,WAAW;QACX,WAAW;QACX,sBAAsB;QACtB,kBAAkB;QAClB,gBAAgB;QAChB,iBAAiB;QACjB,OAAO,EAAE,IAAI;KACd,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,qCAAqC,CAAC,WAAmB;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;IACvD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,WAAW,CAAC,CAAC;IACvD,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACrF,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,qCAAqC,CAAC,CAAC;IACnE,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,eAAe,GAAG,KAAK,CAAC,CAAC,CAAC;SAC7B,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;SACxC,MAAM,CAAC,OAAO,CAAC;SACf,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;SACtC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IAEnD,IAAI,eAAe,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,CAAC;IAChD,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QACvB,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IAED,MAAM,IAAI,GAAG,OAAkC,CAAC;IAChD,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;IAClD,MAAM,QAAQ,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC;QAC5C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC;QAC9E,CAAC,CAAC,EAAE,CAAC;IAEP,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,eAAe,CAAC,CAAC,CAAC;IACrD,IAAI,QAAQ,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM,IAAI,QAAQ,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACrG,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC;IACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACjB,MAAM,SAAS,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC3E,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,WAAmB;IACvD,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,oBAAoB,CAAC;QAC7E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,mBAAmB,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC;QACjE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,aAAa,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,CAAC;QACzE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,qBAAqB,CAAC;KACzD,CAAC;IACF,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,QAAQ,IAAI,UAAU,EAAE,CAAC;QAClC,IAAI,MAAM,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,MAAM,EAAE,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACpC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAC;IACtG,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,aAAa,CAAC,EAAE,oBAAoB,CAAC,CAAC;IAC/F,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE,qBAAqB,CAAC,CAAC;IACxH,MAAM,oBAAoB,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,uBAAuB,CAAC,EAAE,qBAAqB,CAAC,CAAC;IAEpI,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,KAAK,UAAU,6BAA6B,CAAC,WAAmB;IAC9D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,cAAc,CAAC,CAAC;IAC/D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACpD,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAY,CAAC;IAC1C,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;QACtB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,CAAC;IAEpB,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;IACtE,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAC,CAAC,yBAAyB,CAAC,CAAC,CAAC;IACvE,KAAK,MAAM,GAAG,IAAI,yBAAyB,EAAE,CAAC;QAC5C,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YACd,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC;YACjB,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;IAC/D,KAAK,MAAM,SAAS,IAAI,CAAC,kBAAkB,EAAE,8BAA8B,CAAC,EAAE,CAAC;QAC7E,IAAI,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC,SAAS,CAAC,CAAC;YAC1B,OAAO,GAAG,IAAI,CAAC;QACjB,CAAC;IACH,CAAC;IACD,MAAM,CAAC,OAAO,GAAG,OAAO,CAAC;IAEzB,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,CAAC,eAAe,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACjF,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oCAAoC,CAAC,WAAmB;IACrE,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;IACjC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IACjE,MAAM,IAAI,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC;IAC7D,IAAI,IAAI,KAAK,GAAG,EAAE,CAAC;QACjB,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAgB,EAAE,KAAa;IACjE,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO;IACT,CAAC;IACD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACzE,MAAM,SAAS,CAAC,QAAQ,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AACjF,CAAC;AAED,KAAK,UAAU,qCAAqC,CAClD,WAAmB;IAEnB,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,gBAAgB,CAAC,QAAQ,CAAC,CAAC;IAC7C,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,MAAM,OAAO,GAAG,GAAG,CAAC,KAAK,CAAC,+CAA+C,CAAC,CAAC;IAC3E,MAAM,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1C,IAAI,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,QAAQ,EAAE,CAAC;QACpF,OAAO,KAAK,CAAC;IACf,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,sBAAsB,CAAC,KAA2C;IACzE,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,KAAK;YACR,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,QAAQ,CAAC;QAClB,KAAK,QAAQ,CAAC;QACd;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,yBAAyB,CAAC,WAAmB;IAC1D,MAAM,UAAU,GAAG;QACjB,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,YAAY,EAAE,qBAAqB,CAAC;KAC1E,CAAC;IACF,KAAK,MAAM,SAAS,IAAI,UAAU,EAAE,CAAC;QACnC,IAAI,MAAM,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,iBAAiB,CAAC,KAAa;IACtC,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,KAAK,CAAC;QACX,KAAK,SAAS,CAAC;QACf,KAAK,KAAK;YACR,OAAO,KAAK,CAAC;QACf,KAAK,UAAU,CAAC;QAChB,KAAK,SAAS;YACZ,OAAO,UAAU,CAAC;QACpB;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,QAAgB;IAC9C,IAAI,CAAC;QACH,OAAO,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,QAAgB;IACxC,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAS,QAAQ,CAAC,KAAc;IAC9B,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC9E,CAAC;AAED,SAAS,UAAU,CAAC,KAAc;IAChC,OAAO,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC;AACvD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,gBAAwB;IACtE,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACnD,OAAO,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACzC,CAAC"}
@@ -21,6 +21,7 @@ export interface OnboardAnswers {
21
21
  customBackend: boolean;
22
22
  customBackendEntry: string;
23
23
  usesExpoUi: boolean;
24
+ usesExpoUiUniversalComponents: boolean;
24
25
  usesExpoNativeTabs: boolean;
25
26
  easUses: string[];
26
27
  projectInfoReady: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"project-memory.d.ts","sourceRoot":"","sources":["../src/project-memory.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"project-memory.d.ts","sourceRoot":"","sources":["../src/project-memory.ts"],"names":[],"mappings":"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"}